verilog问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 19:52:54
在对多路选择器进行Verilog描述时,输出out为什么要定义成寄存器类型的数据而不是线型的,输入为什么要定义成线型的,却不定义成寄存器类型的呢?希望哪位大虾帮我一下,谢谢喽~
程序是这样的:
module mux(out,a,b,c,d,sel)
output[3:0] out
input[3:0] a,b,c,d;
input[1:0] out;
always@(a or b or c or d or sel)
case(sel)
2'b00: out=a;
2'b01: out=b;
2'b10: out=c;
2'b11: out=d;
default: out=4'bx;
endcase
endmodule

你就记着,在过程快中赋值的变量要定义为reg,在连续赋值语句中赋值的变量要定义为wire。不定义,编译器会默认为wire,输入一定是wire。
望采纳

应该把out定义为reg型 很简单,因为你用always赋值语句所以就要用reg型