728x90
이전
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
.
.
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 |

