【发布时间】:2013-05-24 23:04:08
【问题描述】:
我有一个大型 Verilog 项目,我正在将其综合到 xilinx fpga 上并在 modelsim 中进行仿真。有几个模块我想模拟所述模块的一个版本并合成另一个。例如,我有一个参数化的复位去抖动器,它计算几毫秒。显然,对于模拟来说,这很烦人,所以在我模拟之前,我将去抖动计数更改为 10 个时钟周期。目前我有一个标志(`define SIMULATION),我将其注释掉以进行综合。然后在我的模块中,我利用像'ifdef 这样的编译器指令来编译不同版本的 deouncer,具体取决于综合/模拟:
`ifdef SIMULATION
button_debouncer #(1,5, 24)
`else
button_debouncer #(1,12000000,24)
`endif
resetdebounce(/**/
// Outputs
.debounced (reset),
// Inputs
.clk (clk),
.button (~reset_button));
虽然这可行,但每次我从 modlesim 切换到 ISE 时,我都需要注释掉“定义仿真”。我经常忘记,浪费时间等等。
是否有一种自动方法来确定正在使用的工具?例如,我可以说类似ifdef XILINX orifdef MODELSIM 而不是我的`ifdef SIMULATION hack?非常感谢!
【问题讨论】:
-
@CliffordVienna 和 dwikle 解决方案都运行良好。根据您的工具链,一个或两个解决方案都可以很好地工作。
标签: simulation verilog fpga xilinx modelsim