Tải bản đầy đủ (.pdf) (11 trang)

Kiểm tra thiết kế nâng cao với system verilog

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (191.27 KB, 11 trang )

SEMICON Solutions
Kiểm tra thiết kế nâng cao
với SystemVerilog
Semicon
by Tuấn Nguyễn
Mô Hình Truyền Thống
Verilog
Testbench
Design
Under Test
(DUT)
Mô Hình Truyền Thống
 Ưu điểm
 Dễ hiện thực cho các thiết kế đơn giản
 Hiện thực bằng Verilog nên không cần phải tìm hiểu
thêm các ngôn ngữ khác
 Nhược điểm
 Khó hiện thực cho các thiết kế phức tạp
 Việc tạo dữ liệu test một cách thủ công cho một thiết
kế có hàng trăm input và output là điều không thể
 Testbench xây dựng cho thiết kế này khó có thể dùng
lại cho một thiết kế khác
Mô Hình Nâng Cao
Làm cách nào để tạo dữ liệu
kiểm tra?
 Tạo dữ liệu trực tiếp:
 Giá trị mong muốn của các dữ liệu được tính toán
từ trước và không thay đổi.
 muốn thay đổi 10 giá trị khác nhau  10 bộ
tạo dữ liệu khác nhau
 Không hiệu quả



Làm cách nào để tạo dữ liệu
kiểm tra?
 Cần một cơ chế sinh dữ liệu ngẫu nhiên
nhưng vẫn đảm bảo ràng buộc (constraint)
mong muốn  1 bộ tạo dữ liệu, chạy 10 lần
sẽ cho 10 giá trị khác nhau
 Constraint Driven Randomization

Functional Coverage
 Làm cách nào để biết các trường hợp trong
Verification Plan đã được kiểm tra?
 Functional Coverage
 Functional coverage là một thước đo định
lượng để đảm bảo rằng tất cả (100%) các
trường hợp đặc tả trong Verification Plan đã
được kiểm tra.
Functional Coverage
 Làm cách nào để tính Functional Coverage?
 Cần một phương thức có thể chuyển Verification
Plan  ngôn ngữ lập trình để máy tính có thể
hiểu được  tính Coverage một cách tự động
Chúng ta cần gì?
1. Một ngôn ngữ có thể hiện thực được mô
hình kiểm tra nâng cao (Generator, Agent,
Scoreboard, Driver, …)
2. Hỗ trợ Constraint Driven Randomization
3. Hỗ trợ Functional Coverage
 SystemVerilog
SystemVerilog

 Wiki:
“SystemVerilog is a combined Hardware
Description Language and Hardware
Verification Language based on extensions to
Verilog.”
SEMICON Solutions
Thank you!

×