如何根据给定Simulink模型优化(减少)MATLAB HDL CODER附加组件生成的Verilog HDL代码(硬件)中的延迟?

问题描述 投票:0回答:1

谢谢,

我有一个简单的Simulink模型,该模型采用IEEE-754格式的32位数字并添加相同的数字,从而再次以32位宽的IEEE-754格式给出输出。我使用了MATLAB的HDL CODER插件,并为此生成了Verilog HDL代码。当我为同一平台编写测试台时,发现从此代码获得的延迟为100ns。但是有没有办法我可以将其进一步减小,例如大约10ns。

下面,我将附加用于生成Verilog HDL代码的Simulink模型以及所生成的Verilog文件。另外,如果您不想浪费时间运行脚本,我会附上模拟屏幕截图

Simulation of addition

Link to download the files

matlab verilog simulink hdl-coder
1个回答
0
投票

我的意思是转换前如何使用管道设置

我假设“管道设置”是MATLAB HDL生成器参数。

基本上,您要做的是“尝试”:使用管道设置并合成代码。如果您有空余时间,可以:

  • 减少流水线级数。

  • 提高时钟频率。

(对于负松弛,请使用反函数)

现在这是棘手的地方:大多数情况下,您无法真正加快速度。某些功能需要一段时间才能计算。可以通过使用更多并行资源来加快某些算法的运行速度,但只能达到极限。一个加法器就是一个很好的例子:您可以使用波纹进位,提前进位和更高级的技术,但是您无法无限地加速。(否则,这些天这些CPU的运行频率为Terra Hz)

最后,我怀疑您会发现需要花费T时间来进行IEEE-754加法器。那可以是一个A MHz的X个时钟周期。时钟或B MHz的Y时钟周期。但是X乘A大约等于Y乘B。

您可以做的是将大量计算注入到管道中,这样每个时钟周期都会产生一个新的计算。但是延迟仍然存在。

© www.soinside.com 2019 - 2024. All rights reserved.