📄 xilinx_pci_exp_4_lane_ep.v
字号:
//------------------------------------------------------------------------------//--//-- This file is owned and controlled by Xilinx and must be used solely//-- for design, simulation, implementation and creation of design files//-- limited to Xilinx devices or technologies. Use with non-Xilinx//-- devices or technologies is expressly prohibited and immediately//-- terminates your license.//--//-- Xilinx products are not intended for use in life support//-- appliances, devices, or systems. Use in such applications is//-- expressly prohibited.//--//-- **************************************//-- ** Copyright (C) 2005, Xilinx, Inc. **//-- ** All Rights Reserved. **//-- **************************************//--//------------------------------------------------------------------------------//-- Filename: XILINX_PCI_EXP_EP.v//--//-- Description: PCI Express Endpoint Core example design top level wrapper.//-- //--//------------------------------------------------------------------------------module `XILINX_PCI_EXP_EP ( // PCI Express Fabric Interface pci_exp_txp, pci_exp_txn, pci_exp_rxp, pci_exp_rxn, // System (SYS) Interface sys_clk_p, sys_clk_n, sys_reset_n );//synthesis syn_noclockbuf=1 //------------------------------------------------------- // 1. PCI Express Fabric Interface //------------------------------------------------------- // Tx output [(`PCI_EXP_LINK_WIDTH - 1):0] pci_exp_txp; output [(`PCI_EXP_LINK_WIDTH - 1):0] pci_exp_txn; // Rx input [(`PCI_EXP_LINK_WIDTH - 1):0] pci_exp_rxp; input [(`PCI_EXP_LINK_WIDTH - 1):0] pci_exp_rxn; //------------------------------------------------------- // 4. System (SYS) Interface //------------------------------------------------------- input sys_clk_p; input sys_clk_n; input sys_reset_n; //------------------------------------------------------- // Local Wires //------------------------------------------------------- wire sys_clk_c; wire sys_reset_n_c; wire trn_clk_c;//synthesis attribute max_fanout of trn_clk_c is "100000" wire trn_reset_n_c; wire trn_lnk_up_n_c; wire cfg_trn_pending_n_c; wire [(`PCI_EXP_CFG_DSN_WIDTH - 1):0] cfg_dsn_n_c; wire trn_tsof_n_c; wire trn_teof_n_c; wire trn_tsrc_rdy_n_c; wire trn_tdst_rdy_n_c; wire trn_tsrc_dsc_n_c; wire trn_terrfwd_n_c; wire trn_tdst_dsc_n_c; wire [(`PCI_EXP_TRN_DATA_WIDTH - 1):0] trn_td_c; wire [(`PCI_EXP_TRN_REM_WIDTH - 1):0] trn_trem_n_c; wire [(`PCI_EXP_TRN_BUF_AV_WIDTH - 1):0] trn_tbuf_av_c; wire trn_rsof_n_c; wire trn_reof_n_c; wire trn_rsrc_rdy_n_c; wire trn_rsrc_dsc_n_c; wire trn_rdst_rdy_n_c; wire trn_rerrfwd_n_c; wire trn_rnp_ok_n_c; wire [(`PCI_EXP_TRN_DATA_WIDTH - 1):0] trn_rd_c; wire [(`PCI_EXP_TRN_REM_WIDTH - 1):0] trn_rrem_n_c; wire [(`PCI_EXP_TRN_BAR_HIT_WIDTH - 1):0] trn_rbar_hit_n_c; wire [(`PCI_EXP_TRN_FC_HDR_WIDTH - 1):0] trn_rfc_nph_av_c; wire [(`PCI_EXP_TRN_FC_DATA_WIDTH - 1):0] trn_rfc_npd_av_c; wire [(`PCI_EXP_TRN_FC_HDR_WIDTH - 1):0] trn_rfc_ph_av_c; wire [(`PCI_EXP_TRN_FC_DATA_WIDTH - 1):0] trn_rfc_pd_av_c; wire [(`PCI_EXP_TRN_FC_HDR_WIDTH - 1):0] trn_rfc_cplh_av_c; wire [(`PCI_EXP_TRN_FC_DATA_WIDTH - 1):0] trn_rfc_cpld_av_c; wire trn_rcpl_streaming_n_c; wire [(`PCI_EXP_CFG_DATA_WIDTH - 1):0] cfg_do_c; wire [(`PCI_EXP_CFG_DATA_WIDTH - 1):0] cfg_di_c; wire [(`PCI_EXP_CFG_ADDR_WIDTH - 1):0] cfg_dwaddr_c; wire [(`PCI_EXP_CFG_DATA_WIDTH/8 - 1):0] cfg_byte_en_n_c; wire [(`PCI_EXP_CFG_CPLHDR_WIDTH - 1):0] cfg_err_tlp_cpl_header_c; wire cfg_wr_en_n_c; wire cfg_rd_en_n_c; wire cfg_rd_wr_done_n_c; wire cfg_err_cor_n_c; wire cfg_err_ur_n_c; wire cfg_err_ecrc_n_c; wire cfg_err_cpl_timeout_n_c; wire cfg_err_cpl_abort_n_c; wire cfg_err_cpl_unexpect_n_c; wire cfg_err_posted_n_c; wire cfg_interrupt_n_c; wire cfg_interrupt_rdy_n_c; wire cfg_interrupt_assert_n_c; wire [7 : 0] cfg_interrupt_di_c; wire [7 : 0] cfg_interrupt_do_c; wire [2 : 0] cfg_interrupt_mmenable_c; wire cfg_interrupt_msienable_c; wire cfg_turnoff_ok_n_c; wire cfg_to_turnoff_n; wire cfg_pm_wake_n_c; wire [(`PCI_EXP_LNK_STATE_WIDTH - 1):0] cfg_pcie_link_state_n_c; wire [(`PCI_EXP_CFG_BUSNUM_WIDTH - 1):0] cfg_bus_number_c; wire [(`PCI_EXP_CFG_DEVNUM_WIDTH - 1):0] cfg_device_number_c; wire [(`PCI_EXP_CFG_FUNNUM_WIDTH - 1):0] cfg_function_number_c; wire [(`PCI_EXP_CFG_CAP_WIDTH - 1):0] cfg_status_c; wire [(`PCI_EXP_CFG_CAP_WIDTH - 1):0] cfg_command_c; wire [(`PCI_EXP_CFG_CAP_WIDTH - 1):0] cfg_dstatus_c; wire [(`PCI_EXP_CFG_CAP_WIDTH - 1):0] cfg_dcommand_c; wire [(`PCI_EXP_CFG_CAP_WIDTH - 1):0] cfg_lstatus_c; wire [(`PCI_EXP_CFG_CAP_WIDTH - 1):0] cfg_lcommand_c; //------------------------------------------------------- // System Reset Input Pad Instance //------------------------------------------------------- IBUFDS refclk_ibuf (.O(sys_clk_c), .I(sys_clk_p), .IB(sys_clk_n)); // 100 MHz IBUF sys_reset_n_ibuf (.O(sys_reset_n_c), .I(sys_reset_n)); //------------------------------------------------------- // Endpoint Implementation Application //------------------------------------------------------- `PCI_EXP_APP app ( // // Transaction ( TRN ) Interface // .trn_clk( trn_clk_c ), // I .trn_reset_n( trn_reset_n_c ), // I .trn_lnk_up_n( trn_lnk_up_n_c ), // I // Tx Local-Link .trn_td( trn_td_c ), // O [63/31:0] .trn_trem( trn_trem_n_c ), // O [7:0] .trn_tsof_n( trn_tsof_n_c ), // O .trn_teof_n( trn_teof_n_c ), // O .trn_tsrc_rdy_n( trn_tsrc_rdy_n_c ), // O .trn_tsrc_dsc_n( trn_tsrc_dsc_n_c ), // O .trn_tdst_rdy_n( trn_tdst_rdy_n_c ), // I .trn_tdst_dsc_n( trn_tdst_dsc_n_c ), // I .trn_terrfwd_n( trn_terrfwd_n_c ), // O .trn_tbuf_av( trn_tbuf_av_c ), // I [4/3:0] // Rx Local-Link .trn_rd( trn_rd_c ), // I [63/31:0] .trn_rrem( trn_rrem_n_c ), // I [7:0] .trn_rsof_n( trn_rsof_n_c ), // I .trn_reof_n( trn_reof_n_c ), // I .trn_rsrc_rdy_n( trn_rsrc_rdy_n_c ), // I .trn_rsrc_dsc_n( trn_rsrc_dsc_n_c ), // I .trn_rdst_rdy_n( trn_rdst_rdy_n_c ), // O .trn_rerrfwd_n( trn_rerrfwd_n_c ), // I .trn_rnp_ok_n( trn_rnp_ok_n_c ), // O
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -