inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

베릴로그 문법 관련 질문입니다

해결된 질문

1300

움직이는YM

작성한 질문수 86

2

개인적으로 베릴로그 문법을 공부하다 궁금한 점이 생겨 질문드립니다
 
우리가 모듈을 선언할 때 input/output 포트를 정의하지 않습니까?
 
만약에 내가 설계한 칩에 서로 다른 입력 1000개가 들어가야 한다면 입력 포트를 1000개 선언해야 할 것입니다
 
이런 경우 verilog에서는 문법적으로 간단하게 선언할 수 있는 방법이 없는 것인가요?
 
input x1, x2, x3, x4, x5, x6, x7 .... x1000 이처럼 사람이 1부터 1000개까지의 포트를 일일이 다 적어줘야 하는 것인지 궁금합니다.
 
또한 벡터를 사용해서 input [1000:0] x; 이런식으로 선언해도 사용시에는 x[1000:999], x[998:997] 이런식으로 나눠서 사용해야 할 것 같습니다.
 
입출력 포트의 개수가 엄청 많아질 때에도 사람이 일일이 다 입력하는 것인지 궁금합니다.

임베디드 verilog-hdl fpga

답변 1

1

설계독학맛비

안녕하세요 :)

우리가 모듈을 선언할 때 input/output 포트를 정의하지 않습니까?
그렇죠!
 
만약에 내가 설계한 칩에 서로 다른 입력 1000개가 들어가야 한다면 입력 포트를 1000개 선언해야 할 것입니다
 
이런 경우 verilog에서는 문법적으로 간단하게 선언할 수 있는 방법이 없는 것인가요?
verilog 에서는 제가 아는 한... 방법은 없습니다... 만! System Verilog 는 가능합니다. (하기에서 설명)
 
input x1, x2, x3, x4, x5, x6, x7 .... x1000 이처럼 사람이 1부터 1000개까지의 포트를 일일이 다 적어줘야 하는 것인지 궁금합니다.
사람이 적긴 하는데, 그렇게 시간이 오래걸리는 작업 또한 아닙니다. 물론 케바케긴 하죠? 손으로 하면 실수도 하곤 하는데.. 저는 잘 안쓰지만, 자동으로 만들어주는 plugin 도 있습니다. 이 영상 참고하시면, 필요한 부분을 얻으실 수 있을꺼에요. https://youtu.be/ONcFKXoJ7uQ)
 
또한 벡터를 사용해서 input [1000:0] x; 이런식으로 선언해도 사용시에는 x[1000:999], x[998:997] 이런식으로 나눠서 사용해야 할 것 같습니다.
동일한 data type 이면 벡터 혹은 array 를 사용해도 되는데, 연결하기 불편하다고 벡터를 사용해야하나..? 의문입니다 ㅎ
=========================================================================
맛비는 어떻게 하느냐...? 참고하시라고 적습니다.
문법에 대해서는 직접 찾으셔서 공부하시는 것을 추천드립니다. (자세한 설명은 생략한다.)
System Verilog 를 많은 분들이 검증에만 사용하는 걸로 알고 계신데요. 합성도 가능합니다.
interface 라는 문법을 사용하면 되구요.
다음은 예시입니다.
axi 는 특히 연결이 많이 귀찮은데요.. 연결할 것도 많고;; in//out 헷갈리고;;
다음과 같이합니다. 코드는 사정상 올릴 수 없구요. 캡쳐했습니다.
<정의>
 
<선언>
 
<연결>
 

즐공하세요 :)
 
 

0

움직이는YM

답변 감사합니다.

Verilog에서 찾아봐도 나오지 않기에 여쭤봤습니다

역시 Verilog에서는 방법이 없나보네요

 

System verilog에는 방법이 있는지 알지 못했습니다

코드도 올려주시고 정말 감사합니다!

현재 하는 FPGA랑 Verilog 다 해보고 System verilog도 공부를 해봐야겠네요

할 일이 참 많은 것 같습니다.

0

설계독학맛비

어디 문서에서 본 것 같은데 system verilog 가 추구하는 것 중 하나가 code clean 이더라구요. 저도 갈길이 멀었습니다 ㅎ 지금처럼 꾸준히 하시면, 충분히 잘 하실꺼에요.

즐공하세요 :)

latency 개념 구현

1

126

3

비바도 all os버전

1

91

2

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

1

98

2

다운로드용량

1

82

2

비바도리눅스설치

1

97

2

전체path복사넣기

1

73

2

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

1

178

2

explorer.exe오류

1

119

3

mobaxterm설치오류

1

102

2

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

1

61

2

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

1

145

2

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

0

73

1

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

1

72

3

16장 mealy 설계.

1

80

2

14장 Cycle 관련, Testbench 코드.

1

75

2

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

1

68

1

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

1

76

2

build에러 질문

0

63

2

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

1

82

2

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

1

115

2

5장 DFF특성에 대한 질문

1

87

3

vivado linux 사용 이유.

1

150

2

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

1

113

2

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

1

96

2