강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

wwa99819313 のプロフィール画像
wwa99819313

投稿した質問数

Basic SystemVerilog Testbench(回路設計検証)

SystemVerilog Interface - 1 ( 基本を理解する )

SystemVerilog Interface - 1에서 modport 관련 질문

解決済みの質問

作成

·

45

0

안녕하세요, 좋은 강의 제공해주셔서 감사합니다.
modport의 예시 코드에서 궁금한 점이 있어서 질문 남깁니다.

modport를 program에서 사용하는 예시 코드에서
rtr_io.reset_n = 1'b0; 과
rtr_io.cb.reset_n <= 1'b1;인 코드가 있는데요,

이 말은 interface에서 async한 reset_n과 sync한 reset_n으로 2개의 reset_n 신호가 있다고 봐도 괜찮을까요? 2개의 신호로 존재한다면, async한 reset_n이 assert되면 이후의 posedge에 맞춰 sync된 reset_n이 자동으로 assert되는 것이 맞는지 궁금합니다.

추가적으로, 만약에 clocking block의 sync한 reset_n을 asser하는 경우, async한 reset_n의 값이 변화되는지 궁금합니다.

질문 읽어주셔서 감사합니다.

verilog-hdlsystem-verilogverificationsystem-verilog-dpi

回答 1

0

MetaEncore님의 프로필 이미지
MetaEncore
インストラクター

오우님, 강의 수강 감사드립니다.

수강생분께서 잘 보셨다시피, rtr_io.reset_n 은 clk 과 async 하게 동작하는 async reset, rtr_io.cb.reset_n 은 clk 의 edge 에서 sync 하게 동작하는 sync reset signal 입니다.

두 신호는 같은 reset signal이나, timing 의 차이가 있습니다.
async reset 은 그 code 의 line 이 실행되는 timing 에 reset 이 실행되고,
sync reset 은 clk 의 edge 까지 기다렸다가 실행되는 차이점이 있습니다.

네, 추가 질문에 대해서는 sync reset_n 이 assert 되면 async reset_n 도 같은 시점에 값이 변한다고 보시면 됩니다.

EDAPlayground 의 Published된 playground example 인 "[MetaEncore] SV Interface Example 1" 를 참조해 보시면 좋을 것 같습니다.

답변이 되셨는지요?

메타앙코르

xo님의 프로필 이미지
xo
質問者

이해됐습니다. 감사합니다!

wwa99819313 のプロフィール画像
wwa99819313

投稿した質問数

質問する