问题描述
module mux2to1 #(parameter w = 4) (output [w-1:0] O,input [w-1:0] i0,i1,input Sel);
assign O = (Sel)? i1 : i0;
endmodule
module M1 #(parameter n = 4) (input [n-1:0] A,input F,output [n+1:0] B);
mux2to1#(n+2) mux (B,XXX,F);
endmodule
在 XXX 中,我想为其中一个放全 1,而对于另一个,我想放 0 后跟一个 1。
如何做到这一点?
解决方法
您可以使用复制的连接运算符来构造一个常量:
mux2to1 #(n+2) mux (B,{(n+2){1'b1}},{{(n+1){1'b0}},1'b1},F);
{(n+2){1'b1}}
创建一个 n+2
1'b1
位的常量。由于 n
为 4,{(n+2){1'b1}}
与 {6{1'b1}}
相同,6'b11_1111
与 {(n+1){1'b0}}
相同。
5'b0_0000
与 1'b1
相同,然后只需连接一个 {{1}} 即可。