인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

움직이는YM's profile image
움직이는YM

asked

Design Self-Study Tastebi's Practical Verilog HDL Season 1 (From Clock to Internal Memory)

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

Resolved

Written on

·

1.2K

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-hdlfpga

Answer 1

1

aifpga님의 프로필 이미지
aifpga
Instructor

안녕하세요 :)

우리가 모듈을 선언할 때 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 헷갈리고;;
다음과 같이합니다. 코드는 사정상 올릴 수 없구요. 캡쳐했습니다.
<정의>
 
<선언>
 
<연결>
 

즐공하세요 :)
 
 
움직이는YM님의 프로필 이미지
움직이는YM
Questioner

답변 감사합니다.

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

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

 

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

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

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

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

aifpga님의 프로필 이미지
aifpga
Instructor

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

즐공하세요 :)

움직이는YM's profile image
움직이는YM

asked

Ask a question