Menu
CoddyTech

Dịch phải số học

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

Phép dịch phải số học dùng >>> và lặp lại bit dấu khi toán hạng bên trái là signed. Phép dịch phải logic dùng >> và điền các bit 0. Với một giá trị âm lẻ, dịch phải số học không giống phép chia số nguyên cắt phần thập phân về 0.

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

reg signed [7:0] value;
value = -3;
$display("%0d", value >>> 1);

Kết quả là âm hai vì việc mở rộng dấu giữ nguyên cách diễn giải số bù hai âm.

Dùng toán hạng trái signed với >>> khi cần mở rộng dấu.

challenge icon

Thử thách

Trung bình

Dịch phải số học giá trị 8 bit signed theo lượng dịch từ 0 đến 7. Trả về kết quả 8 bit signed y. Giá trị âm được điền bằng bit dấu. 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 của module. testbench.v đã 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ố 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á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 signed [7:0] value, input [2:0] amount, output signed [7:0] y);
    // Thay phần giữ chỗ này bằng thiết kế của bạn.
    assign 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