2013-08-21 50 views
4

我有一个参数如下:的Verilog:非整数参数

parameter PARAM = 7'd69; 

当我试图将其值分配给下面的寄存器:

reg [6:0] r; 

像这样:

r <= PARAM; 

我收到综合警告:

警告(10230):...与尺寸32截断值以匹配目标的大小(7)

-

这我假定是因为PARAM被解释为一个整数,因为它被定义为一个参数。 有什么办法将PARAM定义为7位宽?

我总是可以将它作为7位输入传递给我的模块,但我想知道是否有更优雅的解决方案。

回答

9

您可以定义参数如下:

parameter [6:0]PARAM = 7'd69; 

你告诉你的编译器PARAM大小是7位的方式。

+0

非常感谢。就像正在向其他人展示的那样 - 无论何时实例化模块,传递给参数的值也必须具有相同的位宽度以避免警告。 – MikeGold