Menu
CoddyTech

Bảo toàn các bit nhớ

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

Độ rộng tín hiệu quyết định những bit nào có thể được biểu diễn. Hãy mở rộng các toán hạng trước khi thực hiện phép toán để thể hiện rõ ý định tính toán. Cộng hai giá trị không dấu 8 bit có thể cần 9 bit cho kết quả; nếu chỉ gán vào 8 bit, ta giữ lại 8 bit thấp và làm mất bit nhớ.

Đ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.

wire [8:0] total;
assign total = {1'b0,a} + {1'b0,b};

Mỗi toán hạng có độ rộng chính xác là chín bit, khớp với tổng đầy đủ.

Chọn độ rộng kết quả cần thiết và mở rộng các toán hạng trước khi thực hiện phép tính.

challenge icon

Thử thách

Trung bình

Cộng a và b dưới dạng số không dấu 8 bit mà không làm mất bit nhớ. Trả về tổng đầy đủ 9 bit trong total. Mở rộng tường minh cả hai toán hạng thành 9 bit. Cột đầu ra: total. 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 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 đầ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ộ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 [7:0] a, input [7:0] b, output [8:0] total);
    // Thay phần giữ chỗ này bằng thiết kế của bạn.
    assign total = 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