前几天,我与一位从事硬核FPGA设计的设计师谈起我开发系统芯片的方式。由于我提到了‘FPGA’,因此他问我对于仿真器的感觉怎么样。而当我告诉他我已近三年不依赖仿真器后,他大吃一惊,觉得不可思议。
这同我与许多其他FPGA设计师围绕着提高设计抽象度的对话很类似。正如软件开发人员非常依赖调试器和代码仿真器来查找错误和验证功能一样,FPGA设计师同样一直习惯利用仿真器来进行这些工作。仿真器为FPGA设计师提供了开发复杂IP所需的控制手段和可视性,随后设计师们设计流程就可以以良好的仿真工具为中心组织起来。不进行仿真而从事设计的观念是完全违背常规的。
与此相对的是电路板设计师所用的方法。电路板设计师就是那些从事将现成元器件拼接在一块印刷电路板上来从而制造出新型电子产品的人。通过假定这些元器件满足其产品资料的规范,电路板设计师将元器件视为“黑盒”,他们将精力集中于围绕元器件之间的相互通信上而非元器件内部的开发上,对系统进行整体仿真的情况十分少见。相反它们使用测试代码和/或仿真源代码进行样品设计和“实况”运行。
和电路板设计师,在门级/门电路水平上对整个系统进行仿真的情况一样,FPGA设计师不对系统进行仿真的情况一样是令人费解的。随着电路板设计师日益使用FPGA和现成IP来缩小设计和加快开发速度,什么才是最合适的开发方法呢?他们应当不仿真还是仿真?
FPGA仿真最适合开发定制IP的设计师。但是,一旦IP得到验证,使用该IP下游的设计师们重复这一工作就没有多少价值了。相反,他们应当采取与电路板设计师相似的策略,也就是进行 “实况”样品设计。当然,需要有一个合适的执行平台才能使其成为可能。
对许多传统FPGA设计师来说,使用这一方式的主张仍然让人觉得不太舒服。但是,随着设计从抽象水平不断朝着系统水平上升,在仿真基础开发方面,这种方法仍然是比较好的。具有讽刺意味的是,采用下一代设计工具的电路板设计师实际上能够比传统使用者更好地利用FPGA。