FPGA · RTL · Digital Verification
FPGA Programmable Delay Logic
동일한 cycle-delay contract를 Shift Register, Circular Queue, Memory-Based Driver/Checker 구조로 발전시킨 parameterized SystemVerilog 설계입니다.
기능 시뮬레이션 직접 실행
01
문제 정의
동일한 cycle-delay 동작을 여러 RTL architecture로 구현하면서 latency contract와 결과 일치성을 독립적으로 검증하는 문제입니다.
02
Architecture
Shift Register → Circular Queue → Memory-Based Driver/Checker로 architecture를 확장하고 독립 reference model과 비교합니다.
03
Hardware · Software
- SystemVerilog
- Icarus Verilog
- VHDL
- GHDL
- Quartus
- ModelSim/Questa
04
Data Flow
Parameter와 입력 vector → DUT와 reference model → cycle-aligned checker → deterministic PASS/FAIL log.
05
Methodology
- Width·depth·delay parameter를 바꿔도 유지되는 RTL contract 정의
- DUT와 분리된 reference model 및 self-checking testbench 작성
- File-driven scenario와 architecture-equivalence regression 실행
06
Results
- Project 1 Icarus Verilog 20 checks PASS
- Project 2 architecture-equivalence 26 checks PASS
- Project 3 file-driven 3 scenarios PASS
동일한 cycle-delay 동작을 여러 RTL architecture로 구현하면서 latency contract와 결과 일치성을 독립적으로 검증하는 문제입니다.
Shift Register → Circular Queue → Memory-Based Driver/Checker로 architecture를 확장하고 독립 reference model과 비교합니다.
Width·depth·delay parameter를 바꿔도 유지되는 RTL contract 정의
Project 1 Icarus Verilog 20 checks PASS
구조와 결과 화면
내가 맡은 부분
- Parameterized SystemVerilog RTL
- Independent reference model
- Self-checking testbench와 deterministic regression
코드와 결과
- Project 1에서 Icarus Verilog test 20개를 통과했습니다.
- Project 2에서 architecture-equivalence test 26개를 통과했습니다.
- Project 3의 file-driven scenario 3개 모두 예상 출력과 일치했습니다.
남은 과제
Functional simulation까지 실행했습니다. 다음에는 Quartus synthesis와 timing·power·Fmax 분석을 진행하고, 생성된 보고서에서 PPA 수치를 정리할 예정입니다.
프로젝트 자료
동일한 cycle-delay 동작을 세 가지 RTL 구조로 바꾸어 구현하고, 독립 reference model과 self-checking testbench로 결과를 비교했습니다. Quartus synthesis와 timing 분석은 다음 단계로 남겨 두었습니다.