Chấp nhận mẫu đã bật
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 32 trên 38.
Thử thách
KhóXây dựng một Sample Monitor qua năm bước. Thêm điều khiển bật: sau khi ưu tiên reset, en=1 chấp nhận dữ liệu và cộng dữ liệu vào tổng; en=0 giữ nguyên tổng. Giữ lại toàn bộ hành vi trước đó. 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. 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à số đếm cho các kịch bản 10-12, và tổng, số đếm cùng tín hiệu báo động 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 sẽ cung cấp các thay đổi đầu vào và in các đầu ra sau khi chúng ổn định. Tệp này 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. 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);
always @(posedge clk)begin
if(rst)total<=0;else total<=total+data;
count<=0;
end
assign alarm=0;
endmoduleTấ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ầu4RTL tuần tự có điều khiển
Ưu tiên reset và enableBộ đếm bão hòaPipeline dữ liệu và validPhát hiện cạnh tín hiệu đã lấy mẫuÔn tập: bộ đếm sự kiện7Dự án: Bộ theo dõi mẫu
Tích lũy mẫuChấp nhận mẫu đã bậtTự luyện tập: Trình biên dịch Verilog online