新闻中心

EEPW首页>模拟技术>设计应用> 使用MATLAB和Simulink算法创建FPGA原型

使用MATLAB和Simulink算法创建FPGA原型

作者: 时间:2013-10-15 来源:网络 收藏
ACING: normal; webkit-text-size-adjust: auto; orphans: 2; widows: 2; webkit-text-stroke-width: 0px">  为了明智确定所需的小数位数,在开始HDL编码过程之前,工程师需要某种方法来比较浮点仿真结果与定点仿真结果。增加小数位数可以减小量化误差;不过,这种方法需要增加字长(区域增多、功耗升高)。

  例如,图5展示了DDC滤波器链路中低通滤波器第一阶段浮点与定点仿真结果的差异。这些差异是因定点量化所致。上方图形显示了浮点与定点仿真结果的重叠效果。下方图形显示了图中每一点的量化误差。工程师可能需要根据设计规范来增加小数位数以减小由此引出的量化误差。

图5展示了DDC滤波器链路中低通滤波器第一阶段浮点与定点仿真结果的差异。

  除了选择小数位数之外,工程师还需要优化字长,实现低功耗和区域优化的设计。

  在DDC案例研究中,工程师使用定点模块组将部分数字滤波器链路的字长减少了8位之多(图6)。

工程师使用Simulink定点模块组将部分数字滤波器链路的字长减少了8位之多

利用自动HDL代码生成功能更快生成

  在生成时,HDL代码必不可少。工程师手工编写了 Verilog或VHDL代码。作为替代选择,使用HDL编码器自动生成HDL代码具有众多明显优势。工程师可以快速地评估能否在硬件中实施当前算法;迅速评估不同的算法实现,选择最佳方案;并在FPGA上更快地建立算法原型。

  对于DDC案例研究而言,可以在55秒内生成了5780行HDL代码。工程师可以浏览并很快理解代码(图7)。自动代码生成功能允许工程师对系统级模型进行更改,并且,通过重新生成HDL代码,该功能可以在数分钟之内生成更新的HDL实现方案。

可以在55秒内生成了5780行HDL代码

重用具有协同仿真功能的系统级测试平台进行HDL验证

  功能验证:HDL协同仿真使工程师能够重用模型,将激励驱动至HDL仿真器,并对仿真输出执行交互式系统级分析(图8)。

HDL协同仿真使工程师能够重用Simulink模型

  HDL仿真仅提供数字波形输出,而HDL协同仿真则提供了显示HDL代码的完整视图,并可以访问的全套系统级分析工具。当工程师观察到预期结果与HDL仿真结果存在差异时,可借助协同仿真进一步了解该失配所产生的系统级影响。

  例如,在图9中,频谱仪视图可以使工程师做出明智决定,忽略预期结果与HDL仿真结果之间的失配,其原因是该差异位于阻带区。相比之下,数字波形输出只是将预期结果与HDL仿真结果的失配标记为误差。尽管工程师最终可能得出相同的结论,但这将需要更多的时间完成所需的分析。

使用特定域频谱仪分析系统级指标并评估HDL实现的性能



评论


相关推荐

技术专区

关闭