컴퓨터구조 교재에 나와있는 다음 회로를 VHDL로 설계하시오.</p>
그림2.12 기본적인 논리연산회로(1비트)
세부사항 1. 4*1MUX를 별도의 모듈로 설계하고, 이것을 부품으로 사용하여 전체회로를 설계하시오.
2. 테스트를 위한 입력값은 S1,S0 및 A,B의 모든 비트패턴의 값(16개)을 설정하시오.</span>
`timescale 1ps / 1ps
module test;
wire E1;
reg Ai;
reg Bi;
reg S1;
reg S0;
Basic_logic_circuit logic_diagram(Ai,Bi,S1,S0,E1);
initial
begin //SIGNAL S1
S1 = 1'b0;
#800
S1 = 1'b1;
#800
;
end
initial
begin //SIGNAL S0
S0 = 1'b0;
#400
S0 = 1'b1;
#400
S0 = 1'b0;
#400
S0 = 1'b1;
#400
;
end
initial
begin //SIGNAL Ai
Ai = 1'b0;
#200
Ai = 1'b1;
#200
Ai = 1'b0;
#200
Ai = 1'b1;
#200
Ai = 1'b0;
#200
Ai = 1'b1;
#200
Ai = 1'b0;
#200
Ai = 1'b1;
#200
;
end
initial
begin //SIGNAL Bi
Bi = 1'b0;
#100
Bi = 1'b1;
#100
Bi = 1'b0;
#100
Bi = 1'b1;
#100
Bi = 1'b0;
#100
Bi = 1'b1;
#100
Bi = 1'b0;
#100
Bi = 1'b1;
#100
Bi = 1'b0;
#100
Bi = 1'b1;
#100
Bi = 1'b0;
#100
Bi = 1'b1;
#100
Bi = 1'b0;
#100
Bi = 1'b1;
#100
Bi = 1'b0;
#100
Bi = 1'b1;
#100
;
end
initial
#1600
$finish;
endmodule
//** Basic_logic_circuit ************************
module Basic_logic_circuit (Ai,Bi,S1,S0,Ei);
output Ei;
input Ai,Bi,S1,S0;
wire w1,w2,w3,w4;
and (w1,Ai,Bi);
or (w2,Ai,Bi);
xor (w3,Ai,Bi);
not (w4,Ai);
Mux_4to1 mux4_1(w1,w2,w3,w4,S1,S0,Ei);
endmodule
//** Mux_4to1( ************************
module Mux_4to1(I0,I1,I2,I3,S1,S0,Y);
output Y;
input I0,I1,I2,I3,S1,S0;
wire w1,w2,w3,w4,w5,w6;
not (w6,S1);
not (w5,S0);
and (w1,I0,w6,w5);
and (w2,I1,w6,S0);
and (w3,I2,S1,w5);
and (w4,I3,S1,S0);
or (Y,w1,w2,w3,w4);
endmodule