工程师看FPGA的前世今生1

来源:互联网 发布:如何加入淘宝全球购 编辑:程序博客网 时间:2024/05/16 15:12

Altera Xilinx Lattice CPLD FPGA 细颗粒查找表结构 分段式路由布线结构 Altera FPGA粗颗粒结构,嵌入式存储器,长联线结构.

在 这个论坛里,看到多数朋友在讨论技术问题。但是关乎产品结构的帖子相对来说很少。实际上,现在很多产品,包括FPGA产品在内,同质化的问题也同样存在。 只是一个此消彼长的过程。但是它们产品结构的不同差异,对我们的设计还是有很多大影响。我很想就这个问题来个开篇。希望大家多拍砖

我们为什么应该对FPGA感兴趣?

首 先FPGA是数字电路,尽管目前有加入所谓的ADC的功能的FPGA,但是,从主流上说, FPGA就是数字电路。 当然早期不同的公司都赋予了很多花里胡哨的名字。 PLD,EPLD,CPLD,SPLD,其实在原理上都大同小异。今天的FPGA主要有下列市场, 正是在这些市场的竞争和争夺中,由群雄争霸逐渐形成今天的三国鼎立的局面。

 

 

ASIC市场
现在大家可以看到很多FPGA的设计正取代更多的ASIC
DSP市场
目前主要是高端的DSP应用,今天内嵌DSP元素的FPGA,像Xilinx的Spartan3ADSP, CycloneIII,CycloneII,Stratix和Vertex等, 都可以比最快的DSP再快上个500到几千倍
嵌入式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也专注一些细分市场。

[ 本帖最后由 wisdomz 于 2008-9-25 14:29 编辑 ]

为什么要这样的结构-先组合,后时序多个时钟输入
随着科技的进步,有很多人已经忘记了很多细节,当然,我们也要遵循一个原则。难事做易,大事做细!就像朱熹说的--“问渠哪得清如许,为有源头活水来“,如果你不知道原理,碰到重要的问题,或者是设计的时候,即使成功,也是不知不觉成功,同样呢,也是不知不觉失败。

拉 回话题,当你设计一个扫描电路的时候,例如,你可以采用一个时钟,输入一个计数器,然后计数器的输出,再驱动一个译码器,这样你的电路就出来了。当然事情 完成了一半。功能实现了,但是,有没有更好的办法。后者换句话说。有没有适合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的专利, 还有很多你今天都已经不存在的公司的名字。

[ 本帖最后由 wisdomz 于 2008-10-19 22:12 编辑 ]

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流行的规模,实在是一个飞跃。

[ 本帖最后由 wisdomz 于 2008-9-22 20:14 编辑 ]

Xilinx FPGA的架构。
Xilinx的成功,激励了Altera的新产品的推出。同时也有了革命性的突破。世界就是这么奇怪。中国古语。塞翁失马,焉知非福。实际上,如下所言,这款产品因该8282,具有282个逻辑单元的。但是在中国基本上只是在1995年有个别公司使用。
1992

FLEX® 8000 FPGA    Altera的第一款现场可编程门阵列(FPGA)

我本人经历我们开始在1997年开始大规模推广Flex10K, 同年5月,位于西安的邮电部4所,是第一个采用EPF10K50的用户,当时电子杂志的广告,也有表明,Altera最先推出最大的FPGA.

1996    FLEX 10K® FPGA    带有集成锁相环(PLL)的FPGA
1995    FLEX 10K FPGA    带有嵌入式模块RAM的FPGA

实际上,这个时间就是Lattice噩梦的开始,由于设计规模的迅速攀升,规模已经是决定一个产品的关键因素。但是Lattice一直没有代表作。市场份额已经开始逐步被Xilinx,Altera蚕食。Altera的结构到底是什么革新呢?

[ 本帖最后由 wisdomz 于 2008-9-22 21:46 编辑 ]

Altera FPGA粗颗粒结构,嵌入式存储器,长联线结构.
Flex10K, 他的推出,已经表明,altera的思维已经非常清晰,大规模的fpga将会是将来的王道!而且,高速的嵌入式块RAM是一个开创新的思维。当 时,Xilinx凭借分布式RAM以及内置三态的结构,的确大有横扫千军的架势。但是Flex10K的出现,有效提升了Altera的FPGA产品的竞争 力。在RAM需求应用不断上升的市场中。Altera迎来了市场的春天。

1--采用多选一,或者一对多的MUX结构,Altera推出应用指南。直到用户有效利用这种方式,实现了三态门的功能。
2--ESB的memory结构,是构建FIFO, DPRAM,大型查找表,都非常方便,
3--布线资源相对来说,以长联线资源为主。编译速度快。

Xilinx的分布式RAM尽管很灵活,但是随着RAM容量的增加,访问的速度也是递减。同时也要消耗大量的逻辑资源。这个时候,应该说Xilinx和Altera的产品已经是势均力敌。因为中国是新兴的市场。这一点表现得很明显.

规模制胜的产物

 

 

 

世界是运动的,粗颗粒,也是好结构!

这里又回到了我们的主题,产品的内在结构。先说细颗粒结构。当时,Xilinx的3000是以CLB为基本机构。

 

 

 

实际上,这个输入的个数是很有讲究的。当时,也有一种激烈的争论,就是5输入的好,还是4输入的好。在实际应用中,应该说,最小的逻辑单元是这样的规模是合理的。但是要注意一点。Xilinx和Lattice后面推出的fpga一样,两个寄存器是具有同一个时钟输入的。

 

 

 

粗颗粒结构,Altera还是依托自己以前在PLD的经验的积累,他的fpga有很多他的pld产品的血统。世界是基于以权制利的。因为这个时候如果已经有了Wintel的名字一样。 数字电路以及CPU的发展,都和8以及8的倍数有关系。因此。这种大颗粒的结构确保:
1--8个逻辑单元LE为一组LAB。
2--每个LAB内部有独立的布线资源。确保可以实现8bit adder, shift reg, 8bit counter.
3--ESB,实现了存储器的资源和速度同时提高的可能。
4--布局布线算法比细颗粒机构的算法简单。
5--采用了非对称的结构,实现速度需求和控制需求的折衷。

Altera FPGA的速度没有Xilinx的速度快,错!
当然这种非对称的结构,你必须有一定的了解,才可以更好的利用。也就是要遵循:

大的数据吞吐通道应该采用横向放置规划!
控制通路采用纵向放置规划!

Altera 至此以后, 一直沿袭这种结构规划。因此,如果你想有效利用好Altera的产品,就应该遵守这个规则。昨天说到这里今天继续开始。又有很多时候没有提 Lattice,在1998年的时候, Lattice和Altera同时都有成为PLD霸主地位的意图。什么可以证明呢,那就是谁最先推出可以ISP的宏单元超过1000个的PLD。 当然在这个游戏过程中, Altera有一些变化,就是

[ 本帖最后由 wisdomz 于 2008-9-23 18:48 编辑 ]

Actel,现在发展的还不错, 特别是低功耗应用中
上面有网友说,缺乏Actel的了解, 这次, 我特地找到我当年用的Actel数据手册。 还又翻了一下。 照了张照片给大家。远处的背影高耸着的,就是ZTE的研发大楼。 这是1996年的Actel的数据手册。

 

 

 

当时Actel就说设计者是一个艺术家, Actel提供颜料和画笔,设计者就能画出各种艺术品了。

 

 

 

Actel进入中国比较有规模的时间是1996年开始的。 这个也是一个标志。


Cyclone,Stratix,Vertex

Cyclone 的出现和FPGA的市场定位和产品定位

好的技术是需要, 但是有效的市场定位和销售策略也要跟上。 在2002年左右, 为了更好服务各种不同市场的需要。 而且当时的DSP市场仍然不太明朗, 有的观望, 也有大力投入。 而且也有两种不同的策略。

一种是同一个器件平台, 但是不同的应用区隔,例如Vertex和Spartan,有一段时间, 他们可能是同一个产品平台,只是Spartan的东西就是Vertex屏蔽了一部分高级的性能, 对于不使用的地方, 也不需要检测, 同时依靠同一个平台来维持成本优势。

另外一种,就是Altera的策略, 完全依赖客人市场的需要, 简化不需要的特性, 推出简化的结构, 面向主要的逻辑集成和LVDS信号链集成 。推出Cyclone。 市场反响非常强力, 是Altera有史以来, 市场响应最快的产品。

[ 本帖最后由 wisdomz 于 2008-9-28 17:36 编辑 ]

实际上, 有很多讲述如何避免毛刺,或者是提高系统稳定性, 以及全同步的时钟设计概念。 都是采用了类似的含义。

1--毛刺消除

有后面的DFF以高的频率,进行打一次的动作, 毛刺可以被消除

2--系统的模块间如果有DFF进行输出, 或者输入的隔离, 那么你可以很好加入探针, 通常优化综合是不会将DFF给干掉的。

3--全同步,就是现在的时序分析工具是基于全同步的, 如果有两个不同的时钟, 你就要加入这两个时钟间的相对关系。 来进行约束。

最后要说, 你已经花钱买了这个FPGA上的整个资源。 就要为了设计的稳定性, 应该把这些为了使你设计稳定而增加的资源给利用了!说的是不是太绕了呢?

[ 本帖最后由 wisdomz 于 2008-9-29 21:13 编辑 ]

就是先设计时序电路,由时序电路输出再经过组合逻辑得到最终输出,不知楼主所说“先组合后时序”与我惯用的方式的根本区别在哪里?


1--实现一个8路输出的扫描电路, 每个之间都是一个有一定相位差的方波。

如果用先计数器, 然后再用译码, 这个是采用线性思维, what和when的思考模式, 非常合乎常情。 但是, 当速度高的时候, 每个输出之间由于译码长度传输不同, 就导致毛刺多。

而且, 你的逻辑资源也会是, 组合+ 时序, (计数器实现) , 再加上组合(后面译码), 最后, 你的那个时序资源就是DFF, 就浪费了。 要不就是再次用高速clk打一次,

要不就是先组合 ,后时序, 用扫描状态机, 或者就是移位寄存器实现。这个就是系统思维模式, 是How和why的思考方式。

你认为哪一种更好呢?相信你已经找到答案了。

[ 本帖最后由 wisdomz 于 2008-10-1 18:05 编辑 ]

FPGA密度说明了什么问题?实际上就是市场规律
今天大家可能说, 我用某公司的资源6K的FPGA很好, 我不需要什么A,X的大规模的这些资源的。

真的没有关系吗? 我们找个答案。

1--市场上的摩尔定理。 (这个是转抄的)


英 特尔公司的创始人戈登•摩尔(Gordon Moore)博士提出,在至少十年内,集成电路的集成度会每两年翻一番。后来,大家把这个周期缩短到十八个月。现在,每十八个月,计算机等 IT 产品的性能会翻一番;或者说相同性能的计算机等 IT 产品,每十八个月价钱会降一半。


Altera,Xilinx公司, 已经连续6年,营业收入都在1.4-1.8B USD这个附近徘徊。 可能有人说, 这么多年他们这两个号称领头羊的家伙, 怎么就一直在那里没有太多前进。

这 个实际就是这个定理在作用, 因为他们不断推出更大规模的东西, 然后不断降低售价。 这个就是他们每年出货量都有25%,甚至更大的增加,但是营收增加不大, 利润空间一直比较稳定。这和我使用那些不是主流的产品有什么关系呢。 如果其他供应商在这个赌局中不能跟上这个产业链的更新速度,那么。

(转抄)Google(谷歌)的 CEO 埃里克•施密特在一次采访中指出,如果你反过来看摩尔定理,一个 IT 公司如果今天和十八个月前卖掉同样多的、同样的产品,它的营业额就要降一半。IT 界把它称为反摩尔定理。反摩尔定理对于所有的 IT 公司来讲,都是非常可悲的


你可以观察, L公司在2000年以后的竞争中从800MUSD已经到2008掉到了200多M,这个也有这个定理的一定作用, 同时说明, 如果你不能在规模上不断加大, 那么就会被 淘汰。

也许你以后想买他们的产品的时候, 他们也提供不了了。 当然好在目前Xilinx也还有CPLD,否则, Altera就成了独家CPLD的供应商了。

[ 本帖最后由 wisdomz 于 2008-10-22 22:32 编辑 ]

目前CPLD主要有:
I/O Expander
protocal bridge
glue logic
config or power sequence management.

FPGA:

基本上已经可以构建很多SOPC的应用了,因为目前FPGA的发展也是

1--向32nm工艺前进
2--内置超过120万以上的LE (按照每个产品比前一代扩大一倍来算)
3--内置更多,而且不同容量的块RAM,实现更好的包通讯和DSP的数据缓冲
4--可以很容易放置软核CPU,来实现必要的调试和管理功能
5--具有100G以上的高速数据通路
6--可以接口目前先进的DDR3,DDR2等SDRAM产品。
7--有更多的乘法器支援,以及更好的内置PLL和更多的时钟网络
8--集成某些常用的组件IP,PCIExpress,USB,以太网接口等。 不排除也会集成ARM9,ARM11,MIPS

因此未来的FPGA

实际上,就是复杂点。