标题:
ASIC或FPGA :为什么不考虑可移植性?
[打印本页]
作者:
520503
时间:
2013-10-26 23:06
标题:
ASIC或FPGA :为什么不考虑可移植性?
关键字:
ASIC
FPGA
可移植性
成功的关键在于灵活性,灵活性的关键是利用目标独立性的设计方法,让自己在将来的建设性变更中有选择的余地。
一般而言,某一特定
FPGA
器件选择不仅为它的逻辑功能,而且还因为FPGA一般能够解决现实中小批量的生产和后期周期设计变更。
但是,在产品需求或市场动态变化时可以迅速重新评价这种选择。有时可能有必要切换到一个完全不同的FPGA系列,例如能够提供规模优势或卓越的性能的FPGA系列。有时ASIC的是一个更好的选择,因为它适合于大批量定制。
成功的关键在于灵活性,灵活性的关键是利用目标独立性的设计方法。如若有一种设计方法类似ASIC或结构化ASIC允许适宜移植,使得从一个FPGA架构迁移到另一个FPGA架构变得更加容易。
利用目标独立性的设计方法,让自己在将来的建设性变更中有选择的余地。
并非所有的制约因素都是平等的
确定时间限制几乎跟RTL级本身的描述设计一样重要,而且代码一样很复杂。没有比被供应商专有的语法限制更令人沮丧的了,特别是存在同行业公认的方法。专有的约束语法可能是供应商的战略,以“锁定”客户,也可以是用于严格的技术原因。在这两种情况下,如果该项目要求时,转移到ASIC的努力变得复杂。
在ASIC世界里,事实上的标准时间是Synopsys公司的设计约束( SDC )格式。领先的FPGA综合工具通过这个语法促进从ASIC设计到FPGA实现的移植(或者用于生产或原型),或相反,从FPGA到ASIC的移植。
转换SDC约束语法不仅仅是在文本文件里行使一个查找/替换,它可以繁琐本身。某一专有语法缺乏明确的翻译往往会带来很多限制。专有语法同样难以往相反的方向翻译。
还值得指出,当一个FPGA供应商使用自己的语言进行时间约束,此语法最终必须联合布局布线。 FPGA厂商有那部分流程,但没有办法解决它。但是有一个先进的合成工具,可以把任何引进或产生SDC文件译成供应商的格式,并将其布局布线。通过这种方式,用户可以在行业标准前面附上合成流程管理的文件格式。
这种方法用在ASIC和FPGA之间的移植非常行之有效,因为FPGA合成流程基本上是借鉴ASIC世界的约束格式。
一般思考,在FPGA的平台,许多设计都是结合独立的RTL技术 (Verilog , SystemVerilog或VHDL )和分区实例化技术来实现的。尽管不建议采用后一种办法,并最好保持在最低限度使用。
设计师有一个选择:要么具体实例某些分区技术,要么用合成工具在通用编码准则的基础上自动推断出该功能。分区技术是指基元成分,如多路复用器,缓冲器,存储器,乘法器,或
DSP
模块。要获得这些基元取决于FPGA。图1显示传统的FPGA架构,包括块标准逻辑可配置逻辑、芯片存储器和DSP功能的
嵌入式
区,时钟管理电路。
图1 标准FPGA架构
实例的基元成分允许用户能够控制并实现自己的设计,但前提是需要遵循目标架构的规则。例如,实例化一个赛灵思特定DSP的分区意味着不同的实例来重新编码该部分的HDL文件,并详细了解该架构是否必要转移到一个不同的平台等细节。
推荐使用的另一种办法是,写一般的RTL并让合成工具推断出适当的FPGA实现。如果有必要(或可取)迁移到一个新的目标架构,在RTL一般保持不变,而合成工具会处理新的实现。图2中的代码描述一个简单的乘数累加器通过合成工具推断到目标FPGA器件中的专门DSP模块。
图2 RTL通过合成工具推断到DSP
通用RTL编码这一概念并不是一个新问题。事实上,这种方法普遍受到推崇,因为它使得从一个FPGA系列移植到另一系列得到了简化,例如从一个赛灵思系列到一个Altera 系列。
重要的是,通用RTL编码方法也同样有利于FPGA和ASIC之间的移植。ASIC的合成流程可以解析通用的RTL,这意味着RTL变化需要不是很大时可以遵守通用编码准则。
包装带移植到专门职能
但并非所有功能都可以在通用的RTL得到定义 。数字时钟管理是一个明显的例外。设计中的成倍增加时钟速率或改变时钟阶段的任务最好通过由DLLs或PLLs (锁相环或延迟锁定回路)制成的FPGA芯片。这样做通常是用实例化技术而不是通用RTL 。
专门的I / O单元是只实例化元件的另一个例子。这些IP模块是通过设计高层对其中一个文件做任何修改,并根据包装和编译指示选择适当的代码,以便达到最好的管理。如图3所示,该包装模块可用作其余RTL专门资源的接口。这样,从赛灵思的DCM转换到Altera的PLL需要特定的合成命令水平。
图3包装模块使用环绕时钟管理电路
另一方面,内存在整个设计中最容易,不仅仅因为它在最高层。通过在特定技术内存实例中增加一个通用包装模块,然后将这些特定技术内存实例保存在一个单独的文件中,设计者只需要两个版本的内存档案——各自的技术。在编译的时候,只有与技术指标相匹配的内存文件才被使用,该设计进行的是无缝编译。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0