Altera至此以后,一直沿袭这种结构规划.因此,如果你想有效利用好Altera的产品,就应该遵守这个规则.但是要说明的,真正能体现性能的东西,也许就是你意识不到的一种小东西,就是简单的就是最好的.Altera正是凭借这个简单而高效的布局结构实现了今天的王道!昨天说到这里今天继续开始. 又有很多时候没有提Lattice,在1998年的时候,Lattice和Altera同时都有成为PLD霸主地位的意图.什么可以证明呢,那就是谁最先推出可以ISP的宏单元超过1000个的PLD. 当然在这个游戏过程中,Altera有一些变化,他有效的将他的Flex8000的布局结构和他的MAX7000进行结合. 从而实现了在PLD规模扩大的同时可以实现:
Altera在推出他的最大的9560,具有560个宏单元的PLD,登上了无可争议的PLD冠军奖台.
当然有的人要说,Lattice有推出1000个左右,怎么不提呢. 正是因为这点,导致Lattice步入歧途. 实际上,FPGA世界的游戏规则已经改变了.
MAX9000的成功得益于以下的细微结构.这个时候Altera又一次将自己的颗粒度进行了扩容. 有16个宏聚集在一起,在实现更多位的加法,控制,超前进位,大的多选一的应用中,可以将这些模块一次性放入一个LAB,同时在LAB内完成路由. 现在已经露出一种迹象. 大的规模要有,但是速度的需求已经开始了. 所以在FPGA,CPLD的应用中,又有了新的裁判规则,你不仅要够大,还有够快
这个时候的异步设计还是非常的多,而且板子上芯片间信号的互联也多起来了,能够有效缩短Tsu已经成为一个重要的话题. 实际上,就是在IOC上要有DFF,来进行快速锁存,同时也为所有进入CPLD的总线信号进行第一次整理. 怎么实现很多的异步设计,看了下面,你就明白了. 第1点,就可以用所有信号的函数输出作为clk,第2点,有效的将没有用完的资源很好借用给其他的宏,来用对称的结构实现非对称的应用!用简单的结构,应变不断的变化.
纵观当时其他的PLD,在结构上就落后很多了. 你想,让你和姚明来争篮板球,如果你没有人家的身材,赢他恐怕也是嘴上的功夫了.
这个时代的强者就是---谁有最多的逻辑资源,或者memory,谁就是老大.
上面说到Lattice已经在极力扩大自己的身材,但是他不是靠结构上的改变,而是Lattice收购了Vantis,也就是AMD的一个做PLD的小部门. 当然在当时,AMD的Mach就这样并入了Lattice的家族. 新的问题就出现了. 好比我们现在有人用什么大灵通,小灵通,GSM,CDMA,是有百花齐放的感觉,但是Lattice就像变成了解放前的蒋介石,没有办法很好的用一套工具来统一使用不同的器件. 而且本身Lattice自己当时的工具也是3个独立的工具拼凑在一起的. 那个年代,用过Tango,后者Orcad的人都知道,他们的图形输入是第一名的,但是和MaxplusII比起来,自动识别对象链接,以及和Office 95类似的快捷键,用过Maxplusii的人,让他们转用Viewlogic等workoffice等,简直简直就是抹他们的脖子. 还有当时Lattice的销售团队,总是宣扬他们是最好的PLD,有些人竟然有 "我认为64KROM,就可以应付未来所有的软件需求" 这样的论调,认为PLD必将击败FPGA,事实上,市场的残酷,告诉他们那是个很冷的冬天. 于是他们又一次在2000年左右,如同水淹七军一样的结局,又急忙掉转船头,收购了ORCA,可惜了ORCA是出自Lucent的一条好汉,由于没有良好的软件支撑,使得每个工程师必须像哪吒一样. 对了,怎么会像哪吒? 因为你必须有三头六臂,如果你公司有些产品需要从32个宏单元到2000个LE的FPGA的应用,你就必须学习3种工具来适应它. 你想想,你是不是一定要像哪吒呢!
再次谈结构以及方法学!
这里开始讲些看来与我们主题有点不搭界的东西.
1--两个人相遇,只握1次手
2--三个人相遇,每人都握一次,握3次手
3--4个呢?就是2的结果加3次,6次手
4--5个呢? 10次手.
5--16个呢,.......天,不少于...
PLD就是这样的产物,当逻辑……你会发现,路由的面积都超过了有效的逻辑面积. 而且,越大越糟糕. 可以下载这个简单的PPT来发现一些小问题!
advantagestruc.zip
什么样的数目比较好,对于PLD的宏单元数目
实践是检验真理的唯一标准. 有人说了,256个是最好的结构,为什么呢,不然怎么那么多厂商都是在这个范围呢. 实际上,他是由经济规律决定的,就是当时用256个的宏单元结构的芯片的面积,和他们卖出的价钱,比较符合当时这些上市公司的利润要求,所以.....就以这个最流行了.
但是Altera进行了很好的变通. 中国有句话叫"玄之又玄,妙之又妙",什么是玄? 玄就是变通的意思,也是变得意思. 实际上万事万物都是相通的. 那Altera就像我们的学校一样,每个年级分不同楼层,每个楼层分不同班级,每个班级上不同的课. 但是用行列块的方式,达到既有规模,也有位置相关性. 而且路由的面积也不会大到赚不到钱. 实际上你自己观察,近10年 ,Altera的FPGA的主要框架是没有变化的!
Xilinx 的FPGA结构,实际上,有一个5200系列,很向Altera的Flex6000,但是没有多久这个东西就不见了. 总之,Xilinx的结构属于称为 "孤岛式"结构,就是CLB在中间,路由围着这个孤岛. 在一定的密度的时候 ,这种结构也还是不错的,当然有一个很重要的结构就是,他是全对称的. 就是Xilinx的芯片的逻辑上资源的密集度是上小左右对称的. 这个有好处,但是也有坏处. Altera的呢,是横向资源丰富,纵向资源相对较少,但是,在局部的横向上,又可以进行级联LE,DSP,Carry chain 等等. 好了,给大家举个简单的例子.
孤岛式的结构
Altera 的类似的结构,但是颗粒度大,从这张图,应该可以看出altera在横向资源是很丰富的. 就是同一行的资源远多于同一列的. 输入输出就更是了. 当然,这个和管脚的封装脚的出位不是绝对一一对应的.
Stratix的出现
在2001年,Altera推出了他们最伟大的产品,Stratix. 当时FPGA的竞争规则又发生了改变
但是上面这三点,都不是决定性的. 这个时候,数据通信对背板走线和背板总线要求已经很高了. 实际上FPGA也摇身变为系统级芯片了.
你不仅要有大的逻辑规模,合理的memory尺寸,相对丰富的时钟资源,还有就是要有高速的Serdes,缺少一项,你都会在系统级的应用中只能是亚军!
刚才说了系统级的应用,已经成了FPGA最残酷的竞争市场. 那么PLD呢,怎么样了,实际上自然总是物竞天择!PLD已经变为这样的几种应用了
就像一个国家的海军一样,PLD已经成为一些简单的驱逐舰,驰骋大洋的,可以跨海作战的,绝对不是这样的产品可以涵盖的. 所以,你今天喝可乐的时候,不会有太多的选择. 偶尔的一些牌子如同过眼烟云,很快就弹出你的视线了.
是的,十年前我的很多朋友,有在Quicklogic,有在Cypress,现在还有一些在不断出产品的公司,当然,只能是剑走偏锋. 做些细分市场还是可以继续的.但是三国鼎立的形式已经是不可撼动的事实了.
北京和深圳的差别?
你到过我们的首都北京吗?到过我们的特区深圳吗?这样打比喻是因为我在深圳和北京都旅游或者工作过.实际上我也只是想借用这两个城市的布局来做个比喻.
北京是比较对称的城市,有东直门,西直门. 有东单,西单等等. 总之,他的布局就像Xilinx,无数个胡同就是像Xilinx围绕在CLB的路由线. 这些资源在Xilinx的数据手册中有:
但是这些胡同间的联线并不是十分充足. 特别是到了规模很大的时候.Altera的呢?在深圳的人,如果你不认路,很简单,只要你走到"深南大道,滨河大道,北环大道"上的任意一条,你就可以再从这些大道到你要去的地方. 但是前提是 ,这3条大道的宽度要够. 提示一点,这三条大道也是东西走向比较平行的. 而且整个深圳也是一个东西走向的城市,地下再有一条地铁,在同样资源的情况下,布通率,和平均车速是非常好的. 而北京的地铁,是环形的.资源上不如深圳的利用率高,这里无意于评价城市规划和道路设计. 只是比喻.
Altera的FPGA就是如同深圳的道路,他可以让你从列上很自如的转到宽阔的行上,然后再到达你的目的地. 所以,可以告诉你一个经验.
另外,这个地方也有颗粒度大带来的好处. 所以,有些原来看似不精细的地方,却在规则改变后,就变得反而是犀利无比.
运筹学也是很重要的!
经常有这样的情况,大家选择FPGA的时候,就开始翻看每种FPGA的选型手册,然后对资源表. 有的甚至直接说:我这个是10万门的. 你的那个是6万门的,实际上,这些都不是很正确的评估. 如同有人说,我家的房子4室两厅,你家的房子3室1厅双卫生间. 到底哪个更大呢? 到底哪个更节能呢. 厨房热水器之间离得很远又是问题.
所以说,学会正确的评价资源是很重要的. 这个时候还要参照他的结构!!板式的,还是砖混的!!!
可能你还听说过一个使用面积的问题. 实际上,有的房子看起来大,走道,不规则的布局,导致很多的地方都不能用!下面看个例子:
左边的Hops代表跨一步的意思,就是路由转换一次的意思. 这个表什么意思呢. 就是说在S3的路由过程中,每个路由在第一次,就可以覆盖850LEs中的一个,V5是132. 如果你的逻辑,经过4跨,同样的路径覆盖的区域A的是X的2倍. 代表什么呢?
当然还有一些好事者,例如 (http://www.opencores.org) 有很多公开的opencore,大家可以将它们同时尝试放在A,X,L,看谁放的多,放的快,系统延迟更小. 这方便数据就不多说了,可能都成为一门学科都不一定,因为不同的比对都有benchmark的不同标准. 最终我们应该很清楚的看到.
结构真的是很重要,我们能干,也要看是否站在巨人...
不过呢,很多时候,我们的朋友基本上都说: 结构和我无关,我要学好VHDL,我要....codingstyle. 这个设计属于系统工程!
FPGA的真正命门和Know How实际上,能做FPGA的公司太多了,但是能将我们的设计通过算法成功放到这个芯片上,而且算出正确的时间和你的仿真要求的. 就不多了,说的难听点. 有些领域甚至是没有亚军的竞争!选择小规模PLD,那些,不是太重要的问题. 本身就不够养活一票人的产品.
Cyclone III 与 Spartan3 的对决--苹果对苹果?
目前,很多人都基本上对于新的中档设计都会集中在这个系列的竞争中,换言之,在中国目前以成本为导向的第一要求下,实际上中小公司的产品选用80%是集中在这里.
经常有人说,为什么你们的LEs数目相同,价格很不同. 做些解释,一家之言.
有一点要说,那些所谓我的是多少系统门的比较方式,是典型的大忽悠模式
比较产品有很多benchmark. 这里列举一些. 不全的地方,可以大家补充.
所以不是简单说我的苹果和你的苹果一样. S3只有销价处理才是真正的出路.
如果你知道了结构,你会发现什么呢?
实际上,Altera一直在横向布线资源上浓墨重彩,因此,在Cyclone一代系列的时候,如果你的设计模块放在一个比较长的区域就更加容易跑出好性能.
如: 5行,5列的一个资源放置,不如在一个4行7列的区域中更好发挥性能.
到了CycloneII,可能就是接近1:1.2的样子.
Statix,基本上接近正方形.
其他的你可能需要实验一下. 毕竟这个是动手的科学. 而且,每家FPGA厂商,在关键布线资源方面,都是秘而不宣. 这个也是为什么Synplicity要另嫁豪门的原因!因为自己没有办法得到这些资源. 而综合技术已经被FPGA厂商步步紧逼了!
Cyclone III的巧合.
Cyclone III的诞生,可以说也是有划时代意义的.但是赢得偶然,其中已有些必然.下面来说说这个东西.
前面有人说过Xilinx的V5不错,但是如果说V5和StatixIII带有Serdes的产品同时间面世的话. 作为设计者,可能问题就来了. 太多选择就是难以选择
StratixIII 速度快,布线好,但是没有Serdes
V5速度布线都不错,出来的早,快人一步也是卖点.
但是呢?这两个产品都很贵.
由于Xilinx很重视高端用户,因此他们也认为Spartan3可以解决目前很多需要,这个也对,因此他们计划在45nm左右推出Spartan的升级产品.
Cyclone III,正好赶上高端DSP处理市场的繁荣,以前Xilinx的website上面也有这方面的迹象. 号称Xilinx也是一个DSP的公司. 这个也要得益于其他生态链软件系统的发展,Matlab的simulink,
另外,目前的有线系统中对Memory的需求也非常高,作为有效的缓冲也需要更多的空间.
举例来说,一个Video的应用. 需要一些滤波或者其他的应用,那需要的FIR的Tap数目实际上是可大可小的. 但是以前他们认为逻辑资源的比例太多于DSP的建立资源. 导致很多设计用30万个LE的资源的FPGA,实际上,Logic资源利用在30%左右,而Memory仍旧显得很局促. 还有一个就是用DDR2的设计也有增多的趋势,
还有就是中型设计的比重已经上升很快,就是在3年前,大家很多集中在6000个LE左右的资源. 而紧接着的趋势是200个500个左右的资源和10000个LE资源的迅速两级化. 另外一个增长就是50000个LE左右的区间,而这部分长期以来都是Stratix和v4,v5的传统空间. 可是现在由于memory,mulitiplier的增加,导致系统性能也可以用CycloneIII实现资源换取速度和效率的方案. 因此CycloneIII的资源也能利用低价格来和高端FPGA分一杯羹.
但是CycloneIII尽管有价格优势,逻辑和memory的优势,可是在Serdes的应用上,还是一片空白. 这也是大家觉得他的缺憾所在.
总之,CycloneIII和Spartan3 DSPA系列的推广,已经有一个暗示的信号,就是
以多块,大容量memory,Serdes可选的特点将成为新的中级FPGA市场的标杆了.
为什么Cyclone,或者说Altera的粗颗粒有一定的好处?
大家都知道,Altera的结构可以说看起来是大开大合,实际上是粗中有细.
以前一个LAB有8个LE,大家都可以理解,后来又发展成有10个LE,有16个LEs
如果你有一个计数器,假定在Cyclone里和Spartan里面跑,Cyclone和Spartan在做8位计数器方面应该是不相上下,但是,当在16位计数器还要跑同样的速度,而且保证路由资源最简单的时候,Cyclone的优势,或者说A家的优势就来了.
大家都知道,计数器就是进位翻转的传递链路是他性能的关键路径,换句话说,16位的计数器,就是两个8位计数器的级联,唯一区别的复杂度就是8位的传递时间如果是8x,那16位的就是16x了. 用另外一种方式来思考:
8位的计数器,在到达FE这个数字的时候,就用一个DFF进行一次隔离,提前一个时钟节拍将进位准备好,这样就将一个16位的计数器的复杂度降低到了8位一个样子. 可是原本Cyclone的LAB就有10个LE,因此为了防止毛刺的问题以及刚才需要一个插入的DFF,就刚好放在一个LAB里面,LAB里面的路由是最快的,而且编译基本不太花时间. 同时也为设计流水线的译码技术,提供两级的DFF延迟,但是这些全部做到了放在一个LAB.
大家回顾一下我们的设计,不就是计数器,加多选一,什么FSM就是那几个玩意来回的组合. 然后中间加流水,再平衡流水寄存器之间的路由. 没有新的发明,只有新的组合. 但是Altera这样的结构就相对来说..哈哈又要吹一下牛皮了.
过去10年FPGA产业的发展和FPGA厂商的挑战?
过去10年,FPGA产业发生了些重要变化,简要3点:
===============================
文章评论(0条评论)
登录后参与讨论