Files
alibaba_pcie/src/alibaba_pcie_top.sv
2025-11-22 17:02:25 -08:00

121 lines
3.1 KiB
Systemverilog

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 11/05/2025 10:00:52 PM
// Design Name:
// Module Name: alibaba_pcie_top
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module alibaba_pcie(
input wire [7:0] pci_exp_rxp,
input wire [7:0] pci_exp_rxn,
output wire [7:0] pci_exp_txp,
output wire [7:0] pci_exp_txn,
input wire pcie_mgt_refclk_p,
input wire pcie_mgt_refclk_n,
input wire pcie_reset_n,
input wire sfp_mgt_clk_p,
input wire sfp_mgt_clk_n,
output wire sfp_txp [2],
output wire sfp_txn [2],
input wire sfp_rxp [2],
input wire sfp_rxn [2],
output wire [3:0] Led_o
);
logic clk_250;
logic rst_250;
taxi_axil_if m_axil_rd();
taxi_axil_if m_axil_wr();
taxi_apb_if #(.ADDR_W(alibaba_pcie_top_regs_pkg::ALIBABA_PCIE_TOP_REGS_MIN_ADDR_WIDTH)) s_apb();
taxi_apb_if #(.ADDR_W(pcie_top_regs_pkg::PCIE_TOP_REGS_MIN_ADDR_WIDTH)) pcie_apb();
taxi_apb_if #(.ADDR_W(eth_dma_wrapper_regs_pkg::ETH_DMA_WRAPPER_REGS_MIN_ADDR_WIDTH)) eth_apb();
taxi_dma_ram_if #(.SEGS(4)) dma_ram_eth_rd_if();
taxi_dma_ram_if #(.SEGS(4)) dma_ram_eth_wr_if();
alibaba_pcie_top_regs u_alibaba_pcie_top_regs (
.s_apb (s_apb),
.m_apb_pcie_top_regs (pcie_apb),
.m_apb_eth_dma_wrapper_regs (eth_apb)
);
taxi_axil_apb_adapter u_taxi_axil_apb_adapter (
.clk (clk_250),
.rst (rst_250),
.s_axil_wr (m_axil_wr),
.s_axil_rd (m_axil_rd),
.m_apb (s_apb)
);
eth_dma_wrapper u_eth_dma_wrapper (
.clk_250 (clk_250),
.rst_250 (rst_250),
.sfp_mgt_clk_p (sfp_mgt_clk_p),
.sfp_mgt_clk_n (sfp_mgt_clk_n),
.sfp_txp (sfp_txp),
.sfp_txn (sfp_txn),
.sfp_rxp (sfp_rxp),
.sfp_rxn (sfp_rxn),
.wr_dma_mst (dma_ram_eth_wr_if),
.rd_dma_mst (dma_ram_eth_rd_if),
.s_apb (eth_apb)
);
pcie_top u_pcie_top(
.pci_exp_rxp (pci_exp_rxp),
.pci_exp_rxn (pci_exp_rxn),
.pci_exp_txp (pci_exp_txp),
.pci_exp_txn (pci_exp_txn),
.pcie_mgt_refclk_p (pcie_mgt_refclk_p),
.pcie_mgt_refclk_n (pcie_mgt_refclk_n),
.pcie_reset_n (pcie_reset_n),
.user_lnk_up (Led_o[0]),
.phy_rdy_out (Led_o[1]),
.o_clk_250 (clk_250),
.o_rst_250 (rst_250),
.dma_ram_eth_wr_if (dma_ram_eth_wr_if),
.dma_ram_eth_rd_if (dma_ram_eth_rd_if),
.m_axil_rd (m_axil_rd),
.m_axil_wr (m_axil_wr),
.s_apb (pcie_apb)
);
endmodule