Перейти к содержанию
    

VHDL Port Map.

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

U_DSP_REG : REG_FILE Port map(
    UART_ADR              => "00000000",
    UART_DIN              => "0000000000000000",
    UART_DOUT           => "0000000000000000",
    UART_WR               => '0',
    UART_RD_NEXT      => '0',
    UART_INT              => '0',
);

генерирует ошибку.

item cannot be assigned value

Как быть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Порты UART_DOUT и UART_INT скорее всего являются выходами. Если они не нужны, то можно их не писать в port map, или явно написать

UART_DOUT => open,

UART_INT => open

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Порты UART_DOUT и UART_INT скорее всего являются выходами. Если они не нужны, то можно их не писать в port map, или явно написать

UART_DOUT => open,

UART_INT => open

Спасибо. open работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Когда не использую какой-либо порт у компонента, объявляю сигнал и завожу на него.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Когда не использую какой-либо порт у компонента, объявляю сигнал и завожу на него.

да но у меня не очень много места. экономлю на каждом сигнале.

 

У меня уже total logic elements заняты на 70%. а мне еще кучу кода надо запихать.

Изменено пользователем Jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно поступить так:

 

В entity этого компонента, который мапите, присвоить входным сигналам исходное значение. Например:

 

entity bla_bla_bla is
  port(
    aa  : in std_logic_vector(N-1 downto 0):=(others=>'0');
    bb  : in std_logic:='0';
    ...
  );    
end bla_bla_bla;

 

Тогда не надо входным портам присваивать значения. А про выходные уже ответили: либо вообще ничего не писать, либо => open.

 

да но у меня не очень много места. экономлю на каждом сигнале.

 

У меня уже total logic elements заняты на 70%. а мне еще кучу кода надо запихать.

Условная запись:

 

signal test : std_logic_vector(3 downto 0):="0000";

 

Не тратит логические ресурсы и триггеры совсем, если далее в коде значение сигнала нигде не меняется.

 

А чтобы наверняка не менять это значение - вместо signal напишите constant и мапьте к компонентам константы значений.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А чтобы наверняка не менять это значение - вместо signal напишите constant и мапьте к компонентам константы значений.

Константы хороши когда их подают на входные порты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...