|

楼主 |
发表于 2010-12-29 09:42:38
|
显示全部楼层
我寫的是一對二mux 再加上兩個一對二mux 所以輸出是四個bit
我最後用了兩個task才完成
請版主看看 可能是我之前想寫什麼沒跟您說清楚 造成你的誤解吧
module mux (Din,s,y);
input Din;
input [1:0]s;
output [3:0]y;
reg [1:0]x;
reg [3:0]y;
always@(s) begin
mul2(Din,s[1],x[1:0]);
end
task mul2;
input D;
input S;
output [1:0]y;
case (S)
1'b0: y={1'b0,D};
1'b1: y={D,1'b0};
default: y={1'b0,1'b0};
endcase
endtask
always @(s or x) begin
demu12(x[0],s[0],y[1:0]);
demu12(x[1],s[0],y[3:2]);
end
task demu12;
input D;
input Si;
output [1:0]y;
case (Si )
1'b0: y={1'b0,D};
1'b1: y={D,1'b0};
default: y={1'b0,1'b0};
endcase
endtask
endmodule |
|