Tác vụ kiểm tra có thể tái sử dụng
Thuộc phần Thiết kế và xác minh RTL trong hành trình Verilog của Coddy. Bài học 27 trên 38.
task trong Verilog nhóm các thao tác theo thủ tục và có thể trả về kết quả thông qua các đối số đầu ra hoặc đầu vào/đầu ra. Các task trong testbench giúp giảm việc kiểm tra trùng lặp. Không giống như function tổ hợp, task có thể chứa các điều khiển thời gian khi phù hợp, nhưng các task kiểm tra này chỉ thực hiện phép so sánh không tốn thời gian. Hãy dùng task tự động nếu các lệnh gọi đồng thời riêng biệt cần vùng lưu trữ cục bộ độc lập; các lệnh gọi được cung cấp ở đây là tuần tự.
Đoạn trích liên quan; các khai báo và kết nối xung quanh được cung cấp trong thử thách.
task check_value;
input [7:0] actual,expected;
output ok;
begin ok = (actual === expected); end
endtaskHàm gọi nhận kết quả kiểm tra thông qua một đối số đầu ra tường minh.
Xác định hướng của đối số task và đặt lại các biến kết quả trong mỗi lần gọi trước khi thu thập lỗi.
Thử thách
Trung bìnhCài đặt check_value để ok bằng 1 khi actual và expected khớp nhau theo phép so sánh bốn trạng thái, và bằng 0 trong trường hợp còn lại. Module này chứa một task chỉ dùng cho mô phỏng, được testbench đã khóa gọi. Các cột đầu ra: ok.
Hoàn thiện design.v và giữ nguyên tên module cùng các cổng của module. testbench.v đã khóa cung cấp các thay đổi đầu vào và in đầu ra sau khi chúng ổn định. Nó chọn một kịch bản bằng đối số của trình mô phỏng, chẳng hạn như +CASE=1; không cần đầu vào tiêu chuẩn. Giữ phần in kết quả và điều khiển kịch bản trong testbench đã khóa; chỉ cài đặt phần thân của task. Đầu ra mong đợi là mỗi quan sát có một hàng giá trị thập phân, các giá trị cách nhau bằng một dấu cách và kết thúc bằng ký tự xuống dòng.
Tự làm thử
module dut;
task check_value;
input [7:0] actual,expected;
output ok;
begin
// Hoàn thành task kiểm tra.
ok=0;
end
endtask
endmoduleBài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Thiết kế và xác minh RTL
1RTL tổ hợp đáng tin cậy
Giá trị mặc định ngăn chốtBộ mã hóa ưu tiênKiểm tra one-hotGiải mã case an toànÔn tập: Bộ định tuyến yêu cầu2Độ rộng bit và số học có dấu
Bảo toàn các bit nhớPhép so sánh có dấuDịch phải số họcTràn số và bão hòaÔn tập: hiệu có dấu3RTL có thể tái sử dụng
Hàm tổ hợpTham số an toàn về độ rộngVòng lặp generateGenerate có điều kiệnÔn tập: mặt nạ bit có thể tái sử dụng6Testbench tự kiểm tra
Kiểm tra bốn trạng tháiTác vụ kiểm tra có thể tái sử dụngMô hình tham chiếu và điểm sốĐộ bao phủ biên và điều khiểnÔn tập: kiểm tra bộ cộngTự luyện tập: Trình biên dịch Verilog online