FPGA竟然使Apple II个人电脑做回了自己!

Sleibso FPGA开发圈
作者:Sleibso;编译:蒙面侠客

背景

微处理器软核代码开放,那么将源代码用工具例化到FPGA里面是不是就能实现其逻辑功能,当年流行的微处理器成就的一些产品是不是可以再拿出来回味回味呢?答案是肯定的, MicroCore的MCL51,MCL65等,就可以将代码综合后例化到FPGA里面,分配了引脚就可以实现相应的逻辑功能。今天小编就带领各位领略一下用FPGA使当年风靡的Atari 2600 VCS游戏机和Apple II个人电脑再次重生!

MicroCore的MCL65软核,微处理器版本型号为6502,此型号处理器在1970s,1980s和以后的时间里被用在很多的产品中。MicroCore实验室目前在开发超小型的基于微定序器的嵌入式处理器内核具有非常多的经验,其处理器内核可以在任何FPGA或ASIC技术中实现,他们最近实现了基于Artix-7以MCL51为内核的同步模块冗余系统应用。小编将MCL65软核例化到Spartan-7 S50 FPGA里面,例化后占用的FPGA的资源只有0.77%,接下来看看应用的效果怎么样。先前小编就写过在Commodore VIC-20 PC上面应用的例子,今天将软核编译后下载到FPGA里面然后应用到Atari 2600 VCS(Video Computer System)和Apple II PC中,这两款机器都是在1977年问世的,而且MCL65处理器在这两款机器中的应用都很好,而且都是完全依赖指令级定时循环的特定功能。

图.1 用Spartan-7 FPGA使MicroCore 实验室的MCL65处理器运行在Atari 2600 VCS中

将Atari 2600 VCS的视频输出端口和NTSC制式的模拟TV显示器相连接,因为它只有128 bytes的RAM空间,这对于帧寄存器来讲实在是太小了,所以处理器需要产生一个新的30帧每秒的视频格式,为的是和TV的水平扫描频率和垂直刷新频率保持一致。图.1所示为MicroCore实验室的MCL65处理器核例化到价值109美元的Digilent Arty S7 Spartan-7 FPGA 开发板上,并将例化有软核处理器逻辑功能的开发板应用在Atari 2600 VCS上,如图所示是显示了游戏的画面。

图.2 用Spartan-7 FPGA 使MCL65处理器在Apple II 上启动Apple Dos 3.3

接下来,用同样的方法将例化有MCL65软核代码的FPGA模块用到Apple II的个人电脑中。传奇的Steve Wozniak设计了Apple II的软盘驱动Disk II,他在学过了当时基于TTL芯片的软盘控制器和WD1771软盘控制器之后,决定使用更少的硬件来设计一个更好的软盘控制器。他所设计的控制器是基于精确的指令级别的处理器时间,将要写进/读出软盘的数据进行编码/解码。这也是Steve Wozniak自己所描述的在苹果公司做的最棒的工作,令他终身难忘,他的功绩也永久的载入了Apple II的成功的历史中。将MicroCore实验室的MCL65处理器核代码编译后实例化到Digilent Arty S7 Spartan-7 FPGA开发板中,并将此开发板连接到Apple II上面,并且从Disk II启动Apple的DOS 3.3,得到的结果如图.2所示。本次小编就介绍这两个平台的应用,如果你感兴趣的话可以自己下载MicroCore实验室的MCL65处理器内核代码进行自己的开发。于此同时介绍一下本次小编使用的硬件里面的Spartan-7 FPGA,它提供了较小的芯片尺寸,较高的性能,丰富的接口和相应的扩展功能,能够兼容Vivado的设计工具包,使本次的硬件历史之旅表现的很到位。

总结

科技的发展可谓是每天都在变化,在变化之中也有着科技的经典之作。在软硬件都开源时代背景下,很难预测下一个十年硬件会发展成什么样一种状态,但是基本的逻辑是不会改变的,历史中的发展规律和设计思想可以拿来学习,借鉴,回味。每一个人都有成为科技的领军人物的可能,会创造历史的人有着疯狂的精神,但也要从小事做起。抓住开源的机遇,抓住FPGA和各种工具的便利,坚信自己的选择,想搞事情可以先从做一个技术大咖开始哦!

声明:本文来源于Xilinx Xcell Daily Blog,由创新网赛灵思中文社区编译,转载请注明作者、出处及原文链接

©著作权归作者所有:来自51CTO博客作者mb5fd86d05a0afe的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. SpringBoot配置加载原理全面解析
  2. Android使用UncaughtExceptionHandler捕获异常
  3. Android(安卓)APT(Java注解应用)
  4. 关于处理器架构的一点儿知识
  5. android 自定义注解处理器
  6. android开发之读取xml文件
  7. android之转化inputstream为list
  8. 在英特尔® 凌动™ 处理器上将 OpenGL* 游戏移植到 Android* (第
  9. Java中的APT注解

随机推荐

  1. 钉钉在线求饶?五星分期付款?爬取钉钉App St
  2. python中那些小众但有用的内置模块
  3. 动画:如何给面试官回答 TCP 的拥塞控制?
  4. python数据分析之清洗数据:缺失值处理
  5. 数据工程师需要掌握的18个python库
  6. 图解 :一篇彻底带你搞懂 JS 中的 this 指
  7. python数据分析——详解python读取数据相
  8. Python一行命令生成数据分析报告
  9. 数据工程师面试必备——Python与数据库的
  10. 用python制作动态图表看全球疫情变化趋势