问题描述
在XST中编译Verilog设计时,可能会出现以下错误:
“错误:HDLCompilers:90 – <file> .v line xx模块’C’的实例’A’中的参数分配太多”
解决/修复方法
参数覆盖可以与实例化一起使用,以覆盖在实例化的子模块中分配的参数值。您可以使用#符号执行此操作,如下所示:
<代码>
lower#(8)u1(.i(data),. o(value));
</代码>
或者defparam声明:
<代码>
降低u1(.i(数据),。o(值));
defparam u1.myparam = 8;
</代码>
如果使用第一种方法且子模块没有任何或足够的参数,则会出现上面列出的错误。这最常见于Xilinx库中RAM或LUT组件的实例化,但也可以很容易地与用户定义的子模块一起存在。
要避免此问题,请确保子模块具有正确数量的参数。请注意,XST(从6.1i开始)在“unisim_comp.v”库中还没有参数。要将INIT值分配给RAM或LUT组件,应采用标准XST属性语法,如(Xilinx答复11069)中所述 。
没有回复内容