2016-12-22 29 views

回答

3

您是對的,通常在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芯片。