inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

[HDL 2장] Testbench 와 DUT (Design Under Test) 란?

modeling code?

106

jiu0317inf

작성한 질문수 1

1

안녕하세요 🙂

[1. 질문 챕터] : 2장 12분 40초

[2. 질문 내용] : modeling code이기 때문에 실제 하드웨어 모듈이 되면 안된다고 하셨는데 이 부분이 잘 이해가 안됩니다ㅠ

베릴로그로 모듈 내용을 작성하고 synthesis 를 통해 실제 하드웨어로 만들 수 있게 바꾸는거 아닌가요?

모델링 코드의 역할이 실제 하드웨어에 들어가는 모듈을 작성하기 전에 모듈의 동작을 시뮬레이션하기 위해 사용하는건가요?

 

verilog-hdl fpga 임베디드

답변 2

0

설계독학맛비

안녕하세요. 🙂

이 부분은 Verilog 문법 공부를 해보시면 해결이 되실꺼에요.

간단히 답을 드리면, 먼저 AI 인턴이 자세히 적어놓았는데, 맞고요.

Verilog 언어의 문법 내용이 전부 HW 로 만들어지지 않습니다.

HW 설계를 하려면 timing, 합성 가능한 코딩 스타일, 등등을 고려해야 하는데요.

즉 이런 것들을 고려하면서 기능을 확인하려면 시간 (구현시간, 시뮬레이션 러닝타임 등)이 오래 걸리니, 간단하게 합성가능하지 않은 문법을 섞어서 그 동작만 가능하게 만든 것을 모델링 코드라고 생각하시면 되겠습니다.

즐공하세요 🙂

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

jiu0317님께서 질문하신 내용은 Verilog HDL에서 “모델링 코드”의 역할에 대한 궁금증으로 이해됩니다. Verilog HDL 혹은 다른 HDL(Hardware Description Language)은 실제 하드웨어의 동작을 모델링하는데 사용되며, 이는 시뮬레이션 및 검증 단계에서 매우 중요합니다.

모델링 코드는 실제 하드웨어가 아닌, 하드웨어의 동작을 수학적, 논리적으로 표현한 것입니다. 이는 하드웨어 설계를 완성하기 전에 다양한 상황에서 어떻게 작동할지 확인하기 위한 것으로, 주로 다음과 같이 사용됩니다:

  1. 행동(Behavioral) 모델링: 특정 하드웨어의 동작을 기술하기 위해 코드의 형태로 작성됩니다. 이는 고수준의 추상화로, 주로 시뮬레이션 용도로 사용되며 실제 하드웨어로 구현되는 것이 아니라 그 동작을 검증하는 역할을 합니다.

  2. 물리적 구현 전 검증: 최종 하드웨어가 기대한 대로 작동하는지 사전에 테스트할 수 있도록 도와줍니다. 이를 통해 잠재적인 오류를 조기에 발견하고 수정할 수 있습니다.

  3. 합성: Verilog HDL 코드를 통해 작성된 모델링 코드는 합성(Synthesis) 과정을 통해 실제 하드웨어 회로로 변환될 수 있습니다. 이 때, 모델링 코드가 물리적 구현에 적합하도록 작성되어야 하며, 모든 모델링이 하드웨어 합성에 적합한 것은 아닙니다.

관련 질문에 대한 유사한 답변으로는 다음을 참고하시면 도움이 될 것입니다:

먼저 이해하신 것처럼 모델링 코드는 하드웨어 구현 전의 검증 단계를 위한 것이며, 합성 과정을 통해 실제 하드웨어 모듈로 변환될 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

latency 개념 구현

1

84

3

비바도 all os버전

1

67

2

초기화를 reset_n 이 '1'일 때가 아닌 '0' 일 때 실행시키는 이유 질문

1

68

2

다운로드용량

1

68

2

비바도리눅스설치

1

79

2

전체path복사넣기

1

59

2

Vivado 2025.2 리눅스 설치 후 실행 에러와 솔루션 (libxv_commontasks.so)

1

142

2

explorer.exe오류

1

99

3

mobaxterm설치오류

1

84

2

./build시, waveform 'divide color' 사용

1

51

2

Latch와 관련하여 (Time borrowing, Latch-based design)

1

122

2

clean 명령어가 안되는데, 따로 저장해줘야 하는지 궁금합니다.

0

57

1

안녕하세요 설치 관련 질문 드립니다.

1

60

3

16장 mealy 설계.

1

71

2

14장 Cycle 관련, Testbench 코드.

1

63

2

21강(16장) 초기값 설정이 적용되는 시점 질문

1

59

1

20강(15장) - 밀리 머신 관련하여 질문 드립니다.

1

63

2

build에러 질문

0

54

2

1장 ./build에서 에러가 나요

1

70

2

FPGA 강의 보드 문의 드립니다.

1

104

2

5장 DFF특성에 대한 질문

1

73

3

vivado linux 사용 이유.

1

134

2

메모리의 형태가 전체설계에 미치는 영향이 궁금합니다.

1

102

2

디스코드 멤버쉽 등업 관련 문제

1

91

2