//74HC138测试平台代码 module test_HC138; reg e1,e2,e3;
8
reg [2:0]a; wire [7:0]y;
HC138 u2(e1,e2,e3,a,y); initial begin a=0;
repeat(20)
#20 a=$random; end initial begin e1=1; #10 e2=1; #10 e3=0; #10 e1=0; #10 e2=0; #10 e3=1; end endmodule
//74HC153代码
module HC153(S,I1,I2,E1,E2,Y1,Y2); input [1:0]S; input [3:0]I1; input [3:0]I2; input E1,E2; output Y1,Y2; reg Y1,Y2;
always@(S,I1,I2,E1,E2) begin if(E1) Y1=0; else
Y1=I1[S]; if(E2) Y2=0; else
Y2=I2[S]; end endmodule
//74HC153测试平台代码 module test_HC153; reg [1:0]s; reg[3:0]i1;
9
reg[3:0]i2; reg e1,e2; wire y1,y2;
HC153 u3(s,i1,i2,e1,e2,y1,y2); initial begin e1=1; e2=1;
#15 e1=0;e2=0; end initial begin
s=0;i1=0;i2=0;
#10 i1=4'b1001;i2=4'b1100; #10 s=1; #10 s=2; #10 s=3; end endmodule
//74HC85代码
module HC85(A,B,I,Q); input [3:0]A,B; input [2:0]I; output [2:0]Q; reg [2:0]Q; always@(A,B) begin
if(A>B) Q=3'b100; else if(A
else if(I==3'b101) Q=3'b000; else if(I==0) Q=3'b101; else Q=I; end endmodule
//74HC85测试平台代码 module test_HC85;
10
reg [3:0]a,b; reg [2:0]i; wire [2:0]q;
HC85 u4(a,b,i,q); initial begin i=0; repeat(4)
#10 i=$random; end initial begin
a=3;b=1; #10
a=1;b=4; #10
a=0;b=0; #10
a=6;b=1; #10
a=5;b=9; end endmodule
//74HC283代码
module HC283(CIN,A,B,COUT,S); input CIN; input [3:0]A,B; output COUT; output [3:0]S; reg COUT; reg [3:0]S;
always@(CIN,A,B) begin
{COUT,S}=CIN+A+B; end endmodule
//74HC283测试平台代码 module test_HC283; reg cin; reg [3:0]a,b; wire cout; wire [3:0]s;
HC283 u5(cin,a,b,cout,s);
11