Что такое «обложка HDL верхнего уровня» и почему нам нужно это делать в проекте SoC?Что такое «обложка HDL верхнего уровня» в Vivado SoC?
ответ
Вы правы, как правило, в документации Vivado объясняется, как его генерировать, но не то, что это такое. Ну, я думаю, вы используете языки HLD (например, VHDL). Вы знаете, что вы можете создавать разные component
, и вы можете map
их в своем верхнем модуле HLD.
Здесь же: вы создаете проект RTL с вашим конструктивным оборудованием, которое необходимо подключить к вашей целевой плате. WRAPPER - это файл, который соединяет выходной/входной порт вашего дизайна с физическим выводом, описанным в файле ограничений.
Например, если вы создаете простой дизайн с процессором zynq, его необходимо подключить к DDR, часам, выводам IO_mio и т. Д. В этом случае, оболочка должна быть что-то вроде этого:
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
library UNISIM;
use UNISIM.VCOMPONENTS.ALL;
entity design_1_wrapper is
port (
DDR_addr : inout STD_LOGIC_VECTOR (14 downto 0);
DDR_ba : inout STD_LOGIC_VECTOR (2 downto 0);
DDR_cas_n : inout STD_LOGIC;
DDR_ck_n : inout STD_LOGIC;
DDR_ck_p : inout STD_LOGIC;
DDR_cke : inout STD_LOGIC;
DDR_cs_n : inout STD_LOGIC;
DDR_dm : inout STD_LOGIC_VECTOR (3 downto 0);
DDR_dq : inout STD_LOGIC_VECTOR (31 downto 0);
DDR_dqs_n : inout STD_LOGIC_VECTOR (3 downto 0);
DDR_dqs_p : inout STD_LOGIC_VECTOR (3 downto 0);
DDR_odt : inout STD_LOGIC;
DDR_ras_n : inout STD_LOGIC;
DDR_reset_n : inout STD_LOGIC;
DDR_we_n : inout STD_LOGIC;
FIXED_IO_ddr_vrn : inout STD_LOGIC;
FIXED_IO_ddr_vrp : inout STD_LOGIC;
FIXED_IO_mio : inout STD_LOGIC_VECTOR (53 downto 0);
FIXED_IO_ps_clk : inout STD_LOGIC;
FIXED_IO_ps_porb : inout STD_LOGIC;
FIXED_IO_ps_srstb : inout STD_LOGIC
);
end design_1_wrapper;
architecture STRUCTURE of design_1_wrapper is
component design_1 is
port (
DDR_cas_n : inout STD_LOGIC;
DDR_cke : inout STD_LOGIC;
DDR_ck_n : inout STD_LOGIC;
DDR_ck_p : inout STD_LOGIC;
DDR_cs_n : inout STD_LOGIC;
DDR_reset_n : inout STD_LOGIC;
DDR_odt : inout STD_LOGIC;
DDR_ras_n : inout STD_LOGIC;
DDR_we_n : inout STD_LOGIC;
DDR_ba : inout STD_LOGIC_VECTOR (2 downto 0);
DDR_addr : inout STD_LOGIC_VECTOR (14 downto 0);
DDR_dm : inout STD_LOGIC_VECTOR (3 downto 0);
DDR_dq : inout STD_LOGIC_VECTOR (31 downto 0);
DDR_dqs_n : inout STD_LOGIC_VECTOR (3 downto 0);
DDR_dqs_p : inout STD_LOGIC_VECTOR (3 downto 0);
FIXED_IO_mio : inout STD_LOGIC_VECTOR (53 downto 0);
FIXED_IO_ddr_vrn : inout STD_LOGIC;
FIXED_IO_ddr_vrp : inout STD_LOGIC;
FIXED_IO_ps_srstb : inout STD_LOGIC;
FIXED_IO_ps_clk : inout STD_LOGIC;
FIXED_IO_ps_porb : inout STD_LOGIC
);
end component design_1;
begin
design_1_i: component design_1
port map (
DDR_addr(14 downto 0) => DDR_addr(14 downto 0),
DDR_ba(2 downto 0) => DDR_ba(2 downto 0),
DDR_cas_n => DDR_cas_n,
DDR_ck_n => DDR_ck_n,
DDR_ck_p => DDR_ck_p,
DDR_cke => DDR_cke,
DDR_cs_n => DDR_cs_n,
DDR_dm(3 downto 0) => DDR_dm(3 downto 0),
DDR_dq(31 downto 0) => DDR_dq(31 downto 0),
DDR_dqs_n(3 downto 0) => DDR_dqs_n(3 downto 0),
DDR_dqs_p(3 downto 0) => DDR_dqs_p(3 downto 0),
DDR_odt => DDR_odt,
DDR_ras_n => DDR_ras_n,
DDR_reset_n => DDR_reset_n,
DDR_we_n => DDR_we_n,
FIXED_IO_ddr_vrn => FIXED_IO_ddr_vrn,
FIXED_IO_ddr_vrp => FIXED_IO_ddr_vrp,
FIXED_IO_mio(53 downto 0) => FIXED_IO_mio(53 downto 0),
FIXED_IO_ps_clk => FIXED_IO_ps_clk,
FIXED_IO_ps_porb => FIXED_IO_ps_porb,
FIXED_IO_ps_srstb => FIXED_IO_ps_srstb
);
end STRUCTURE;
Конечно, если вы откроете файл вашей доски-ограничений вы волшебно обнаружить, что сигнальные порты все связаны с физическими штифтов FPGA чип.
- 1. Что такое «привязка верхнего уровня»?
- 2. Что такое модуль верхнего уровня в Python?
- 3. Что такое интерфейс верхнего уровня в go?
- 4. Что такое оператор верхнего уровня в Python?
- 5. Что такое картинка верхнего уровня Cocos2d
- 6. Что такое типы верхнего уровня и типы вложенного уровня?
- 7. Что означает оценка «верхнего уровня»?
- 8. Что верхнего уровня код выполняется на импорт
- 9. верхнего уровня
- 10. Функции верхнего уровня Haskell
- 11. Что представляют собой объекты верхнего уровня?
- 12. Что означает «каталог верхнего уровня» (контекст приложения)?
- 13. Что значит купить домен верхнего уровня (TLD)?
- 14. Что именно нам является окно верхнего уровня в программировании win32?
- 15. Сортировка верхнего уровня уровня следующего уровня - Ruby
- 16. Что такое команда «create_clock» в проекте FPGA?
- 17. Что такое архитектура N-уровня?
- 18. Что такое код производственного уровня?
- 19. Что такое утверждения уровня источника?
- 20. Прозрачные окна верхнего уровня
- 21. Сохранять коллекцию верхнего уровня?
- 22. Как различать заголовок верхнего уровня и верхнего уровня
- 23. Импорт пакетов верхнего уровня
- 24. Назначение верхнего уровня
- 25. DNS, домены верхнего уровня
- 26. неожиданное исключение верхнего уровня:
- 27. Переключение элементов верхнего уровня
- 28. Неразрешенная перегрузка верхнего уровня
- 29. несколько окон верхнего уровня
- 30. исключением верхнего уровня ничего
[Vivado Design Suite Учебник Проектирование IP-подсистем с использованием IP-интеграции UG995 (v2016.2) 8 июня 2016 года] (https://www.xilinx.com/support/documentation/sw_manuals/xilinx2016_2/ug995-vivado-ip- subsystems-tutorial.pdf) – user1155120
Вы можете принять ответ, если это было полезно! – Leos313