Menu
CoddyTech

Xóa cửa sổ hiện tại

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

challenge icon

Thử thách

Khó

Xây dựng một Bộ giám sát mẫu qua năm bước. Thêm thao tác xóa đồng bộ, có mức ưu tiên sau rst và trước en. clear đặt lại total mà không nhận dữ liệu ở cạnh đó, kể cả khi en=1. Giữ nguyên hành vi đặt lại và bật. Giữ lại mọi thứ từ các bước trước, bao gồm testbench và hành vi đầu ra trước đó. Tất cả giá trị đầu vào đều đã biết. Mỗi tình huống có tối đa 40 cạnh, vì vậy total nằm gọn trong 16 bit. Testbench cố định in total cho các tình huống từ 1 đến 9, total và count cho các tình huống từ 10 đến 12, và total, count cùng alarm cho các tình huống từ 13 đến 15. Chỉ chấm điểm các tình huống được bật cho bước này.

Hoàn thiện design.v và giữ nguyên tên module cùng các cổng của nó. testbench.v bị khóa sẽ cung cấp các thay đổi đầu vào và in đầu ra sau khi chúng ổn định. Testbench chọn một tình huống bằng đối số của trình mô phỏng như +CASE=1; không cần đầu vào 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 là một hàng giá trị thập phân cho mỗi lần quan sát, các giá trị cách nhau 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);
    always @(posedge clk)begin
        if(rst)total<=0;else if(en)total<=total+data;
        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