VHDL减法计算

时间:2018-11-04 16:40:43

标签: vhdl

VHDL如何进行减法计算?两者互补吗? 对于2位减法器,我被证明使用向量进行I / O,但它需要3个输入引脚/开关才能测试输出。 (下载到DE0 Nano Board)。 所以我尝试使用整数值:

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;

它编译成功,但是板上的某些输出使我感到困惑。 例如: 01-10 = 100

这是DE0纳米板的ss

enter image description here

对于-1,不是111吗?

DE0纳米板规格 http://www.ti.com/lit/ug/tidu737/tidu737.pdf

1 个答案:

答案 0 :(得分:1)

您正在使用integer信号进行计算,但是只能使用std_logic类型或使用std_logic_vector来设置一组IO引脚。因此,在您尚未显示给我们的最高实体中的某个地方,integerstd_logic(_vector)之间存在转换。没有隐式功能,您必须转换为signedunsigned数据类型,请在此处(Duolos VHDL designer guide)获得转换功能。

我猜您正在使用unsigned值,请尝试在顶级实体中使用signed。输入内容也是如此,您不能使用integer"01"来指定"10",而只能使用像0、1、2、3这样的文字。