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 |