📄 lcd_ip.vhd
字号:
-- 5 = include OPB-In and OPB-Out pipeline registers -- 6 = include IP and OPB-Out pipeline registers -- 7 = include OPB-In, IP, and OPB-Out pipeline registers -- Note: -- only mode 4, 5, 7 are supported for this release ------------------------------------------ constant PIPELINE_MODEL : integer := 5; ------------------------------------------ -- Constant: user core ID code ------------------------------------------ constant DEV_BLK_ID : integer := 0; ------------------------------------------ -- Constant: enable MIR/Reset register ------------------------------------------ constant DEV_MIR_ENABLE : integer := 0; ------------------------------------------ -- Constant: array of IP interrupt mode -- 1 = Active-high interrupt condition -- 2 = Active-low interrupt condition -- 3 = Active-high pulse interrupt event -- 4 = Active-low pulse interrupt event -- 5 = Positive-edge interrupt event -- 6 = Negative-edge interrupt event ------------------------------------------ constant IP_INTR_MODE_ARRAY : INTEGER_ARRAY_TYPE := ( 0 => 0 -- not used ); ------------------------------------------ -- Constant: enable device burst ------------------------------------------ constant DEV_BURST_ENABLE : integer := 0; ------------------------------------------ -- Constant: include address counter for burst transfers ------------------------------------------ constant INCLUDE_ADDR_CNTR : integer := 0; ------------------------------------------ -- Constant: include write buffer that decouples OPB and IPIC write transactions ------------------------------------------ constant INCLUDE_WR_BUF : integer := 0; ------------------------------------------ -- Constant: index for CS/CE ------------------------------------------ constant USER00_CS_INDEX : integer := get_id_index(ARD_ID_ARRAY, USER_00); constant USER00_CE_INDEX : integer := calc_start_ce_index(ARD_NUM_CE_ARRAY, USER00_CS_INDEX); ------------------------------------------ -- IP Interconnect (IPIC) signal declarations -- do not delete -- prefix 'i' stands for IPIF while prefix 'u' stands for user logic -- typically user logic will be hooked up to IPIF directly via i<sig> -- unless signal slicing and muxing are needed via u<sig> ------------------------------------------ signal iBus2IP_RdCE : std_logic_vector(0 to calc_num_ce(ARD_NUM_CE_ARRAY)-1); signal iBus2IP_WrCE : std_logic_vector(0 to calc_num_ce(ARD_NUM_CE_ARRAY)-1); signal iBus2IP_Data : std_logic_vector(0 to C_OPB_DWIDTH-1); signal iBus2IP_BE : std_logic_vector(0 to C_OPB_DWIDTH/8-1); signal iIP2Bus_Data : std_logic_vector(0 to C_OPB_DWIDTH-1) := (others => '0'); signal iIP2Bus_Ack : std_logic := '0'; signal iIP2Bus_Error : std_logic := '0'; signal iIP2Bus_Retry : std_logic := '0'; signal iIP2Bus_ToutSup : std_logic := '0'; signal DISABLE_POSTED_WRITE : std_logic_vector(0 to ARD_ID_ARRAY'length-1) := (others => '1'); -- disable posted write behavior for acknowledged write behavior signal ZERO_IP2RFIFO_Data : std_logic_vector(0 to ARD_DWIDTH_ARRAY(get_id_index_iboe(ARD_ID_ARRAY, IPIF_RDFIFO_DATA))-1) := (others => '0'); -- work around for XST not taking (others => '0') in port mapping signal ZERO_WFIFO2IP_Data : std_logic_vector(0 to ARD_DWIDTH_ARRAY(get_id_index_iboe(ARD_ID_ARRAY, IPIF_WRFIFO_DATA))-1) := (others => '0'); -- work around for XST not taking (others => '0') in port mapping signal ZERO_IP2Bus_IntrEvent : std_logic_vector(0 to IP_INTR_MODE_ARRAY'length-1) := (others => '0'); -- work around for XST not taking (others => '0') in port mapping signal iBus2IP_Clk : std_logic; signal iBus2IP_Reset : std_logic; signal uBus2IP_Data : std_logic_vector(0 to USER_DWIDTH-1); signal uBus2IP_BE : std_logic_vector(0 to USER_DWIDTH/8-1); signal uBus2IP_RdCE : std_logic_vector(0 to USER_NUM_CE-1); signal uBus2IP_WrCE : std_logic_vector(0 to USER_NUM_CE-1); signal uIP2Bus_Data : std_logic_vector(0 to USER_DWIDTH-1);begin ------------------------------------------ -- instantiate the OPB IPIF ------------------------------------------ OPB_IPIF_I : entity opb_ipif_v3_01_c.opb_ipif generic map ( C_ARD_ID_ARRAY => ARD_ID_ARRAY, C_ARD_ADDR_RANGE_ARRAY => ARD_ADDR_RANGE_ARRAY, C_ARD_DWIDTH_ARRAY => ARD_DWIDTH_ARRAY, C_ARD_NUM_CE_ARRAY => ARD_NUM_CE_ARRAY, C_ARD_DEPENDENT_PROPS_ARRAY => ARD_DEPENDENT_PROPS_ARRAY, C_PIPELINE_MODEL => PIPELINE_MODEL, C_DEV_BLK_ID => DEV_BLK_ID, C_DEV_MIR_ENABLE => DEV_MIR_ENABLE, C_OPB_AWIDTH => C_OPB_AWIDTH, C_OPB_DWIDTH => C_OPB_DWIDTH, C_FAMILY => C_FAMILY, C_IP_INTR_MODE_ARRAY => IP_INTR_MODE_ARRAY, C_DEV_BURST_ENABLE => DEV_BURST_ENABLE, C_INCLUDE_ADDR_CNTR => INCLUDE_ADDR_CNTR, C_INCLUDE_WR_BUF => INCLUDE_WR_BUF ) port map ( OPB_select => OPB_select, OPB_DBus => OPB_DBus, OPB_ABus => OPB_ABus, OPB_BE => OPB_BE, OPB_RNW => OPB_RNW, OPB_seqAddr => OPB_seqAddr, Sln_DBus => Sl_DBus, Sln_xferAck => Sl_xferAck, Sln_errAck => Sl_errAck, Sln_retry => Sl_retry, Sln_toutSup => Sl_toutSup, Bus2IP_CS => open, Bus2IP_CE => open, Bus2IP_RdCE => iBus2IP_RdCE, Bus2IP_WrCE => iBus2IP_WrCE, Bus2IP_Data => iBus2IP_Data, Bus2IP_Addr => open, Bus2IP_AddrValid => open, Bus2IP_BE => iBus2IP_BE, Bus2IP_RNW => open, Bus2IP_Burst => open, IP2Bus_Data => iIP2Bus_Data, IP2Bus_Ack => iIP2Bus_Ack, IP2Bus_AddrAck => '0', IP2Bus_Error => iIP2Bus_Error, IP2Bus_Retry => iIP2Bus_Retry, IP2Bus_ToutSup => iIP2Bus_ToutSup, IP2Bus_PostedWrInh => DISABLE_POSTED_WRITE, IP2RFIFO_Data => ZERO_IP2RFIFO_Data, IP2RFIFO_WrMark => '0', IP2RFIFO_WrRelease => '0', IP2RFIFO_WrReq => '0', IP2RFIFO_WrRestore => '0', RFIFO2IP_AlmostFull => open, RFIFO2IP_Full => open, RFIFO2IP_Vacancy => open, RFIFO2IP_WrAck => open, IP2WFIFO_RdMark => '0', IP2WFIFO_RdRelease => '0', IP2WFIFO_RdReq => '0', IP2WFIFO_RdRestore => '0', WFIFO2IP_AlmostEmpty => open, WFIFO2IP_Data => ZERO_WFIFO2IP_Data, WFIFO2IP_Empty => open, WFIFO2IP_Occupancy => open, WFIFO2IP_RdAck => open, IP2Bus_IntrEvent => ZERO_IP2Bus_IntrEvent, IP2INTC_Irpt => open, Freeze => '0', Bus2IP_Freeze => open, OPB_Clk => OPB_Clk, Bus2IP_Clk => iBus2IP_Clk, IP2Bus_Clk => '0', Reset => OPB_Rst, Bus2IP_Reset => iBus2IP_Reset ); ------------------------------------------ -- instantiate the User Logic ------------------------------------------ USER_LOGIC_I : entity lcd_ip_v1_00_a.user_logic generic map ( -- MAP USER GENERICS BELOW THIS LINE --------------- --USER generics mapped here -- MAP USER GENERICS ABOVE THIS LINE --------------- C_DWIDTH => USER_DWIDTH, C_NUM_CE => USER_NUM_CE ) port map ( -- MAP USER PORTS BELOW THIS LINE ------------------ --USER ports mapped here lcd => lcd, -- MAP USER PORTS ABOVE THIS LINE ------------------ Bus2IP_Clk => iBus2IP_Clk, Bus2IP_Reset => iBus2IP_Reset, Bus2IP_Data => uBus2IP_Data, Bus2IP_BE => uBus2IP_BE, Bus2IP_RdCE => uBus2IP_RdCE, Bus2IP_WrCE => uBus2IP_WrCE, IP2Bus_Data => uIP2Bus_Data, IP2Bus_Ack => iIP2Bus_Ack, IP2Bus_Retry => iIP2Bus_Retry, IP2Bus_Error => iIP2Bus_Error, IP2Bus_ToutSup => iIP2Bus_ToutSup ); ------------------------------------------ -- hooking up signal slicing ------------------------------------------ uBus2IP_BE <= iBus2IP_BE(0 to USER_DWIDTH/8-1); uBus2IP_Data <= iBus2IP_Data(0 to USER_DWIDTH-1); uBus2IP_RdCE <= iBus2IP_RdCE(USER00_CE_INDEX to USER00_CE_INDEX+USER_NUM_CE-1); uBus2IP_WrCE <= iBus2IP_WrCE(USER00_CE_INDEX to USER00_CE_INDEX+USER_NUM_CE-1); iIP2Bus_Data(0 to USER_DWIDTH-1) <= uIP2Bus_Data;end IMP;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -