У меня проблема с запутанностью в моей программе. Мне нужна моя программа для сопоставления карты (вызова) компонента. Кроме того, внутри компонента мне нужно выполнить другое сопоставление портов (вызов), которое является незаконным в VHDL. У вас есть альтернативное решение этой проблемы. Вот пример того, что я имел в виду.Вызов компонента внутри другого компонента «Сопоставление портов» (недопустимое заявление) VHDL
Здесь я начинаю свою программу:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity binary1 is
port(N: in std_logic;
d: out integer);
end binary1 ;
Architecture Behavior1 of binary1 is
Вот это компонент, например:
component binary_integer_1 is
port (b1: in std_logic;
int1: out integer);
end component;
Команда для вызова компонента: начинают s0: binary_integer_1 карта порта (п, d); end Behavior1;
Кроме того, здесь основная программа:
library ieee;
use ieee.std_logic_1164.all;
entity binary_integer_1 is
port (b1: in std_logic;
int1: out integer);
end binary_integer_1;
architecture Behavior4 of binary_integer_1 is
begin
process(b1)
begin
if b1 = '1' then
int1 <= 1;
else
int1 <= 0;
end if;
end process;
end Behavior4;
Например, если я хочу сделать карту порта внутри верхнего объекта. У меня есть незаконное заявление. Пожалуйста, предоставьте мне другой способ сделать это.
Ваш пример не ясен, вы слишком много обрезали. Ваш язык для описания экземпляра компонента нестандартен. Еще немного кода поможет, как и любые реальные сообщения об ошибках. «Последовательная декомпозиция проектного объекта на компоненты и привязка этих компонентов к другим конструктивным объектам, которые могут быть разложены подобным образом, приводит к иерархии дизайнерских объектов, представляющих полный дизайн. Такая коллекция дизайнерских объектов называется иерархией дизайна. " В LRM, в следующем абзаце, где вы думаете, что это незаконно (это не так). – user1155120