0
如果我有这样定义的模块:行为的Verilog:创建多个复用器与1个模块
module mux_1x2(in, out, select);
,我需要他们的32,我都知道,使用结构编码我可以这样做:
mux_1x2 mux01(in[0], out[0], select);
mux_1s2 mux02(in[1], out[1], select);
etc...
但是,我怎样才能使用行为编程在某些循环中创建其中的32个,而无需明确定义每个循环呢?
编辑:只为背景,我试图让一个2级的64位进位选择加法器
哦,我忘了我可以只做一些他们。 gidx代表什么?对于参数化版本,多路复用器模块中的#(参数WIDTH = 1)必须是我要使用的数量还是应该保持完全一样? – Austin
@Austin'gidx'只是Greg用于'generate'循环的变量,它只是经过了0到31的数字(它并不重要,你称之为格雷格只是明确表示它是一个'g'enerate 'i'n'd'e'x')。 '#(参数WIDTH = 1)'是WIDTH参数的声明,用于扩展多路复用器输入和输出的位数(因此您可以将其视为1-位2x1多路复用器)。 '= 1'只是给这个参数一个默认值,这样如果你没有指定它(就像Greg用'#(32)'实例化的那样),它将是一个1位宽的多路复用器。 – Unn
噢,好的,谢谢! – Austin