首先看看用逻辑功能直接实现的四选一数据选择器
语句如下:
module sxy(
a,b,c,d,s1,s0,y
);
input a ;
input b ;
input c ;
input d ;
input s1 ;
input s0 ;
output y ;
reg y ;
always @(*)begin
case ({s1,s0})
2'b00: y <= a;
2'b01: y <= b;
2'b10: y <= c;
2'b11: y <= d;
endcase
end
endmodule
测试结果如下:
今天的主要目的是用逻辑门实现四选一是数据选择器
四选一数据选择器的真值表如下:
根据真值表可以用四个三输入与门和一个四输入或门来实现我们需要的四选一数据选择器
语句如下:
module sxy(
a,b,c,d,s1,s0,y
);
input a ;
input b ;
input c ;
input d ;
input s1 ;
input s0 ;
output y ;
wire y ;
wire a1 ;
wire b1 ;
wire c1 ;
wire d1 ;
and (a1,a,~s1,~s0);
and (b1,b,~s1,s0);
and (c1,c,s1,~s0);
and (d1,d,s1,s0);
or (y,a1,b1,c1,d1);
endmodule
测试结果如下: