Menu
CoddyTech

Tích lũy mẫu

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 31 trên 38.

Hãy xây dựng một bộ giám sát có thể tái sử dụng cho luồng mẫu không dấu. Bạn sẽ tích lũy các giá trị, tuân theo các điều khiển bật và xóa, đếm số mẫu được chấp nhận và báo cáo liệu đã đạt ngưỡng hay chưa. Cả năm bước đều giữ nguyên giao diện module và testbench bị khóa. Các đầu ra dự trữ sẽ có chức năng trong những bước sau.

challenge icon

Thử thách

Khó

Xây dựng một Bộ giám sát mẫu qua năm bước. Ở mỗi cạnh lên, rst đồng bộ sẽ xóa tổng; nếu không, hãy cộng dữ liệu không dấu vào tổng. Dùng thanh ghi tổng 16 bit. Ở bước đầu tiên này, en và clear chưa được dùng, các kịch bản giữ en=1 và clear=0. count và alarm là các đầu ra dự phòng luôn bằng không. Tất cả giá trị đầu vào đều đã biết. Các kịch bản có tối đa 40 cạnh, vì vậy tổng vừa trong 16 bit. Testbench cố định in tổng cho các kịch bản 1-9, tổng và count cho các kịch bản 10-12, và tổng, count cùng alarm cho các kịch bản 13-15. Chỉ chấm điểm các kịch bản được bật cho bước này.

Hoàn thành design.v và giữ nguyên tên mô-đun cùng các cổng. testbench.v bị khóa, cung cấp các thay đổi đầu vào và in các đầu ra sau khi chúng ổn định. Testbench chọn một kịch bản bằng đối số trình mô phỏng như +CASE=1; không cần đầu vào tiêu chuẩn. Không thêm lệnh in, độ trễ hoặc lệnh kết thúc mô phỏng vào thiết kế. Đầu ra mong đợi gồm một hàng giá trị thập phân cho mỗi lần quan sát, 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(input clk,rst,en,clear, input [7:0] data, input [15:0] limit, output reg [15:0] total, output reg [3:0] count, output alarm);
    initial begin total=0;count=0;end
    assign alarm=0;
endmodule

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