VERILOG
8:1멀티플렉서
이제팔
2023. 4. 19. 09:39
8:1 멀티플렉서를 Verilog코드로 구현 후 Simulation 까지 진행해보도록 하겠습니다.

위 회로도를 참고하여 코드를 짜보겠습니다.
VERILOG_CODE

`timescale 1ns / 1ps
module mux_8_1(
input [7:0] D,
input [2:0] S,
output F
);
wire [2:0] Sbar;
wire [7:0] WD;
not(Sbar[0], S[0]);
not(Sbar[1], S[1]);
not(Sbar[2], S[2]);
and(WD[0], D[0], Sbar[2], Sbar[1], Sbar[0]); // s입력이 000일때 D0가 나오게된다.
and(WD[1], D[1], Sbar[2], Sbar[1], S[0]);
and(WD[2], D[2], Sbar[2], S[1], Sbar[0]);
and(WD[3], D[3], Sbar[2], S[1], S[0]);
and(WD[4], D[4], S[2], Sbar[1], Sbar[0]);
and(WD[5], D[5], S[2], Sbar[1], S[0]);
and(WD[6], D[6], S[2], S[1], Sbar[0]);
and(WD[7], D[7], S[2], S[1], S[0]);
or(F, WD[0], WD[1], WD[2], WD[3], WD[4], WD[5], WD[6], WD[7]);
endmodule
SIMULATION
simulation을 돌려보겠습니다.
D의 Force Clock은 100ns부터 100씩 증가하게하여 D[7]이 800ns까지의 값을 주었으며
S는 5000ns부터 10000ns, 20000ns까지의 값을 주었습니다.
그 후 10ms만큼 RUN 하였습니다.
출력이 잘 나온것을 확인하였습니다.
