공부/Verilog

1. Verilog_Preview

ksh9-9 2025. 1. 10. 23:36
728x90

원래는 논리회로 카테고리에 베릴로그 실습한거를 같이 올리려고했는데 그냥 새롭게 카테고리하나 만들어서 처음부터 차근차근 정리하는게 좋을 것 같아 이렇게 방향성을 정했다.

 

Verilog HDL의 HDL은 Hardware Description Language로 말그대로 HW를 기술하는 언어이다. HW 설계 언어로는 크게 2가지가 있는데, Verilog와 VHDL이 존재한다.

Verilog는 C와 유사한 문법을 사용하며 하드웨어 설계를 고수준 언어로 표현.

VHDL은 하드웨어 동작을 기술할 때 더 세밀한 제어가 가능하다.

주로 Verilog는 behavioral design에 집중하며, VHDL은 structural design에 집중하는데 필자는 Verilog밖에 사용해보지 않아서 사실 VHDL은 잘 모른다.

 

Behavioral: 회로의 In/Output + 이들의 관계를 기술  (동작을 중심으로 설계 진행) 

Structural: HW의 세부적인 구현 + 연결

 

HW module이 무슨 일을 하는지를 기술하는것으로 RTL coding이라고도 하는데 Register Transfer Level의 약자로 Reg와 Reg사이 흘러가는것을 기술한다고 생각하면된다.

 

Verilog Coding을 하고나서 Synthesis -> Implementation -> Bitstream까지의 과정을 거치면 bit파일이 생성되고 이 파일은 실제 HW에서 동작을 제어하는 역할을 하게된다.

 

1. Synthesis

: Verilog 코드가 HW logic으로 변환된다.

 

2. Implementation

:합성된 logic은 FPGA와같은 타겟 하드웨어에 맞게 최적화된다. (Placement, routing, timing check...)

 

3. Bitstream generation

: Hw에 로딩할 수 있는 binary형식인 bitstream file을 생성한다.

 

Vivado 프로그램을 사용한다면 bitstream 파일을 만든 후 SDK나 Vitis로 넘어가서 FPGA를 진행하게 되는데 그전에 verilog 코드가 정상적인 동작을 하는지 확인하려면 testbench를 만들어서 시뮬레이션을 돌려보아야한다.

testbench는 따로 한 포스팅 주제로 삼고 나중에 내용을 적어보겠다.

 

FPGA의 경우 field programmable gate array의 약자로 엄청나게 많은 gate들이 미리 깔려있고 사용자가 프로그래밍을 통해 gate들을 선택하고 연결하여 원하는 HW동작을 할 수 있는 장치이다.

 

다음 포스팅부터는 베릴로그 코딩을 위한 개념 및 문법들을 정리해보겠다.

728x90