Trung tâm đào tạo thiết kế vi mạch Semicon


  • ĐĂNG KÝ TÀI KHOẢN ĐỂ TRUY CẬP NHIỀU TÀI LIỆU HƠN!
  • Create an account
    *
    *
    *
    *
    *
    Fields marked with an asterisk (*) are required.
semicon_lab.jpg

Coverage trong thiết kế Verilog (kiểm tra mức độ bao phủ trong quá trình test)

E-mail Print PDF
 1. Giới thiệu về Coverage trong thiết kế RTL

Coverage (độ bao phủ) là phương pháp thống kê trong quá trình kiểm tra thiết kế (verification) để xác định được chất lượng của quá trình kiểm tra. Phương pháp thu thập thông tin này thường được làm một cách tự động bởi các công cụ mô phỏng.

Coverage là một trong những yếu tố quan trọng để khằng định thiết kế có được kiểm tra hoàn toàn đúng theo yêu cầu hay chưa. Từ đó, xem xét khả năng tạo thêm các bài test để đảm bảo coverage đạt được mục tiêu đề ra.

Có hai loại coverage được dùng là: Code Coverage và Functional Coverage.

2. Code coverage

Là phương pháp thống kê dựa vào số lương code được kiểm tra.

Trong code coverage có thể phần chia thành các loại sau:

– Statement coverage (line coverage): Kiểm tra coverage trên từng dòng code

– Block coverage: Kiểm tra coverage theo block

– Conditional/Expression coverage: Kiểm tra coverage theo điều kiện, phép toán

– Branch/Decision coverage: Kiểm tra coverage theo nhánh

– Toggle coverage: Kiểm tra coverage theo sự lên, xuống (mức logic 0/1) của tín hiệu

– FSM coverage: Kiểm tra coverage của máy trạng thái

3. Functional coverage

Là phương pháp đánh giá mức độ bao phủ của thiết kế dựa trên tính năng đã được kiểm tra. Đối với phương pháp này, việc định ra những tính năng nào cần kiểm tra sẽ quyết định chất lượng của function coverage.

4. Một vài ví dụ

a) Statement Coverage /Line Coverage:

Kiểm tra để xác định tất cả các dòng code trong thiết kế đã được thực thi trong quá trình mô phỏng hay chưa.

 

b) Block coverage:

Kiểm tra các block đã được thực thi trong quá trình mô phỏng hay chưa.

Block được hiểu là các đoạn code bắt đầu (kết thúc) với các từ khóa như:

begin-end, if-else, case, wait, while loop, for loop, …

Như ví dụ ở trên, ta có thể thấy rằng line coverage đã bao gồm block coverage. Chúng ta có thể dùng block coverage có thể dễ dàng xác định được các đoạn code nào chưa được kiểm tra.

 

 

c) Toggle coverage:

Kiểm tra các tín hiệu trong thiết kế đã được toogle (0/1) hay chưa. Toggle coverage cũng chỉ ra những tín hiệu không được dùng hoặc là được cố định (fix) ở một giá trị trong suốt quá trình mô phỏng.

Bạn Có Đam Mê Với Vi Mạch hay Nhúng      -     Bạn Muốn Trau Dồi Thêm Kĩ Năng

Mong Muốn Có Thêm Cơ Hội Trong Công Việc

    Và Trở Thành Một Người Có Giá Trị Hơn

Bạn Chưa Biết Phương Thức Nào Nhanh Chóng Để Đạt Được Chúng

Hãy Để Chúng Tôi Hỗ Trợ Cho Bạn. SEMICON  

 

Hotline: 0972.800.931 - 0938.838.404 (Mr Long)

 

 

Last Updated ( Tuesday, 18 June 2019 20:01 )  

Related Articles

Chat Zalo