我在VHDL中有一个信号声明如下:
signal Temp_Key : std_logic_vector(79 downto 0);
Run Code Online (Sandbox Code Playgroud)
这Temp_Key通过for循环31次并被修改.我想将31个不同的数据存储Temp_Keys在一个数组中.
是否可以在VHDL中使用多维数组来存储80位信号?
Jos*_*osh 24
是的,首先你需要声明一个类型:
type YOUR_ARRAY_TYPE is array (0 to 30) of std_logic_vector(79 downto 0);
Run Code Online (Sandbox Code Playgroud)
请注意,您也可以声明类型为长度不定的 - 所以你可以指定有多少80个的字有,当你宣布你的信号.使用VHDL 2008,您还可以保留未指定的slv的大小,也可以在创建信号时声明.例如:
type slv_array is array (natural range <>) of std_logic_vector;
Run Code Online (Sandbox Code Playgroud)
然后使用它
signal MY_SIGNAL : YOUR_ARRAY_TYPE;
...
MY_SIGNAL(0) <= data;
...
MY_SIGNAL(1) <= data;
Run Code Online (Sandbox Code Playgroud)
请参阅此处以供参考.