Я хотел бы создать структурный файл VHDL, который реализует «главную» функцию. Файл верхнего уровня будет проектироваться, а программа, которая запускает код, будет прог. Предполагая, что fulladd_pack содержит компонент fulladd, как мне «связывать» два файла VHDL?struct vhdl: создание «основной функции»
* У меня также нет аргументов в основном, чтобы это работало.
-- design.vhdl
library ieee;
use ieee.std_logic_1164.all;
use work.fulladd_pack.all;
ENTITY design IS
port(Cin : IN STD_LOGIC;
X,Y : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
S : OUT STD_LOGIC_VECTOR(15 DOWNTO 0);
Cout, Over : OUT STD_LOGIC);
END design;
ARCHITECTURE struct OF design IS
SIGNAL C,temp : STD_LOGIC_VECTOR(1 TO 15);
BEGIN
main: prog PORT MAP(Cin,X,Y,S,C,Cin);
END struct;
-- prog.vhdl
library ieee;
use ieee.std_logic_1164.all;
use work.fulladd_pack.all;
ENTITY prog IS
port(Cin : IN STD_LOGIC;
X,Y : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
S : OUT STD_LOGIC_VECTOR(15 DOWNTO 0);
Cout, Over : OUT STD_LOGIC);
END prog;
ARCHITECTURE struct OF prog IS
SIGNAL C,temp : STD_LOGIC_VECTOR(1 TO 15);
BEGIN
instance0: fulladd PORT MAP(Cin,X,Y,S,C,Cin);
output: fulladd PORT MAP(Cin,X,Y,S,C,Cin);
END struct;
Ваш код не является [минимальным, полным и проверяемым примером] (http://stackoverflow.com/help/mcve), отсутствует декларация пакета, есть семантические ошибки, назначающие входные сигналы на выходы (где находятся Over используются сигналы?). дизайн не выглядит, если использует fulladd_pack, если там нет декларации компонента для prog (иначе отсутствует). Существуют конфликты дисков на S, Cout и Over в двух экземплярах full_add, которые просто подключены параллельно. c не объявляется, поскольку он используется, temp не используется. Связывание - это разработка, после того, как все анализируется (компилируется). Какой инструмент VHDL? – user1155120
Я думаю, что по ссылке вы хотите создать экземпляр 'prog' в архитектуре' design'. Вы на правильном пути. Но для чего нужны сигналы 'C' и' temp'? Почему вы не просто передали входные/выходные сигналы 'design' в экземпляр' main'? И чтобы получить помощь по 'prog', вам нужно либо опубликовать декларацию компонента« fulladd »из пакета, либо просто назначить некоторые (случайные) значения для вывода, чтобы« prog »мог быть скомпилирован. –
Я редактирую свой вопрос и объясняю, что хочу делать –