여름이었다.
전역한지 3주밖에 되지 않아 뭐든지 해낼 수 있을 것만 같았고,
나는 무적이었다.
그렇게 디지털설계 및 실험을 수강신청 했다.
그때 나는
그랬으면 안됬다.
허나, 피하지 못하면 즐기라고.
즐겨보자.
💻Verilog란?
전자회로 및 시스템에 쓰이는 하드웨어 기술 언어(HDL, Hardware Description Language)이다.
쉽게 말해 하드웨어 코딩이라고 생각하면 된다.
C언어와 문법이 비슷해 쉽다(?????) 고 한다.
💻Module
Verilog에서 쓰는 기본 설계 단위이다.
포트 인터페이스를 통해 상위 블록에 필수 기능을 제공한다.
모듈의 기본 구성을 알아보자.
module <module_name> (<module_terminal list>);
...
<module internals>
...
...
endmodule
c언어와 구성이 상당히 비슷하게 되있는 것을 알 수 있다.
module_terminal list에는 입력되는 포트의 목록이 작성되어있다.
윗부분에서 module에서 필요한 것들을 선언한다.
- reg(register)
- wire
- port(port들의 방향,비트 폭)
- parameter
이런것들이 선언되어 질 수 있다.
몸체에서는 회로의 기능,동작,구조 등을 표현해준다.
💻Instances
생성된 모듈을 통해 객최를 생성하는 과정을 instantiation이라 하고 그로 인해 생성된 객체들을 instance라고 한다.
붕어빵 틀을 module, 만들어진 붕어빵을 instance라고 생각하면 쉽다.
c++의 클래스와 객체 개념과 아주 유사하다.
모듈 안에 새로운 모듈을 정의할 수 없으니 유의해야한다.
💻Simulation
자신이 코드를 짯는데 모듈이 예상대로 동작하는 지 궁금할거다.
그럴 때, 시뮬레이션을 돌려 정상작동 하는지 확인을 해보면 된다.
모듈을 시뮬레이션 하기 위해서는 모듈에 입력값이 주어져야 하는데, 그러기 위해서 test bench를 먼저 생성해야한다.
이 테스트 벤치가 모듈에 필요한 입력값을 생성해 낸다.
아직은 기초이니 verilog의 대략적인 구성요소들을 짚고 넘어가겠다.
'2-2 > 디지털 설계 및 실험' 카테고리의 다른 글
[디지털 설계 및 실험] Verilog 외전 (1) | 2022.10.15 |
---|---|
[디지털 설계 및 실험] Verilog 기본 vol.5 Gate-Level Modeling (0) | 2022.10.12 |
[디지털 설계 및 실험] Verilog 기본 vol4.-모듈과 포트 (1) | 2022.09.25 |
[디지털 설계 및 실험] Verilog 기본 vol.3 - System Tasks (2) | 2022.09.23 |
[디지털 설계 및 실험] Verilog 기본 vol.2 - Data types (1) | 2022.09.23 |