Bộ đếm bão hòa
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 17 trên 38.
Phần cơ bản dùng bộ đếm quay vòng. Bộ đếm bão hòa sẽ dừng ở một giới hạn, phù hợp khi cần đếm trong phạm vi hữu hạn. Thêm điều kiện bảo vệ tường minh vào phép cập nhật số học, đồng thời giữ cho hoạt động của enable và reset độc lập với giới hạn.
Đ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.
always @(posedge clk) begin
if(rst) count <= 0;
else if(en && count != 15) count <= count + 1;
endGiá trị tối đa được giữ lại thay vì quay về 0.
Cập nhật tường minh giới hạn của bộ đếm khi bộ đếm phải dừng ở giới hạn thay vì quay vòng.
Thử thách
Trung bìnhTạo bộ đếm bão hòa 4 bit q. Tín hiệu đồng bộ rst sẽ xóa bộ đếm. Các cạnh xung nhịp khi được cho phép sẽ tăng giá trị cho đến 15, sau đó giữ nguyên ở 15; các cạnh khi bị vô hiệu hóa cũng giữ nguyên giá trị. Tín hiệu đặt lại được ưu tiên. Cột đầu ra: q. Tất cả tín hiệu điều khiển và dữ liệu đều ổn định trước mỗi cạnh lên của xung nhịp; kết quả được đọc sau đó.
Hoàn thiện 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 ra đầ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. Đừ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 các 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, input rst, input en, output reg [3:0] q);
// Thay phần giữ chỗ này bằng thiết kế của bạn.
initial q = 0;
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ầ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ệnTự luyện tập: Trình biên dịch Verilog online