VHDL减法计算

VHDL减法计算,vhdl,Vhdl,VHDL如何进行减法运算?它是两者的补充吗? 对于一个2比特减法器,我被证明使用向量进行I/o,但它需要3个输入引脚/开关才能测试输出。(下载至DE0纳米板)。 所以我尝试使用整数值: entity TwoBitSubtractor is port( x,y : in integer range 0 to 3; result : out integer range -3 to 3); end TwoBitSubtractor; architecture

VHDL如何进行减法运算?它是两者的补充吗? 对于一个2比特减法器,我被证明使用向量进行I/o,但它需要3个输入引脚/开关才能测试输出。(下载至DE0纳米板)。 所以我尝试使用整数值:

entity TwoBitSubtractor is port(
    x,y         : in integer range 0 to 3;
    result     : out integer range -3 to 3);
end TwoBitSubtractor;

architecture gates of TwoBitSubtractor is
begin
    result <= x - y;
 end gates;
实体TwoBitSubtractor是端口(
x、 y:在0到3的整数范围内;
结果:超出整数范围-3到3);
结束二位减法器;
二位减法器的结构门是
开始

结果您使用
整数
信号进行计算,但您只能使用类型
标准逻辑
或使用
标准逻辑向量
设置一组IO引脚。因此,在顶部实体的某个地方,您没有向我们展示,
integer
std\u逻辑(\u向量)
之间有一个转换。没有隐式功能,您必须强制转换为
signed
unsigned
数据类型,在此处()查找转换函数


我猜您使用的是
无符号
值,请尝试在顶级实体中使用
有符号
。同样,对于输入,您不能使用
“01”
“10”
指定
整数,只能使用0、1、2、3等文字

我不能重新创建您的案例,我的结果总是正确的,问题可能是与电路板的连接在某种程度上打破了逻辑?我对DE0纳米板一点也不熟悉,你能分享一下它的规格、文档等吗?我能看看DE0上的输出电路吗?好的,我用Quartus II合成并运行网络列表,结果是正确的:。你能在这里发布你的网络列表文件吗?你能尝试使用签名值吗?用它来传递
001
010
,除了
111
,我认为这是由于使用了
整数。否则,它是一个非常简单的实体=)您应该发布一篇文章,让我们了解转换的错误之处