Menu
CoddyTech

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
endtask

Hà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.

challenge icon

Thử thách

Trung bình

Cà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
endmodule
quiz iconTự kiểm tra

Bà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

Tự luyện tập: Trình biên dịch Verilog online