以十进制显示补码

时间:2015-07-03 22:49:18

标签: verilog

我正在为数字设计课程开展一个Verilog项目,我的项目是创建一个计算器,除其他外,它采用16b签名输入的补充,并在模拟器的监视器中以十进制形式显示。 / p>

这是我的测试台监视器:

//Assuming VB when using ASP Classic
//Also assuming a method that returns the values for your dropdown
Dim dropDownArray() = MethodToReturnArrayOfDropDownText()

//Using your snippet for getting the dropdown value
Dim item = request.form("data")

//Use that value to get the text out of the array
Dim selectedText = dropDownArray(item)

我无法让模拟器以负十进制表示显示输入的补码。这只是模拟器不会显示的内容,还是$monitor ("opCode(%b),in1(%d),in2(%d),result(%d),overflow(%b)", opCode, in1, in2, result, overflow); 的问题?所有其他结果正确显示为十进制。

结果显示如下输出。它显示补码结果显示为65526,应为-10。上面和下面的结果分别正确显示15和11。

$monitor

1 个答案:

答案 0 :(得分:0)

尝试将result声明为signed

reg signed [15:0] result;

(见In verilog printing signed integer value stored in a variable of type reg