Чтобы поддерживать масштабируемость в моем проекте VHDL, я начал использовать записи как входы и выходы для своих компонентов. В настоящее время я нахожусь в точке, где я хочу связать свой компонент с внешним использованием карт портов в архитектуре верхнего уровня. Проблема в том, что записи имеют несколько переменных, которые должны быть связаны с разными источниками.
В настоящее время мои записи, используемые в коде VHDL выглядеть следующим образом (имена заменены подделками):
Верхний уровень с использованием карт портов с записями в VHDL
TYPE some_record_input IS RECORD
input_one : sfixed(3 downto -32);
input_two : sfixed(3 downto -32);
input_rst : std_logic;
END RECORD;
TYPE some_record_output IS RECORD
output_one : std_logic_vector(15 downto 0);
output_dn : std_logic;
END RECORD;
Следовательно, что я использую библиотеку fixed_pkg для неподвижных точек.
Эти записи используются в карте порта сущности следующим образом.
ENTITY my_component IS
port
(
clk : IN std_logic;
data : IN some_record_input;
result : OUT some_record_output
);
END my_component;
Теперь о той части, где возникают проблемы. Я использую этот компонент на своем верхнем уровне, чтобы связать его с кнопками и светодиодами, доступными для моего Altera Board. Это в настоящее время осуществляется с помощью карты порта в теле моего верхнего уровня лица:
A0 : my_component PORT MAP(clk => CLK, data => (input_one => IONE, input_two => ITWO, input_rst => RST), result => (output_one => OONE, output_dn => ODN));
Следовательно, что сигналы капитала исходящих из них. Очевидно, что это не так, потому что modelsim не компилирует это. Мне было интересно, может ли кто-нибудь сказать мне, как порт сопоставляет запись для объекта верхнего уровня в VHDL. Заранее спасибо.
Объявлять сигналы ваших типов записей и сопоставлять их непосредственно с портами. –
Я не уверен, в чем ваш вопрос. Вы имеете в виду, как назначить выводы для записей верхнего уровня/Как записи на карте портов верхнего уровня сопоставляются с именами контактов UCF? – Paebbels