Verilog入门——4选1多路选择器及assign语句表述方式以及详解
module MUX41a (a,b,c,d,s1,s0,y); //定义模块名为MUX41a,并将端口信号都放入端口名表
input a,b,c,d,s1,s0; //定义输入端口信号a,b,c,d,s1,s0
output y; //定义输出端口信号y
wire[1:0] SEL; //定义2元素位矢量SEL为网线型变量wire
wire AT,BT,CT,DT; //定义中间变量,以作连线或信号节点
assign SEL = {s1,s0}; //对s1,s0进行并位操作,即SEL[1]=s1;SEL[O]=s0
assign AT = (SEL==2'D0); //将SEL与0的比较结果赋值给AT
assign BT = (SEL==2'D1); //将SEL与1的比较结果赋值给BT
assign CT = (SEL==2'D2); //将SEL与2的比较结果赋值给CT
assign DT = (SEL==2'D3); //将SEL与3的比较结果赋值给DT
assign y = (a&AT)|(b&BT)|(c&CT)|(d&DT);//4个逻辑信号相或
endmodule