Skip to content
DevBJ
Go back

Emacs Verilog mode AUTO_TEMPLATE로 입력 tie-off하기

Updated:
Editor

Emacs Verilog mode의 AUTO_TEMPLATE은 반복되는 module port 연결을 생성할 때 쓸 수 있다. SystemVerilog 입력을 0으로 연결할 때는 '0을 사용하고, 출력은 입력처럼 tie-off하지 말고 추적 가능한 net에 연결한다.

SystemVerilog 입력을 0으로 연결하기

/* Child AUTO_TEMPLATE (
    .\(.*\)_test ('0),
); */

Child u_child (/*AUTOINST*/);

이 template은 _test로 끝나는 port 이름을 찾아 '0으로 연결한다. SystemVerilog의 unbased unsized literal '0은 연결 대상 폭에 맞춰 0으로 확장된다.

Verilog 문법만 사용하는 코드라면 upstream FAQ의 vl-width format variable을 이용해 port 폭만큼 0을 반복하는 방법이 있다.

.\(.*\)_test ({@"vl-width"{1'b0}}),

template의 정규식이 input과 output을 모두 잡을 수 있다면 방향을 확인하지 않고 같은 값을 적용하지 않는다. vl-dir을 이용해 입력만 tie-off하는 방법과 현재 mode 버전의 FAQ를 확인한다.

미사용 output은 별도 net으로 연결하기

.status (unused__@"vl-cell-name"__@"vl-name"[]),

instance와 port 이름을 조합하면 여러 instance에서 같은 이름이 충돌하는 일을 줄일 수 있다. []의 폭 처리와 자동 wire 생성은 Verilog mode 설정에 따라 확인하고, lint 도구가 unused__ 이름을 무시하도록 별도로 설정한다. 이름만 바꾼다고 lint 경고가 자동으로 사라지는 것은 아니다.

verilog-auto를 실행한 뒤 생성된 연결과 wire 폭을 직접 확인한다. 자동 생성 결과는 compile/lint 검증을 대신하지 않는다.

공식 자료

원문 기록

한 줄 요약

AUTO_TEMPLATE으로 규칙적인 입력 tie-off를 만들되, 출력은 별도 net으로 연결하고 생성된 결과를 확인한다.


Share this post on:

Next Post
Verilog와 SystemVerilog filelist를 find로 만드는 방법