wanna be dev 🧑‍💻

Cool 하고 Sick한 개발자가 되고 싶은 uzun입니다

A.K.A. Kick-snare, hyjhyj0901, h_uz99 solvedac-logo

전체 글 174

논리회로설계 [13] Register Cell Design & Single Bus

본 포스팅은 Logic and Computer Design Fundementals (Pearson, 2013)의 내용을 다루고 있습니다. 저번 포스팅에는 BCD Counter와 Arbitary Counter에 관하여 알아보았다. 이번 포스팅에서는 다양한 논리연산을 수행하는 레지스터 회로와 Single Bus에 대해 알아보도록하자. Register Cell Design AND EXOR OR과 같은 논리 연산하는 레지스터를 설계해보자. 3가지 연산중 한 가지만을 수행해야할 것이며, 신호가 모두 0이라면 상태가 변하지 않는 동작을 한다고 하자. Control Unit 부에서 AND EXOR OR 연산의 신호를 Datapath에 전달하고, datapath에서는 레지스터 transfer을 실행한다. 먼저 게이트 ..

논리회로설계 [12] BCD & Arbitrary Counter

본 포스팅은 Logic and Computer Design Fundementals (Pearson, 2013)의 내용을 다루고 있습니다. 저번 포스팅에서는 Counter와 RTL 설계에 대해 알아보았다. 이번 포스팅에서는 BCD counter와 Arbitrary Counter에 관하여 알아보도록 하자. BCD Counter 자 BCD 카운터란 무엇일까. 이름에서 짐작할 수 있듯이 digit 0 to 9 을 바이너리 비트로 나타내는 카운터이다. 레지스터 비트에 저장하는 값이 0에서 9의 상태를 카운팅하는 동작을 수행한다. 0에서 9까지의 데이터를 저장할 것임으로 0000 에서 1001 4개의 레지스터를 필요로 한다. Load 시에는 모두 0으로 초기화 할 수 있도록 ground에 연결되어 있다. 헌데 살펴..

논리회로설계 [11] Counter & RTL Design

본 포스팅은 Logic and Computer Design Fundementals (Pearson, 2013)의 내용을 다루고 있습니다. 저번 포스팅에서는 레지스터 전달을 위한 심볼들과, 여러가지 종류의 레지스터 회로에 대해 알아보았다. 이번 포스팅에서는 입력이 없는 레지스터 회로 Counter에 대해 알아보도록 하겠다. Counter Ripple Counter Counter는 저번 포스팅에서 보았던 transfer로 연산을 하는 회로들과 같은 레지스터 회로이다. 하지만 counter는 입력이 없이 매 clock 사이클마다 1 식 증가하는 연산을 한다. 위 그림만 봐서는 왜 사이클마다 1씩 증가하는지 이해가 쉽지 않을 것이다. 회로를 자세히 살펴보자. 먼저 가장 선두의 R0 레지스터를 보면 출력값 ^Q0..

논리회로설계 [10] Register Circuit of Operations

본 포스팅은 Logic and Computer Design Fundementals (Pearson, 2013)의 내용을 다루고 있습니다. 지난 포스팅까지 레지스터와 레지스터 전달에 대하여 알아보았다. 이번시간에는 심볼과 연산자 표기, 그리고 여러가지 연산을 수행하는 레지스터 회로를 살펴보자. Symbols for Register Transfers Basic Symbol 레지스터 전달을 심볼로서 표기할 때는 여러가지 기호들이 사용된다. 보통 알파벳 레터와 숫자로 레지스터를 표기하고, 그 둘을 잇는 화살표로 전달자와 피전달자를 구분한다. 만약 comma로 쓰여있다면 동시에 수행, 즉 같은 clock cycle에 같이 연산되는 전달이다. []의 경우 메모리를 참조한다는 뜻이다. Arithmetic 위와 같은 ..

논리회로설계 [9] Register & Register Transfer

본 포스팅은 Logic and Computer Design Fundementals (Pearson, 2013)의 내용을 다루고 있습니다. 지난 포스팅까지 순차회로와 FSM 설계에 대하여 알아보았다. 이번시간에는 레지스터와 그 Transfer에 대하여 알아보도록 하자. Register 레지스터란, 소프트웨어의 변수 같이 하드웨어에서 임시로 어떠한 데이터를 저장해놓을 수 있는 공간이다. 단순하게 말하자면 n비트를 묶어두는 (저장하는) n개의 D flip-flop으로 이루어진 회로이다. 4-bit Register 이해를 위해 4 bit 레지스터 회로를 살펴보자. 4개의 D flip-flop으로 이루어져 있으며 4비트 입력과 4비트 출력이 존재한다. 모두 같은 clock에 동기화 되어있고 초기화를 위한 Res..

논리회로설계 [8] FSM & State Assignment

본 포스팅은 Logic and Computer Design Fundementals (Pearson, 2013)의 내용을 다루고 있습니다. 지난 포스팅에서는 상태를 저장하는 Latch와 Flip-Flop을 이해하고 순차회로를 이해하였다. 순차회로를 베이스로 하는 State Machine인 Mealy 머신과 Moore 머신도 알게되었다. 이번 시간에는 상태머신의 그래프 표현과 유한상태머신 FSM에 관하여 알아보도록 하자. State Transtion Diagram 이전까지는 완성된 순차회로의 스키메틱을 보고 상태표로 회로를 나타내었다. 이러한 State machine은 상태 테이블 대신 그래프 다이어그램으로 더 이해하기 쉽게 표현해볼 수 있다. Mealy Machine 저번 포스팅에서 다루었던 Mealy 머..

논리회로설계 [7] Latch & Flip-Flop

본 포스팅은 Logic and Computer Design Fundementals (Pearson, 2013)의 내용을 다루고 있습니다. 지난 포스팅까지는 계속 Combination 조합회로에 관하여 알아보았다. 이번에는 조합회로와 다른 구조와 특성을 가지는 Squential 순차회로에 관하여 알아보겠다. Sequential Circiut 순차 회로는 Combination circut 조합회로와는 다른 특성을 가지고 있다. 조합회로는 같은 데이터의 입력이라면 항상 같은 값을 출력한다. 하지만 순차 회로는 조합회로의 모듈 외 추가로 State 상태를 저장하는 저장소가 존재한다. 그러한 저장소는 조합회로 부의 출력을 입력으로 받으며, 출력으로 다시 회로의 입력으로 들어가는 형태이다. 즉, 이전의 연산 과정으..

논리회로설계 [6] Iterative Circuits

본 포스팅은 Logic and Computer Design Fundementals (Pearson, 2013)의 내용을 다루고 있습니다. Iterative Circuit Iterative Circuit이란? 동일회로가 반복적으로 연결되어 있는 형태의 회로를 뜻한다. 위 회로를 보면 Cell 회로 n개가 연속적으로 연결되어 있는 상태이므로 iterative 회로라고 할 수 있다. Half Adder Half Adder (반가산기)란 두 입력을 더한 값을 binary(2bit)로 출력하는 회로이다. 0, 1, 2, 3 총 4가지 경우에 대한 출력을 가진다. 진리표를 그려 스키메틱으로 나타내면 아래와 같다. Half Adder 이름이 반가산기인 이유는 올림수(carry)를 생각하지 않는 구조이기 때문이다. 멀..

논리회로설계 [5] Encoder & Multiflexer

본 포스팅은 Logic and Computer Design Fundementals (Pearson, 2013)의 내용을 다루고 있습니다. Encoder Encoder란 Decoder의 반대 역할을 하는 회로하고 생각하면 된다. Octal to Binary Encoder 입력들 중 한개의 입력만 1이고 나머지는 0인 경우들을 생각해보자. 각 입력의 첨자에 해당하는 digit 값을 binary로 바꾸어 A(3bit)를 통해 출력하는 것과 같다. 입력이 8개 이므로 한개만 1인 경우 외에도 수많은 경우가 있는데, 나머지는 제대로 encoding 되지 않으며, 할 필요가 없다. 그 경우에는 출력을 don't care로 나타낸다. Priority Encoder 위에서 말한 한개의 입력만 1인 경우 외 othes를..

논리회로설계 [4] Decoder & Adder

본 포스팅은 Logic and Computer Design Fundementals (Pearson, 2013)의 내용을 다루고 있습니다. Hirarchical Design 다음과 같은 논리 회로가 있다고 치자. 4비트 입력 A와 B를 비교하며 A와 B가 같다면 1을 출력하고, 같지 않다면 0을 출력한다. 하지만 이를 설계하기 위하여 진리표를 그리기에는 경우의 수가 너무 많다. 총 8개의 입력이 있으므로 2의 8승 = 256행의 진리표를 그려야 한다. A0는 B0와, A1은 B1과 각각 비교하면 되는데 더 효율적이게 나타낼 순 없는가? 위에서 말했듯이 각 비트에 맞는 수 2가지를 각각 비교하면 된다. 이를 위해 두 입력이 같은지 비교하는 sub-module MX를 사용한다. MX는 An와 Bn을 비교하고,..

728x90