2012-02-17 39 views

Trả lời

6

Nếu bạn khai báo reg như signed, $display sẽ hiển thị dấu trừ:

module tb; 

reg signed [7:0] acc; 

initial begin 
    acc = 8'hf0; 
    $display("acc : %d", acc); 
end 

endmodule 

/* 

Prints out: 

acc :   -16 

*/ 
4

Ran vào vấn đề này như là tốt và nhìn qua tiêu chuẩn SystemVerilog năm 2012, nhưng không thấy bất kỳ đề cập đến signedness trong phần về định dạng specifiers. Đây là giải pháp thay thế (về cơ bản tương đương) cũng hoạt động:

$display("acc : %d", $signed(acc)) 

Chức năng "$ signed" chuyển giá trị đầu vào thành loại đã ký với cùng độ rộng bit.

Các vấn đề liên quan