D latch, Master-Slave D flip-flop 구현 (gate level)
D latch는 논리회로로는 아래와 같은 회로도처럼 구현할 수 있다. 진리표의 경우 아래와 같으며, E는 CLK으로 취급할 수 있다. CLK로 취급하는 이유는 나중에 설명할 Master-Slave에서 E를 CLK로 사용하기 때문이다. 두 경우 전부 다 구현해보겠다. module dlatch1( // nand only input D, CLK, output Q, Q_ ); wire R, S; nand na0(S, D, CLK); nand na1(R, S, CLK); nand na2(Q, Q_, S); nand na3(Q_, Q, R); endmodule module dlatch2( // and, or, not input D, CLK, output Q, Q_ ); wire R, S; and a0(S, ~D, ..
MUX
4-to-1 MUX를 예시로 구현했다. 4-to-1 MUX는 2bit select 변수 값에 따라 in0, in1, in2, in3 중 하나를 선택하여 출력으로 내보내는 회로이다. 일반적으로 select의 2진수 값이 0, 1, 2, 3일 경우 각각 in0, in1, in2, in3를 선택하게 된다. 순서대로 case, if를 이용한 설계와 조건 연산자 ? : 를 이용한 설계 예시다. module mux0( input [1:0] in0, in1, in2, in3, // bit size can be changed input [1:0] select, output [1:0] out ); reg [1:0] mux_out; assign out = mux_out; always @ (*) begin // always..