복잡한 FPGA/ASIC 설계 환경에서 신호의 예상치 못한 동작이나 X 상태 발생 시, 해당 신호를 구동(Driver)하거나 수신(Receiver)하는 요소를 신속하게 파악하는 것이 중요합니다.
Questa Visualizer 에서는 Driver-Receiver 창을 활용하여 Design, Source, Variables, UVM Testbench 와 같은 다른 윈도우들과 연동하여 특정 객체나 변수에 연결된 Driver 와 Receiver 를 추적할 수 있습니다.
Driver-Receiver Tracing 은 다음과 같은 분석 기능을 제공합니다.
구분 | 설명 |
---|---|
Enable Driver Trace | 선택된 객체에 대해 해당 신호를 구동하는 소스(드라이버) 목록을 표시하고 추적합니다. 드라이버 추적을 활성화하면 Source Window 가 해당 드라이버 위치로 이동합니다. 드라이버 추적은 셀 경계(cell boundaries)에서 멈추며, 셀 내부의 드라이버 스테이트먼트까지 들어가지는 않습니다. |
Enable Receiver Trace | 선택된 객체에 대해 해당 신호를 입력으로 사용하는 수신자 목록을 표시하고 탐색합니다. 수신자 추적을 활성화하면 Source Window 가 해당 수신자 위치로 이동합니다. |
Toggle Active Drv/Rec | 설계 객체는 주어진 시뮬레이션 시간에 활성 또는 비활성 상태일 수 있는 다수의 드라이버 또는 수신자를 가질 수 있습니다. 이 토글 기능을 활성화/비활성화 하여 현재 활성화된 드라이버나 수신자를 즉시 찾을 수 있으며, 이 경우 Driver-Receiver Window 의 이름이 Active Drivers 또는 Active Receivers 로 변경됩니다. |
Driver-Receiver Tracing 사용 방법은 디자인 내 객체나 변수가 특정 Driver 또는 Receiver 에 의해 영향을 받을 때, 메인 메뉴의 Tracing 아이콘을 이용하여 활성/비활성 상태를 추적할 수 있습니다.
특히, 하나의 객체가 여러 Driver 또는 Receiver 를 가지는 경우에도, 현재 시뮬레이션 시점에서 실제로 동작 중인 요소만 확인할 수 있어 디버깅 효율성이 높아집니다.
Driver-Receiver Tracing 과정의 예시는 다음과 같습니다.
1. Design 및 Source 창을 열어둔 상태에서, View > Driver-Receiver 메뉴를 선택합니다.
기본적으로 Enable Driver Trace 버튼이 선택되어 있으며, 필요 시 Enable Receiver Trace 버튼을 클릭하여 수신자 추적 모드로 전환할 수 있습니다.


2. Design 창에서 드라이버 또는 리시버를 갖는 객체(예: sm_seq)를 선택합니다.
3. Source 창에서 드라이버 또는 리시버를 가지는 변수 이름(예: w_data, 32행)을 선택합니다.

4. 선택한 변수(w_data)를 더블 클릭하면 다음과 같은 결과를 확인할 수 있습니다.
• Source 창은 해당 변수를 구동하는 드라이버 코드 위치(예: 49행)로 자동 이동합니다.
• Driver-Receiver 창에는 두 개의 드라이버가 표시되며, 각각 49행과 63행에 존재함을 보여줍니다.

• Next Driver 버튼이 활성화되어, 클릭 시 Source 창이 다음 드라이버 위치(63행)로 이동합니다.

