文档介绍:FPGA 原型设计:软件最重要!
Doug Amos,Synplicity 公司欧洲业务开发总监
FPGA 原型设计人员艰苦努力所得的明显回报就是 ASIC* 设计可以及时而毫无问题地完
成产品定案(tape-out)。不过,原型设计还有一点日益重要的优势,即 ASIC 或 SoC 中
嵌入的软件在项目开发的早期阶段便可与实际速度硬件进行完美集成。
为什么软件团队要关注 FPGA 原型设计问题
独立的 EDA 分析师 Gary Smith 指出(见图 1),SoC 采用的 CMOS 工艺节点日益小型
化,而且技术越来越复杂,因此软件组成部分已成为产品特色和开发焦点所在。进入市
场的最新消费类器件多采用复杂的 SoC,其中包括众多嵌入式处理器和几十万甚至数百
万行代码。Apple iPhone 就是一个很好的例子,它至少包含 3 个 ARM 处理器。加速
产品上市进程对产品推出至关重要,在此情况下,怎么才能在 SoC 环境中进行软件验
证呢?
SoC 开发团队越来越多地开始采用 FPGA 原型设计作为解决方案来进行验证并及时推出
各种类型的产品。
为什么选择原型设计技术?
集成操作系统、应用和硬件非常复杂,会出现许多不可预见的软件问题。实际速度运行
的 FPGA 原型设计能提供一个独特的环境,在关键的集成阶段节约数月之久的高强度软
件测试工作。如果这款原型设计还要采用其它软件,要进行其它实验室测试,那么原型
设计的优势会进一步体现出来,即便对客户接受度测试来说都是有益的。Synplicity
推出的 HAPS (高速 ASIC 原型设计系统)等现成的高质量 FPGA 原型验证板基本解决
了投放产品的时间问题,剩下的就是要考虑成本问题:
增加板的用量将找出更多错误
软件的潜在用户数量巨大,他们会随心所欲使用软件,难免不造成操作系统锁死,应用
崩溃,或者做些软件工程师根本想象不到的事情。
何时进行原型设计
在 SoC 设计完成之前就进行调试显然是非常有利的。图 1 显示了大型 ASIC 项目各阶
段中通常要特别注意的模拟、仿真和原型设计问题。我们可以看到,FPGA 原型设计最
常用,因为项目在集成阶段需要确保高速和高容量。
我们不妨设想这样一种情况,软件集成问题的最佳解决方案需要修改硬件。举例来说,
需要将占用大量周期的 DSP 算法提取出来,并用协处理器或定制的器件逻辑来代替。如
果 SoC 已基本完成了产品定案,甚至已完成设计推出了样片才发现这一问题,那么不
管修改错误对最终产品有什么好处,我们也不太可能考虑对器件进行必要的调整了。事
实上,早期进行 FPGA 原型设计有助于及时进行设计调整。FPGA 原型设计技术使用越
来越多,其原因之一就是在项目早期阶段可判断软/硬件的问题并权衡利弊(也请参见
图 1)。
原型设计面临的挑战
实施 ASIC 的 FPGA 原型需要解决多种开发难题。令人惊讶的是,设计硬件本身并不是
最具挑战性的问题。事实上,许多厂商都提供为满足特定目的而设计的 ASIC 原型板
(如 HAPS)。真正的挑战则在于如何实施 FPGA 设计方案。
分区和 I/O 处理
尽管目前最大的 FPGA 每个都能处理 200 多万个 A