声明与另一个信号(VHDL)

时间:2017-11-20 13:13:09

标签: syntax signals vhdl

是否可以在VHDL中声明与另一个信号相同类型的信号?

例如,假设我们有以下信号声明:

signal address_q : integer range 0 to 31;

我需要声明一个与address_d变量(address_q)类型相同的变量integer range 0 to 31。是否可以通过使用内置信号属性或以其他方式实现此目的?

2 个答案:

答案 0 :(得分:2)

subtype属性可能就是您要找的内容:

entity foo is
end entity foo;

architecture bar of foo is
  signal address_q : integer range 0 to 31;
begin
  process
    variable v: address_q'subtype;
  begin
    report to_string(v'subtype'left);
    report to_string(v'subtype'right);
    wait;
  end process;
end architecture bar;

使用GHDL进行模拟:

foo.vhd:10:5:@0ms:(report note): 0
foo.vhd:11:5:@0ms:(report note): 31

注意:此属性已在VHDL 2008中引入。请勿尝试将其与旧版VHDL标准一起使用。

答案 1 :(得分:1)

第一路:

您可以用逗号分隔更多信号。

-javaagent:"/C:/USERS/.m2/repository/org/springframework/spring-instrument/4.3.9.RELEASE/spring-instrument-4.3.9.RELEASE.jar"

第二路:

您可以先声明您的类型,然后将其用于所有信号声明。

signal address_q, address_d : integer range 0 to 31;