UVM004 - UART_Tx, scoreboard

HW 2026. 7. 19. 01:05
728x90

이전

https://hdnua.tistory.com/255

 

UVM003 - UART_Tx, fork

이전https://hdnua.tistory.com/254 UVM002 - UART_Tx, task이 곳에서는 pure TB 를 task 로 전환하는 단계적 방법에 대해 다뤄본다.UVM 이란 것이 범용적인 검증 방법론이라 어떤 공통된 규약을 다룬다고 해도,이것

hdnua.tistory.com

.

.

이번의 목표.

// =============================================================================
// m04_scoreboard : scoreboard task 분리
//
// m03_fork 대비 변화:
//   - recv_and_check를 recv_byte(monitor)와 uart_scoreboard로 분리한다.
//   - monitor는 수신만, scoreboard는 비교만 담당한다.
//   - actual 전달은 공유 변수와 event로 직접 연결한다.
//
// 한계(이 단계는 이해를 위한 코드이며 최종 구현 방식이 아님):
//   - 공유 변수가 하나라서 monitor가 다음 바이트를 쓰기 전에
//     scoreboard가 읽어야 한다. 타이밍 의존성과 덮어쓰기 위험이 있다.
//     → 공유 변수 대신 queue가 필요한 이유.
//   - scoreboard가 payload를 직접 참조해서 expected를 만든다.
//     scoreboard는 비교만 해야 하며 expected는 sequence가 분배해야 한다.
//     → sequence가 driver/expected 경로로 데이터를 분배해야 하는 이유.
// =============================================================================

.

.

Testbench

https://github.com/HDNua/hw001_uvm_study/blob/main/260329_uart/m1_uart_tx/m04_scoreboard/tb/tb_top_v4.sv

.

.

Waveform

.

.

기존과 비교.

.

.

.

.

.

728x90

'HW' 카테고리의 다른 글

UVM006 - UART_Tx, sequence  (0) 2026.07.19
UVM005 - UART_Tx, queue  (0) 2026.07.19
UVM003 - UART_Tx, fork  (0) 2026.07.19
UVM002 - UART_Tx, task  (0) 2026.07.19
UVM001 - UART_Tx, RTL & pure TB  (0) 2026.07.18
Posted by 누아니
,