강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

서윤님의 프로필 이미지
서윤

작성한 질문수

[2주 합성 실습 챌린지 4기] 실무환경(Synopsys Design Compiler) RTL 합성 체험하기

Read Design 실습

db를 지우고 link 했는데 0 이 아닌 1 이 나옵니다.

작성

·

13

0

image.png

퀴즈

어떤 RTL 읽기 방식이 합성 전에 파라미터 수정을 허용하나요?

read_verilog

analyze/elaborate

read_vhdl

read_ddc

답변 1

0

MetaEncore님의 프로필 이미지
MetaEncore
지식공유자

서윤님, 안녕하세요 메타앙코르 입니다.
먼저 저희 강의를 수강 해 주신 점 매우 감사드립니다.

우선 질문을 주실 때 몇 번째 강의의 몇 분 몇 초 부분의 질문인지 말씀해주시면 답변하는 데에 큰 도움이 될 것 같습니다.

 

우선 질문 해 주신 부분이,
.db를 지우고 link 했는데 0이 아니라 1이 나온다고 말씀 해 주신 걸로 미루어 봤을 때,
set_app_var로 설정한 link_library 변수에서 PLL .db를 제거하고, PLL .db가 제거된 link_library 변수를 설정한 후 link 커맨드를 사용하였을 때 0이 아니라 1이 나온다 라는 질문으로 이해하였습니다.
(만약 제 이해가 틀렸다면 다시 설명 부탁 드리겠습니다.)

image.png

그림1. 기존 link_library 변수

image.png

그림2. link_library에서
"saed32pll_ss0p95v125c_2p25v.db"를 제거하고 dc에 적용한 모습

image.png

그림3. 이후 link 라는 커맨드를 입력하면 아래 부분에 Unable to resolve reference 'PLL' in 'CLOCK_GEN'이라는 warning 메시지가 발생하면서 제일 아래에 '0'이 return된 모습

image.png


그림4. 다시 pll .db를 link_library에 설정한 모습

image.png

그림5. 그림3에서 발생했던 Warning 메시지가 사라지면서, 제일 아래 부분에 1이 return된 모습

저희 측에서 재확인 결과 db를 지우고 link 커맨드를 실행하면 0으로 반환되는 것을 확인하였습니다.

혹시 캡쳐해주신 부분에서,
dcnxt_shell> Warning: Design 'ORCA' has '1' unresolved references. For more detailed information, use the "link" command. (UID-341)

이 메시지 때문에 1이 반환 된 것이라고 생각하신다면, 해당 메시지는 link 커맨드의 return값은 아니고,
1개의 해결되지 못한 reference가 존재한다는 Warning메시지입니다.

-------------------------------------------------------------------------------------------
아래는 커맨드의 return값 활용 추가 참고 내용입니다.
Synopsys사 EDA tool은 특정 커맨드의 성공 여부를 1로 return 합니다.

image.png

set pass_or_fail [link]
-> tcl에서 대괄호는 커맨드의 실행을 의미합니다.
-> link를 실행한 return값을 pass_or_fail에 저장함

echo $pass_or_fail
-> link를 실행한 return값을 보여줘
-> pll .db를 다시 setting하고 link를 실행했기에 link 커맨드에 이상이 없으므로 1을 return함.

tcl script를 활용하여 어떤 command가 실패했을 때 에러 메시지를 띄우는 용도로 많이 사용됩니다.

if { $pass_or_fail == 0 } {
puts "Error: Please check your command"
}
위와 같은 조건문을 활용하면 원하는 커맨드의 성공 여부를 더 쉽게 확인 가능합니다.


서윤님의 프로필 이미지
서윤

작성한 질문수

질문하기