芯片设计和验证工程师通常要为在硅片上实现的每一行RTL代码写出多达10行测试平台代码。验证任务在设计周期内可能会占用50%或更多的时间。尽管如此辛苦,仍有接近60%的芯片存在功能瑕疵,需要返工。由于HDL仿真不足以发现系统级错误,芯片设计人员正利用FPGA来加速算法创建和原型设计。
利用FPGA处理大型测试数据集可以使工程师快速评估算法和架构并迅速做出权衡。工程师也可以在实际环境下测试设计,避免因使用HDL仿真器消耗大量时间。系统级设计和验证工具(如MATLAB和Simulink)通过在FPGA上快速建立算法原型,可以帮助工程师实现这些优势。
本文将介绍使用MATLAB和Simulink创建FPGA原型的最佳方法。这些最佳方法包括:在设计过程初期分析定点量化的效应并优化字长,产生更小、更高效的实现方案;利用自动HDL代码生成功能,更快生成FPGA原型;重用具有HDL协同仿真功能的系统级测试平台,采用系统级指标分析HDL实现方案;通过FPGA在环仿真加速验证(图1)。
为什么在FPGA上建立原型?
在 FPGA上建立算法原型可以增强工程师的信心,使他们相信自己的算法在实际环境中的表现能够与预期相符。除了高速运行测试向量和仿真方案,工程师还可以利用FPGA原型试验软件功能以及诸如RF和模拟子系统的相关系统级功能。此外,由于FPGA原型运行速度更快,可以使用大型数据集,暴露出仿真模型未能发现的缺陷。
采用HDL代码生成功能的基于模型的设计可以使工程师有效地建立FPGA原型,如图2所示。该图向我们展示了这样一种现实情况:工程师经常缩短详细设计阶段,试图通过尽快开始硬件开发阶段以符合开发周期的要求。现实中,当工程师发现定点算法达不到系统要求时,就得在 HDL创建阶段重新审视详细设计阶段。这样的重叠工作将使HDL创建阶段延长(如紫色长条所示),并可能引发各种设计问题(如胶合逻辑或设计补丁)。
由于自动HDL代码生成流程比手工编码快,工程师得以把节省下来的时间投入到详细设计阶段,生成更优质的定点算法。与手动的工作流程相比,这种方法使工程师能够以更快的速度生成质量更佳的FPGA原型。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)