关于可编程逻辑,你可能已经遗忘的8件事
扫描二维码
随时随地手机看文章
曾几何时,原理图就是工程师们的一切,一张羊皮图纸,一支自动铅笔,一把直尺,一个绿色逻辑模版,一块橡皮擦,一块金属擦除模板,直到上世纪80年代,计算机的出现,使原理图的制作技术得到了一个大的飞跃。到上世纪80年代中期,在原理图技术正在发生转变的时候,FPGA登上了历史舞台。随着FPGA的容量越来越大,原理图变得越来越复杂和笨拙,这就好像几年前ASIC设计所经历的事情一样。到了上世纪90年代,日渐增长的复杂度迫使工程师们学习Verilog和VHDL语言来使用大容量的器件,现在,这项流行的技术已经基本取代了原理图输入。但是,在Xilinx Vivado设计套件的IP集成工具中,我们可以看到原理图输入的新的形式,在这里,IP模块以一种图形化的视图形式出现,而不用再去考虑IP内部的复杂度,图形化设计又重新在设计中占有了一席之地。
FPLA,PAL和GAL在1975年,Signetics(西格尼蒂克)公司出品的第一代可编程逻辑器件被称为FPLA(现场可编程逻辑阵列)。FPLA的特点是尺寸大、速度慢、价格昂贵、不易使用,并且功耗很大,这些特点导致它无法在商业领域获得成功。MMI(Monolithic Memories Inc)推出简化改进后的FPLA,又称为PAL(可编程阵列逻辑),是第一个获得成功的可编程逻辑器件,改进之后,不可以对或阵列进行编程,这样大大简化了片上的互连以及可编程的熔断点。MMI制造的双极型PAL非常便宜,这也助长了“blow-and-go”工程设计模式(不需要做任何仿真)的滋长,许多设计工程师的工作台上都有一小堆用过的PAL器件来提醒自己更加细心的工作。(我把我用坏的PAL器件放在一个纸杯中)PAL器件获得巨大成功,以至于国家半导体、TI和AMD等公司都开始提供管脚兼容的器件。在上世纪80年代,双极型PAL发展成了基于EPROM的GALs(通用阵列逻辑),并最终演变成CPLD。
熔丝映射
我们并不总是用HDL语言来配置可编程逻辑。工程师们曾经使用熔丝图来直接表现片上的熔断点和互连,根据逻辑等式,可以在PAL数据手册的片上互连图上进行标注,以此来表示哪些熔丝需要熔断,哪些保持不变,然后需要手工把熔丝图转换为一个包含“0”和“1”字符串的二进制编程文件,这个文件可以告诉器件编程人员哪些熔丝需要熔断,哪些保持不变。幸运的是,熔丝图编程方法很快就不再被人们所采用。这是一张MMI熔丝图,出自EETimes的“How It Was: Programmable Logic”,作者是Max Maxfield。该文是基于Aubrey Kagan的口述整理而成,他是一家位于多伦多,从事工控接口和开关电源设计的公司(Emphatec)的工程主管。
MMI熔丝图
ABEL(高级布尔表达式语言)
由Data I/O公司在1984年4月份提出的一种早期的硬件描述语言。在那个时代里,ABEL与CUPL和PALASM同台竞争。Data I/O公司拆分ABEL产品线,成立一个名为Synario设计系统的EDA公司,然后,又在1997年把Synario卖给了MINC公司。MINC是一家专注于开发FPGA开发工具的公司,该公司在1998年倒闭,Xilinx收购了MINC的部分资产,这其中就包括了ABEL语言和工具集,ABEL成为Xilinx Webpack工具套件的一部分。点击此处阅读Michael Holly撰写的ABEL语言的历史,Michael Holly是Data I/O公司最早的开发人员之一。
CUPL(通用可编程逻辑的编译器)
加州圣何塞的Assisted Technology最早研发出CUPL,并在1983年9月份对外发布。出于可移植性的考虑,CUPL是用C语言开发而成,它是最早的商业化设计工具,可以支持多个PLD系列,Personal CAD Systems (P-CAD)在1985年收购了Assisted Technology以及CUPL,可编程器件供应商Logical Devices后来收购了CUPL,然后转手卖给了Altium,在上世纪90年代,CUPL出现在Altium公司的Protel设计系统中,现在是以一个设计插件的形式存在。Logical Devices仍然提供PAL/PLD设计软件,用于基于PROM/ EPROM可编程逻辑器件,这个软件就是CUBEL,它是在早期的CUPL和ABEL硬件描述语言的基础上开发而成。
PALASM
上世纪80年代早期,MMI公司的John Birkner合作开发了“PAL汇编语言”,以此来取代熔丝图编程。它最初是用Fortran IV编写而成,可以运行在大型主机或者微机上。Birkner创立了Structured Design公司,该公司提供SD20 PAL编程器,用于第一代20个管脚的MMI双极型PAL器件,后面又推出SD20/24编程器,增加了对24个管脚的PAL器件的支持。Structured Design的器件编程器使用内嵌的PALASM编译器,不需要使用微机,程序可以保存在SD20的Exatron “Stringy Floppy”磁带驱动器中,或者通过RS-232串行接口来输入和输出,通常情况下,RS-232是与PC机进行连接。
Data I/O器件编程器
当需要一个通用的器件编程器,既可以用于EPROM,也可以用于可编程逻辑器件,那么就需要了解Data I/O公司,它制造出了最早的商用编程器。Data I/O成立于1969年,在整个70年代,为了适应可编程器件日益提高的复杂度,它推出了一系列处理能力不断增强的产品。在80年代,Data I/O推出Model 29型号的编程器,它能够使用UniPak适配器来对EPROM进行编程,也可以使用一个LogicPak插件适配器来对PLD器件进行编程。Data I/O现在提供为生产线设计的大容量、高速度的器件编程器。
Data I/O Model 29B编程器外加LogicPak适配器。图片来源: Michael Holley
UV擦除器
最早的可编程逻辑器件使用片上可编程熔丝,它们只能一次性编程,导致工程师的桌上经常会出现一堆烧坏的器件,一些PLD供应商很快意识到可擦除的PLD器件会更加受到市场欢迎,他们改进了UV EPROM单元用于PLD器件,这样,也就意味着绝大部分的设计实验室需要有一个UV擦除器来负责擦除可编程逻辑器件中的内容。UV擦除器曾经相当昂贵,但是现在在亚马逊只要不到20美金就能买到买到一个简单的UV擦除器。
德州仪器TTL数据手册
如果你是一个上世纪70年代的数字设计工程师,那么有着橘黄色封面的TI TTL数据手册就是你的设计圣经。在手册里,你能够找到设计数字系统所能用到的所有模块。在1971年TI 7400系列逻辑器件首次引入微处理器概念之前,许多系统都是基于没有微处理器的TTL器件或者其他LSI的器件来开发的。最早的用于可编程逻辑器件的IP模块是TI TTL数据手册及其补充部分描述的更加复杂的部件,设计人员使用这种内嵌数字模块的可编程逻辑,可以简化整个系统的实现,这些数字模块就是IP重用的早期原型。