디지털회로설계/SoC,ASIC 설계
[개인스터디] Mux using NAND
rlaghrud1234
2023. 1. 2. 15:45
※시작에 앞서, 해당 내용은 서적 "VHDL과 반도체 회로설계"의 내용을 토대로 작성됐다.
※나는 Verilog HDL 코드로 작성해서 스터디를 진행했다.
1. Mux, multiplexer
회로 자체를 여러 개의 회로로 나누고 계층 구조화해서 보기 편하고 쉽게 만들게 하는 계층 구조 표현을 한다고 하는데,
이 때 기능 별로 회로를 나누고, 한 번에 묶어줌으로써 보다 수월하게 회로 설계를 할 수 있다고 한다.
이 때 MUX 계층 구조를 사용한다.
2. Mux with NAND
1번의 회로를 NAND로 바꿔주는 이유는 CMOS 공정의 최소 단위가 NOR 혹은 NAND이기 때문이다. NAND로 나타낸 회로는 다음과 같다.
3. Verilog HDL
//MUX
module Mux_NAND(A, B, Sel, D0);
input A;
input B;
input Sel;
output D0;
wire invert_wire;
wire A_temp;
wire B_temp;
invert invert1(Sel, invert_wire);
N_AND N_AND1(A, invert_wire, A_temp);
N_AND N_AND2(B, Sel, B_temp);
N_AND N_AND3(A_temp, B_temp, D0);
endmodule
//NAND
module N_AND(A, B, Y);
input A;
input B;
output Y;
assign Y = ~(A & B);
endmodule
//NOT
module N_AND(A, B, Y);
input A;
input B;
output Y;
assign Y = ~(A & B);
endmodule