VHDL签名值

时间:2018-11-04 11:06:44

标签: vhdl

我刚刚在大学里开始VHDL模块,而我的讲师并不能很好地解释事情。如何在VHDL中使用/声明签名值?

这是我已经教过的基本代码格式,目前正在编程2位减法器。其他网站上的信息非常混乱。

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.std_logic_arith.all;

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

architecture gates of TwoBitSubtractor is
begin
    result<= x - y;
end gates;

1 个答案:

答案 0 :(得分:1)

您应使用signed类型来指定带符号的值。整数也可以用来以更易于理解的方式声明值,但是这样您就超出了位级别的定义,我认为这在VHDL中是不希望的。例如,您忽略了integer用于任何信号的位数,这对于高级语言可能是好的,但对VHDL来说却不太有用。

library ieee;
use ieee.numeric_std.all;

entity TwoBitSubtractor is port(
    x      : in signed(2 downto 0);
    y      : in signed(2 downto 0);
    result : out signed(2 downto 0));
end TwoBitSubtractor;

architecture gates of TwoBitSubtractor is
begin
    result <= x - y;
end gates;

查看在实体端口中声明它们的方式。有关已签名/未签名的更多详细信息,请检查here

还可以使用TwoBitSubtractor在线testbench进行模拟,请选中here