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

Обозначение портов питания в VHDL

Подскажите как обозначаются порты питания в VHDL. В Verilog это V port.

Ниже примерный кусок кода. Как обозначить порт XLXI_153

   XLXI_152 : GND
      port map (G=>XLXN_278);
   
   XLXI_153 : VCC
      port map (power=>XLXN_279);
 

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


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

2 hours ago, Evgenij said:

Подскажите как обозначаются порты питания в VHDL. В Verilog это V port.

Честно, не понимаю, что вы хотите (и судя по тишине - не один я такой).

1. Если необходимо signal'у XLXN_278 типа std_logic назначить значение '0', то так и пишем:
XLXN_278 <= '0';
XLXN_279 <= '1';

2. Если требуется что-то иное, то так и спрашивайте: "как лучше сделать то-то ?"
(описывайте задачу целиком, а не задавайте вопрос вырванный из середины решения: если решение неверное - люди просто не поймут чего вы хотели и, соответственно, не помогут).

3. В конструкции port map настоятельно рекомендую указывать тип того, что вы хотите использовать component или entity:
Xil_inst: component PULLUP port map ( O => qwerty );
My_Inst: entity My_XYI port map ( O => asdf );

Соответственно для component'а должно быть описание его портов (например в библиотеке), для PULLUP это будет библиотека UNISIM:
Library UNISIM;
use UNISIM.vcomponents.all;

А используемая entity должна быть синтезирована до того, как вы её используете (т.е. правильно задать compilation order ваших исходников), и тогда можно сослаться на рабочую библиотеку:
Library work;
use work.all;

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


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

1 hour ago, Beby said:

В конструкции port map настоятельно рекомендую указывать тип того, что вы хотите использовать component или entity:

Зачем? Что это даёт? Или меется в виду direct instantiation? Никогда не встречал использлвание слова component в этом контексте.

1 hour ago, Beby said:

Library work;
use work.all;

Это бессмысленно. По умолчанию всё и так ищется в work.

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


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

2 hours ago, andrew_b said:

Зачем? Что это даёт? Или меется в виду direct instantiation? Никогда не встречал использлвание слова component в этом контексте.

Да, direct instantiation.
При отсутствие слова entity считается, что применён component, соответственно - требуется описание портов оного компонента.
Если это библиотечный компонент - то всё естественно: подключаем библиотеку - там описание портов. Тело компонентов может отсутствовать на уровне синтеза (BlackBox).
Для нами описанных модулей - entity (скомпилированных в библиотеку work) можно при direct instantiation указывать 'entity', тогда никаких дополнительных описаний не требуется: порты подключаемого entity мы уже описывали (когда это entity объявляли) - требуется только чтобы он был скомпилирован ранее, чем применяется.

В своё время подсмотрел это в обучаловках в Aldec AHDL 5.x (и спецификации VHDL'93), лет с 20 назад.

2 hours ago, andrew_b said:

Это бессмысленно. По умолчанию всё и так ищется в work.

Обычно да. У сред от Xilinx, Altera всё в полном порядке.
А вот ModelSim 5.x - 6.x может попить крови.

Кстати тоже подсмотрел, но у Xilinx (где-то в ISE 7.1 c MXE - ModelSim Xilinx Edition)

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


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

7 hours ago, Evgenij said:

   XLXI_152 : GND
      port map (G=>XLXN_278);
   
   XLXI_153 : VCC
      port map (power=>XLXN_279);
 

это похоже из какого-то нетлиста выдрано. там не любят обычно '0' или '1', а специальные ячейки к которым прицепляются цепи с 0 и 1 соответственно.

насколько я понимаю, эта запись означает, что есть два библиотечных элемента с именами GND и VCC. один такой элемент установлен в "схему" под именем XLXI_153, и обеспечивает 1 (или power) в цепи XLNX_279

ну и хочу поинтересоваться, что значит "В Verilog это V port."

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


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

В VERILOG порт питания обозначается     V ,что приведено  на примере .

VCC  XLXI_167 (.V(XLXN_369));
   VCC  XLXI_1670 (.V(XLXN_3690));
   GND  XLXI_174 (.G(XLXN_413));

   GND  XLXI_500 (.G(XLXN_500));
   VCC  XLXI_181 (.V(XLXN_385));
   VCC  XLXI_182 (.V(XLXN_386));
   VCC  XLXI_183 (.V(XLXN_388));
   VCC  XLXI_184 (.V(XLXN_389));
   VCC  XLXI_187 (.V(XLXN_397));
   VCC  XLXI_189 (.V(XLXN_400));
   VCC  XLXI_190 (.V(XLXN_401));
   VCC  XLXI_191 (.V(XLXN_406));
    В  VHDL  не ясно каким знаком обозначается порт питания

ERROR (EX4916) : Formal vcc is not declared("C:\Users\e.svirin\Documents\fpga_project_1V7MI850 VHDL UST\src\TOP.vhd":6630)

ERROR (EX4916) : Formal vcc is not declared("C:\Users\e.svirin\Documents\fpga_project_1V7MI850 VHDL UST\src\TOP.vhd":6679)

ERROR (EX4916) : Formal vcc is not declared("C:\Users\e.svirin\Documents\fpga_project_1V7MI850 VHDL UST\src\TOP.vhd":6803)

ERROR (EX4916) : Formal vcc is not declared("C:\Users\e.svirin\Documents\fpga_project_1V7MI850 VHDL UST\src\TOP.vhd":6816)

 

 

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


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

По аналогии можно предположить, что в port map для VCC будет V без точки перед ним. 
ПС. Вопрос не имеет отношения ни к VHDL, ни к ПЛИСам, ни к Verilog. 

1 hour ago, Evgenij said:

В VERILOG порт питания обозначается     V ,что приведено  на примере

Это у вас в примере он так обозначен, язык Verilog этого не требует.

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


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

ЗАМЕНА в port map VCC на V не всегда помогает 

ПРИМЕР: ERROR (EX4916) : Formal v is not declared("C:\Users\e.svirin\Documents\fpga_project_1V7MI850 VHDL UST\src\TOP.vhd":11083)

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


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

27 minutes ago, Evgenij said:

ЗАМЕНА в port map VCC на V не всегда помогает 

ПРИМЕР: ERROR (EX4916) : Formal v is not declared("C:\Users\e.svirin\Documents\fpga_project_1V7MI850 VHDL UST\src\TOP.vhd":11083)

Какую вообще задачу вы пытаетесь решить? Переписать синтезированный нетлист с верилога на VHDL? 🙂

Вы показываете абсолютно бесполезные примеры. Не видя ваших исходников невозможно сказать, что у вас там происходит в 11083 строке. Повторюсь, к свойствам языка этот вопрос отношения не имеет. Фактически, вы спрашиваете: "что в моих исходниках не так?". Как обычно в этих случаях говорят, телепаты в отпуске и силой мысли проникнуть в ваши задачи возможности нет.

Спросите у лучше тех, кто задал вам эту задачку и находится в контексте происходящего.

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


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

Мозги закипают...😵‍💫

Питание ПЛИС подаётся на определённые пины, которые не переназначаются. 🙄

Для каких целей такая задача?

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


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

10 hours ago, Evgenij said:


   
    В  VHDL  не ясно каким знаком обозначается порт питания

ERROR (EX4916) : Formal vcc is not declared("C:\Users\e.svirin\Documents\fpga_project_1V7MI850 VHDL UST\src\TOP.vhd":6630)

 

ну вроде бы в вашем примере написано power , то есть вот так и обозначается/называется

или это нерабочий пример, просто чтоб проиллюстрировать вопрос?

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


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

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

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

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

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

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

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

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

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

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