如何优化(减少)由MATLAB HDL编码器插件从给定Simulink模型生成的verilog HDL代码(硬件)中的延迟?
提前感谢, 我有一个简单的Simulink模型,它接受IEEE-754格式的32位数字,并添加相同的数字,从而再次以32位宽的IEEE-754格式提供输出。我使用了MATLAB的HDL编码器插件,并为其生成了Verilog HDL代码。当我为同样的代码编写测试台时,我发现我从这段代码中得到的延迟是100ns。但是有没有一种方法我可以把它进一步缩小,比如说10纳秒 下面我附上我用来生成Verilog HDL代码的Simulink模型,以及生成的Verilog文件。另外,我附加了一个模拟的屏幕截图,以防你不想浪费时间运行脚本 我的观点是如何在转换之前使用管道设置 我假设“管道设置”是一个MATLAB HDL生成器参数 基本上,您所做的是“尝试”:使用管道设置并合成代码。如果您有松弛,您可以:如何优化(减少)由MATLAB HDL编码器插件从给定Simulink模型生成的verilog HDL代码(硬件)中的延迟?,matlab,verilog,simulink,hdl-coder,Matlab,Verilog,Simulink,Hdl Coder,提前感谢, 我有一个简单的Simulink模型,它接受IEEE-754格式的32位数字,并添加相同的数字,从而再次以32位宽的IEEE-754格式提供输出。我使用了MATLAB的HDL编码器插件,并为其生成了Verilog HDL代码。当我为同样的代码编写测试台时,我发现我从这段代码中得到的延迟是100ns。但是有没有一种方法我可以把它进一步缩小,比如说10纳秒 下面我附上我用来生成Verilog HDL代码的Simulink模型,以及生成的Verilog文件。另外,我附加了一个模拟的屏幕截图,
- 减少管道阶段的数量 或
- 增加时钟频率
大多数情况下,你无法真正加快速度。某些功能需要一段时间来计算。一些算法可以通过使用更多的并行资源来加速,但只能达到一个极限。加法器就是一个很好的例子:你可以使用ripple-carry、carry-look-ahead和更先进的技术,但你不能无限加速。(否则,现在的CPU将以Terra Hz的速度运行) 我怀疑最终你会发现做IEEE-754加法器不需要时间。这可以是兆赫的X个时钟周期。B MHz的时钟或Y时钟周期。但是X乘以A和Y乘以B差不多
你所能做的就是把大量的计算输入到你的管道中,这样每个时钟周期都会有一个新的计算出来。但是延迟仍然存在。您无法从模拟中找到最大工作频率。您需要综合代码,并从中找出最大工作频率。请注意,FPGA设计人员通常会尽量避免使用浮点数,因为它们的速度非常慢,并且会占用大量资源。好的!实际上,我的观点是如何在转换之前使用管道设置