谢谢,
我有一个简单的Simulink模型,该模型采用IEEE-754格式的32位数字并添加相同的数字,从而再次以32位宽的IEEE-754格式给出输出。我使用了MATLAB的HDL CODER插件,并为此生成了Verilog HDL代码。当我为同一平台编写测试台时,发现从此代码获得的延迟为100ns。但是有没有办法我可以将其进一步减小,例如大约10ns。
下面,我将附加用于生成Verilog HDL代码的Simulink模型以及所生成的Verilog文件。另外,如果您不想浪费时间运行脚本,我会附上模拟屏幕截图
我的意思是转换前如何使用管道设置
我假设“管道设置”是MATLAB HDL生成器参数。
基本上,您要做的是“尝试”:使用管道设置并合成代码。如果您有空余时间,可以:
减少流水线级数。
或
提高时钟频率。
(对于负松弛,请使用反函数)
现在这是棘手的地方:大多数情况下,您无法真正加快速度。某些功能需要一段时间才能计算。可以通过使用更多并行资源来加快某些算法的运行速度,但只能达到极限。一个加法器就是一个很好的例子:您可以使用波纹进位,提前进位和更高级的技术,但是您无法无限地加速。(否则,这些天这些CPU的运行频率为Terra Hz)
最后,我怀疑您会发现需要花费T时间来进行IEEE-754加法器。那可以是一个A MHz的X个时钟周期。时钟或B MHz的Y时钟周期。但是X乘A大约等于Y乘B。
您可以做的是将大量计算注入到管道中,这样每个时钟周期都会产生一个新的计算。但是延迟仍然存在。