我使用了一个用于state_values的包:
library IEEE;
use IEEE.STD_LOGIC_1164.all;
package States is
type state_values is (ST0,ST1,ST2,ST3,ST4,ST5,ST6,ST7,ST8,ST9,ST10,ST11,ST12,ST13,ST14,ST15,ST16);
signal pres_state, next_state: state_values;
end States;
这是我的组件,具有通用实体:
component NextStateLogic
generic (
BLRH : STD_LOGIC_VECTOR (3 downto 0);
pres_state : state_values := ST0;
next_state : state_values := ST0);
end component;
在代码中,有几个嵌入式信号用于组件之间的通信:
signal LRH_int : STD_LOGIC_VECTOR (3 downto 0);
signal next_state_int : state_values := ST0;
signal pres_state_int : state_values := ST0;
signal Clk1Hz_int : STD_LOGIC;
在instanciate向我显示下一个错误:
The actual value (Signal 'LRH_int') associated with a generic must be a globally static expression.
调查,我无法将信号连接到泛型,我可以使用constanst,但这些对代码的使用没有用。 有没有办法用通用组件和其他类型的嵌入信号实现通用组件?
答案 0 :(得分:0)
泛型用于在合成代码之前配置组件的所有内容。例如,您可以使用通用配置输入和输出信号的宽度。
端口用于在运行时动态变化的所有内容,例如数据信号时钟等。
因此,让一个实体(或组件)只有一个通用映射是不明智的,因为它永远不会在硬件中做任何事情。使用端口定义。