Menu
CoddyTech

Phép so sánh có dấu

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

Cùng một mẫu bit có thể biểu diễn các số có dấu và không dấu khác nhau. Hãy khai báo cả hai toán hạng là signed khi so sánh các giá trị bù hai. Trộn toán hạng có dấu và không dấu có thể làm thay đổi cách diễn giải phép so sánh. Phép nối là biểu thức không dấu, ngay cả khi chúng chứa các tín hiệu signed.

Trích đoạn liên quan; thử thách có cung cấp các khai báo và kết nối xung quanh.

wire signed [7:0] a,b;
assign less = a < b;

Các khai báo signed khiến giá trị âm được xem là nhỏ hơn giá trị không âm.

Hãy giữ các toán hạng so sánh nhất quán ở dạng signed và mở rộng các giá trị signed bằng bit dấu của chúng.

challenge icon

Thử thách

Trung bình

So sánh a và b 8 bit signed. Xuất less khi a nhỏ hơn b và equal khi chúng bằng nhau. Cả hai đầu vào đều là giá trị signed theo biểu diễn bù hai. Các cột đầu ra: less, equal. Tất cả giá trị kích thích đều là giá trị nhị phân đã biết.

Hoàn thành design.v và giữ nguyên tên module cùng các cổng của nó. testbench.v bị khóa, cung cấp các thay đổi đầu vào và in các đầ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 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 signed [7:0] a, input signed [7:0] b, output less, output equal);
    // Thay phần giữ chỗ này bằng thiết kế của bạn.
    assign less = 0;
    assign equal = 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