본문 바로가기

Digital Design8

[논리회로] Register (Design with Verilog) 디지털회로에서는 연산을 할 때 Register에 값을 저장하곤 합니다. 오늘은 간단한 레지스터를 게이트로 나타내보고 verilog로 설계하려고 합니다. 4 bit 병렬 register입니다. 가운데에 있는 combinational 회로는 MUX와 유사하게 보아도 됩니다. Load 신호에 따라 D0~3이 R0~3에 저장됩니다. Verilog Code 4bit Register를 Verilog로 설계하였습니다. Register를 memory처럼 사용하였습니다. 추후에 SRAM을 다룰 때 다시 한 번 다룰건데 미리 코드를 봐두시면 좋을 것 같아요. Read와 Write로 memory에 값을 쓰거나 읽었습니다. DUT `timescale 1ns / 1ps module register4b( i_clk, i_rese.. 2023. 1. 7.
[논리회로] Latch와 FlipFlop의 차이 Latch와 Flipflop에 대한 글입니다. Latch clock이 High이거나 Low일 때 값을 update 입력 신호가 바로 출력으로 전달되므로 noise와 glitch에 취약합니다. ※ Verilog 설계 시 Latch가 생성되지 않도록 하는 것이 중요합니다. 합성 후 Latch가 생성되지 않도록 하려면, if 문의 경우 else로 끝나도록 하고 case문의 경우 default를 써주는 등 모든 경우에 대해서 값을 가지도록 작성해야 합니다. FlipFlop clock의 rising edge 또는 falling edge에서 값을 update FlipFlop의 경우 edge에서만 update하므로 Latch 비해 glitch 영향을 덜 받습니다. Latch와 Flipflop은 많은 사람들이 혼용해서.. 2023. 1. 2.
[논리회로] Combinational Circuit, Sequential Circuit Combinational Circuit과 Sequential Circuit에 대한 글입니다. Combinational Circuit (조합 논리회로) 특정 시점의 출력이 그 시점의 입력에 의해서면 결정되는 회로입니다. 출력값 = 입력값 Sequential Circuit (순차 논리회로) Feedback을 가진 조합회로 clock에 의해 동기화 상태값을 저장해두고 다시 입력으로 들어가서 다음 상태값과 출력을 결정하는 회로입니다. 출력값 = 입력값 + 상태값 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) 1 ※ 디지털공학 복습 논리회로를 공부하기 전에 반드시 알아두어야 할 기본적인 게이트들입니다. NOT GATE INPUT OUTPUT X F 0 1 1 0 Input이 0이면 1을 출력하고, Input이 1이면 0을 출력하는 게이트입니다. 입력과 반대로 출력 BUFFER GATE INPUT OUTPUT X F 0 0 1 1 Input이 0이면 0을 출력하고, Input이 1이면 1을 출력하는 게이트입니다. 입력을 그대로 출력 AND GATE INPUT OUTPUT X Y F 0 0 0 0 1 0 1 0 0 1 1 1 두 개의 Input이 모두 1일 때만 1을 출력하는 게이트입니다. 둘 다 1이면 1 출력 OR GATE INPUT OUTPUT X Y F 0 0 0 0 1 1 1 0 1 1 1 1 두 개의 In.. 2022. 12. 29.
첫 글 안녕하세요. 취업 준비를 하면서 공부했던 내용을 정리해 놓은 블로그입니다. 개인적으로 공부한 것이기 때문에 신빙성이 높지 않습니다. 그동안 무엇을 했는지 정리할 필요가 있겠다 싶어서 개설하였습니다. 다들 취업 준비 힘내세요! 2022. 12. 29.