0
什麼是「頂級HDL封裝」以及我們爲什麼需要在SoC項目中實現?什麼是「頂級HDL封裝」意味着Vivado SoC?
什麼是「頂級HDL封裝」以及我們爲什麼需要在SoC項目中實現?什麼是「頂級HDL封裝」意味着Vivado SoC?
您是對的,通常在Vivado文檔中介紹瞭如何生成它,但不是它是什麼。好吧,我猜你使用HLD語言(例如VHDL)。你知道,你可以創建不同的component
,你可以在你的頂級模塊HLD實體中創建它們map
。
這裏是一樣的:你創建一個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芯片。
[Vivado Design Suite教程使用IP集成設計IP子系統UG995(v2016.2)2016年6月8日](https://www.xilinx.com/support/documentation/sw_manuals/xilinx2016_2/ug995-vivado-ip- subsystems-tutorial.pdf) – user1155120
如果有幫助,你可以接受答案! – Leos313