728x90

모든 디지털 장비

- 컴퓨터, 폰, 라우터 등 정보 저장하고 처리하는거 전부다

- 칩 구성은 다 다르지만. 논리 게이트로 만들어짐

 

논리 게이트

- 다른 물질로 만들거나 만드는 방법은 다르더라도 모든 컴퓨터에서 똑같이 논리 연산을 수행

- NAND를 주로 사용

 

불 게이트(Boolean gate)

- 부울 함수를 따름.

 

부울 대수(Boolean Algebra)

- 부울 대수는 Boolean(이진) 값을 처리함

- 2진 입력을 받아 2진 출력을 보냄

 

진리표(Truth Table)

- 입력에 대한 부울 연산 결과를 들을 보여 줌

 

기본 부울 연산자(boolean operator)

- And, Or, Not

 

AND(논리 곱)

- 둘다 1이면 1

 

OR(논리 합)

- 둘중 하나면 1이면 1

 

NOT(부정)

- 1이 입력되면 0, 0이 입력되면 1 -> 반전

 

기본 부울 연산의 수학적 표현

 

불 함수

- 부울 연산자를 조합한 함수

 

불 함수의 예시와 진리표

 

표준 형식(Canonical Representation)

- 위 불 함수의 경우 1인 경우들만 모아 다음의 표준 형식으로 정리할 수 있음.

2입력 부울 함수 정리


논리 게이트

- 게이트는 부울 함수를 물리적으로 구현한 장치

- 스위치 역활을 하는 트랜지스터로 만들어짐

 

기본 논리 게이트

 

조합 논리 게이트

- 기본 논리 게이트를 조합하여 만들 수 있음.

하드웨어 기술 언어

- HDL(Hardware Description Langauge) = VHDL(Virtual HDL)

- 하드웨어 설계자들은 실제 게이트를 조립하지 않고 HDL로 설계함.

- HDL 프로그램을 시뮬레이션에 입력하여 결과를 구함.

 

Xor 게이트 만들기

- Xor(a,b) = Or(And(a,Not(b)), And(Not(A),B))

 

HDL 작성하기

- HDL 칩 정의는 헤더와 파츠 부분으로 나뉨

- 헤더는 칩 인터페이스를 정의 -> 칩의 이름과 입력 출력 핀

- 파츠에서는 저수준 파츠의 구성과 이름 등을 정의함.

 

Vscode Nand2Tetris 하이라이팅 설치

- VScode에서 Nand2Tetris를 위한 문법 하이라이팅 제공하고 있다.

 

 

Xor 게이트 구현

- Xor.hdl : 헤더에 Xor 게이트 칩 인터페이스 정의, Parts 섹션에 파츠 연결관계 정리

- Xor.tst : 하드웨어 시뮬레이터에서 사용할 테스트 데이터

- Xor.out : Xor.tst에 따라 시뮬레이션 테스트 결과 

Nand2Tetris 하드웨어 시뮬레이션 수행 결과

NAND Gate 구현 및 실험

 

먹스(Multiplexor)

- 입력 : a, b 입력과 둘중 하나를 출력으로 보내는 선택 비트 3개로 이루어짐

- 먹스 진리표에 따라 회로를 다음과 같이 정리 할 수 있음.

먹스 시뮬레이션

 

디먹스(DeMultiplexor)

- 입력으로 in과 sel을 받아 sel이 0이면 a, sel이 1이면 b로 보내는회로

 

디먹스 시뮬레이션

16비트 Not

 

And16

 

Or16

 

Mux16

 

Or8way

 

Mux4way16

- 우선 4-way-mux 구현

- 이후 4-way-mux 16개를 이음

 

Mux8way16

- 우선 8-way-mux 구현

- 이후 8-way-mux 16개를 이음

* 이 코드는 동작은 잘하는데 문제는 너무 길다. 다른사람들이 한걸 보니 MUX16을 구현 후 4 입력을 처리해주더라..

 

DMux4Way

 

 

 

DMux8Way

 

300x250

'컴퓨터과학 > 컴퓨터, OS' 카테고리의 다른 글

주소 지정방식  (0) 2020.04.29
Nand2Tetris 2 - 불 연산  (0) 2020.04.29
NAND2Tetris 0 - 소개  (0) 2020.04.25
기계어~OPCODE  (0) 2020.04.25
ALU~보조기억장치  (0) 2020.04.24

+ Recent posts