我正在为数字设计课程开展一个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
答案 0 :(得分:0)
尝试将result
声明为signed
。
reg signed [15:0] result;
(见In verilog printing signed integer value stored in a variable of type reg)