본문 바로가기

Digital Design/논리회로17

[논리회로] Combinational Circuit, Sequential Circuit Combinational Circuit과 Sequential Circuit에 대한 글입니다. Combinational Circuit (조합 논리회로) 특정 시점의 출력이 그 시점의 입력에 의해서면 결정되는 회로입니다. 출력값 = 입력값 Sequential Circuit (순차 논리회로) Feedback을 가진 조합회로 clock에 의해 동기화 상태값을 저장해두고 다시 입력으로 들어가서 다음 상태값과 출력을 결정하는 회로입니다. 출력값 = 입력값 + 상태값 2023. 1. 2.
[논리회로] Multiplexer (Design with Verilog) 이번에 다룰 회로는 Multiplexer, MUX 입니다. MUX는 2^N개의 입력을 N개의 select 신호에 따라 선택하는 모듈입니다. 4 to 1 MUX의 진리표 먼저 보겠습니다. INPUT OUTPUT S0 S1 Y 0 0 I0 0 1 I1 1 0 I2 1 1 I3 Y = s0's1'I0 + s0's1I1 + s0s1'I2 + s0s1I3 이 결과를 게이트로 나타내보겠습니다. ※ Demux Demultiplexer는 MUX와 반대입니다. 1개의 input을 n개의 select 신호를 이용해 2^n개의 출력을 만들어냅니다. 마치 디코더와 같은 모양인데 enable이 1개의 input 역할을 한다고 보면 됩니다. MUX와 DEMUX를 사용하는 이유는, 여러 입력을 하나의 데이터 스트림으로 병합할 수 .. 2023. 1. 2.
[논리회로] Decoder (Design with Verilog) 이번에 다룰 논리회로는 Decoder 입니다. Decoder는 N개의 입력을 해독하여 2^N개의 출력으로 내보내는 역할을 합니다. 2 to 4 Decoder의 진리표부터 보겠습니다. INPUT OUTPUT A0 A1 D0 D1 D2 D3 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 D0 = A0'A1' D1 = A0'A1 D2 = A0A1' D3 = A0A1 위 결과를 게이트로 나타내면 다음과 같습니다. Decoder를 반대로 만들면 Encoder입니다. Encoder는 2^N개의 신호를 N개로 만들어주는 역할을 합니다. Verilog Code Decoder를 Verilog로 설계하였습니다. 이번에는 이전과는 조금 다르게 clock을 이용하여 Synchronous.. 2023. 1. 2.
[논리회로] Full Subtractor (Design with Verilog) Full Subtractor (전감산기) 입니다. 먼저 진리표입니다. INPUT OUTPUT X Y Borrow_in Difference Borrow_out 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 Difference = X ⊕ Y ⊕ B_in Borrow_out = X'Y + YBin + BinX' 이 결과를 바탕으로 회로를 만들어보면 다음과 같습니다. Full Subtractor 역시 마찬가지로 Full Adder에 NOT gate만 추가해 주면 됩니다. 또한 Half Subtractor 두 개로 나누어 표현하여도 됩니다. Verilog Code Full Subtractor를 Verilog로 설계하였.. 2023. 1. 2.
[논리회로] Half Subtractor (Design with Verilog) 이번 게시글은 Half Subtractor (반감산기) 입니다. 먼저, Half Subtractor의 진리표부터 보겠습니다. INPUT OUTPUT X Y Difference Borrow 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 Difference = X ⊕ Y Borrow = X'Y 이것을 Gate로 나타내면 Half Adder에 NOT Gate만 하나 추가해주면 Half Subtractor가 됩니다. Verilog Code Half Subtractor를 Verilog로 설계하였습니다. DUT `timescale 1ns / 1ps module half_subtractor( i_x, i_y, o_diff, o_bor ); input i_x, i_y; output o_diff, o_bor;.. 2022. 12. 30.
[논리회로] Full Adder (Design with Verilog) Full Adder는 Input X, Y에 들어온 Carry_in 까지 합쳐서 더하는 모듈입니다. 이번에도 Verilog를 이용해 Full Adder를 설계하였습니다. 진리표부터 보겠습니다. INPUT OUTPUT X Y Cin Cout Sum 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Half Adder와 다르게 경우의 수가 많아져서 카르노맵을 그려보는 것이 좋습니다. 카르노맵을 그리는 과정은 생략하고 바로 결과를 보면, Sum = X ⊕ Y ⊕ Cin Cout = XY + YCin + CinX 이것을 게이트로 표현한 그림입니다. 중간에 XOR gate와 AND gate가 보이시나요? 맞습니다. Half.. 2022. 12. 29.
[논리회로] Half Adder (Design with Verilog) 첫 논리회로이기 때문에 과정까지 작성하였습니다. Half Adder는 Input인 X와 Y를 더했을 때, 합은 Sum 올림은 Carry로 나타내 줍니다. 먼저 진리표를 보겠습니다. INPUT OUTPUT X Y Carry Sum 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 Half Adder는 간단하기 때문에 따로 카르노맵을 그리지 않아도 쉽게 구할 수 있습니다. Carry의 경우, Input이 모두 1일 때 1이 출력됩니다. 따라서 AND 연산임을 알 수 있겠죠? Carry = XY Sum의 경우 두 Input이 서로 다를 때 1을 출력하고 있습니다. 따라서 XOR 연산임을 알 수 있습니다. Sum = X ⊕ Y = X'Y + XY' 이제 게이트로 회로를 구성해 보겠습니다. Verilog .. 2022. 12. 29.
[논리회로] 여러가지 게이트(Gate) 2 ※ 디지털공학 복습 논리회로를 공부하기 전에 알아두어야 할 기본적인 게이트들입니다. NAND GATE INPUT OUTPUT X Y F 0 0 1 0 1 1 1 0 1 1 1 0 NAND gate는 이름 그대로 NOT + AND 입니다. 따라서 AND gate의 결과를 뒤집어주면 되죠. 두 개의 Input이 모두 1일 때만 0을 출력하는 게이트입니다. 하나라도 0이면 1 출력 NAND gate는 꼭 알아두어야 하는 게이트입니다. 이후에 작성할 내용이지만 간단하게 소개해 드리자면, NOT과 BUFFER를 제외한 모든 게이트 중에 NAND 게이트의 면적이 가장 작기 때문입니다. 반도체는 집적도가 굉장히 중요하므로 면적을 줄이기 위해 NAND 게이트로 합성을 합니다. NOR GATE INPUT OUTPUT X.. 2022. 12. 29.