我用"进行学习操作。 +"," - "和" *",加法和减法效果很好,但乘法只给我添加,链接代码:
http://www.edaplayground.com/x/NvT
我检查了代码,无法理解发生了什么。我给了结果变量足够的空格(位)。
BTW,它是一个用于定点操作的代码,包括小数,但所有内容都按整数计算。
答案 0 :(得分:2)
您的选择信号仅为1位 然后当你设置select = 2时,它指定低位2(2'b10),即0 您应该通过以下方式更改选择声明:
input [1:0] select; // In the module
reg [1:0] select; // In the testbench
为避免此类错误,我建议您使用完整的值表示法:
x'tnnn...nnn
其中x是信号的宽度,t是类型(d表示十进制,h表示六进制,b表示二进制,...)和nnn ... nnn指定类型中的值。
例如,对于十进制值2,您将有几个在某些情况下有意义的符号:
2'd2 //2 bits decimal
2'h2 //2 bits hexadecimal
2'b10//2 bits binary
有关这些表示法的更多信息,请阅读this pdf。