강의

멘토링

커뮤니티

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

오우님의 프로필 이미지
오우

작성한 질문수

Basic SystemVerilog Testbench ( 회로설계 검증 )

SystemVerilog Interface - 1 ( 기본 이해하기 )

SystemVerilog Interface - 1에서 modport 관련 질문

작성

·

14

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의 값이 변화되는지 궁금합니다.

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

답변 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" 를 참조해 보시면 좋을 것 같습니다.

답변이 되셨는지요?

메타앙코르

오우님의 프로필 이미지
오우
질문자

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

오우님의 프로필 이미지
오우

작성한 질문수

질문하기