如何优化(减少)由给定 Simulink 模型的 MATLAB HDL CODER 插件生成的 verilog HDL 代码(硬件)的延迟?

how to optimize (reduce) the latency in the verilog HDL code (hardware) generated by the MATLAB HDL CODER add-on from a given Simulink model?

提前致谢,

我有一个简单的 Simulink 模型,它接受 IEEE-754 格式的 32 位数字并添加相同的数字,这再次以 32 位宽的 IEEE-754 格式给出输出。我使用了 MATLAB 的 HDL CODER 附加组件并为此生成了 Verilog HDL 代码。当我为此编写测试台时,我发现从这段代码中获得的延迟是 100ns。但是有没有办法可以将其进一步降低,比如说 10ns。

下面我附上了我用来生成 Verilog HDL 代码的 Simulink 模型,以及生成的 Verilog 文件。此外,我附上了模拟的屏幕截图,以防您不想浪费时间 运行 脚本

Link to download the files

my point is how to use pipeline settings before conversion

我假设 "pipeline settings" 是一个 MATLAB HDL 生成器参数。

基本上你所做的是"try":使用流水线设置并综合代码。如果你有闲暇,你可以:

  • 减少管道级数。

  • 提高时钟频率。

(对于负松弛,您使用逆向方法)

现在事情变得棘手了:
大多数时候你不能真正加快速度。某个功能需要时间来计算。一些算法可以通过使用更多的并行资源来加速,但只能达到一个极限。加法器就是一个很好的例子:你可以使用纹波进位、进位先行和更高级的技术,但是你不能无限加速。(否则现在的 CPU 会是 运行 在 Terra Hz)

我怀疑最后你会发现做你的 IEEE-754 加法器需要 T 时间。那可以是 A MHz 的 X 个时钟周期。 B MHz 的时钟或 Y 时钟周期。但是 X 乘以 A 与 Y 乘以 B 大致相同。

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