Menu
CoddyTech

Giá trị mặc định ngăn chố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 1 trên 38.

Phải gán đầu ra tổ hợp cho mọi đường đi của đầu vào. Nếu khối always bỏ qua việc gán đầu ra, đầu ra đó giữ nguyên giá trị cũ, dẫn đến việc suy ra một chốt. Gán giá trị default rồi ghi đè giúp bạn thấy rõ độ bao phủ.

Đ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 @* begin
    y = 0;
    if (en) y = data;
end

default xử lý nhánh bị vô hiệu hóa, vì vậy đầu ra (output) chỉ phụ thuộc vào các đầu vào hiện tại.

Gán giá trị cho mọi đầu ra tổ hợp trên mọi nhánh; đặt giá trị mặc định trước khi ghi đè bằng điều kiện.

challenge icon

Thử thách

Trung bình

Triển khai đầu ra 8 bit có điều khiển: khi en bằng một, y bằng a; nếu không, y bằng không. Gán y trên mọi đường đi tổ hợp. Cột đầu ra: y. Tất cả giá trị kích thích đều là giá trị nhị phân đã biết.

Hoàn thiện design.v và giữ nguyên tên module cùng các cổng. 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. Tệp chọn một kịch bản bằng một đối số của 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ác giá trị 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 en, input [7:0] a, output reg [7:0] y);
    // Thay phần giữ chỗ này bằng thiết kế của bạn.
    initial y = 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