在Verilog中,针对wire类型变量进行逻辑操作,必须通过assign语句,主要用来将一个信号与一个表达式相连接。
详细举例如下:
wire out1;
wire a;
wire b;
assign out1 = a & b;
重点:assign语句中,输出out1必须是wire类型。
同时,assign还可以进行一些条件赋值语句
assign out1 = (sel == 1'b1) ? a:b;
右边这个表达式其实就相当于if else 语句,就表示,如果sel 这个信号为1'b1,
那么此时assign = a; 否则,assign = b;
这个表达式还可以进行嵌套:
assign out1 = (sel == 2'd0) ? a :
(sel == 2'd1) ? b :
(sel == 2'd2) ? c : d;
这个就表示,如果sel = 2'd0,此时out1 = a;
如果sel = 2'd1 ,此时out1 = b;
如果sel = 2'd2 ,此时out1 = c;
如果上面条件都不符合 out1 = d;