0

我正在使用 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.

调查,我不能将信号连接到泛型,我可以使用 constant 但这对代码的支持没有用。有没有办法用另一种类型的嵌入式信号来实例化通用组件?

4

1 回答 1

0

泛型用于在合成代码之前配置组件的所有内容。例如,您可以拥有一个配置输入和输出信号宽度的泛型。

端口用于在运行时动态变化的所有内容,例如数据信号时钟等。

因此,拥有一个只有通用映射的实体(或组件)是不明智的,因为它永远不会在硬件中做任何事情。使用端口定义。

于 2013-11-05T07:37:18.707 回答