junyangliu

【转】FPGA三国志第一篇/共四篇/不可不看的故事

0
阅读(2430)

我在2008年的10月国庆期间,在某论坛里写了这个系列的帖子,后搜索网络发现流传甚广。 现在开通博客,收录自己的一些想法,希望以后能够延续,同时为使用FPGA,或者学习FPGA的朋友知道过去的一段历史。在原文的基础上进行了一些删减

FPGA三国志-第一篇/共四篇/不可不看的故事原创!长篇连载!

在很多FPGA或者电子技术论坛里,看到多数朋友在讨论技术问题。但是关乎FPGA产品结构的帖子相对来说很少。实际上,现在很多产品,包括FPGA产品在内,同质化的问题也同样存在。只是一个此消彼长的过程。但是它们产品结构的不同差异,对我们的设计还是有很多大影响。我很想就这个问题来个开篇。希望大家多拍砖
我们为什么应该对FPGA感兴趣?
首先FPGA是数字电路,尽管目前有加入所谓的ADC的功能的FPGA,但是,从主流上说, FPGA就是数字电路。 当然早期不同的公司都赋予了很多花里胡哨的名字。 PLD,EPLD,CPLD,SPLD,其实在原理上都大同小异。今天的FPGA主要有下列市场, 正是在这些市场的竞争和争夺中,由群雄争霸逐渐形成今天的三国鼎立的局面。在2008年的时候,基本上由Xilinx,Altera,Lattice,Actel占据了主要的市场份额,到今天2011年, Xilinx和Altera已经占有90%的市场份额,已经组建由三足鼎立向双雄并举发展,同时Actel也被另外公司收购。
ASIC ASSP市场
现在大家可以看到很多FPGA的设计正取代更多的ASIC,ASSP
DSP市场
目前主要是高端的DSP应用,今天内嵌DSP元素的FPGA,像Xilinx的Spartan3ADSP,和Vertex 5/6系列,Spartan6 , Altera的CycloneIV,CycloneIII,CycloneII,StratixIII等, 都可以比最快的DSP再快上个500到几千倍(主要指内部的乘法器以及累加器资源)
软核嵌入式CPU以及硬核CPU
这里说的是微控制器类型的处理器, 随着FPGA单位价格的不断下降,例如, CycloneIII中的3C5这个最小身材的家伙也可以集成一个可选定的I/O的NiosII软核处理器。 因此做嵌入式控制应用的市场也成为FPGA的市场,在我写这段的时候, Altera公司也会近期举办一些SOPC的研讨会, 也许,我写完这个的时候,有更多的人已经加入到了这个行列里来研究嵌入式在FPGA上的实现。
高速的通信接口
最早的FPGA应用主要是协议和物理层的通信,例如:ArriaGX支持的接口有GbitEthernet,PCIE,RapidIO,所谓的高端FPGA就是带有多通道的高速Serdes的产品, 这样意味着很多设备可以集成很好的通信以及网络功能。

CPLD的时代

我在12年前,偶然接触PLD,没有想到自己居然就在这个行当里安身下来。可是这个行业也的确是个飞速发展的行业,十多年过去后,从当初的接近十家主要供应商,到今天已经激烈搏杀后,只有差不多如论坛题目一样的,成为了今天三足鼎立的局面。想来想去,决定以这个名字作为论坛的主题。同时也和大家分享我多年来的一些经历和感受。
全局布线,ISP,PLD,宏单元机构,成为PLD市场必备的武器。
CPLD时代,进入我国最早的供应商是Lattice,那个时候,也不是每个行业都用的了这种产品。首先,软件是需要收费的。这个和今天你可以轻松下载到免费的版本有很大的不同。另外,不同的授权,也决定你能使用不同的产品规模和设计语言。
90年代中,是电信行业大发展的年代。同时也是专用应用领域大发展的时代。当时pld是解决一个逻辑粘连的功能。同时由于Lattice很早进入市场,推广很成功。全局布线池的结构,对于布局布线要求不高。一度时间,很多大的通信企业,研究所,都很快成为Lattice的用户。但是,有句话说得好。“长江后浪推前浪,前浪死在沙滩上。”太早的成功也孕育着安则危!
94年Altera已经有了一些用户。但是相对来说。还是很有局限性。另外过去的信息远远不可以与今天同日而语. 但是用过altera的工程师,已经为他的界面和功能留下了深刻的印象。96年是ALTERA在中国发力追赶的开始。当然,乱世出英雄。当时的代理商是一家香港的公司。他们很快找出这种集成电路最好的销售和支持模式。并且这种从大洋那边继承过来的方式,经过适当的改良,的确收到很好的效果。代理商有专门负责的现场应用工程师。这种方式极大方便了设计者与供应商之间的信息交流。在推广初期是否有技术支持,变得非常重要。这个时期在整个中国市场上涌现出很多非常优秀的现场技术工程师。今天已经有很多人成为这个行业的领军人物。
Lattice首开ISP技术先河,也就是今天常说的在线可编程,给所有设计者带来很大的方便。芯片在电路板上,可以直接编程调试。不用每次拔插芯片,再通过紫外线来擦写要方便得多。这个时候,Lattice还是明显占有上风的。毕竟先入为主嘛。当时主要的型号集中在Lattice ispLSI1032, 1016, Altera的EPM7128E,不过Altera已经做好了准备,因为,Altera毕竟是pld的发明者。而且也是最早采用Windows平台的开发工具。在美国市场上占有先机。他不会轻易放弃这样一个市场
当时的应用在电信领域主要是将之前的74系列的一些单元进行集成。同时加入一些控制功能。不过这个时期的产品结构都是采用mc单元结构。每个mc实际上就是相当于32到36个与非门,以Altera EPM3032为例就是认为有32*30到256*30,大致就是7000门左右,因此产品命名为MAX7000,但是当时的设计很多还在大量应用异步设计。因此,电路的结构如果能导致利用率的上升,将是更加有竞争力的表现。MC的结构就是采用先组合,后时序多个时钟输入结构。Lattice是用4个宏单元一组。altera 采用8个一组。而且,altera在利用率上,稍微占有上风。同时Altera当时的maxplusII的良好界面。在97,98年的两年时间里,已经奠定在中国的基础。更深层次,Altera已经看到未来市场的需求,前面说到,成功太早有时候也不是好事。在MAX7000的铺垫下,Altera已经有了进攻Xilinx的武器,可Altera一致宣称那不是FPGA,换以一个更加中性的名字---CPLD(复杂可编程逻辑器件)。那什么是Altera的武器呢。FLEX8000!他的出现是Altera奠定今天可以和xilinx平分秋色的基础。
在1996,97年,成都,西安多家做专业领域的公司和研究单位,也使用了一些Actel,Actel的产品和那个时候的Quicklogic来说,都是属于Antifuse的技术。使用他的最大好处在当时就是有防止辐射,就是说在航空产品中可以用。但是需要你认真的仿真。 如果你烧入进去设计, 就只能换下一片了。而且为了烧断里面的熔丝, 第三方的编程器支持的也不多。 但是他们有些军用温度的产品。 还是在这个领域有不错的口碑。
Actel当时的策略结构是, 基本上和他们现在的论调也非常一致, 就是精细颗粒, 所有的DFF,还是可以靠独立的门来搭建。这个在他早先的A1020等产品系列上可以看到。 而且芯片上有一部分是组合逻辑区,有一部分是时序逻辑区。另外他们的软件也是多家EDA工具的组合。 特别是库的一致性不是特别通用。
Quicklogic的产品是FPGA公司中最早嵌入Synplify的商家,而且他们的LE结构是基于Mux的,底层的layout也可以清晰看到路由,资源消耗。输入法和库的建立很特别。 但是也存在上面的问题。产品好像是QLxxx的, 我还去应聘过一次这家公司,因为他们最早采用Synplify。而且,当时我已经感觉Synplify和雷昂纳多(拼写忘记了),以及exzampler??这个拼写也有问题。 我在做FAE的时候, 总是用这3个工具都综合一次,看他们哪个强。 后来证明是对的。Sy是最平均的, 而且简单的优点傻瓜。 遗憾他也在今年被Synopsys收购了。现在Quicklogic也专注一些细分市场。

为什么要这样的结构-先组合,后时序多个时钟输入

随着科技的进步,有很多人已经忘记了很多细节,当然,我们也要遵循一个原则。难事做易,大事做细!就像朱熹说的--“问渠哪得清如许,为有源头活水来“,如果你不知道原理,碰到重要的问题,或者是设计的时候,即使成功,也是不知不觉成功,同样呢,也是不知不觉失败。
拉回话题,当你设计一个扫描电路的时候,例如,你可以采用一个时钟,输入一个计数器,然后计数器的输出,再驱动一个译码器,这样你的电路就出来了。当然事情完成了一半。功能实现了,但是,有没有更好的办法。后者换句话说。有没有适合PLD的方法。实际上用另外一个角度看,这个设计是典型的,先时序模块,才是组合电路。这个实际上,不是很和PLD本身的结构相符。还有一个问题时,随着电路速度的提高,每个译码输出之间的抖动也成为问题。就是输出的不一样的。从资源的角度来说,一个计数器,要3各单元。一个译码器,由于有8个输出,还是需要8各单元。但是如果用一个移位寄存器的方式,可以只需要8个单元。或者用状态机的方式实现,也是消耗同样的资源。可是,输出都是由于同一个时钟锁定,每个输出的延迟也比较一致。另外,当时对总线数据的译码是经常有的事情,因此,每个单元的扇入数量都是很高的。都有30个以上。因此,你设计的时候,要有两个思想:用同步设计模式,用先组合后时序的模式。后来的Xilinx的95系列更是将扇入系数扩大到90个。也是这个原因。当时PLD厂商比较的也是这些指标。
当然我现在之所以又开始补充些内容,好像是一些网友提醒我说没有说Actel等产品,现在不妨也加入一些。 但是为了这个话题,我不得不再说些比这个看起来更久远的事情。
反熔丝的技术在PLD一出现的时候就有了, 最早的有所谓熔丝技术,实际上他们都只是初始状态的定义不同。 1970年的时候,就有Harris公司, 今天叫intersil的公司, 就已经有这样的技术, 不好意思, 那个时候,我还没有出生呢,但这丝毫不妨碍我们谈论他。 后来Intel公司也有EPROM的技术, 从PAL和GAL的发明也都和这些能拉上些关系。这些技术之所以诞生就是要替换这个熔丝技术。 毋庸置疑的是,今天的以SRAM为基本的配置技术的FPGA成为了市场的领导。这个是市场选择。
EPROM技术时代的PLD,例如Altera的MAX5000,但是这个东西的封装太贵, 这和以前你用的2716有些类似,都是用个石英玻璃封装的, 擦除也不方便, 另外, 随着规模的递增, 有时候路由线可能影响透明照度,所以规模大的器件,擦除的时间还长。
SRAM是有很多优点, 但是他不保密, 不过今天表示开云棋牌官网在线客服工艺的先进,总是和SRAM的制造会扯上关系,而基于其他工艺的Flash的FPGA,在工艺制造上远不如SRAM的更新速度,基本上可以差上一到两个工艺节点。 或许还有人认为, Flash的功耗小, 不要单独看这些, 这主要表现的是他的静态功耗上,另外,为这些Flash的FPGA的编程, 也需要在芯片上放上很多编程Flash的单元, 他不能在成本上带来什么好处。
如果你在google上去搜索一些关于PLD的专利, 还有很多你今天都已经不存在的公司的名字。

Xilinx , FPGA的发明者

Xilinx实际上成立的日期,比altera还晚了一年。但是他走的道路,从开始就注定了有今天的成就。在1996-1998,pld的高端市场,也就是FPGA市场,都是Xilinx把持,主要是xc3000/4000 ,当然Xilinx开创了一个新的结构,不过这种结构还是能够找到一些共同点,也是先组合,后时序。不过很重要的闪亮点是:
细颗粒查找表结构,丰富的寄存器资源,以及分段式路由布线结构,电路上电加载。当然如果这个也算是的话,那就是,他的内部甚至直接集成了三态门。这个特点是那个时代Xilinx拥趸攻击Altera,Lattice的重要工具。甚至有人说,没有这个不能实现某些电路设计的障碍。当然了,Altera, Lattice的pld也是具有三态门,不过是在输入输出管脚上。的确是不如Xilinx的来的强大和直接。有的人问了,这种结构有何好处。
1--电路的规模得到空前的提高。
2--适合做加加减减的,counter,comparter密集的设计。
3--无限制的更新电路。
在那个时代,衡量一个PLD很重要的指标,就是比谁的规模更大。从这个角度来看。Xilinx无疑走到了最前面。当然,也有人说,这样的设计不可靠。这样的设计指标难以预测。还有地说这样的设计无法保密。但是市场的成功,应用需求的推动,证明这些都是杂音。

我们可以从当时xc3000 的选型指南上看到。最大规模的产品,也就是今天xilinx 最小的xc3s50a 规模相当的东西。可是这个和当时PLD 流行的规模,实在是一个飞跃。

转自Wisdom Zhang 的博客

http://blog.sina.com.cn/wisdomzhang1972

Baidu
map