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.
Thử thách
Trung bìnhSo 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;
endmoduleBà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
1RTL tổ hợp đáng tin cậy
Giá trị mặc định ngăn chốtBộ mã hóa ưu tiênKiểm tra one-hotGiải mã case an toànÔn tập: Bộ định tuyến yêu cầu2Độ rộng bit và số học có dấu
Bảo toàn các bit nhớPhép so sánh có dấuDịch phải số họcTràn số và bão hòaÔn tập: hiệu có dấuTự luyện tập: Trình biên dịch Verilog online