Menu
CoddyTech

Ưu tiên reset và enable

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

Một khối có xung nhịp có thể giữ giá trị trong thanh ghi bằng cách bỏ qua phép gán ở các cạnh bị vô hiệu hóa. Cách lưu trữ có chủ ý này khác với chốt tổ hợp được tạo ra ngoài ý muốn. Hãy viết rõ thứ tự ưu tiên giữa đặt lại, nạp và bật. Ở đây, các tín hiệu đặt lại là đồng bộ: chúng chỉ có hiệu lực tại cạnh lên của xung nhịp.

Đ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) q <= 0;
    else if(en) q <= data;
end

Tín hiệu reset được ưu tiên khi cả hai tín hiệu điều khiển đều được kích hoạt, còn các cạnh không reset khi bị vô hiệu hóa sẽ giữ nguyên q.

Dùng một chuỗi ưu tiên đồng bộ với xung nhịp và xác định rõ hành vi đặt lại, nạp, bật và giữ.

challenge icon

Thử thách

Trung bình

Triển khai một thanh ghi 8 bit q với tín hiệu đặt lại đồng bộ mức cao rst và tín hiệu cho phép en. Ở cạnh lên, tín hiệu đặt lại được ưu tiên và xóa q; nếu không, các cạnh được cho phép sẽ nạp a, còn các cạnh bị vô hiệu hóa sẽ giữ nguyên q. Các 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 quan sát sau đó.

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 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. 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ỗi lần quan sát có một hàng gồm các giá trị thập phân, được phân cách 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, input [7:0] a, output reg [7:0] q);
    // Thay phần giữ chỗ này bằng thiết kế của bạn.
    initial q = 0;
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