执行综合时如何将参数传递给verilog模块?

How to pass parameters to a verilog module when performing synthesis?

我有一个参数化的 verilog 模块,其位宽根据 `define WIDTH 中给定的值而变化。

但是,我希望能够在使用设计编译器进行综合期间通过传入参数以某种方式更改 WIDTH 的值。

我想知道是否有办法做到这一点?

例如,我希望能够为设计编译器的输入文件编写以下内容:

analyze -format sverilog -define WIDTH 10 myverilogfile.v

是的,大多数编译器都会让你这样做。它是特定于工具的,但是没有标准规范。最常见的格式是 +define+WIDTH=10;你将不得不检查你的编译器的文档或帮助(或实验)

对于 Design Compiler,格式为:

analyze -format sverilog -define WIDTH=10,DEPTH=128 myverilogfile.v