2013-11-02 2 views
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. 

Исследование, я не могу подключить сигналы к дженерикам, я могу использовать константу, но это не полезно для разжигания кода. Есть ли способ стимулировать общий компонент и другой тип встроенных сигналов?

+0

Сигналы подключаются к портам, а не к дженерикам (и я бы использовал пакет для типов и функций, но не для сигнальных объявлений, даже для этих типов) –

ответ

0

Generics используются для всего, что настраивает компонент до того, как код будет синтезирован. Например, у вас может быть общий тип, который настраивает ширину ваших входных и выходных сигналов.

Порты используются для всего, что изменяется динамически во время выполнения, например, сигналы данных часов и т.д.

Поэтому не имеет смысла иметь объект (или компонент) только с общей карты, потому что это было бы никогда ничего не делайте в аппаратных средствах. Используйте определение .

Смежные вопросы