FPGA是ASIC设计者的一道普通难题?

技术分类: EDA工具与服务  可编程器件  | 2007-10-16
Michael Santarini,EDN高级编辑


  Rozario 的小组在布局时遇到了类似的问题。但由于他的设计里时钟域相对较少,时钟结构比较简单,足以满足他的设计。Rozario 说:“FPGA 结构中带有内置时钟,这样时钟均衡要比 ASIC 简单得多。你不必担心 H 树信号完整性,因为 FPGA 架构已注意了所有时钟问题,每个区域内你都有大量的时钟。”

  Rozario 警告说,规划很差的布局会造成时序问题。“有些较大的 FPGA 有你不需要的功能,你得花精力处理它们。我们使用的器件有硬接线 DSP 功能。我们在设计

中并不使用 DSP,但可能在下个设计中用到它。”一旦他的小组建立了最佳布局,Xilinx ICE(在线仿真器)工具就完成了一件“相当不错的工作”,使设计适应于架构。开始时,他的小组会对每个 FPGA 子模块作平面规划,使之达到最高层级,然后为整个芯片重复这种方法。不过,ICE 应用工程师警告说该小组的做法违反了他们的建议,要求小组采用自动化工具。Rozario 表示怀疑,但发现两种方法的结果是相似的。

  尽管 FPGA 工具较 ASIC 设计工具缺少定制能力,Singh 仍鼓励 ASIC 设计者转向 FPGA 设计,以利用 FPGA 供应商的免费工具、IP(知识产权)产品,以及客户支持。他举出了一系列好处,包括供应商良好的程序管理、架构、以及懂得 FPGA 的设计专家,还有现场支持。他发现这些工具对基础工作很有价值,如平面规划和信号完整性。

  验证问题

  当 FPGA 初次进入市场时,最大的卖点之一是设计者可对它们编程,然后直接在一个运行系统原型的板上作测试,从而跳过了基于仿真的逻辑验证。很多 FPGA 老手仍然使用这种方案。但 Singh 和 Rozario 认为,即使是现在的中规模FPGA 一般也太大太复杂,不能做简单编程、板上运行,以及系统测试与起动期间的调试。

  很多有经验的 FPGA 设计者告诉 Rozario 说,他们设计芯片会跳过逻辑验证步骤,然后在实验室中测试芯片。Rozario 并不支持这种方法,原因是,尽管他的芯片外部有标准的总线接口,但内部很复杂,在看不到芯片内部的情况下作调试相当困难。他说:“有了波形就容易多了,所以我们坚持 ASIC 验证方法。我们仍会在实验室作调试,但我们尝试在进实验室以前解决掉大多数问题。”

  同样,Singh 称由于自己的小组只使用最大的 FPGA,它对 FPGA 使用了与 ASIC 相同的验证方法,用一个测试平台对每个设计作彻底仿真、调试和时序分析,。

  Singh 说:“我们要做功能仿真、门级仿真和动态仿真,将门与寄生参数送回到功能仿真。然后,我们会做一次多个角度和模式的全面静态时序分析。一旦我们获得了完美的结果,就将其装到电路板上,上电起动。”他承认,第一次使用这种方法时,一定会做一些重复工作,然后它就会成为一种标准的过程,后面的项目就比较容易了。这种方法一般都会给 Singh 带来满意的结果。FPGA 供应商为他们的软硬块、SERDES、PLL 和其它宏提供功能强大的仿真模型,有助于小组的验证工作。

  软错误

  除了 ASIC 与 FPGA 设计之间的微妙差异以外,基于 SRAM 的 FPGA 亦给用户带来了一个新的挑战:软错误。软错误出现在一个随机大气中子与 IC 碰撞时,它会造成一个位的错误,或有些情况下产生一个虚假信号(参考文献 3)。标准单元器件一般不易受软错误影响,但 SRAM 结构、逻辑及其它类型存储器则相反。Xilinx、Altera 和 Lattice 这些公司的最高性能 FPGA 都建立在 SRAM 上。

  Singh 表示,他的小组也开始频繁地遇到软错误。因此他警告说,当挑选器件时,你需要查看它的可靠性研究。并且,即使供应商声称该 FPGA 是可靠的,你也需要在自己设计中增加一些 ECC(纠错编码)。基于 SRAM 的器件需要一种 ECC 配置,以确保不会有虚假错误,即中子撞击所造成的交换位。

  如果设计中有用于检查配置 RAM 完整性的控制电路,则每当你的 RAM 改变配置时,差不多都会遇到一个软错误。软错误在 ASIC 设计中不常见,但它们能够影响 FPGA 中所有基于 SRAM 的部分,包括基于 SRAM 的逻辑结构和片上 SRAM 块。Singh 说:“由于晶体管越来越小,电压不断下降,你无法阻止它,你总会被一粒中子击中。”

1】【2】【3】【4】【5
加载中

对文章的评论

剩余字数:  

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

设计资源与分销