限制 Verilog 参数

问题描述 投票:0回答:1

我正在编写一个简单的Verilog模块,需要对其参数值进行限制。我的意思是只允许将某些值分配给通用参数。我知道这可以在 VHDL 中完成,Verilog 中是否有等效的或解决方法?我问这个问题是因为 Xilinx 编译器似乎看到了一个极端情况值,如果我的参数在某个范围内,则该值永远不会出现。

我尝试检查初始块中的参数,如果超出允许的范围,则执行 $fatal 。这似乎是一个非常肮脏的解决方案......

verilog system-verilog fpga xilinx
1个回答
0
投票

如果您可以使用 Vivado 支持的 SystemVerilog,则使用生成 if 块很容易。

module top;
  dut #(1) u1 ();
endmodule
  
module dut;
  parameter p;
  if (!( p inside {[2:3]}) ) $fatal("sorry");
endmodule
© www.soinside.com 2019 - 2024. All rights reserved.