【发布时间】:2016-01-19 06:35:36
【问题描述】:
我写信是想问如何在 Verilog 中声明一个全局变量。 parameter 和 define 关键字声明的内容本质上是常量,而不是变量。
我需要的是以下内容:
`define Glitch
module Cell ( Shift_In, Shift_Out_Screwed, Clk );
input Clk, Shift_In;
output Shift_Out_Screwed;
wire Shift_Out_Screwed;
wire Shift_Out;
Inverter INV1 ( Shift_In, Shift_Out, Clk );
assign Shift_Out_Screwed = Glitch ? ~Shift_Out : Shift_Out
endmodule
这是一个非常简单的故障插入。当Glitch==1时,原输出反转;当Glitch==0 时,原始输出保持不变。我希望在 external 模拟 testbench.v 文件中定义信号 Glitch,尽管它已在此处声明和使用,并且我不想想要添加信号Glitch 到模块cell 的输入端口列表。这是因为我的实际电路是一个非常复杂的电路,如果我在某个单元格上添加一个输入端口,将会有很多其他单元格受到影响。
有谁知道如何在 Verilog 中声明一个全局变量?
【问题讨论】:
-
请说明是否要合成。
-
不,它不必是可合成的......
-
您可能希望通过$value$plusargs 传递
Glitch的值。大多数模拟器都支持这个内置功能。 Here's an example -
非常感谢 e19293001!我会试试。只是我的好奇心:如果我需要它可以合成怎么办?...
-
如果
Glitch需要被testbench 覆盖,那么parameter是综合性的合适选择。否则,传递命令行变量也是一种替代方法。也可以在全局空间中简单地声明reg Glitch='b0。