1.组合逻辑代码设计和方针
1.1 二选一逻辑
//二选一逻辑,y的值由sel决定:sel为0时,y的值为a与b;sel为1时y的值为ab异或
module fn_sw( a , b , sel , y);
input a;
input b;
input sel;
output y;
assign y=sel?(a^b):(a&b); //"^"按位异或 A=010100,B=100010,则A^B=110110
//assign中的=就是等号的意思
/*always语句块实现
reg y;
always@(a or b or sel)//敏感变量,组合逻辑变量
begin
if(sel==1)begin
y<=a^b;
end
else begin
y<=a&b;
end
end
*/
endmodule
test bench:
`timescale 1ns/10ps
module fn_sw_tb;
reg a , b , sel;
wire y;
fn_sw fn_sw(
.a(a),
.b(b),
.sel(sel),
.y(y)
);
initial begin
a<=0;b<=0;sel<=0;
#10 a<=0;b<=0;sel<=1;
#10 a<=0;b<=1;sel<=0;