수업/Digital Design & Lab

간단한 컴퓨터 구조와 HDL

hw-ani 2022. 9. 5. 19:01

computing system은 analog와 digital 두가지로 요소로 나뉜다.

analog는 연속적인 것들을 의미하고, digital은 불연속적인 것들을 의미한다.

 

보통 digital signal을 선호한다.(signal과 sign의 차이는, sign에 시간까지 추가된게 signal이다. sign은 시간이 지나도 고정됨.)

왜냐하면 digital은 불연속적인 값을 처리하므로 우선 다루기 쉽고, data에 노이즈가 껴도 잘 처리된다.

(analog signal은 노이즈가 조금만 껴도 영향을 받지만 digital은 불연속적인 값으로 표현되므로 경계가 명확하다.)

 

컴퓨터 processor 또한 digital 정보를 이용한다.

processor을 설계할때 과거엔 도면을 직접 그렸지만, 최근엔 그 규모가 커져 HDL(Hardware Description Language)이라는 언어를 이용해 하드웨어를 설계한다.

이 언어로 해당 하드웨어의 특징을 표현해 도면 설계보단 비교적 간단하게 설계하고 테스트해볼 수 있는 것이다. 실제 칩을 생산하는 비용이 상당하므로, 이렇게 미리 설계해보고 테스트해볼 수 있는건 큰 이점이다.

또한 다른 C/C++같은 programming 언어와 구조가 비슷하여, 꽤 추상화된 레벨에서 설계를 할 수 있다.

 

modern computer system에서의 추상화레벨

이 수업에서는 HDL 중 하나인 Verilog를 이용해, 위 추상화 레벨 중 Microarchitecture(의 몇몇부분), Registre Transfers, Logic Gates 부분을 집중적으로 배운다고 한다.

 

HDL을 이용한 설계 순서

 


HDL이란게 뭘까?
C/C++처럼 "language"라고는 하지만 둘은 다른 종류이다.
설계 도면을 하나하나 그리는 대신 언어 형태로 추상화시켜서 설계/실험할 수 있게 해주는 언어인 것이다. 프로그래밍 언어만 봐오던터라 언어라고 표현해서 헷갈릴 수 있는데 CAD같은 건물 설계도면 짜는 프로그램 같은거라고 생각하는 편이 더 좋을 것 같다.(더 정확히 하자면, 그 프로그램을 사용하기위한 언어,, cad같은건 gui로 좀 더 보기쉽게 설계하는거고, verilog같은건 그런 버튼이나 gui보단 정해진 규칙의 언어로서 설계하는 것이고.. 오히려 C/C++보단 저쪽에 더 가까울듯)

C/C++ compiler도 프로그램이다. 그리고 C/C++은 결국 그 프로그램을 사용하기위한 규칙(?)인 것인데, 지금은 표준이란게 나오며 표준에 맞게 compiler가 만들어지는 것이다.
Verilog도 그런 관점에선 hardware 설계의 목적으로 쓰인 프로그램을 사용하기위한 언어일 뿐인 것이다. C와는 목적이 다르긴하지만...
말이 어려운데 어쨌든 verilog도 언어이기 이전에 특정 프로그램을 사용하기 위한 툴 정도(?)라는 생각이 들어서 한번 말해본다.

(첫 수업만 듣고 한번 고민해서 적어봤는데, 아직 verilog를 사용해본건아니라 정확하게 이해한건진 모르겠다.)

 

(chapter2 뒷부분에 나온 module, instantiate는 다음 수업때 직접 써보고 그 내용이랑 같이 정리하자...)

'수업 > Digital Design & Lab' 카테고리의 다른 글

SHA-256  (2) 2022.12.26
Verilog 기초  (0) 2022.10.30