안녕하세요. queue 예제 관련 문의드립니다. int q[$] = {0,1,3,6}; int b[$] = {4,5}; 다음과 같이 초기값 선언 시 assignment pattern을 하지않는데 array type에서 이렇게 선언 시 systerm verilog 문법에서는 에러로 생각되는데 예제 의도에 대한 문의드립니다. 감사합니다. ] = {0,1,3,6}
안녕하세요. Mission 5를 수행하면서 인프런_SVTB_Mission_5.PDF 를 참고하여 코드를 작성하던 중, scoreboard 에 cov_done 이 선언되어 있지 않아 아래 구문에서 에러가 발생하는 것을 확인했습니다. scb.cov_done = cov_done; PDF 내용에는 scoreboard 파일에 coverage 관련 내용을 추가하라는 안내가 없어, 우선 해당 구문을 삭제한 뒤 시뮬레이션을 진행해 보니 정상 동작하는 것을 확인했습니다. 혹시 현재 업로드되어 있는 PDF 파일이 최신 버전이 맞는지 확인 부탁드립니다. 또한 비교 및 참고를 위해 최종 작성된 testbench 파일들 ( environment.sv , generator.sv , scoreboard.sv 등 tb 폴더 내 전체 파일)도 공유해 주실 수 있을지 문의 드립니다. 감사합니다.
강의중 이런 디렉토리는 어느것을 다운받아야 되는건가요? 어떻게 하면 저런 디렉토리가 생기나요? 강의9에서 다운받은 pr_example_n_mission_4fe1dc57.tgz 는 무슨파일이고 어떻프로그램에서 열어야 할까요? .tgz 확장자가 뭐가요? 질문이 많아 죄송합니다.
mission1 는 몇번 강의까지 듣고 할수 있는건가요? EDA 를 하다가 갑자기 APB 가 나와서 당황스럽습니다. 미션1을 verilog style 로 작성하라는게 EDA 에서 작성하라는건가요? 대체적으로 강의가 자세하지 않아 이해하기 어렵습니다. SystemVerilog_TB_EDAPlayground_사용방법 처럼 절차적으로 설명이 되면 잘 따라갈수 있을것 같습니다.
안녕하세요, 좋은 강의 잘 수강하고 있습니다. inline constraints 설명에 있는 예제 코드에서, obj_a.randomize() with {x > 3 && x < 10} 관련하여 몇 가지 질문이 있습니다. (1) 위와 같이 적용되는 randomize는 class demo 자체가 아닌, obj_a에 할당된 object memory에만 적용되는 것으로 이해했는데, 이해한 내용이 맞는지 궁금합니다. (2) class에 정의된 x > 0; x <= 5;의 constraint와, inline constraint x>3 && x<10;이 같이 적용되는 경우, 최종적으로 x>3 && x<=5로 solve 되는 것이 맞는지 궁금합니다. (3) 마지막으로 local::y에 대해 언급하신 건, constraint 조건을 걸 때, class의 y와 program block에 있는 y의 충돌을 피하기 위한 것인지 궁금합니다. 질문 읽어주셔서 감사합니다.
안녕하세요, 좋은 강의 제공해주셔서 감사합니다. 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의 값이 변화되는지 궁금합니다. 질문 읽어주셔서 감사합니다.
안녕하세요, 공유해주신 FIFO verilog tb 관련하여 문의 드립니다. read transaction (task fifo_rd) 에서 temp_data = dout; 동작과 dout_read = 0;의 동작이 같은 시간대에서 진행되고 있습니다. 코드 상에서는 temp_data = dout; 이후에 #(input_delay) 만큼 시간이 지난 후에 dout_read = 0;이 되는 것으로 이해했는데, 이런 경우는 compile 과정에서 문제가 있는 것인지 궁금합니다.
DPI-C 디버깅 관련 질문 강의 Section 3.20 (DPI 이해하기)에서 DPI-C Compile and Debug 부분을 청강하면서 다음과 같은 내용을 확인했습니다 : C/C++ source code에 -CFLAGS와 -g 옵션을 적용하면 DVE와 Verdi에서 디버깅이 가능하다는 설명과 함께 "자세한 부분은 별도 안내 예정" 이라고 comment 주셨습니다. 그 이후의 강의 컨텐츠에서 해당 주제에 대한 추가 설명을 발견하지 못하여 어떤 부분이 추가적으로 안내될지 궁금하여 질문드립니다. 감사합니다.
안녕하세요 강의 수강 중 문의사항이 있어 문의드립니다. 미션3 진행 중 마지막 run을 통해 로그를 확인하였는데 [ENV] [GEN] [DRV] [MON] is started ... 가 아니라 [GEN]까지만 실행이 되고 종료 되는게 맞는지 궁금해서 문의드립니다. 저 pwrite도 is_write로 변경되어야 하는게 맞는지도 궁금합니다.
Q. 'fork-join_none'으로 시작된 백그라운드 스레드의 종료는 어떻게 관리되나요? 부모 스레드가 자식의 완료를 기다리지 않는다면, 자식 스레드가 완료된 후 발생하는 '좀비(Zombie)' 상태 나 자원 누수(Resource Leakage) 문제는 어떻게 방지되거나 처리되나요?
섹션 2 SystemVerilog Testbench 구조 살펴보기 중 program 개념 설명에 질문이 있어 질문 드립니다 그림에서는 DUT <-> interface <-> program 으로 구성이 되어 있는데 Verilog Testbench 구조와 비교를 해보게 된다면 program 의 역할은 Verilog 의 top module 의 역할이라고 볼 수 있을까요? 아니면, top module 이 DUT, interace, program 을 모두 감싸는 wrapper 역할을 하고, program 은 tb 안의 oop component 들을 감싸는 top hierarchy 역할을 하는건가요? 가끔 SystemVerilog 예제들을 보면 program 을 사용 않고 module 을 top hierarchy 로 쓰는 경우가 왕왕 있는데, program 사용시 TB 와 Design 사이의 상호작용에서 race condition 제거는 이제 실제 제조 과정(SDC?) 에서 야기될 수 있는 문제를 방지해주는건가요? 궁금한게 많네요ㅜㅜ 답변 감사합니다! 강의 잘 듣고 있습니다!