From 5c4d22819416c27c1c082575efc65e5c2bc01033 Mon Sep 17 00:00:00 2001 From: Byron Lathi Date: Sat, 8 Nov 2025 22:06:30 -0800 Subject: [PATCH] Start work on DMA thing --- requirements.txt | 4 ++-- src/alibaba_pcie_top.sv | 28 ++++++++++++++++------------ src/pcie_dma_wrapper.sv | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 14 deletions(-) create mode 100644 src/pcie_dma_wrapper.sv diff --git a/requirements.txt b/requirements.txt index 33cce58..68cd974 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,7 @@ cocotb cocotbext-axi cocotbext-eth rtl-manifest -build_fpga>=0.3.2 -fpga-sim>=0.1.0 +build_fpga +fpga-sim peakrdl diff --git a/src/alibaba_pcie_top.sv b/src/alibaba_pcie_top.sv index 881c387..894c819 100644 --- a/src/alibaba_pcie_top.sv +++ b/src/alibaba_pcie_top.sv @@ -54,6 +54,8 @@ taxi_axis_if #(.DATA_W(256), .USER_EN(1), .USER_W(75), .KEEP_W(8)) m_axis_rc(); taxi_axil_if m_axil_rd(); taxi_axil_if m_axil_wr(); +taxi_apb_if m_apb(); + IBUFDS_GTE4 m_ibufds ( .CEB('0), .I(pcie_mgt_refclk_p), @@ -82,22 +84,24 @@ taxi_pcie_us_axil_master u_taxi_pcie_us_axil_master ( .stat_err_uncor () ); -taxi_axil_ram #( - .ADDR_W(16) -) u_taxi_axil_ram ( - .clk (clk_250), - .rst (rst_250), +taxi_axil_apb_adapter u_taxi_axil_apb_adapter ( + .clk (clk), + .rst (rst), - .s_axil_wr (m_axil_wr), - .s_axil_rd (m_axil_rd) + .s_axil_wr (m_axil_wr), + .s_axil_rd (m_axil_rd), + + .m_apb (m_apb) ); -taxi_axis_null_snk u_taxi_axis_null_snk ( - .s_axis (m_axis_rc) -); +pcie_dma_wrapper u_pcie_dma_wrapper ( + .clk (clk_250), + .rst (rst_250), -taxi_axis_null_src u_taxi_axis_null_src ( - .m_axis (s_axis_rq) + .m_axis_rq (s_axis_rq), + .s_axis_rc (m_axis_rc), + + .s_apb (m_apb) ); pcie4_uscale_plus_0 u_pcie4_uscale_plus_0 ( diff --git a/src/pcie_dma_wrapper.sv b/src/pcie_dma_wrapper.sv new file mode 100644 index 0000000..5170a7a --- /dev/null +++ b/src/pcie_dma_wrapper.sv @@ -0,0 +1,37 @@ +module pcie_dma_wrapper ( + input logic clk, + input logic rst, + + taxi_axis_if.src m_axis_rq, + taxi_axis_if.snk s_axis_rc, + + taxi_apb_if.slv s_apb +); + +logic [5:0] seq_num_0; +logic seq_num_valid_0; + +logic [5:0] seq_num_1; +logic seq_num_valid_1; + + +taxi_dma_if_pcie_us #( + +) u_taxi_dma_if_pcie_us ( + .clk (clk), + .rst (rst), + + .m_axis_rq (m_axis_rq), + .m_axis_rc (m_axis_rc), + + .s_axis_rq_seq_num_0 (seq_num_0), + .s_axis_rq_seq_num_valid_0 (seq_num_valid_0), + .s_axis_rq_seq_num_1 (seq_num_1), + .s_axis_rq_seq_num_valid_1 (seq_num_valid_1), + + .pcie_tx_fc_nph_av ('0), + .pcie_tx_fc_ph_av ('0), + .pcie_tx_fc_pd_av ('0), +); + +endmodule \ No newline at end of file