经典重现!基于Spartan-7/3 FPGA实现MOS Technology 6502克隆版

作者:清风流云

背景:
曾经在泡泡网CPU上看到,国外媒体曾评出过迄今为止最具影响力的11款微处理器,其中第五款就是 MOS Technology 6502 (1975年)。6502是一款功能强大且价格低廉的处理器产品,当时英特尔8080售价149美元,而6502仅为25美元。6502被应用于许多计算机中,代表产品为1977年的Apple II。具体来说,MOS 6502是1975年由MOS科技所研创的8位微处理器,刚问世时是当时功效最强的CPU,且价格只有大型业者(如Motorola、Intel)相近产品的六分之一甚至更低;且除了Zilog公司的Z80外,6502几乎快过多数同业者的相近产品,进而激起一系列的电脑专案,并在之后的1980年代带来一场个人电脑的革命。但是MOS科技仅授权两家业者能相容研制6502,即是所谓的“第二供货源”,分别是洛克威尔国际公司与Synertek公司,之后才有更多的业者获得相容研制的授权,并仍持续在嵌入式系统的市场中供货。可以说6502是一款承载着无数人年少欢乐的CPU呀。

MicroCore MCL65处理器:
在二十世纪七十年代,从Apple II到Atari 2600几乎每款低端的微处理器和视频游戏都运行同一套机器操作码,即非常成功的8位微处理器——MOS技术的6520的操作码。对于今天的我们来说,6520应该算是老古董级别的存在了,不过就在近期,MicroCore实验室的Ted Fried研究员利用FPGA可编程的特性,实现了一款6520处理器的克隆版——MCL65处理器,不过相比于6520它是可以做到周期精确的。在整个克隆过程中,Fried在一款价值109刀的Digilent Arty S7 开发板上完成了MCL65的实例化,值得注意的是这款开发板包含了一个Spartan-7 S50的FPGA芯片,并且从实例化后的资源使用情况来看,6520处理器核大概仅仅占整个资源的0.77%左右。所以说,如果你思维发散一点来思考的话,就是只要你想,就可以在这样一个小型的低功耗FPGA芯片上实例化出100多个这样的处理器核,当然了,实例化的目的当然是设计需要,不过即使只是兴趣也可以试试看可以实例化数量的极限。

下图为MicroCore实验室中用于实例化MCL65 处理器核的 Arty S7 开发板(内嵌Spartan-7 FPGA),此外还在新旧技术之间搭建了一座几乎不可能的桥: MicroCore MCL65 处理器核(即古老的6520处理器克隆版)通过一组40pin脚的MOS技术处理器 DIP 插槽 连接到一个Commodore VIC-20上(运行Commodore Basic)。

图1:基于Spartan-7 FPGA 实现MicroCore MCL65处理器

图1:基于Spartan-7 FPGA 实现MicroCore MCL65处理器

当然了,需要略微说明的是Commodore 也是在1980年左右才被引进到VIC-20, 大概是37年前的事情了。不过随后,MicroCore 实验室又在一款Spartan-3 S250E FPGA上实现了相同的核,这次则使用了490个LUT,也仅占整个器件资源的10%,可见这款FPGA的资源也十分丰富。

图2:基于Spartan-3 FPGA 实现MicroCore MCL65处理器

图2:基于Spartan-3 FPGA 实现MicroCore MCL65处理器

最后增加一点reference,第一就是据说Fried计划将这上述这个克隆项目发布在开源网站上,通过练相关 LinkedIn可以获得关于项目更多详细的信息;其次就是如果想了解更多关于老古董——MOS技术6502处理器,则可以查看Tekla S Perry发表在2016年度IEEE Spectrum上题为《Atari Alumni Talk About the Tall Tales They Told to Launch an Industy》的论文,而且这篇paper是由Atari 创始人Nolan Bushnell, AL Acorn,和Owen Rubin 以及MOS技术的6502设计人员Chuch Peddle(大牛一枚)执笔的,含金量可见一斑。

总结:
记得之前有写过一篇关于Commodore的文章,和这篇比较类似吧,也是关于在FPGA上实现曾经风靡过全球的处理器的内容。从这两篇文章可以知道,在很早之前很牛掰的技术或处理器等,如果放到今天一篇小小的FPGA上,就可以轻易实现成百个以上数量同样或性能更高的克隆版,是科技的进步,也是FPGA革命的结果。

声明:本文为原创文章,转载需注明作者、出处及原文链接