[Actel FPGA] FPGA三国志--不可不看的故事

[复制链接]
3144|11
 楼主| 蹦蹦车 发表于 2009-3-2 13:50 | 显示全部楼层 |阅读模式
 楼主| 蹦蹦车 发表于 2009-3-2 13:52 | 显示全部楼层

2

第二篇&nbsp;结构篇<br /><br />Altera&nbsp;FPGA的速度没有Xilinx的速度快,错!当然这种非对称的结构,你必须有一定的了解,才可以更好的利用。也就是要遵循:<br /><br />大的数据吞吐通道应该采用横向放置规划!<br />控制通路采用纵向放置规划!<br /><br />Altera至此以后,&nbsp;一直沿袭这种结构规划。因此,如果你想有效利用好Altera的产品,就应该遵守这个规则。但是要说明的,&nbsp;真正能体现性能的东西,&nbsp;也许就是你意识不到的一种小东西,&nbsp;就是简单的就是最好的。Altera正是凭借这个简单而高效的布局结构实现了今天的王道!昨天说到这里今天继续开始。&nbsp;又有很多时候没有提Lattice,在1998年的时候,&nbsp;Lattice和Altera同时都有成为PLD霸主地位的意图。什么可以证明呢,&nbsp;那就是谁最先推出可以ISP的宏单元超过1000个的PLD。&nbsp;当然在这个游戏过程中,&nbsp;Altera有一些变化,他有效的将他的Flex8000的布局结构和他的MAX7000进行结合。&nbsp;从而实现了在PLD规模扩大的同时可以实现<br /><br />1--规模的迅速扩大,&nbsp;可以比肩Xilinx的FPGA<br />2--局部的快速布线,和ISP,使其在获得规模优势的同时,&nbsp;保持布线延迟的稳定<br />3--沿用过去MAX7000的适配结构和FPGA的路由,&nbsp;实现两者有效的统一。&nbsp;<br /><br />Altera在推出他的最大的9560,具有560个宏单元的PLD,登上了无可争议的PLD冠军奖台。&nbsp;<br /><br /><br /><br /><br /><br /><br /><br />当然有的人要说,&nbsp;Lattice有推出1000个左右,&nbsp;怎么不提呢。&nbsp;正是因为这点,&nbsp;导致Lattice步入歧途。&nbsp;实际上,FPGA世界的游戏规则已经改变了。<br /><br />MAX9000的成功得益于以下的细微结构。这个时候Altera又一次将自己的颗粒度进行了扩容。&nbsp;有16个宏聚集在一起,&nbsp;在实现更多位的加法,&nbsp;控制,&nbsp;超前进位,大的多选一的应用中,&nbsp;可以将这些模块一次性放入一个LAB,同时在LAB内完成路由。&nbsp;现在已经露出一种迹象。&nbsp;大的规模要有,&nbsp;但是速度的需求已经开始了。&nbsp;所以在FPGA,CPLD的应用中,又有了新的裁判规则,&nbsp;你不仅要够大,&nbsp;还有够快<br />&nbsp;<br /><br /><br /><br /><br /><br /><br />这个时候的异步设计还是非常的多,&nbsp;而且板子上芯片间信号的互联也多起来了,&nbsp;能够有效缩短Tsu已经成为一个重要的话题。&nbsp;实际上,就是在IOC上要有DFF,来进行快速锁存,&nbsp;同时也为所有进入CPLD的总线信号进行第一次整理。&nbsp;怎么实现很多的异步设计,&nbsp;看了下面,你就明白了。&nbsp;第1点,就可以用所有信号的函数输出作为clk,第2点,&nbsp;有效的将没有用完的资源很好借用给其他的宏,&nbsp;来用对称的结构实现非对称的应用!用简单的结构,应变不断的变化。<br />&nbsp;<br /><br /><br /><br /><br /><br />纵观当时其他的PLD,在结构上就落后很多了。&nbsp;你想,&nbsp;让你和姚明来争篮板球,&nbsp;如果你没有人家的身材,赢他恐怕也是嘴上的功夫了。<br /><br />
 楼主| 蹦蹦车 发表于 2009-3-2 13:53 | 显示全部楼层

3

上面说到Lattice已经在极力扩大自己的身材,&nbsp;但是他不是靠结构上的改变,&nbsp;而是Lattice收购了Vantis,也就是AMD的一个做PLD的小部门。&nbsp;当然在当时,&nbsp;AMD的Mach就这样并入了Lattice的家族。&nbsp;新的问题就出现了。&nbsp;好比我们现在有人用什么大灵通,&nbsp;小灵通,&nbsp;GSM,CDMA,是有百花齐放的感觉,&nbsp;但是Lattice就像变成了解放前的蒋介石,&nbsp;没有办法很好的用一套工具来统一使用不同的器件。&nbsp;而且本身Lattice自己当时的工具也是3个独立的工具拼凑在一起的。&nbsp;那个年代,&nbsp;用过Tango,后者Orcad的人都知道,&nbsp;他们的图形输入是第一名的,&nbsp;但是和MaxplusII比起来,自动识别对象链接,&nbsp;以及和Office&nbsp;95类似的快捷键,&nbsp;用过Maxplusii的人,&nbsp;让他们转用Viewlogic等workoffice等,&nbsp;简直简直就是抹他们的脖子。&nbsp;还有当时Lattice的销售团队,总是宣扬他们是最好的PLD,&nbsp;有些人竟然有&nbsp;“我认为64KROM,就可以应付未来所有的软件需求”&nbsp;这样的论调,&nbsp;认为PLD必将击败FPGA,&nbsp;事实上,&nbsp;市场的残酷,告诉他们那是个很冷的冬天。&nbsp;于是他们又一次在2000年左右,&nbsp;如同水淹七军一样的结局,&nbsp;又急忙掉转船头,&nbsp;收购了ORCA,可惜了ORCA是出自Lucent的一条好汉,&nbsp;由于没有良好的软件支撑,&nbsp;使得每个工程师必须像哪吒一样。&nbsp;对了,&nbsp;怎么会像哪吒?&nbsp;因为你必须有三头六臂,&nbsp;如果你公司有些产品需要从32个宏单元到2000个LE的FPGA的应用,&nbsp;你就必须学习3种工具来适应它。&nbsp;你想想,&nbsp;你是不是一定要像哪吒呢!<br /><br />这里开始讲些看来与我们主题有点不搭界的东西。&nbsp;<br /><br />1--两个人相遇,只握1次手<br />2--三个人相遇,每人都握一次,&nbsp;握3次手<br />3--4个呢?就是2的结果加3次,&nbsp;6次手<br />4--5个呢?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10次手。&nbsp;<br />5--16个呢,&nbsp;。。。。。。。天,&nbsp;不少于。。。<br /><br />PLD就是这样的产物,&nbsp;当逻辑暮甑ピ
 楼主| 蹦蹦车 发表于 2009-3-2 13:54 | 显示全部楼层

4

在2001年,&nbsp;Altera推出了他们最伟大的产品,&nbsp;Stratix。&nbsp;当时FPGA的竞争规则又发生了改变<br /><br /><br />1---Altera用TRAM的形式和Xilinx的分布式RAM和blockRAM竞争<br />2---Altera的PLL性能超越对手<br />3---布通率,&nbsp;利用率,表现突出。&nbsp;<br /><br />但是上面这三点,&nbsp;都不是决定性的。&nbsp;这个时候,&nbsp;数据通信对背板走线和背板总线要求已经很高了。&nbsp;实际上FPGA也摇身变为系统级芯片了。&nbsp;<br /><br />你不仅要有大的逻辑规模,&nbsp;合理的memory尺寸,&nbsp;相对丰富的时钟资源,&nbsp;还有就是要有高速的Serdes,缺少一项,你都会在系统级的应用中只能是亚军!<br /><br />刚才说了系统级的应用,已经成了FPGA最残酷的竞争市场。&nbsp;那么PLD呢,&nbsp;怎么样了,&nbsp;实际上自然总是物竞天择!PLD已经变为这样的几种应用了<br /><br />1--输入输出的扩展!<br />2--简单总线或者接口的协议转换<br />3--对系统级的模块进行配置,或者控制。&nbsp;<br />4--上电初期的一些管理<br /><br />就像一个国家的海军一样,&nbsp;PLD已经成为一些简单的驱逐舰,&nbsp;驰骋大洋的,&nbsp;可以跨海作战的,绝对不是这样的产品可以涵盖的。&nbsp;所以,&nbsp;你今天喝可乐的时候,&nbsp;不会有太多的选择。&nbsp;偶尔的一些牌子如同过眼烟云,&nbsp;很快就弹出你的视线了。<br /><br />是的,&nbsp;十年前我的很多朋友,&nbsp;有在Quicklogic,有在Cypress,现在还有一些在不断出产品的公司,&nbsp;当然,&nbsp;只能是剑走偏锋。&nbsp;做些细分市场还是可以继续的。但是三国鼎立的形式已经是不可撼动的事实了。<br />&nbsp;<br /><br />你到过我们的首都北京吗?到过我们的特区深圳吗?这样打比喻是因为我在深圳和北京都旅游或者工作过。实际上我也只是想借用这两个城市的布局来做个比喻。<br />北京是比较对称的城市,&nbsp;有东直门,&nbsp;西直门。&nbsp;有东单,&nbsp;西单等等。&nbsp;总之,&nbsp;他的布局就像Xilinx,无数个胡同就是像Xilinx围绕在CLB的路由线。&nbsp;这些资源在Xilinx的数据手册中有:<br /><br />&nbsp;<br /><br /><br /><br /><br /><br /><br />但是这些胡同间的联线并不是十分充足。&nbsp;特别是到了规模很大的时候。Altera的呢?在深圳的人,&nbsp;如果你不认路,&nbsp;很简单,&nbsp;只要你走到“深南大道,滨河大道,北环大道“上的任意一条,&nbsp;你就可以再从这些大道到你要去的地方。&nbsp;但是前提是&nbsp;,这3条大道的宽度要够。&nbsp;提示一点,这三条大道也是东西走向比较平行的。&nbsp;而且整个深圳也是一个东西走向的城市,&nbsp;地下再有一条地铁,在同样资源的情况下,&nbsp;布通率,&nbsp;和平均车速是非常好的。&nbsp;而北京的地铁,是环形的。资源上不如深圳的利用率高,&nbsp;这里无意于评价城市规划和道路设计。&nbsp;只是比喻。<br /><br />Altera的FPGA就是如同深圳的道路,&nbsp;他可以让你从列上很自如的转到宽阔的行上,&nbsp;然后再到达你的目的地。&nbsp;所以,可以告诉你一个经验。&nbsp;<br /><br /><br />1---Altera&nbsp;FPGA,&nbsp;布通率基本在95%左右,&nbsp;没有太大问题,&nbsp;Stratix最大的产品,有人有99%的布通率<br />2---Lattice的FPGA,规模超过20KLEs,布通效率。。。。有愿意透漏的吗?<br />3---Xilinx,规模越大,有所恶化。<br /><br />另外,&nbsp;这个地方也有颗粒度大带来的好处。&nbsp;所以,&nbsp;有些原来看似不精细的地方,&nbsp;却在规则改变后,&nbsp;就变得反而是犀利无比。<br /><br />经常有这样的情况,&nbsp;大家选择FPGA的时候,&nbsp;就开始翻看每种FPGA的选型手册,&nbsp;然后对资源表。&nbsp;有的甚至直接说:我这个是10万门的。&nbsp;你的那个是6万门的,&nbsp;实际上,这些都不是很正确的评估。&nbsp;如同有人说,&nbsp;我家的房子4室两厅,&nbsp;你家的房子3室1厅双卫生间。&nbsp;到底哪个更大呢?&nbsp;到底哪个更节能呢。&nbsp;厨房热水器之间离得很远又是问题。<br /><br />所以说,&nbsp;学会正确的评价资源是很重要的。&nbsp;这个时候还要参照他的结构!!板式的,&nbsp;还是砖混的!!!<br /><br />可能你还听说过一个使用面积的问题。&nbsp;实际上,&nbsp;有的房子看起来大,走道,不规则的布局,导致很多的地方都不能用!下面看个例子:<br /><br /><br />&nbsp;<br /><br /><br /><br /><br /><br /><br />左边的Hops代表跨一步的意思,&nbsp;就是路由转换一次的意思。&nbsp;这个表什么意思呢。&nbsp;就是说在S3的路由过程中,&nbsp;每个路由在第一次,就可以覆盖850LEs中的一个,V5是132.&nbsp;如果你的逻辑,经过4跨,同样的路径覆盖的区域A的是X的2倍。&nbsp;代表什么呢<br /><br /><br />1---编译速度更快,&nbsp;因为概率提高,&nbsp;路由成功率提高<br />2---布通率更高<br />3---速度更快!为什么,&nbsp;90nm以后,&nbsp;LE内部延迟已经不如路由延迟的时间长了。&nbsp;所以经过的路由多,就会严重降低系统速度。&nbsp;<br /><br />当然还有一些好事者,&nbsp;例如&nbsp;(http://www.opencores.org)&nbsp;有很多公开的opencore,大家可以将它们同时尝试放在A,X,L,看谁放的多,&nbsp;放的快,&nbsp;系统延迟更小。&nbsp;这方便数据就不多说了,&nbsp;可能都成为一门学科都不一定,&nbsp;因为不同的比对都有benchmark的不同标准。&nbsp;最终我们应该很清楚的看到。&nbsp;<br /><br />结构真的是很重要,我们能干,&nbsp;也要看是否站在巨人。。。<br /><br /><br />不过呢,&nbsp;很多时候,&nbsp;我们的朋友基本上都说:&nbsp;结构和我无关,&nbsp;我要学好VHDL,&nbsp;我要。。。。codingstyle。&nbsp;这个设计属于系统工程!<br /><br /><br />FPGA的真正命门和Know&nbsp;How实际上,能做FPGA的公司太多了,&nbsp;但是能将我们的设计通过算法成功放到这个芯片上,而且算出正确的时间和你的仿真要求的。&nbsp;就不多了,&nbsp;说的难听点。&nbsp;有些领域甚至是没有亚军的竞争!选择小规模PLD,&nbsp;那些,&nbsp;不是太重要的问题。&nbsp;本身就不够养活一票人的产品.<br />&nbsp;<br /><br />目前,很多人都基本上对于新的中档设计都会集中在这连个系列的竞争中,&nbsp;换言之,&nbsp;在中国目前以成本为导向的第一要求下,&nbsp;实际上中小公司的产品选用80%是集中在这里。<br />&nbsp;<br /><br />经常有人说,为什么你们的LEs数目相同,&nbsp;价格很不同。&nbsp;做些解释,&nbsp;一家之言。&nbsp;<br /><br />1---在今天,尽管是可以编程的器件,还是有不灵活的地方。&nbsp;例如,&nbsp;你的应用决定你对什么资源敏感<br />2--不同市场也有不同的关注。&nbsp;没有哪个东西绝对适合,&nbsp;只能是系列之间互相交叉来完成。&nbsp;<br /><br />比较产品有很多benchmark。&nbsp;这里列举一些。&nbsp;不全的地方,&nbsp;可以大家补充。&nbsp;<br /><br />1--工艺<br /><br />Cyclone&nbsp;III,65nm<br />Spartan3,&nbsp;90nm<br /><br />眼前看,&nbsp;90nm是主流工艺,&nbsp;但是未来降价空间在2009年中达到轨点,&nbsp;另外,65nm的功耗不用说,35%的优势轻轻松松。&nbsp;<br /><br />2--设计学<br /><br />CycloneIII&nbsp;---LP工艺,&nbsp;有很多人不理解这个,同样的设计采用LP和不采用就很大不同。&nbsp;<br />Spartan3--没有采用<br /><br />3--规模<br /><br />Spartan3,3e,3a,3an,&nbsp;覆盖区域不同,&nbsp;从1K到40KLE左右<br />CycloneIII:&nbsp;典型长中长焦距镜头,&nbsp;5K到120K,<br /><br />40K&nbsp;以上,&nbsp;基本上Spartan3没有产品,可以用V5,&nbsp;V5定义为Highend,&nbsp;S3定义为Lowercost<br />无线,DSLAM,医疗,&nbsp;平均规模在25KLE到80KLEs为最多,&nbsp;CycloneIII解决了有无问题<br /><br />4--Memory<br /><br />这个是CycloneIII的幸运之处,&nbsp;当时可能设计上没有这么大吧。&nbsp;<br />9K块,&nbsp;总容量绝对平均高出S为30%,&nbsp;块数也同样。&nbsp;Sp3dsp例外,&nbsp;但是他只有两个孩子。定焦镜头。要符合你的品味。&nbsp;<br /><br />memory多影响到:&nbsp;CPU速度提到,&nbsp;DSP应用,DUC,DDC,FIR等,级数上可以做更多。&nbsp;速度高,&nbsp;还可以提高复用。&nbsp;<br /><br />5--乘法器,&nbsp;一个18x18的乘法器,相当于350-450个LEs,当然流水的话要另外算。 <br /><br />6--PLL:&nbsp;Altera是模拟的,&nbsp;X是数字的。&nbsp;恢复性和收敛速度那毫无疑问,地球人都知道模拟的好。&nbsp;A的时钟树更是多<br /><br />7--布局:&nbsp;从左到有,&nbsp;基本符合多时钟域交叉,&nbsp;<br /><br />如:&nbsp;LVDS入,&nbsp;经过第一级FIFO,进行时钟域交叉,&nbsp;或者数据交叉,&nbsp;第一次处理,&nbsp;然后经过中间逻辑加工,参数重加载等,然后进入乘法器,&nbsp;可以级联,&nbsp;然后有通过通用逻辑池进行加工,&nbsp;再次通过FIFO或者RAM来对接下一级。&nbsp;<br /><br />其他行可以独立构成NiosII等,&nbsp;布局收敛性一流。&nbsp;我尽量找个照片来显示。
 楼主| 蹦蹦车 发表于 2009-3-2 13:54 | 显示全部楼层

5

第三篇&nbsp;SOPC篇<br /><br />&nbsp;<br /><br />PLD的重新定义PLD是什么,&nbsp;Programmable&nbsp;Logic&nbsp;Device.&nbsp;当然今天应该换个称呼了<br /><br /><br />Processor+&nbsp;Logic+DSP了,&nbsp;世界就是这样不停的变化来维持他的稳定。&nbsp;明日继续!<br /><br /><br />表1列出了Altera&reg;可编程解决方案的主要历史创新发展过程。,可以看到在2000年的时候,&nbsp;FPGA的厂商已经开始在嵌入式微处理器方面开始崭露头脚。&nbsp;当然起初引来的也有一片哗然。&nbsp;说效率低下,&nbsp;难以开发。&nbsp;新鲜事物的诞生总是要经过这样的阵痛期。&nbsp;<br /><br />在2002年,&nbsp;就有众多厂家出来声称都支持嵌入式软核CPU。&nbsp;甚至也和当时流行的8051&nbsp;turbo以及一些ARM进行比较。&nbsp;表1.&nbsp;在&nbsp;PLD&nbsp;业界的率先创新&nbsp;&nbsp;<br />年度&nbsp;技术发展里程碑&nbsp;在PLD业界的率先创新&nbsp;<br />2008&nbsp;Stratix&nbsp;&reg;&nbsp;IV&nbsp;FPGA<br />&nbsp;业界的首款40-nm&nbsp;FPGA,具有最高的密度、最好的性能、最低的功耗、最大的收发器带宽(高达8.5-Gbps&nbsp;的收发器),并为PCI&nbsp;Express&nbsp;Gen&nbsp;1/2提供硬核知识产权(IP)模块。&nbsp;<br />2007&nbsp;ArriaTM&nbsp;GX&nbsp;FPGAs<br />&nbsp;业界的首款低成本,基于收发器的中端,协议优化的FPGA。&nbsp;<br />2007&nbsp;Cyclone&reg;&nbsp;III&nbsp;FPGA&nbsp;<br />&nbsp;业界的首款低成本65nm&nbsp;FPGA,前所未有地同时实现了低功耗、低成本和高性能。&nbsp;<br />&nbsp;&nbsp;<br />2006&nbsp;Stratix&nbsp;III&nbsp;FPGA&nbsp;<br />&nbsp;65nm&nbsp;FPGA以更高的密度和性能支持高级集成,实现更复杂的产品。&nbsp;<br />&nbsp;&nbsp;<br />2006&nbsp;Quartus&reg;&nbsp;II&nbsp;软件&nbsp;<br />&nbsp;自然支持SDC设计约束&nbsp;<br />&nbsp;&nbsp;<br />2006&nbsp;C2H&nbsp;编译器&nbsp;<br />&nbsp;嵌入式处理器的首款自动ANSI&nbsp;C至寄存器级(RTL)生成工具&nbsp;<br />&nbsp;&nbsp;<br />2006&nbsp;Stratix&nbsp;II&nbsp;GX&nbsp;FPGA&nbsp;<br />&nbsp;速度最快,密度最大的90nm&nbsp;FPGA架构,含有工作在622Mbps至6.375Gbps的20个低功耗收发器。&nbsp;<br />&nbsp;&nbsp;<br />2005&nbsp;HardCopy&reg;&nbsp;&nbsp;II&nbsp;结构化&nbsp;ASIC&nbsp;<br />&nbsp;精细粒度体系结构;从90nm&nbsp;Stratix&nbsp;II&nbsp;FGPA原型无缝移植。&nbsp;<br />&nbsp;&nbsp;<br />2005&nbsp;Cyclone&nbsp;II&nbsp;FPGA&nbsp;<br />&nbsp;90nm&nbsp;FPGA,业界首款低成本FPGA,成本降低30%,密度提高3倍。&nbsp;<br />&nbsp;&nbsp;<br />2004&nbsp;Stratix&nbsp;II&nbsp;FPGA&nbsp;<br />&nbsp;90nm&nbsp;FPGA,含有名为ALM的8输入“分段式”查找表(LUT),以此替代了4输入LUT体系结构。&nbsp;<br />&nbsp;&nbsp;<br />2003&nbsp;Quartus&nbsp;II&nbsp;软件&nbsp;<br />&nbsp;可编程逻辑软件包,提供Tcl脚本支持。&nbsp;<br />&nbsp;&nbsp;<br />2003&nbsp;Stratix&nbsp;GX&nbsp;FPGA&nbsp;<br />&nbsp;0.13&micro;m&nbsp;FPGA,分块收发器体系结构。&nbsp;<br />&nbsp;&nbsp;<br />2003&nbsp;HardCopy&nbsp;结构化&nbsp;ASIC&nbsp;<br />&nbsp;业界唯一原型至量产0.13&micro;m的完整解决方案&nbsp;<br />&nbsp;&nbsp;<br />2003&nbsp;Stratix&nbsp;FPGA&nbsp;<br />&nbsp;0.13&micro;m、300mm、高速高密度FPGA&nbsp;<br />&nbsp;&nbsp;<br />2002&nbsp;Quartus&nbsp;II&nbsp;软件&nbsp;<br />&nbsp;可编程逻辑设计工具包,支持Linux。&nbsp;<br />&nbsp;&nbsp;<br />2002&nbsp;Cyclone&nbsp;FPGA&nbsp;<br />&nbsp;世界上成本最低的FPGA(0.13&micro;m)&nbsp;<br />&nbsp;&nbsp;<br />2002&nbsp;SOPC&nbsp;Builder&nbsp;<br />&nbsp;第一款FPGA自动系统生成工具<br />&nbsp;&nbsp;<br />2002&nbsp;Stratix&nbsp;FPGA&nbsp;<br />&nbsp;世界上第一款带有嵌入式DSP模块的FPGA<br />&nbsp;&nbsp;<br />2001&nbsp;HardCopy&nbsp;APEX&nbsp;TM&nbsp;结构化&nbsp;ASIC<br />&nbsp;FPGA&nbsp;首次无缝移植至低成本结构化ASIC<br />&nbsp;&nbsp;<br />2001&nbsp;系统互联架构<br />&nbsp;第一款自动生成的互联架构,支持同时主机/从机操作。&nbsp;<br />&nbsp;&nbsp;<br />2001&nbsp;Quartus&nbsp;II&nbsp;软件&nbsp;<br />&nbsp;推出Quartus&nbsp;II&nbsp;设计软件&nbsp;<br />&nbsp;&nbsp;<br />2001&nbsp;MercuryTM&nbsp;FPGA<br />&nbsp;世界上第一款带有嵌入式收发器的0.18&micro;m&nbsp;FPGA<br />&nbsp;&nbsp;<br />2000&nbsp;基于&nbsp;ARM&reg;&nbsp;的&nbsp;Excalibur&nbsp;TM&nbsp;器件<br />&nbsp;世界上第一款带有硬件嵌入式处理器的&nbsp;FPGA&nbsp;<br />&nbsp;&nbsp;<br />2000&nbsp;Nios&reg;&nbsp;嵌入式处理器&nbsp;<br />&nbsp;世界上第一款嵌入式处理器,适合可编程逻辑应用。&nbsp;<br />&nbsp;&nbsp;<br /><br /><br />&nbsp;<br /><br />的确,&nbsp;在推出Nios&nbsp;soft&nbsp;processor&nbsp;两年之后,&nbsp;在我们周边也开始陆续有开始吃螃蟹的了。&nbsp;但是,&nbsp;还是回到结构的老话题上,&nbsp;来谈论一下为什么这个时候出现了由FPGA制造商推出的CPU,实际上在1997年,&nbsp;就已经有什么FPGACPU的说法甚嚣尘上。&nbsp;而且也有人在Xilinx和Altera上面分别实现了原形。&nbsp;<br /><br />开始在FPGA嵌入大块RAM的时候,&nbsp;很多人抨击这种结构,只是一个动物园里面的老虎,&nbsp;实际上就是和猫差不多的杀伤力。&nbsp;不可以否认,&nbsp;它不如分布式RAM来的灵活,&nbsp;但是它可以作为一些Cache,或者是紧耦合的RAM,还有就是它的规模在容量增加的时候,&nbsp;仍旧有很好的速度,&nbsp;那就可以作为CPU的Cache了。&nbsp;Altera的RAM都是做在同一列的,&nbsp;很方便级联。&nbsp;另外总线宽度也很容易更改。&nbsp;<br /><br />还有就是CPU里面总是有很多总线,&nbsp;内部总线。&nbsp;由于丰富的行联线的存在,&nbsp;在几列行资源里,&nbsp;就可以轻松集成RAM,CPU要的逻辑资源,以及总线的结构。&nbsp;这样,CPU也就顺利的在FPGA的世界里粉墨登场了。&nbsp;虽然起初只是16bit的。<br /><br /><br />2002年,&nbsp;Altera的开发软件已经趋于稳定,&nbsp;可以说已经很适合自己产品的结构,而且布线效率非常高。同时Altera的Nios也上升为NiosII,这个时候NiosII已经蜕变为美丽蝴蝶---一个32bit的RISC&nbsp;CPU。&nbsp;而且Altera又采用了非对称的机构实现了革命性的Avlon互联体系。&nbsp;关于这个体系的由非对称可以覆盖对称的,或不对称性的应用,我们以后详细聊。&nbsp;总而言之。&nbsp;如果再有一款更好结构的低成本的FPGA,那无异于在FPGA市场上刮起一场飓风!<br /><br /><br />Xilinx有Microblaze,其他的有ARM的核,实际上FPGA上实现的CPU,不是由一个CPU的内核来决定他的应用,&nbsp;而是谁有最好的互联体系,&nbsp;能和外围设备,&nbsp;和FPGA中的RAM,乘法器,&nbsp;以及其他定制逻辑更好桥接,&nbsp;粘合成一个SOPC,那才是真正意思上的软核。&nbsp;那究竟什么样子才好呢?<br /><br />1---可以增加多个核来弥补自己速度上的缺陷,&nbsp;提高更多的并行处理<br />2---灵活的总线结构,&nbsp;可以连接高速,&nbsp;慢速,&nbsp;master,salve的模块<br />3---可以将客制化的逻辑,有效集成到CPU的指令体系。<br />4---有面向不同应用,可以进行裁剪的CPU&nbsp;core<br />5---方便片上调试的环境<br />6---可以快速自动实现外设资源冲突仲裁的机制<br />7---可以实现以软代硬,&nbsp;或者以硬代软,在软硬间转化速度与资源的偏重<br /><br />如果有以上的特性,&nbsp;那相信留给设计者的只有是无限的遐想空间。<br />我们从哪里开始讲呢,&nbsp;准备从算盘开始讲CPU,很多人说,我是不是太无聊了呢?听我明天说给你听!<br /><br />看似简单的算盘,绝对孕育着无比的大智慧。&nbsp;看是简单的Avalon,&nbsp;也同样有很多玄机。&nbsp;那就是变变变。<br /><br />来自Xilinx的消息,关于CPU在FPGA设计中的一些预测<br /><br />&nbsp;<br /><br /><br />上回说到算盘。&nbsp;实际上大家应该都见过这个了不起的发明,&nbsp;只是他出现在你的**中的次数越来越少&nbsp;,就忘记了,&nbsp;实际上,&nbsp;很多伟大之处在很早就有历史可以证明的。&nbsp;看看你平时见到的算盘。&nbsp;<br /><br />&nbsp;<br /><br /><br /><br />算盘的妙处和Altera的LE排列布局非常相似,或许是巧合吧。<br />但是这里的偶然也有些必然。&nbsp;或许我们有一天说,&nbsp;FPGA的结构最早是源于我国的。&nbsp;哈哈,&nbsp;玩笑啊。<br /><br />1---可以增加多个核来弥补自己速度上的缺陷,&nbsp;提高更多的并行处理<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;一个算盘是算盘,&nbsp;级联起来还是算盘,&nbsp;可以横向,&nbsp;也可以纵向<br /><br />2---灵活的总线结构,&nbsp;可以连接高速,&nbsp;慢速,&nbsp;master,salve的模块<br /><br />算盘是平行也是并行结构,&nbsp;上面的有两个珠子,下面5个,2也可以代表10,&nbsp;5也可以代表10,同时,进位时也可以暂时存储在高档位,&nbsp;也可以留在本档。进位链和Altera&nbsp;LE的进位布局也是一样。<br /><br />看一个更久的照片,&nbsp;当然这个也可以代表Cyclone的layout了。&nbsp;<br /><br />&nbsp;<br /><br /><br />总线结构:<br /><br />全交叉,部分交叉型(适合FPGA中的嵌入总线!)<br /><br />Xilinx的是共享总线型。仍旧属于传统型设计,&nbsp;只是将其搬移到了FPGA中。&nbsp;<br /><br />&nbsp;<br /><br /><br /><br /><br /><br /><br />处理器接口主要抽象为:<br /><br />1--共享寄存器<br />2--RAMs<br />3--FIFOs<br /><br />回头看Avalon:<br /><br />&nbsp;<br /><br /><br />
 楼主| 蹦蹦车 发表于 2009-3-2 13:55 | 显示全部楼层

6

上面看起来,&nbsp;这两个softcore都差不多,&nbsp;看了下面的特点,&nbsp;你就有答案了。&nbsp;<br /><br />&nbsp;<br /><br />+&nbsp;-&nbsp;Selecting&nbsp;Hardware&nbsp;Architecture&nbsp;<br />Bus&nbsp;<br />achieve&nbsp;relatively&nbsp;high&nbsp;clock&nbsp;frequencies&nbsp;<br />expense&nbsp;of&nbsp;little&nbsp;<br />no&nbsp;concurrency&nbsp;<br />common&nbsp;arbitration&nbsp;unit.&nbsp;<br />all&nbsp;masters&nbsp;compete&nbsp;for&nbsp;access&nbsp;to&nbsp;<br />Full&nbsp;Crossbar&nbsp;Switch-NiosII&nbsp;Avalon&nbsp;<br />concurrent&nbsp;transactions&nbsp;<br />flexible&nbsp;<br />high&nbsp;throughput&nbsp;<br />large&nbsp;multiplexers&nbsp;<br />more&nbsp;masters&nbsp;and&nbsp;slaves&nbsp;are&nbsp;added&nbsp;<br />avoid&nbsp;large&nbsp;crossbar&nbsp;switches&nbsp;<br />Partial&nbsp;Crossbar&nbsp;Switch--Avalon&nbsp;is&nbsp;okey&nbsp;<br />connectivity&nbsp;to&nbsp;a&nbsp;subset&nbsp;of&nbsp;the&nbsp;slaves&nbsp;<br />provides&nbsp;the&nbsp;optimal&nbsp;connectivity&nbsp;<br />operates&nbsp;at&nbsp;higher&nbsp;clock&nbsp;frequencies&nbsp;<br />interconnect&nbsp;fabric&nbsp;consumes&nbsp;fewer&nbsp;resources.&nbsp;<br />ideal&nbsp;for&nbsp;ASIC&nbsp;or&nbsp;<br />FPGA&nbsp;interconnect&nbsp;structures&nbsp;<br />slave&nbsp;side&nbsp;arbitration.&nbsp;<br />Streaming-Avalon&nbsp;Streaming&nbsp;Map&nbsp;<br />high&nbsp;speed&nbsp;data&nbsp;transfers&nbsp;<br />point-to-point&nbsp;connections&nbsp;between&nbsp;source&nbsp;and&nbsp;sink&nbsp;<br />eliminating&nbsp;arbitration&nbsp;<br />Dynamic&nbsp;Bus&nbsp;Sizing&nbsp;<br />+&nbsp;-&nbsp;Understanding&nbsp;Concurrency&nbsp;<br />Create&nbsp;Multiple&nbsp;Masters&nbsp;<br />■&nbsp;General&nbsp;purpose&nbsp;processors,&nbsp;such&nbsp;as&nbsp;Nios&nbsp;II&nbsp;<br />■&nbsp;DMA&nbsp;engines&nbsp;<br />■&nbsp;Communication&nbsp;interfaces,&nbsp;such&nbsp;as&nbsp;PCI&nbsp;Express&nbsp;<br />Create&nbsp;Separate&nbsp;Datapaths&nbsp;<br />Use&nbsp;DMA&nbsp;Engines&nbsp;<br />data&nbsp;width&nbsp;<br />clock&nbsp;frequency&nbsp;<br />more&nbsp;DMA&nbsp;engines&nbsp;<br />Include&nbsp;Multiple&nbsp;Master&nbsp;or&nbsp;Slave&nbsp;Ports&nbsp;<br />increases&nbsp;the&nbsp;concurrency&nbsp;<br /><br />&nbsp;&nbsp;<br />Create&nbsp;Separate&nbsp;Sub-Systems&nbsp;<br />+&nbsp;-&nbsp;Increasing&nbsp;Transfer&nbsp;Throughput&nbsp;<br />increasing&nbsp;the&nbsp;transfer&nbsp;efficienc&nbsp;<br />lower&nbsp;frequency&nbsp;devices&nbsp;can&nbsp;be&nbsp;used&nbsp;<br />Using&nbsp;Pipelined&nbsp;Transfers&nbsp;<br />Maximum&nbsp;Pending&nbsp;Reads&nbsp;<br />Selecting&nbsp;the&nbsp;Maximum&nbsp;Pending&nbsp;Reads&nbsp;Value&nbsp;<br />Pipelined&nbsp;Read&nbsp;Masters&nbsp;<br />+&nbsp;-&nbsp;Increasing&nbsp;System&nbsp;Frequency&nbsp;<br />strategy&nbsp;<br />introduce&nbsp;bridges&nbsp;to&nbsp;reduce&nbsp;the&nbsp;amount&nbsp;of&nbsp;logic&nbsp;<br />increase&nbsp;the&nbsp;clock&nbsp;frequency.&nbsp;<br />Tatic&nbsp;<br />Use&nbsp;Pipeline&nbsp;Bridges&nbsp;<br />■&nbsp;Master-to-Slave&nbsp;Pipelining&nbsp;<br />■&nbsp;Slave-to-Master&nbsp;Pipelining&nbsp;<br />■&nbsp;waitrequest&nbsp;Pipelining&nbsp;<br />Use&nbsp;a&nbsp;Clock&nbsp;Crossing&nbsp;Bridge&nbsp;<br />Consequences&nbsp;of&nbsp;Using&nbsp;Bridges&nbsp;<br />■&nbsp;Increased&nbsp;Latency&nbsp;<br />■&nbsp;Limited&nbsp;Concurrency&nbsp;<br />■&nbsp;Address&nbsp;Space&nbsp;Translation&nbsp;<br />Reducing&nbsp;Logic&nbsp;Utilization&nbsp;<br />+&nbsp;-&nbsp;Reducing&nbsp;Power&nbsp;&nbsp;Utilization&nbsp;<br />Reduce&nbsp;Clock&nbsp;Speeds&nbsp;of&nbsp;Non-Critical&nbsp;Logic&nbsp;<br />Clock&nbsp;Crossing&nbsp;Bridge&nbsp;<br />Avalon-MM&nbsp;master&nbsp;ports&nbsp;&nbsp;operating&nbsp;at&nbsp;a&nbsp;higher&nbsp;frequency&nbsp;to&nbsp;slave&nbsp;ports&nbsp;running&nbsp;a&nbsp;a&nbsp;lower&nbsp;&nbsp;frequency&nbsp;<br />■&nbsp;PIOs&nbsp;<br />■&nbsp;UARTs&nbsp;(JTAG&nbsp;or&nbsp;RS-232)&nbsp;<br />■&nbsp;System&nbsp;identification&nbsp;(SysID)&nbsp;<br />■&nbsp;Timers&nbsp;<br />■&nbsp;PLL&nbsp;(instantiated&nbsp;within&nbsp;SOPC&nbsp;Builder)&nbsp;<br />■&nbsp;Serial&nbsp;peripheral&nbsp;interface&nbsp;(SPI)&nbsp;<br />■&nbsp;EPCS&nbsp;controller&nbsp;<br />■&nbsp;Tristate&nbsp;bridge&nbsp;and&nbsp;the&nbsp;components&nbsp;connected&nbsp;to&nbsp;the&nbsp;bridge&nbsp;<br />
xwj 发表于 2009-3-2 14:12 | 显示全部楼层

太长,占位慢慢看

  
linux123 发表于 2009-3-13 14:40 | 显示全部楼层

这玩意儿还整上历史了~

  
King1999 发表于 2009-3-17 15:17 | 显示全部楼层

楼主是转贴的吧?

原文在哪里啊?<br />发个链接吧<br />楼主转贴很辛苦,可是转贴的质量不敢恭维,有很多地方看着太费劲,因为缺少了部分内容,比如图片说明啊,表格啊等等。<br />感觉这是跟Altera有很深渊源的人写的(或者说就是Altera的托,呵呵)。
wujing198 发表于 2009-3-18 00:55 | 显示全部楼层

看明白了很多以前不了解的东西

尤其是对FPGA架构的那段,以前知道Xilinx是用的岛状结构,但是不清楚Altera是什么结构。今天看完以后若有所思。
yuxyoo 发表于 2009-3-18 17:22 | 显示全部楼层

就是, 原文链接是什么啊

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

106

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部