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