본문 바로가기

Computer Science/논리설계

Introduction

1. Process of Design

 

Design -> Implement -> Debug

 

Functional Specification + Performance Constraints => Design Specification

1-1. Design

<step of Design>

 

1) English language

2) Functional description(Flow chart)

3) Structural description

4) Physical description(design terms of building block)

 

1-2. Implementation

Implementaion as Assembly

1. Top Down Design => 복잡한 기능을 기본적인 기능들로 바꾸어 가는 과정

2. Bottom Up Design => 기초 빌딩 블락으로 우리가 구현하고자 하는 기물을 만듬

 

Rules of Composition and Correctness by Construction

1. Electrical Rules => 얼마나 큰 power를 요구하는가?

2. Timing Rules => 변화는 어느 간격으로 일어나야 하는가?

1-3. Debug

<What can go wrong> => Debugging

 

1. Design flaws => 제일 심한 오류, 전체를 수정해야함

2. Implementation flaws(composition flaws) => 연결 과정에서 생긴 오류, 타이밍이나 전압 오류

3. Component Flaws => 설치한 빌딩 블락들이 제대로 기능하지 않을 때

 

디버깅을 잘하려면 디자인 시에 테스트하기 쉽도록 디자인해야한다.

 

 

2. Digital Hardware Systems

2-1. Digital vs Analog

아날로그 : 작은 에러가 큰 에러로

디지털 ; 작은 에러는 자가복원이 됨.

 

디지털은 이진법으로 동작 : 수학적으로 단단한 기초가 있기 때문에! => Boolean Algebra and Logical Operators

MOS 를 통해서 전기 신호(0.5 이하, 5 이상)을 0과 1로 바꾼다.

transistor는 gate와 source 사이의 전압을 기준으로 스위치가 열릴지 닫힐지 결정한다.

 

신호는 0과 1로 이산적으로 나뉘어져있지만 기본적으로 이 둘의 전환(0V에서 5V로 가는 과정)은 연속적으로 나타난다.

 

2-2. Combinational vs Sequential

Combination logic => 예전 상태를 저장해놓지 않음. output이 현재의 input으로만 결정된다.(ex. full-carry adder)

Sequential logic =>  예전 output을 저장해놓는 장치가 있고 feedback loop을 통해 다음 아웃풋에 영향을 미친다.

 

2-3. Representations of a Digital Design

switch => design의 가장 기본 단계, 정보를 전달할지 말지를 결정

 

Truth Table => logic을 디자인 하는 방법 하지만 이를 (AB + AB')와 같은 boolean algebra로 나타낼 수 있다.

 

Logic gates => 기초적인 building block으로 가장 많이 사용하는 것. AND, OR, Inverter(NOT)과 같은 것들이 있다.

 

Net => 전기선으로 연결된 집합을 뜻한다.

 

Waveforms => 디자인의 결과물을 검증 => 실제적으로는 어떻게 되는가?

 

1과 0의 전환은 연속적이지 않음. 그렇기 때문에 truth table에서는 존재하지 않는 output이 생긴다. 이를 glitch라고 부름

propagation delay(회로를 따라 신호가 전달되는데 걸리는 딜레이)가 존재하기 때문 => non-zero delay

 

Blocks => 게이트보다는 큰 단위, 실제로 기능을 하는 블랙박스처럼 생각. 

Full Adder 하나와 Half Adder 두개를 붙인 것은 glitch에서 차이가 있긴 하지만 논리적으로 동일하게 작동!

 

Behaviors => Use Hardware Description Language

3. Rapid Electronic System Prototyping

논리 설계의 목적?

 

=> 컨셉을 증명하기 위한 빠른 디지털 시스템 설계

=> 여러 디자인 대안들을 놓고 고민

=> 빠른 실행을 위해 퍼포먼스를 트레이드 옾

 

-> 이걸 도와주는 것이 CAD(Computer-Aided Design tools)

 

CAD tools

(1) 구성하기 전에 어떻게 동작할지 시뮬레이션 해줌 : Simulation

(2) 우리가 이해하기 쉬운 언어로 디자인하면 하드웨어 레벨로 어떻게 디자인 될지를 알려줌 : Synthesis

 

<Simulation의 종류>

Logic Simlation

Timing Simulation

 

Rapid Electronic System Prototyping

ex) ROM

: 쓰고 나서는 읽기만 하는 메모리

: 진리표를 그대로 구현 가능

'Computer Science > 논리설계' 카테고리의 다른 글

Sequential Logic Design  (0) 2020.12.08
Case Studies in Combinational Logic Design  (0) 2020.10.27
Combinational Logic Technology  (0) 2020.10.13
Working with combinational logic  (0) 2020.09.30
Combination logic  (0) 2020.09.15