fpga: x400: Split DRAM interface into two banks

This updates the RFNoC image cores to separate the two DRAM banks on
X4xx by splitting them into "dram0" and "dram1". Previously, both DRAM
banks shared the same DRAM port, named "dram", which created some
confusion.

The Replay block has also been duplicated in the bitstreams that use
both banks, so we now have one Replay block per bank.


Original-commit: b5cfab8922e5b3f4ff13a8a64e8b0319876f13db
This commit is contained in:
Wade Fife
2023-10-24 13:03:41 -05:00
parent 2c5a2f5974
commit e87c82cc74
20 changed files with 3876 additions and 2680 deletions
+28 -28
View File
@@ -43,34 +43,34 @@ QSFP1_100GBE = QSFP1_0=$(MGT_100GbE) QSFP1_1=$(MGT_Disabled) QSFP1_2=$(MGT_Disa
# Target specific variables # Target specific variables
X410_IP: DEFS += $(QSFP0_10GBE) RF_BW=100 X410_IP: DEFS += $(QSFP0_10GBE) RF_BW=100
X410_X1_100: DEFS += $(QSFP0_10GBE) RF_BW=100 RF_CORE_100M=1 DRAM_CH=4*$(DRAM) DRAM_W=64 X410_X1_100: DEFS += $(QSFP0_10GBE) RF_BW=100 RF_CORE_100M=1 DRAM_BANKS=1 DRAM_CH=4*$(DRAM) DRAM_W=64
X410_XG_100: DEFS += $(QSFP0_10GBE) $(QSFP1_10GBE) RF_BW=100 RF_CORE_100M=1 DRAM_CH=4*$(DRAM) DRAM_W=64 X410_XG_100: DEFS += $(QSFP0_10GBE) $(QSFP1_10GBE) RF_BW=100 RF_CORE_100M=1 DRAM_BANKS=1 DRAM_CH=4*$(DRAM) DRAM_W=64
X410_X4_100: DEFS += $(QSFP0_4X10GBE) RF_BW=100 RF_CORE_100M=1 DRAM_CH=4*$(DRAM) DRAM_W=64 X410_X4_100: DEFS += $(QSFP0_4X10GBE) RF_BW=100 RF_CORE_100M=1 DRAM_BANKS=1 DRAM_CH=4*$(DRAM) DRAM_W=64
X410_X4C_100: DEFS += $(QSFP0_4X10GBE) $(QSFP1_100GBE) RF_BW=100 RF_CORE_100M=1 DRAM_CH=0 X410_X4C_100: DEFS += $(QSFP0_4X10GBE) $(QSFP1_100GBE) RF_BW=100 RF_CORE_100M=1 DRAM_BANKS=0 DRAM_CH=0
X410_C1_100: DEFS += $(QSFP0_100GBE) RF_BW=100 RF_CORE_100M=1 DRAM_CH=4*$(DRAM) DRAM_W=64 X410_C1_100: DEFS += $(QSFP0_100GBE) RF_BW=100 RF_CORE_100M=1 DRAM_BANKS=1 DRAM_CH=4*$(DRAM) DRAM_W=64
X410_UC_100: DEFS += $(QSFP1_100GBE) RF_BW=100 RF_CORE_100M=1 DRAM_CH=4*$(DRAM) DRAM_W=64 X410_UC_100: DEFS += $(QSFP1_100GBE) RF_BW=100 RF_CORE_100M=1 DRAM_BANKS=1 DRAM_CH=4*$(DRAM) DRAM_W=64
X410_C1_200: DEFS += $(QSFP0_100GBE) RF_BW=200 RF_CORE_200M=1 DRAM_CH=4*$(DRAM) DRAM_W=64 X410_C1_200: DEFS += $(QSFP0_100GBE) RF_BW=200 RF_CORE_200M=1 DRAM_BANKS=1 DRAM_CH=4*$(DRAM) DRAM_W=64
X410_UC_200: DEFS += $(QSFP1_100GBE) RF_BW=200 RF_CORE_200M=1 DRAM_CH=4*$(DRAM) DRAM_W=64 X410_UC_200: DEFS += $(QSFP1_100GBE) RF_BW=200 RF_CORE_200M=1 DRAM_BANKS=1 DRAM_CH=4*$(DRAM) DRAM_W=64
X410_CG_200: DEFS += $(QSFP0_100GBE) $(QSFP1_100GBE) RF_BW=200 RF_CORE_200M=1 DRAM_CH=4*$(DRAM) DRAM_W=64 X410_CG_200: DEFS += $(QSFP0_100GBE) $(QSFP1_100GBE) RF_BW=200 RF_CORE_200M=1 DRAM_BANKS=1 DRAM_CH=4*$(DRAM) DRAM_W=64
X410_X1_200: DEFS += $(QSFP0_10GBE) RF_BW=200 RF_CORE_200M=1 DRAM_CH=4*$(DRAM) DRAM_W=64 X410_X1_200: DEFS += $(QSFP0_10GBE) RF_BW=200 RF_CORE_200M=1 DRAM_BANKS=1 DRAM_CH=4*$(DRAM) DRAM_W=64
X410_XG_200: DEFS += $(QSFP0_10GBE) $(QSFP1_10GBE) RF_BW=200 RF_CORE_200M=1 DRAM_CH=4*$(DRAM) DRAM_W=64 X410_XG_200: DEFS += $(QSFP0_10GBE) $(QSFP1_10GBE) RF_BW=200 RF_CORE_200M=1 DRAM_BANKS=1 DRAM_CH=4*$(DRAM) DRAM_W=64
X410_X4_200: DEFS += $(QSFP0_4X10GBE) RF_BW=200 RF_CORE_200M=1 DRAM_CH=4*$(DRAM) DRAM_W=64 X410_X4_200: DEFS += $(QSFP0_4X10GBE) RF_BW=200 RF_CORE_200M=1 DRAM_BANKS=1 DRAM_CH=4*$(DRAM) DRAM_W=64
X410_X4C_200: DEFS += $(QSFP0_4X10GBE) $(QSFP1_100GBE) RF_BW=200 RF_CORE_200M=1 DRAM_CH=0 X410_X4C_200: DEFS += $(QSFP0_4X10GBE) $(QSFP1_100GBE) RF_BW=200 RF_CORE_200M=1 DRAM_BANKS=0 DRAM_CH=0
X410_X1_400: DEFS += $(QSFP0_10GBE) RF_BW=400 RF_CORE_400M=1 DRAM_CH=4*$(DRAM) DRAM_W=128 X410_X1_400: DEFS += $(QSFP0_10GBE) RF_BW=400 RF_CORE_400M=1 DRAM_BANKS=2 DRAM_CH=4*$(DRAM) DRAM_W=128
X410_XG_400: DEFS += $(QSFP0_10GBE) $(QSFP1_10GBE) RF_BW=400 RF_CORE_400M=1 DRAM_CH=4*$(DRAM) DRAM_W=128 X410_XG_400: DEFS += $(QSFP0_10GBE) $(QSFP1_10GBE) RF_BW=400 RF_CORE_400M=1 DRAM_BANKS=2 DRAM_CH=4*$(DRAM) DRAM_W=128
X410_X4_400: DEFS += $(QSFP0_4X10GBE) RF_BW=400 RF_CORE_400M=1 DRAM_CH=4*$(DRAM) DRAM_W=128 X410_X4_400: DEFS += $(QSFP0_4X10GBE) RF_BW=400 RF_CORE_400M=1 DRAM_BANKS=2 DRAM_CH=4*$(DRAM) DRAM_W=128
X410_C1_400: DEFS += $(QSFP0_100GBE) RF_BW=400 RF_CORE_400M=1 DRAM_CH=0 X410_C1_400: DEFS += $(QSFP0_100GBE) RF_BW=400 RF_CORE_400M=1 DRAM_BANKS=0 DRAM_CH=0
X410_UC_400: DEFS += $(QSFP1_100GBE) RF_BW=400 RF_CORE_400M=1 DRAM_CH=0 X410_UC_400: DEFS += $(QSFP1_100GBE) RF_BW=400 RF_CORE_400M=1 DRAM_BANKS=0 DRAM_CH=0
X410_CG_400: DEFS += $(QSFP0_100GBE) $(QSFP1_100GBE) RF_BW=400 RF_CORE_400M=1 DRAM_CH=0 X410_CG_400: DEFS += $(QSFP0_100GBE) $(QSFP1_100GBE) RF_BW=400 RF_CORE_400M=1 DRAM_BANKS=0 DRAM_CH=0
X440_X4_200: DEFS += $(QSFP0_4X10GBE) RF_BW=200 RF_CORE_FULL=1 DRAM_CH=0 X440_X4_200: DEFS += $(QSFP0_4X10GBE) RF_BW=200 RF_CORE_FULL=1 DRAM_BANKS=0 DRAM_CH=0
X440_X1_400: DEFS += $(QSFP0_10GBE) RF_BW=400 RF_CORE_FULL=1 DRAM_CH=8*$(DRAM) DRAM_W=128 X440_X1_400: DEFS += $(QSFP0_10GBE) RF_BW=400 RF_CORE_FULL=1 DRAM_BANKS=2 DRAM_CH=8*$(DRAM) DRAM_W=128
X440_X4_400: DEFS += $(QSFP0_4X10GBE) RF_BW=400 RF_CORE_FULL=1 DRAM_CH=8*$(DRAM) DRAM_W=128 X440_X4_400: DEFS += $(QSFP0_4X10GBE) RF_BW=400 RF_CORE_FULL=1 DRAM_BANKS=2 DRAM_CH=8*$(DRAM) DRAM_W=128
X440_C1_400: DEFS += $(QSFP0_100GBE) RF_BW=400 RF_CORE_FULL=1 DRAM_CH=0 X440_C1_400: DEFS += $(QSFP0_100GBE) RF_BW=400 RF_CORE_FULL=1 DRAM_BANKS=0 DRAM_CH=0
X440_CG_400: DEFS += $(QSFP0_100GBE) $(QSFP1_100GBE) RF_BW=400 RF_CORE_FULL=1 DRAM_CH=0 X440_CG_400: DEFS += $(QSFP0_100GBE) $(QSFP1_100GBE) RF_BW=400 RF_CORE_FULL=1 DRAM_BANKS=0 DRAM_CH=0
X440_X1_1600: DEFS += $(QSFP0_10GBE) RF_BW=1600 RF_CORE_FULL=1 DRAM_CH=2*$(DRAM) DRAM_W=512 X440_X1_1600: DEFS += $(QSFP0_10GBE) RF_BW=1600 RF_CORE_FULL=1 DRAM_BANKS=2 DRAM_CH=2*$(DRAM) DRAM_W=512
X440_X4_1600: DEFS += $(QSFP0_4X10GBE) RF_BW=1600 RF_CORE_FULL=1 DRAM_CH=2*$(DRAM) DRAM_W=512 X440_X4_1600: DEFS += $(QSFP0_4X10GBE) RF_BW=1600 RF_CORE_FULL=1 DRAM_BANKS=2 DRAM_CH=2*$(DRAM) DRAM_W=512
X440_C1_1600: DEFS += $(QSFP0_100GBE) RF_BW=1600 RF_CORE_FULL=1 DRAM_CH=0 X440_C1_1600: DEFS += $(QSFP0_100GBE) RF_BW=1600 RF_CORE_FULL=1 DRAM_BANKS=0 DRAM_CH=0
X440_CG_1600: DEFS += $(QSFP0_100GBE) $(QSFP1_100GBE) RF_BW=1600 RF_CORE_FULL=1 DRAM_CH=0 X440_CG_1600: DEFS += $(QSFP0_100GBE) $(QSFP1_100GBE) RF_BW=1600 RF_CORE_FULL=1 DRAM_BANKS=0 DRAM_CH=0
# DRAM IP inclusion. Set to 1 to include DRAM memory controller in design, 0 to # DRAM IP inclusion. Set to 1 to include DRAM memory controller in design, 0 to
# exclude it. Note that some targets exclude it regardless of this setting. # exclude it. Note that some targets exclude it regardless of this setting.
+138 -92
View File
@@ -36,10 +36,10 @@ module rfnoc_image_core #(
input wire chdr_aclk, input wire chdr_aclk,
input wire ctrl_aclk, input wire ctrl_aclk,
input wire core_arst, input wire core_arst,
input wire ce_clk,
input wire radio_clk, input wire radio_clk,
input wire radio_2x_clk, input wire radio_2x_clk,
input wire dram_clk, input wire dram_clk,
input wire ce_clk,
// Basic // Basic
input wire [ 15:0] device_id, input wire [ 15:0] device_id,
@@ -83,52 +83,98 @@ module rfnoc_image_core #(
output wire [1023:0] radio_tx_data_radio1, output wire [1023:0] radio_tx_data_radio1,
input wire [ 31:0] radio_tx_stb_radio1, input wire [ 31:0] radio_tx_stb_radio1,
output wire [ 31:0] radio_tx_running_radio1, output wire [ 31:0] radio_tx_running_radio1,
// dram // dram0
input wire [ 0:0] axi_rst, input wire [ 0:0] dram0_axi_rst,
output wire [ 7:0] m_axi_awid, output wire [ 7:0] dram0_m_axi_awid,
output wire [ 383:0] m_axi_awaddr, output wire [ 383:0] dram0_m_axi_awaddr,
output wire [ 63:0] m_axi_awlen, output wire [ 63:0] dram0_m_axi_awlen,
output wire [ 23:0] m_axi_awsize, output wire [ 23:0] dram0_m_axi_awsize,
output wire [ 15:0] m_axi_awburst, output wire [ 15:0] dram0_m_axi_awburst,
output wire [ 7:0] m_axi_awlock, output wire [ 7:0] dram0_m_axi_awlock,
output wire [ 31:0] m_axi_awcache, output wire [ 31:0] dram0_m_axi_awcache,
output wire [ 23:0] m_axi_awprot, output wire [ 23:0] dram0_m_axi_awprot,
output wire [ 31:0] m_axi_awqos, output wire [ 31:0] dram0_m_axi_awqos,
output wire [ 31:0] m_axi_awregion, output wire [ 31:0] dram0_m_axi_awregion,
output wire [ 7:0] m_axi_awuser, output wire [ 7:0] dram0_m_axi_awuser,
output wire [ 7:0] m_axi_awvalid, output wire [ 7:0] dram0_m_axi_awvalid,
input wire [ 7:0] m_axi_awready, input wire [ 7:0] dram0_m_axi_awready,
output wire [4191:0] m_axi_wdata, output wire [4191:0] dram0_m_axi_wdata,
output wire [ 511:0] m_axi_wstrb, output wire [ 511:0] dram0_m_axi_wstrb,
output wire [ 7:0] m_axi_wlast, output wire [ 7:0] dram0_m_axi_wlast,
output wire [ 7:0] m_axi_wuser, output wire [ 7:0] dram0_m_axi_wuser,
output wire [ 7:0] m_axi_wvalid, output wire [ 7:0] dram0_m_axi_wvalid,
input wire [ 7:0] m_axi_wready, input wire [ 7:0] dram0_m_axi_wready,
input wire [ 7:0] m_axi_bid, input wire [ 7:0] dram0_m_axi_bid,
input wire [ 15:0] m_axi_bresp, input wire [ 15:0] dram0_m_axi_bresp,
input wire [ 7:0] m_axi_buser, input wire [ 7:0] dram0_m_axi_buser,
input wire [ 7:0] m_axi_bvalid, input wire [ 7:0] dram0_m_axi_bvalid,
output wire [ 7:0] m_axi_bready, output wire [ 7:0] dram0_m_axi_bready,
output wire [ 7:0] m_axi_arid, output wire [ 7:0] dram0_m_axi_arid,
output wire [ 383:0] m_axi_araddr, output wire [ 383:0] dram0_m_axi_araddr,
output wire [ 63:0] m_axi_arlen, output wire [ 63:0] dram0_m_axi_arlen,
output wire [ 23:0] m_axi_arsize, output wire [ 23:0] dram0_m_axi_arsize,
output wire [ 15:0] m_axi_arburst, output wire [ 15:0] dram0_m_axi_arburst,
output wire [ 7:0] m_axi_arlock, output wire [ 7:0] dram0_m_axi_arlock,
output wire [ 31:0] m_axi_arcache, output wire [ 31:0] dram0_m_axi_arcache,
output wire [ 31:0] m_axi_arprot, output wire [ 31:0] dram0_m_axi_arprot,
output wire [ 31:0] m_axi_arqos, output wire [ 31:0] dram0_m_axi_arqos,
output wire [ 31:0] m_axi_arregion, output wire [ 31:0] dram0_m_axi_arregion,
output wire [ 7:0] m_axi_aruser, output wire [ 7:0] dram0_m_axi_aruser,
output wire [ 7:0] m_axi_arvalid, output wire [ 7:0] dram0_m_axi_arvalid,
input wire [ 7:0] m_axi_arready, input wire [ 7:0] dram0_m_axi_arready,
input wire [ 7:0] m_axi_rid, input wire [ 7:0] dram0_m_axi_rid,
input wire [4191:0] m_axi_rdata, input wire [4191:0] dram0_m_axi_rdata,
input wire [ 15:0] m_axi_rresp, input wire [ 15:0] dram0_m_axi_rresp,
input wire [ 7:0] m_axi_rlast, input wire [ 7:0] dram0_m_axi_rlast,
input wire [ 7:0] m_axi_ruser, input wire [ 7:0] dram0_m_axi_ruser,
input wire [ 7:0] m_axi_rvalid, input wire [ 7:0] dram0_m_axi_rvalid,
output wire [ 7:0] m_axi_rready, output wire [ 7:0] dram0_m_axi_rready,
// dram1
input wire [ 0:0] dram1_axi_rst,
output wire [ 7:0] dram1_m_axi_awid,
output wire [ 383:0] dram1_m_axi_awaddr,
output wire [ 63:0] dram1_m_axi_awlen,
output wire [ 23:0] dram1_m_axi_awsize,
output wire [ 15:0] dram1_m_axi_awburst,
output wire [ 7:0] dram1_m_axi_awlock,
output wire [ 31:0] dram1_m_axi_awcache,
output wire [ 23:0] dram1_m_axi_awprot,
output wire [ 31:0] dram1_m_axi_awqos,
output wire [ 31:0] dram1_m_axi_awregion,
output wire [ 7:0] dram1_m_axi_awuser,
output wire [ 7:0] dram1_m_axi_awvalid,
input wire [ 7:0] dram1_m_axi_awready,
output wire [4191:0] dram1_m_axi_wdata,
output wire [ 511:0] dram1_m_axi_wstrb,
output wire [ 7:0] dram1_m_axi_wlast,
output wire [ 7:0] dram1_m_axi_wuser,
output wire [ 7:0] dram1_m_axi_wvalid,
input wire [ 7:0] dram1_m_axi_wready,
input wire [ 7:0] dram1_m_axi_bid,
input wire [ 15:0] dram1_m_axi_bresp,
input wire [ 7:0] dram1_m_axi_buser,
input wire [ 7:0] dram1_m_axi_bvalid,
output wire [ 7:0] dram1_m_axi_bready,
output wire [ 7:0] dram1_m_axi_arid,
output wire [ 383:0] dram1_m_axi_araddr,
output wire [ 63:0] dram1_m_axi_arlen,
output wire [ 23:0] dram1_m_axi_arsize,
output wire [ 15:0] dram1_m_axi_arburst,
output wire [ 7:0] dram1_m_axi_arlock,
output wire [ 31:0] dram1_m_axi_arcache,
output wire [ 31:0] dram1_m_axi_arprot,
output wire [ 31:0] dram1_m_axi_arqos,
output wire [ 31:0] dram1_m_axi_arregion,
output wire [ 7:0] dram1_m_axi_aruser,
output wire [ 7:0] dram1_m_axi_arvalid,
input wire [ 7:0] dram1_m_axi_arready,
input wire [ 7:0] dram1_m_axi_rid,
input wire [4191:0] dram1_m_axi_rdata,
input wire [ 15:0] dram1_m_axi_rresp,
input wire [ 7:0] dram1_m_axi_rlast,
input wire [ 7:0] dram1_m_axi_ruser,
input wire [ 7:0] dram1_m_axi_rvalid,
output wire [ 7:0] dram1_m_axi_rready,
// Transport Adapters /////////////// // Transport Adapters ///////////////
@@ -1664,51 +1710,51 @@ module rfnoc_image_core #(
assign radio1_m_ctrlport_resp_status = m_ctrlport_radio1_resp_status; assign radio1_m_ctrlport_resp_status = m_ctrlport_radio1_resp_status;
assign radio1_m_ctrlport_resp_data = m_ctrlport_radio1_resp_data; assign radio1_m_ctrlport_resp_data = m_ctrlport_radio1_resp_data;
assign replay0_axi_rst = axi_rst; assign replay0_axi_rst = dram0_axi_rst;
assign m_axi_awid = replay0_m_axi_awid; assign dram0_m_axi_awid = replay0_m_axi_awid;
assign m_axi_awaddr = replay0_m_axi_awaddr; assign dram0_m_axi_awaddr = replay0_m_axi_awaddr;
assign m_axi_awlen = replay0_m_axi_awlen; assign dram0_m_axi_awlen = replay0_m_axi_awlen;
assign m_axi_awsize = replay0_m_axi_awsize; assign dram0_m_axi_awsize = replay0_m_axi_awsize;
assign m_axi_awburst = replay0_m_axi_awburst; assign dram0_m_axi_awburst = replay0_m_axi_awburst;
assign m_axi_awlock = replay0_m_axi_awlock; assign dram0_m_axi_awlock = replay0_m_axi_awlock;
assign m_axi_awcache = replay0_m_axi_awcache; assign dram0_m_axi_awcache = replay0_m_axi_awcache;
assign m_axi_awprot = replay0_m_axi_awprot; assign dram0_m_axi_awprot = replay0_m_axi_awprot;
assign m_axi_awqos = replay0_m_axi_awqos; assign dram0_m_axi_awqos = replay0_m_axi_awqos;
assign m_axi_awregion = replay0_m_axi_awregion; assign dram0_m_axi_awregion = replay0_m_axi_awregion;
assign m_axi_awuser = replay0_m_axi_awuser; assign dram0_m_axi_awuser = replay0_m_axi_awuser;
assign m_axi_awvalid = replay0_m_axi_awvalid; assign dram0_m_axi_awvalid = replay0_m_axi_awvalid;
assign replay0_m_axi_awready = m_axi_awready; assign replay0_m_axi_awready = dram0_m_axi_awready;
assign m_axi_wdata = replay0_m_axi_wdata; assign dram0_m_axi_wdata = replay0_m_axi_wdata;
assign m_axi_wstrb = replay0_m_axi_wstrb; assign dram0_m_axi_wstrb = replay0_m_axi_wstrb;
assign m_axi_wlast = replay0_m_axi_wlast; assign dram0_m_axi_wlast = replay0_m_axi_wlast;
assign m_axi_wuser = replay0_m_axi_wuser; assign dram0_m_axi_wuser = replay0_m_axi_wuser;
assign m_axi_wvalid = replay0_m_axi_wvalid; assign dram0_m_axi_wvalid = replay0_m_axi_wvalid;
assign replay0_m_axi_wready = m_axi_wready; assign replay0_m_axi_wready = dram0_m_axi_wready;
assign replay0_m_axi_bid = m_axi_bid; assign replay0_m_axi_bid = dram0_m_axi_bid;
assign replay0_m_axi_bresp = m_axi_bresp; assign replay0_m_axi_bresp = dram0_m_axi_bresp;
assign replay0_m_axi_buser = m_axi_buser; assign replay0_m_axi_buser = dram0_m_axi_buser;
assign replay0_m_axi_bvalid = m_axi_bvalid; assign replay0_m_axi_bvalid = dram0_m_axi_bvalid;
assign m_axi_bready = replay0_m_axi_bready; assign dram0_m_axi_bready = replay0_m_axi_bready;
assign m_axi_arid = replay0_m_axi_arid; assign dram0_m_axi_arid = replay0_m_axi_arid;
assign m_axi_araddr = replay0_m_axi_araddr; assign dram0_m_axi_araddr = replay0_m_axi_araddr;
assign m_axi_arlen = replay0_m_axi_arlen; assign dram0_m_axi_arlen = replay0_m_axi_arlen;
assign m_axi_arsize = replay0_m_axi_arsize; assign dram0_m_axi_arsize = replay0_m_axi_arsize;
assign m_axi_arburst = replay0_m_axi_arburst; assign dram0_m_axi_arburst = replay0_m_axi_arburst;
assign m_axi_arlock = replay0_m_axi_arlock; assign dram0_m_axi_arlock = replay0_m_axi_arlock;
assign m_axi_arcache = replay0_m_axi_arcache; assign dram0_m_axi_arcache = replay0_m_axi_arcache;
assign m_axi_arprot = replay0_m_axi_arprot; assign dram0_m_axi_arprot = replay0_m_axi_arprot;
assign m_axi_arqos = replay0_m_axi_arqos; assign dram0_m_axi_arqos = replay0_m_axi_arqos;
assign m_axi_arregion = replay0_m_axi_arregion; assign dram0_m_axi_arregion = replay0_m_axi_arregion;
assign m_axi_aruser = replay0_m_axi_aruser; assign dram0_m_axi_aruser = replay0_m_axi_aruser;
assign m_axi_arvalid = replay0_m_axi_arvalid; assign dram0_m_axi_arvalid = replay0_m_axi_arvalid;
assign replay0_m_axi_arready = m_axi_arready; assign replay0_m_axi_arready = dram0_m_axi_arready;
assign replay0_m_axi_rid = m_axi_rid; assign replay0_m_axi_rid = dram0_m_axi_rid;
assign replay0_m_axi_rdata = m_axi_rdata; assign replay0_m_axi_rdata = dram0_m_axi_rdata;
assign replay0_m_axi_rresp = m_axi_rresp; assign replay0_m_axi_rresp = dram0_m_axi_rresp;
assign replay0_m_axi_rlast = m_axi_rlast; assign replay0_m_axi_rlast = dram0_m_axi_rlast;
assign replay0_m_axi_ruser = m_axi_ruser; assign replay0_m_axi_ruser = dram0_m_axi_ruser;
assign replay0_m_axi_rvalid = m_axi_rvalid; assign replay0_m_axi_rvalid = dram0_m_axi_rvalid;
assign m_axi_rready = replay0_m_axi_rready; assign dram0_m_axi_rready = replay0_m_axi_rready;
assign radio0_radio_rx_data = radio_rx_data_radio0; assign radio0_radio_rx_data = radio_rx_data_radio0;
assign radio0_radio_rx_stb = radio_rx_stb_radio0; assign radio0_radio_rx_stb = radio_rx_stb_radio0;
+1 -1
View File
@@ -136,7 +136,7 @@ connections:
# BSP Connections # BSP Connections
- { srcblk: radio0, srcport: ctrlport, dstblk: _device_, dstport: ctrlport_radio0 } - { srcblk: radio0, srcport: ctrlport, dstblk: _device_, dstport: ctrlport_radio0 }
- { srcblk: radio1, srcport: ctrlport, dstblk: _device_, dstport: ctrlport_radio1 } - { srcblk: radio1, srcport: ctrlport, dstblk: _device_, dstport: ctrlport_radio1 }
- { srcblk: replay0, srcport: axi_ram, dstblk: _device_, dstport: dram } - { srcblk: replay0, srcport: axi_ram, dstblk: _device_, dstport: dram0 }
- { srcblk: _device_, srcport: radio0, dstblk: radio0, dstport: radio } - { srcblk: _device_, srcport: radio0, dstblk: radio0, dstport: radio }
- { srcblk: _device_, srcport: radio1, dstblk: radio1, dstport: radio } - { srcblk: _device_, srcport: radio1, dstblk: radio1, dstport: radio }
- { srcblk: _device_, srcport: time, dstblk: radio0, dstport: time } - { srcblk: _device_, srcport: time, dstblk: radio0, dstport: time }
+370 -136
View File
@@ -36,10 +36,10 @@ module rfnoc_image_core #(
input wire chdr_aclk, input wire chdr_aclk,
input wire ctrl_aclk, input wire ctrl_aclk,
input wire core_arst, input wire core_arst,
input wire ce_clk,
input wire radio_clk, input wire radio_clk,
input wire radio_2x_clk, input wire radio_2x_clk,
input wire dram_clk, input wire dram_clk,
input wire ce_clk,
// Basic // Basic
input wire [ 15:0] device_id, input wire [ 15:0] device_id,
@@ -83,52 +83,98 @@ module rfnoc_image_core #(
output wire [1023:0] radio_tx_data_radio1, output wire [1023:0] radio_tx_data_radio1,
input wire [ 31:0] radio_tx_stb_radio1, input wire [ 31:0] radio_tx_stb_radio1,
output wire [ 31:0] radio_tx_running_radio1, output wire [ 31:0] radio_tx_running_radio1,
// dram // dram0
input wire [ 0:0] axi_rst, input wire [ 0:0] dram0_axi_rst,
output wire [ 7:0] m_axi_awid, output wire [ 7:0] dram0_m_axi_awid,
output wire [ 383:0] m_axi_awaddr, output wire [ 383:0] dram0_m_axi_awaddr,
output wire [ 63:0] m_axi_awlen, output wire [ 63:0] dram0_m_axi_awlen,
output wire [ 23:0] m_axi_awsize, output wire [ 23:0] dram0_m_axi_awsize,
output wire [ 15:0] m_axi_awburst, output wire [ 15:0] dram0_m_axi_awburst,
output wire [ 7:0] m_axi_awlock, output wire [ 7:0] dram0_m_axi_awlock,
output wire [ 31:0] m_axi_awcache, output wire [ 31:0] dram0_m_axi_awcache,
output wire [ 23:0] m_axi_awprot, output wire [ 23:0] dram0_m_axi_awprot,
output wire [ 31:0] m_axi_awqos, output wire [ 31:0] dram0_m_axi_awqos,
output wire [ 31:0] m_axi_awregion, output wire [ 31:0] dram0_m_axi_awregion,
output wire [ 7:0] m_axi_awuser, output wire [ 7:0] dram0_m_axi_awuser,
output wire [ 7:0] m_axi_awvalid, output wire [ 7:0] dram0_m_axi_awvalid,
input wire [ 7:0] m_axi_awready, input wire [ 7:0] dram0_m_axi_awready,
output wire [4191:0] m_axi_wdata, output wire [4191:0] dram0_m_axi_wdata,
output wire [ 511:0] m_axi_wstrb, output wire [ 511:0] dram0_m_axi_wstrb,
output wire [ 7:0] m_axi_wlast, output wire [ 7:0] dram0_m_axi_wlast,
output wire [ 7:0] m_axi_wuser, output wire [ 7:0] dram0_m_axi_wuser,
output wire [ 7:0] m_axi_wvalid, output wire [ 7:0] dram0_m_axi_wvalid,
input wire [ 7:0] m_axi_wready, input wire [ 7:0] dram0_m_axi_wready,
input wire [ 7:0] m_axi_bid, input wire [ 7:0] dram0_m_axi_bid,
input wire [ 15:0] m_axi_bresp, input wire [ 15:0] dram0_m_axi_bresp,
input wire [ 7:0] m_axi_buser, input wire [ 7:0] dram0_m_axi_buser,
input wire [ 7:0] m_axi_bvalid, input wire [ 7:0] dram0_m_axi_bvalid,
output wire [ 7:0] m_axi_bready, output wire [ 7:0] dram0_m_axi_bready,
output wire [ 7:0] m_axi_arid, output wire [ 7:0] dram0_m_axi_arid,
output wire [ 383:0] m_axi_araddr, output wire [ 383:0] dram0_m_axi_araddr,
output wire [ 63:0] m_axi_arlen, output wire [ 63:0] dram0_m_axi_arlen,
output wire [ 23:0] m_axi_arsize, output wire [ 23:0] dram0_m_axi_arsize,
output wire [ 15:0] m_axi_arburst, output wire [ 15:0] dram0_m_axi_arburst,
output wire [ 7:0] m_axi_arlock, output wire [ 7:0] dram0_m_axi_arlock,
output wire [ 31:0] m_axi_arcache, output wire [ 31:0] dram0_m_axi_arcache,
output wire [ 31:0] m_axi_arprot, output wire [ 31:0] dram0_m_axi_arprot,
output wire [ 31:0] m_axi_arqos, output wire [ 31:0] dram0_m_axi_arqos,
output wire [ 31:0] m_axi_arregion, output wire [ 31:0] dram0_m_axi_arregion,
output wire [ 7:0] m_axi_aruser, output wire [ 7:0] dram0_m_axi_aruser,
output wire [ 7:0] m_axi_arvalid, output wire [ 7:0] dram0_m_axi_arvalid,
input wire [ 7:0] m_axi_arready, input wire [ 7:0] dram0_m_axi_arready,
input wire [ 7:0] m_axi_rid, input wire [ 7:0] dram0_m_axi_rid,
input wire [4191:0] m_axi_rdata, input wire [4191:0] dram0_m_axi_rdata,
input wire [ 15:0] m_axi_rresp, input wire [ 15:0] dram0_m_axi_rresp,
input wire [ 7:0] m_axi_rlast, input wire [ 7:0] dram0_m_axi_rlast,
input wire [ 7:0] m_axi_ruser, input wire [ 7:0] dram0_m_axi_ruser,
input wire [ 7:0] m_axi_rvalid, input wire [ 7:0] dram0_m_axi_rvalid,
output wire [ 7:0] m_axi_rready, output wire [ 7:0] dram0_m_axi_rready,
// dram1
input wire [ 0:0] dram1_axi_rst,
output wire [ 7:0] dram1_m_axi_awid,
output wire [ 383:0] dram1_m_axi_awaddr,
output wire [ 63:0] dram1_m_axi_awlen,
output wire [ 23:0] dram1_m_axi_awsize,
output wire [ 15:0] dram1_m_axi_awburst,
output wire [ 7:0] dram1_m_axi_awlock,
output wire [ 31:0] dram1_m_axi_awcache,
output wire [ 23:0] dram1_m_axi_awprot,
output wire [ 31:0] dram1_m_axi_awqos,
output wire [ 31:0] dram1_m_axi_awregion,
output wire [ 7:0] dram1_m_axi_awuser,
output wire [ 7:0] dram1_m_axi_awvalid,
input wire [ 7:0] dram1_m_axi_awready,
output wire [4191:0] dram1_m_axi_wdata,
output wire [ 511:0] dram1_m_axi_wstrb,
output wire [ 7:0] dram1_m_axi_wlast,
output wire [ 7:0] dram1_m_axi_wuser,
output wire [ 7:0] dram1_m_axi_wvalid,
input wire [ 7:0] dram1_m_axi_wready,
input wire [ 7:0] dram1_m_axi_bid,
input wire [ 15:0] dram1_m_axi_bresp,
input wire [ 7:0] dram1_m_axi_buser,
input wire [ 7:0] dram1_m_axi_bvalid,
output wire [ 7:0] dram1_m_axi_bready,
output wire [ 7:0] dram1_m_axi_arid,
output wire [ 383:0] dram1_m_axi_araddr,
output wire [ 63:0] dram1_m_axi_arlen,
output wire [ 23:0] dram1_m_axi_arsize,
output wire [ 15:0] dram1_m_axi_arburst,
output wire [ 7:0] dram1_m_axi_arlock,
output wire [ 31:0] dram1_m_axi_arcache,
output wire [ 31:0] dram1_m_axi_arprot,
output wire [ 31:0] dram1_m_axi_arqos,
output wire [ 31:0] dram1_m_axi_arregion,
output wire [ 7:0] dram1_m_axi_aruser,
output wire [ 7:0] dram1_m_axi_arvalid,
input wire [ 7:0] dram1_m_axi_arready,
input wire [ 7:0] dram1_m_axi_rid,
input wire [4191:0] dram1_m_axi_rdata,
input wire [ 15:0] dram1_m_axi_rresp,
input wire [ 7:0] dram1_m_axi_rlast,
input wire [ 7:0] dram1_m_axi_ruser,
input wire [ 7:0] dram1_m_axi_rvalid,
output wire [ 7:0] dram1_m_axi_rready,
// Transport Adapters /////////////// // Transport Adapters ///////////////
@@ -920,10 +966,14 @@ module rfnoc_image_core #(
wire m_replay0_ctrl_tlast, s_replay0_ctrl_tlast; wire m_replay0_ctrl_tlast, s_replay0_ctrl_tlast;
wire m_replay0_ctrl_tvalid, s_replay0_ctrl_tvalid; wire m_replay0_ctrl_tvalid, s_replay0_ctrl_tvalid;
wire m_replay0_ctrl_tready, s_replay0_ctrl_tready; wire m_replay0_ctrl_tready, s_replay0_ctrl_tready;
wire [31:0] m_replay1_ctrl_tdata, s_replay1_ctrl_tdata;
wire m_replay1_ctrl_tlast, s_replay1_ctrl_tlast;
wire m_replay1_ctrl_tvalid, s_replay1_ctrl_tvalid;
wire m_replay1_ctrl_tready, s_replay1_ctrl_tready;
axis_ctrl_crossbar_nxn #( axis_ctrl_crossbar_nxn #(
.WIDTH (32), .WIDTH (32),
.NPORTS (5), .NPORTS (6),
.TOPOLOGY ("TORUS"), .TOPOLOGY ("TORUS"),
.INGRESS_BUFF_SIZE(5), .INGRESS_BUFF_SIZE(5),
.ROUTER_BUFF_SIZE (5), .ROUTER_BUFF_SIZE (5),
@@ -932,14 +982,14 @@ module rfnoc_image_core #(
) ctrl_xb_i ( ) ctrl_xb_i (
.clk (rfnoc_ctrl_clk), .clk (rfnoc_ctrl_clk),
.reset (rfnoc_ctrl_rst), .reset (rfnoc_ctrl_rst),
.s_axis_tdata ({m_replay0_ctrl_tdata , m_radio1_ctrl_tdata , m_radio0_ctrl_tdata , m_ep0_ctrl_tdata , m_core_ctrl_tdata }), .s_axis_tdata ({m_replay1_ctrl_tdata , m_replay0_ctrl_tdata , m_radio1_ctrl_tdata , m_radio0_ctrl_tdata , m_ep0_ctrl_tdata , m_core_ctrl_tdata }),
.s_axis_tvalid ({m_replay0_ctrl_tvalid, m_radio1_ctrl_tvalid, m_radio0_ctrl_tvalid, m_ep0_ctrl_tvalid, m_core_ctrl_tvalid}), .s_axis_tvalid ({m_replay1_ctrl_tvalid, m_replay0_ctrl_tvalid, m_radio1_ctrl_tvalid, m_radio0_ctrl_tvalid, m_ep0_ctrl_tvalid, m_core_ctrl_tvalid}),
.s_axis_tlast ({m_replay0_ctrl_tlast , m_radio1_ctrl_tlast , m_radio0_ctrl_tlast , m_ep0_ctrl_tlast , m_core_ctrl_tlast }), .s_axis_tlast ({m_replay1_ctrl_tlast , m_replay0_ctrl_tlast , m_radio1_ctrl_tlast , m_radio0_ctrl_tlast , m_ep0_ctrl_tlast , m_core_ctrl_tlast }),
.s_axis_tready ({m_replay0_ctrl_tready, m_radio1_ctrl_tready, m_radio0_ctrl_tready, m_ep0_ctrl_tready, m_core_ctrl_tready}), .s_axis_tready ({m_replay1_ctrl_tready, m_replay0_ctrl_tready, m_radio1_ctrl_tready, m_radio0_ctrl_tready, m_ep0_ctrl_tready, m_core_ctrl_tready}),
.m_axis_tdata ({s_replay0_ctrl_tdata , s_radio1_ctrl_tdata , s_radio0_ctrl_tdata , s_ep0_ctrl_tdata , s_core_ctrl_tdata }), .m_axis_tdata ({s_replay1_ctrl_tdata , s_replay0_ctrl_tdata , s_radio1_ctrl_tdata , s_radio0_ctrl_tdata , s_ep0_ctrl_tdata , s_core_ctrl_tdata }),
.m_axis_tvalid ({s_replay0_ctrl_tvalid, s_radio1_ctrl_tvalid, s_radio0_ctrl_tvalid, s_ep0_ctrl_tvalid, s_core_ctrl_tvalid}), .m_axis_tvalid ({s_replay1_ctrl_tvalid, s_replay0_ctrl_tvalid, s_radio1_ctrl_tvalid, s_radio0_ctrl_tvalid, s_ep0_ctrl_tvalid, s_core_ctrl_tvalid}),
.m_axis_tlast ({s_replay0_ctrl_tlast , s_radio1_ctrl_tlast , s_radio0_ctrl_tlast , s_ep0_ctrl_tlast , s_core_ctrl_tlast }), .m_axis_tlast ({s_replay1_ctrl_tlast , s_replay0_ctrl_tlast , s_radio1_ctrl_tlast , s_radio0_ctrl_tlast , s_ep0_ctrl_tlast , s_core_ctrl_tlast }),
.m_axis_tready ({s_replay0_ctrl_tready, s_radio1_ctrl_tready, s_radio0_ctrl_tready, s_ep0_ctrl_tready, s_core_ctrl_tready}), .m_axis_tready ({s_replay1_ctrl_tready, s_replay0_ctrl_tready, s_radio1_ctrl_tready, s_radio0_ctrl_tready, s_ep0_ctrl_tready, s_core_ctrl_tready}),
.deadlock_detected() .deadlock_detected()
); );
@@ -948,14 +998,14 @@ module rfnoc_image_core #(
// RFNoC Core Kernel // RFNoC Core Kernel
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
wire [(512*3)-1:0] rfnoc_core_config, rfnoc_core_status; wire [(512*4)-1:0] rfnoc_core_config, rfnoc_core_status;
rfnoc_core_kernel #( rfnoc_core_kernel #(
.PROTOVER (PROTOVER), .PROTOVER (PROTOVER),
.DEVICE_TYPE (16'hA400), .DEVICE_TYPE (16'hA400),
.DEVICE_FAMILY ("ULTRASCALE"), .DEVICE_FAMILY ("ULTRASCALE"),
.SAFE_START_CLKS (0), .SAFE_START_CLKS (0),
.NUM_BLOCKS (3), .NUM_BLOCKS (4),
.NUM_STREAM_ENDPOINTS(8), .NUM_STREAM_ENDPOINTS(8),
.NUM_ENDPOINTS_CTRL (1), .NUM_ENDPOINTS_CTRL (1),
.NUM_TRANSPORTS (6), .NUM_TRANSPORTS (6),
@@ -1165,14 +1215,14 @@ module rfnoc_image_core #(
//----------------------------------- //-----------------------------------
wire replay0_mem_clk; wire replay0_mem_clk;
wire [BLOCK_CHDR_W-1:0] s_replay0_in_3_tdata , s_replay0_in_2_tdata , s_replay0_in_1_tdata , s_replay0_in_0_tdata ; wire [BLOCK_CHDR_W-1:0] s_replay0_in_1_tdata , s_replay0_in_0_tdata ;
wire s_replay0_in_3_tlast , s_replay0_in_2_tlast , s_replay0_in_1_tlast , s_replay0_in_0_tlast ; wire s_replay0_in_1_tlast , s_replay0_in_0_tlast ;
wire s_replay0_in_3_tvalid, s_replay0_in_2_tvalid, s_replay0_in_1_tvalid, s_replay0_in_0_tvalid; wire s_replay0_in_1_tvalid, s_replay0_in_0_tvalid;
wire s_replay0_in_3_tready, s_replay0_in_2_tready, s_replay0_in_1_tready, s_replay0_in_0_tready; wire s_replay0_in_1_tready, s_replay0_in_0_tready;
wire [BLOCK_CHDR_W-1:0] m_replay0_out_3_tdata , m_replay0_out_2_tdata , m_replay0_out_1_tdata , m_replay0_out_0_tdata ; wire [BLOCK_CHDR_W-1:0] m_replay0_out_1_tdata , m_replay0_out_0_tdata ;
wire m_replay0_out_3_tlast , m_replay0_out_2_tlast , m_replay0_out_1_tlast , m_replay0_out_0_tlast ; wire m_replay0_out_1_tlast , m_replay0_out_0_tlast ;
wire m_replay0_out_3_tvalid, m_replay0_out_2_tvalid, m_replay0_out_1_tvalid, m_replay0_out_0_tvalid; wire m_replay0_out_1_tvalid, m_replay0_out_0_tvalid;
wire m_replay0_out_3_tready, m_replay0_out_2_tready, m_replay0_out_1_tready, m_replay0_out_0_tready; wire m_replay0_out_1_tready, m_replay0_out_0_tready;
// axi_ram // axi_ram
wire [ 0:0] replay0_axi_rst; wire [ 0:0] replay0_axi_rst;
@@ -1224,7 +1274,7 @@ module rfnoc_image_core #(
rfnoc_block_replay #( rfnoc_block_replay #(
.THIS_PORTID (4), .THIS_PORTID (4),
.CHDR_W (BLOCK_CHDR_W), .CHDR_W (BLOCK_CHDR_W),
.NUM_PORTS (4), .NUM_PORTS (2),
.MEM_DATA_W (128), .MEM_DATA_W (128),
.MEM_ADDR_W (32), .MEM_ADDR_W (32),
.MTU (BLOCK_MTU) .MTU (BLOCK_MTU)
@@ -1279,14 +1329,14 @@ module rfnoc_image_core #(
.m_axi_ruser (replay0_m_axi_ruser), .m_axi_ruser (replay0_m_axi_ruser),
.m_axi_rvalid (replay0_m_axi_rvalid), .m_axi_rvalid (replay0_m_axi_rvalid),
.m_axi_rready (replay0_m_axi_rready), .m_axi_rready (replay0_m_axi_rready),
.s_rfnoc_chdr_tdata ({s_replay0_in_3_tdata , s_replay0_in_2_tdata , s_replay0_in_1_tdata , s_replay0_in_0_tdata }), .s_rfnoc_chdr_tdata ({s_replay0_in_1_tdata , s_replay0_in_0_tdata }),
.s_rfnoc_chdr_tlast ({s_replay0_in_3_tlast , s_replay0_in_2_tlast , s_replay0_in_1_tlast , s_replay0_in_0_tlast }), .s_rfnoc_chdr_tlast ({s_replay0_in_1_tlast , s_replay0_in_0_tlast }),
.s_rfnoc_chdr_tvalid ({s_replay0_in_3_tvalid, s_replay0_in_2_tvalid, s_replay0_in_1_tvalid, s_replay0_in_0_tvalid}), .s_rfnoc_chdr_tvalid ({s_replay0_in_1_tvalid, s_replay0_in_0_tvalid}),
.s_rfnoc_chdr_tready ({s_replay0_in_3_tready, s_replay0_in_2_tready, s_replay0_in_1_tready, s_replay0_in_0_tready}), .s_rfnoc_chdr_tready ({s_replay0_in_1_tready, s_replay0_in_0_tready}),
.m_rfnoc_chdr_tdata ({m_replay0_out_3_tdata , m_replay0_out_2_tdata , m_replay0_out_1_tdata , m_replay0_out_0_tdata }), .m_rfnoc_chdr_tdata ({m_replay0_out_1_tdata , m_replay0_out_0_tdata }),
.m_rfnoc_chdr_tlast ({m_replay0_out_3_tlast , m_replay0_out_2_tlast , m_replay0_out_1_tlast , m_replay0_out_0_tlast }), .m_rfnoc_chdr_tlast ({m_replay0_out_1_tlast , m_replay0_out_0_tlast }),
.m_rfnoc_chdr_tvalid ({m_replay0_out_3_tvalid, m_replay0_out_2_tvalid, m_replay0_out_1_tvalid, m_replay0_out_0_tvalid}), .m_rfnoc_chdr_tvalid ({m_replay0_out_1_tvalid, m_replay0_out_0_tvalid}),
.m_rfnoc_chdr_tready ({m_replay0_out_3_tready, m_replay0_out_2_tready, m_replay0_out_1_tready, m_replay0_out_0_tready}), .m_rfnoc_chdr_tready ({m_replay0_out_1_tready, m_replay0_out_0_tready}),
.s_rfnoc_ctrl_tdata (s_replay0_ctrl_tdata), .s_rfnoc_ctrl_tdata (s_replay0_ctrl_tdata),
.s_rfnoc_ctrl_tlast (s_replay0_ctrl_tlast), .s_rfnoc_ctrl_tlast (s_replay0_ctrl_tlast),
.s_rfnoc_ctrl_tvalid (s_replay0_ctrl_tvalid), .s_rfnoc_ctrl_tvalid (s_replay0_ctrl_tvalid),
@@ -1297,6 +1347,143 @@ module rfnoc_image_core #(
.m_rfnoc_ctrl_tready (m_replay0_ctrl_tready) .m_rfnoc_ctrl_tready (m_replay0_ctrl_tready)
); );
//-----------------------------------
// replay1
//-----------------------------------
wire replay1_mem_clk;
wire [BLOCK_CHDR_W-1:0] s_replay1_in_1_tdata , s_replay1_in_0_tdata ;
wire s_replay1_in_1_tlast , s_replay1_in_0_tlast ;
wire s_replay1_in_1_tvalid, s_replay1_in_0_tvalid;
wire s_replay1_in_1_tready, s_replay1_in_0_tready;
wire [BLOCK_CHDR_W-1:0] m_replay1_out_1_tdata , m_replay1_out_0_tdata ;
wire m_replay1_out_1_tlast , m_replay1_out_0_tlast ;
wire m_replay1_out_1_tvalid, m_replay1_out_0_tvalid;
wire m_replay1_out_1_tready, m_replay1_out_0_tready;
// axi_ram
wire [ 0:0] replay1_axi_rst;
wire [ 7:0] replay1_m_axi_awid;
wire [ 383:0] replay1_m_axi_awaddr;
wire [ 63:0] replay1_m_axi_awlen;
wire [ 23:0] replay1_m_axi_awsize;
wire [ 15:0] replay1_m_axi_awburst;
wire [ 7:0] replay1_m_axi_awlock;
wire [ 31:0] replay1_m_axi_awcache;
wire [ 23:0] replay1_m_axi_awprot;
wire [ 31:0] replay1_m_axi_awqos;
wire [ 31:0] replay1_m_axi_awregion;
wire [ 7:0] replay1_m_axi_awuser;
wire [ 7:0] replay1_m_axi_awvalid;
wire [ 7:0] replay1_m_axi_awready;
wire [4191:0] replay1_m_axi_wdata;
wire [ 511:0] replay1_m_axi_wstrb;
wire [ 7:0] replay1_m_axi_wlast;
wire [ 7:0] replay1_m_axi_wuser;
wire [ 7:0] replay1_m_axi_wvalid;
wire [ 7:0] replay1_m_axi_wready;
wire [ 7:0] replay1_m_axi_bid;
wire [ 15:0] replay1_m_axi_bresp;
wire [ 7:0] replay1_m_axi_buser;
wire [ 7:0] replay1_m_axi_bvalid;
wire [ 7:0] replay1_m_axi_bready;
wire [ 7:0] replay1_m_axi_arid;
wire [ 383:0] replay1_m_axi_araddr;
wire [ 63:0] replay1_m_axi_arlen;
wire [ 23:0] replay1_m_axi_arsize;
wire [ 15:0] replay1_m_axi_arburst;
wire [ 7:0] replay1_m_axi_arlock;
wire [ 31:0] replay1_m_axi_arcache;
wire [ 31:0] replay1_m_axi_arprot;
wire [ 31:0] replay1_m_axi_arqos;
wire [ 31:0] replay1_m_axi_arregion;
wire [ 7:0] replay1_m_axi_aruser;
wire [ 7:0] replay1_m_axi_arvalid;
wire [ 7:0] replay1_m_axi_arready;
wire [ 7:0] replay1_m_axi_rid;
wire [4191:0] replay1_m_axi_rdata;
wire [ 15:0] replay1_m_axi_rresp;
wire [ 7:0] replay1_m_axi_rlast;
wire [ 7:0] replay1_m_axi_ruser;
wire [ 7:0] replay1_m_axi_rvalid;
wire [ 7:0] replay1_m_axi_rready;
rfnoc_block_replay #(
.THIS_PORTID (5),
.CHDR_W (BLOCK_CHDR_W),
.NUM_PORTS (2),
.MEM_DATA_W (128),
.MEM_ADDR_W (32),
.MTU (BLOCK_MTU)
) b_replay1_3 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
.rfnoc_ctrl_clk (rfnoc_ctrl_clk),
.mem_clk (replay1_mem_clk),
.rfnoc_core_config (rfnoc_core_config[512*4-1:512*3]),
.rfnoc_core_status (rfnoc_core_status[512*4-1:512*3]),
.axi_rst (replay1_axi_rst),
.m_axi_awid (replay1_m_axi_awid),
.m_axi_awaddr (replay1_m_axi_awaddr),
.m_axi_awlen (replay1_m_axi_awlen),
.m_axi_awsize (replay1_m_axi_awsize),
.m_axi_awburst (replay1_m_axi_awburst),
.m_axi_awlock (replay1_m_axi_awlock),
.m_axi_awcache (replay1_m_axi_awcache),
.m_axi_awprot (replay1_m_axi_awprot),
.m_axi_awqos (replay1_m_axi_awqos),
.m_axi_awregion (replay1_m_axi_awregion),
.m_axi_awuser (replay1_m_axi_awuser),
.m_axi_awvalid (replay1_m_axi_awvalid),
.m_axi_awready (replay1_m_axi_awready),
.m_axi_wdata (replay1_m_axi_wdata),
.m_axi_wstrb (replay1_m_axi_wstrb),
.m_axi_wlast (replay1_m_axi_wlast),
.m_axi_wuser (replay1_m_axi_wuser),
.m_axi_wvalid (replay1_m_axi_wvalid),
.m_axi_wready (replay1_m_axi_wready),
.m_axi_bid (replay1_m_axi_bid),
.m_axi_bresp (replay1_m_axi_bresp),
.m_axi_buser (replay1_m_axi_buser),
.m_axi_bvalid (replay1_m_axi_bvalid),
.m_axi_bready (replay1_m_axi_bready),
.m_axi_arid (replay1_m_axi_arid),
.m_axi_araddr (replay1_m_axi_araddr),
.m_axi_arlen (replay1_m_axi_arlen),
.m_axi_arsize (replay1_m_axi_arsize),
.m_axi_arburst (replay1_m_axi_arburst),
.m_axi_arlock (replay1_m_axi_arlock),
.m_axi_arcache (replay1_m_axi_arcache),
.m_axi_arprot (replay1_m_axi_arprot),
.m_axi_arqos (replay1_m_axi_arqos),
.m_axi_arregion (replay1_m_axi_arregion),
.m_axi_aruser (replay1_m_axi_aruser),
.m_axi_arvalid (replay1_m_axi_arvalid),
.m_axi_arready (replay1_m_axi_arready),
.m_axi_rid (replay1_m_axi_rid),
.m_axi_rdata (replay1_m_axi_rdata),
.m_axi_rresp (replay1_m_axi_rresp),
.m_axi_rlast (replay1_m_axi_rlast),
.m_axi_ruser (replay1_m_axi_ruser),
.m_axi_rvalid (replay1_m_axi_rvalid),
.m_axi_rready (replay1_m_axi_rready),
.s_rfnoc_chdr_tdata ({s_replay1_in_1_tdata , s_replay1_in_0_tdata }),
.s_rfnoc_chdr_tlast ({s_replay1_in_1_tlast , s_replay1_in_0_tlast }),
.s_rfnoc_chdr_tvalid ({s_replay1_in_1_tvalid, s_replay1_in_0_tvalid}),
.s_rfnoc_chdr_tready ({s_replay1_in_1_tready, s_replay1_in_0_tready}),
.m_rfnoc_chdr_tdata ({m_replay1_out_1_tdata , m_replay1_out_0_tdata }),
.m_rfnoc_chdr_tlast ({m_replay1_out_1_tlast , m_replay1_out_0_tlast }),
.m_rfnoc_chdr_tvalid ({m_replay1_out_1_tvalid, m_replay1_out_0_tvalid}),
.m_rfnoc_chdr_tready ({m_replay1_out_1_tready, m_replay1_out_0_tready}),
.s_rfnoc_ctrl_tdata (s_replay1_ctrl_tdata),
.s_rfnoc_ctrl_tlast (s_replay1_ctrl_tlast),
.s_rfnoc_ctrl_tvalid (s_replay1_ctrl_tvalid),
.s_rfnoc_ctrl_tready (s_replay1_ctrl_tready),
.m_rfnoc_ctrl_tdata (m_replay1_ctrl_tdata),
.m_rfnoc_ctrl_tlast (m_replay1_ctrl_tlast),
.m_rfnoc_ctrl_tvalid (m_replay1_ctrl_tvalid),
.m_rfnoc_ctrl_tready (m_replay1_ctrl_tready)
);
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Static Router // Static Router
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@@ -1361,25 +1548,25 @@ module rfnoc_image_core #(
assign s_ep5_in0_tvalid = m_replay0_out_1_tvalid; assign s_ep5_in0_tvalid = m_replay0_out_1_tvalid;
assign m_replay0_out_1_tready = s_ep5_in0_tready; assign m_replay0_out_1_tready = s_ep5_in0_tready;
assign s_replay0_in_2_tdata = m_ep6_out0_tdata; assign s_replay1_in_0_tdata = m_ep6_out0_tdata;
assign s_replay0_in_2_tlast = m_ep6_out0_tlast; assign s_replay1_in_0_tlast = m_ep6_out0_tlast;
assign s_replay0_in_2_tvalid = m_ep6_out0_tvalid; assign s_replay1_in_0_tvalid = m_ep6_out0_tvalid;
assign m_ep6_out0_tready = s_replay0_in_2_tready; assign m_ep6_out0_tready = s_replay1_in_0_tready;
assign s_ep6_in0_tdata = m_replay0_out_2_tdata; assign s_ep6_in0_tdata = m_replay1_out_0_tdata;
assign s_ep6_in0_tlast = m_replay0_out_2_tlast; assign s_ep6_in0_tlast = m_replay1_out_0_tlast;
assign s_ep6_in0_tvalid = m_replay0_out_2_tvalid; assign s_ep6_in0_tvalid = m_replay1_out_0_tvalid;
assign m_replay0_out_2_tready = s_ep6_in0_tready; assign m_replay1_out_0_tready = s_ep6_in0_tready;
assign s_replay0_in_3_tdata = m_ep7_out0_tdata; assign s_replay1_in_1_tdata = m_ep7_out0_tdata;
assign s_replay0_in_3_tlast = m_ep7_out0_tlast; assign s_replay1_in_1_tlast = m_ep7_out0_tlast;
assign s_replay0_in_3_tvalid = m_ep7_out0_tvalid; assign s_replay1_in_1_tvalid = m_ep7_out0_tvalid;
assign m_ep7_out0_tready = s_replay0_in_3_tready; assign m_ep7_out0_tready = s_replay1_in_1_tready;
assign s_ep7_in0_tdata = m_replay0_out_3_tdata; assign s_ep7_in0_tdata = m_replay1_out_1_tdata;
assign s_ep7_in0_tlast = m_replay0_out_3_tlast; assign s_ep7_in0_tlast = m_replay1_out_1_tlast;
assign s_ep7_in0_tvalid = m_replay0_out_3_tvalid; assign s_ep7_in0_tvalid = m_replay1_out_1_tvalid;
assign m_replay0_out_3_tready = s_ep7_in0_tready; assign m_replay1_out_1_tready = s_ep7_in0_tready;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@@ -1395,6 +1582,7 @@ module rfnoc_image_core #(
assign radio0_radio_clk = radio_clk; assign radio0_radio_clk = radio_clk;
assign radio1_radio_clk = radio_clk; assign radio1_radio_clk = radio_clk;
assign replay0_mem_clk = dram_clk; assign replay0_mem_clk = dram_clk;
assign replay1_mem_clk = dram_clk;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@@ -1438,51 +1626,97 @@ module rfnoc_image_core #(
assign radio1_radio_tx_stb = radio_tx_stb_radio1; assign radio1_radio_tx_stb = radio_tx_stb_radio1;
assign radio_tx_running_radio1 = radio1_radio_tx_running; assign radio_tx_running_radio1 = radio1_radio_tx_running;
assign replay0_axi_rst = axi_rst; assign replay0_axi_rst = dram0_axi_rst;
assign m_axi_awid = replay0_m_axi_awid; assign dram0_m_axi_awid = replay0_m_axi_awid;
assign m_axi_awaddr = replay0_m_axi_awaddr; assign dram0_m_axi_awaddr = replay0_m_axi_awaddr;
assign m_axi_awlen = replay0_m_axi_awlen; assign dram0_m_axi_awlen = replay0_m_axi_awlen;
assign m_axi_awsize = replay0_m_axi_awsize; assign dram0_m_axi_awsize = replay0_m_axi_awsize;
assign m_axi_awburst = replay0_m_axi_awburst; assign dram0_m_axi_awburst = replay0_m_axi_awburst;
assign m_axi_awlock = replay0_m_axi_awlock; assign dram0_m_axi_awlock = replay0_m_axi_awlock;
assign m_axi_awcache = replay0_m_axi_awcache; assign dram0_m_axi_awcache = replay0_m_axi_awcache;
assign m_axi_awprot = replay0_m_axi_awprot; assign dram0_m_axi_awprot = replay0_m_axi_awprot;
assign m_axi_awqos = replay0_m_axi_awqos; assign dram0_m_axi_awqos = replay0_m_axi_awqos;
assign m_axi_awregion = replay0_m_axi_awregion; assign dram0_m_axi_awregion = replay0_m_axi_awregion;
assign m_axi_awuser = replay0_m_axi_awuser; assign dram0_m_axi_awuser = replay0_m_axi_awuser;
assign m_axi_awvalid = replay0_m_axi_awvalid; assign dram0_m_axi_awvalid = replay0_m_axi_awvalid;
assign replay0_m_axi_awready = m_axi_awready; assign replay0_m_axi_awready = dram0_m_axi_awready;
assign m_axi_wdata = replay0_m_axi_wdata; assign dram0_m_axi_wdata = replay0_m_axi_wdata;
assign m_axi_wstrb = replay0_m_axi_wstrb; assign dram0_m_axi_wstrb = replay0_m_axi_wstrb;
assign m_axi_wlast = replay0_m_axi_wlast; assign dram0_m_axi_wlast = replay0_m_axi_wlast;
assign m_axi_wuser = replay0_m_axi_wuser; assign dram0_m_axi_wuser = replay0_m_axi_wuser;
assign m_axi_wvalid = replay0_m_axi_wvalid; assign dram0_m_axi_wvalid = replay0_m_axi_wvalid;
assign replay0_m_axi_wready = m_axi_wready; assign replay0_m_axi_wready = dram0_m_axi_wready;
assign replay0_m_axi_bid = m_axi_bid; assign replay0_m_axi_bid = dram0_m_axi_bid;
assign replay0_m_axi_bresp = m_axi_bresp; assign replay0_m_axi_bresp = dram0_m_axi_bresp;
assign replay0_m_axi_buser = m_axi_buser; assign replay0_m_axi_buser = dram0_m_axi_buser;
assign replay0_m_axi_bvalid = m_axi_bvalid; assign replay0_m_axi_bvalid = dram0_m_axi_bvalid;
assign m_axi_bready = replay0_m_axi_bready; assign dram0_m_axi_bready = replay0_m_axi_bready;
assign m_axi_arid = replay0_m_axi_arid; assign dram0_m_axi_arid = replay0_m_axi_arid;
assign m_axi_araddr = replay0_m_axi_araddr; assign dram0_m_axi_araddr = replay0_m_axi_araddr;
assign m_axi_arlen = replay0_m_axi_arlen; assign dram0_m_axi_arlen = replay0_m_axi_arlen;
assign m_axi_arsize = replay0_m_axi_arsize; assign dram0_m_axi_arsize = replay0_m_axi_arsize;
assign m_axi_arburst = replay0_m_axi_arburst; assign dram0_m_axi_arburst = replay0_m_axi_arburst;
assign m_axi_arlock = replay0_m_axi_arlock; assign dram0_m_axi_arlock = replay0_m_axi_arlock;
assign m_axi_arcache = replay0_m_axi_arcache; assign dram0_m_axi_arcache = replay0_m_axi_arcache;
assign m_axi_arprot = replay0_m_axi_arprot; assign dram0_m_axi_arprot = replay0_m_axi_arprot;
assign m_axi_arqos = replay0_m_axi_arqos; assign dram0_m_axi_arqos = replay0_m_axi_arqos;
assign m_axi_arregion = replay0_m_axi_arregion; assign dram0_m_axi_arregion = replay0_m_axi_arregion;
assign m_axi_aruser = replay0_m_axi_aruser; assign dram0_m_axi_aruser = replay0_m_axi_aruser;
assign m_axi_arvalid = replay0_m_axi_arvalid; assign dram0_m_axi_arvalid = replay0_m_axi_arvalid;
assign replay0_m_axi_arready = m_axi_arready; assign replay0_m_axi_arready = dram0_m_axi_arready;
assign replay0_m_axi_rid = m_axi_rid; assign replay0_m_axi_rid = dram0_m_axi_rid;
assign replay0_m_axi_rdata = m_axi_rdata; assign replay0_m_axi_rdata = dram0_m_axi_rdata;
assign replay0_m_axi_rresp = m_axi_rresp; assign replay0_m_axi_rresp = dram0_m_axi_rresp;
assign replay0_m_axi_rlast = m_axi_rlast; assign replay0_m_axi_rlast = dram0_m_axi_rlast;
assign replay0_m_axi_ruser = m_axi_ruser; assign replay0_m_axi_ruser = dram0_m_axi_ruser;
assign replay0_m_axi_rvalid = m_axi_rvalid; assign replay0_m_axi_rvalid = dram0_m_axi_rvalid;
assign m_axi_rready = replay0_m_axi_rready; assign dram0_m_axi_rready = replay0_m_axi_rready;
assign replay1_axi_rst = dram1_axi_rst;
assign dram1_m_axi_awid = replay1_m_axi_awid;
assign dram1_m_axi_awaddr = replay1_m_axi_awaddr;
assign dram1_m_axi_awlen = replay1_m_axi_awlen;
assign dram1_m_axi_awsize = replay1_m_axi_awsize;
assign dram1_m_axi_awburst = replay1_m_axi_awburst;
assign dram1_m_axi_awlock = replay1_m_axi_awlock;
assign dram1_m_axi_awcache = replay1_m_axi_awcache;
assign dram1_m_axi_awprot = replay1_m_axi_awprot;
assign dram1_m_axi_awqos = replay1_m_axi_awqos;
assign dram1_m_axi_awregion = replay1_m_axi_awregion;
assign dram1_m_axi_awuser = replay1_m_axi_awuser;
assign dram1_m_axi_awvalid = replay1_m_axi_awvalid;
assign replay1_m_axi_awready = dram1_m_axi_awready;
assign dram1_m_axi_wdata = replay1_m_axi_wdata;
assign dram1_m_axi_wstrb = replay1_m_axi_wstrb;
assign dram1_m_axi_wlast = replay1_m_axi_wlast;
assign dram1_m_axi_wuser = replay1_m_axi_wuser;
assign dram1_m_axi_wvalid = replay1_m_axi_wvalid;
assign replay1_m_axi_wready = dram1_m_axi_wready;
assign replay1_m_axi_bid = dram1_m_axi_bid;
assign replay1_m_axi_bresp = dram1_m_axi_bresp;
assign replay1_m_axi_buser = dram1_m_axi_buser;
assign replay1_m_axi_bvalid = dram1_m_axi_bvalid;
assign dram1_m_axi_bready = replay1_m_axi_bready;
assign dram1_m_axi_arid = replay1_m_axi_arid;
assign dram1_m_axi_araddr = replay1_m_axi_araddr;
assign dram1_m_axi_arlen = replay1_m_axi_arlen;
assign dram1_m_axi_arsize = replay1_m_axi_arsize;
assign dram1_m_axi_arburst = replay1_m_axi_arburst;
assign dram1_m_axi_arlock = replay1_m_axi_arlock;
assign dram1_m_axi_arcache = replay1_m_axi_arcache;
assign dram1_m_axi_arprot = replay1_m_axi_arprot;
assign dram1_m_axi_arqos = replay1_m_axi_arqos;
assign dram1_m_axi_arregion = replay1_m_axi_arregion;
assign dram1_m_axi_aruser = replay1_m_axi_aruser;
assign dram1_m_axi_arvalid = replay1_m_axi_arvalid;
assign replay1_m_axi_arready = dram1_m_axi_arready;
assign replay1_m_axi_rid = dram1_m_axi_rid;
assign replay1_m_axi_rdata = dram1_m_axi_rdata;
assign replay1_m_axi_rresp = dram1_m_axi_rresp;
assign replay1_m_axi_rlast = dram1_m_axi_rlast;
assign replay1_m_axi_ruser = dram1_m_axi_ruser;
assign replay1_m_axi_rvalid = dram1_m_axi_rvalid;
assign dram1_m_axi_rready = replay1_m_axi_rready;
// Broadcaster/Listener Connections: // Broadcaster/Listener Connections:
assign radio0_radio_time = radio_time; assign radio0_radio_time = radio_time;
+14 -6
View File
@@ -69,7 +69,13 @@ noc_blocks:
replay0: replay0:
block_desc: 'replay.yml' block_desc: 'replay.yml'
parameters: parameters:
NUM_PORTS: 4 NUM_PORTS: 2
MEM_DATA_W: 128
MEM_ADDR_W: 32
replay1:
block_desc: 'replay.yml'
parameters:
NUM_PORTS: 2
MEM_DATA_W: 128 MEM_DATA_W: 128
MEM_ADDR_W: 32 MEM_ADDR_W: 32
@@ -104,10 +110,10 @@ connections:
- { srcblk: replay0, srcport: out_0, dstblk: ep4, dstport: in0 } - { srcblk: replay0, srcport: out_0, dstblk: ep4, dstport: in0 }
- { srcblk: ep5, srcport: out0, dstblk: replay0, dstport: in_1 } - { srcblk: ep5, srcport: out0, dstblk: replay0, dstport: in_1 }
- { srcblk: replay0, srcport: out_1, dstblk: ep5, dstport: in0 } - { srcblk: replay0, srcport: out_1, dstblk: ep5, dstport: in0 }
- { srcblk: ep6, srcport: out0, dstblk: replay0, dstport: in_2 } - { srcblk: ep6, srcport: out0, dstblk: replay1, dstport: in_0 }
- { srcblk: replay0, srcport: out_2, dstblk: ep6, dstport: in0 } - { srcblk: replay1, srcport: out_0, dstblk: ep6, dstport: in0 }
- { srcblk: ep7, srcport: out0, dstblk: replay0, dstport: in_3 } - { srcblk: ep7, srcport: out0, dstblk: replay1, dstport: in_1 }
- { srcblk: replay0, srcport: out_3, dstblk: ep7, dstport: in0 } - { srcblk: replay1, srcport: out_1, dstblk: ep7, dstport: in0 }
# #
# BSP Connections # BSP Connections
- { srcblk: radio0, srcport: ctrlport, dstblk: _device_, dstport: ctrlport_radio0 } - { srcblk: radio0, srcport: ctrlport, dstblk: _device_, dstport: ctrlport_radio0 }
@@ -116,7 +122,8 @@ connections:
- { srcblk: _device_, srcport: radio1, dstblk: radio1, dstport: radio } - { srcblk: _device_, srcport: radio1, dstblk: radio1, dstport: radio }
- { srcblk: _device_, srcport: time, dstblk: radio0, dstport: time } - { srcblk: _device_, srcport: time, dstblk: radio0, dstport: time }
- { srcblk: _device_, srcport: time, dstblk: radio1, dstport: time } - { srcblk: _device_, srcport: time, dstblk: radio1, dstport: time }
- { srcblk: replay0, srcport: axi_ram, dstblk: _device_, dstport: dram } - { srcblk: replay0, srcport: axi_ram, dstblk: _device_, dstport: dram0 }
- { srcblk: replay1, srcport: axi_ram, dstblk: _device_, dstport: dram1 }
# A list of all clock domain connections in design # A list of all clock domain connections in design
# ------------------------------------------------ # ------------------------------------------------
@@ -129,3 +136,4 @@ clk_domains:
- { srcblk: _device_, srcport: radio, dstblk: radio0, dstport: radio } - { srcblk: _device_, srcport: radio, dstblk: radio0, dstport: radio }
- { srcblk: _device_, srcport: radio, dstblk: radio1, dstport: radio } - { srcblk: _device_, srcport: radio, dstblk: radio1, dstport: radio }
- { srcblk: _device_, srcport: dram, dstblk: replay0, dstport: mem } - { srcblk: _device_, srcport: dram, dstblk: replay0, dstport: mem }
- { srcblk: _device_, srcport: dram, dstblk: replay1, dstport: mem }
+4 -4
View File
@@ -11,7 +11,7 @@
02c00140 02c00140
018002c1 018002c1
02c10180 02c10180
01c002c2 01c00300
02c201c0 030001c0
020002c3 02000301
02c30200 03010200
+93 -47
View File
@@ -36,10 +36,10 @@ module rfnoc_image_core #(
input wire chdr_aclk, input wire chdr_aclk,
input wire ctrl_aclk, input wire ctrl_aclk,
input wire core_arst, input wire core_arst,
input wire ce_clk,
input wire radio_clk, input wire radio_clk,
input wire radio_2x_clk, input wire radio_2x_clk,
input wire dram_clk, input wire dram_clk,
input wire ce_clk,
// Basic // Basic
input wire [ 15:0] device_id, input wire [ 15:0] device_id,
@@ -83,52 +83,98 @@ module rfnoc_image_core #(
output wire [1023:0] radio_tx_data_radio1, output wire [1023:0] radio_tx_data_radio1,
input wire [ 31:0] radio_tx_stb_radio1, input wire [ 31:0] radio_tx_stb_radio1,
output wire [ 31:0] radio_tx_running_radio1, output wire [ 31:0] radio_tx_running_radio1,
// dram // dram0
input wire [ 0:0] axi_rst, input wire [ 0:0] dram0_axi_rst,
output wire [ 7:0] m_axi_awid, output wire [ 7:0] dram0_m_axi_awid,
output wire [ 383:0] m_axi_awaddr, output wire [ 383:0] dram0_m_axi_awaddr,
output wire [ 63:0] m_axi_awlen, output wire [ 63:0] dram0_m_axi_awlen,
output wire [ 23:0] m_axi_awsize, output wire [ 23:0] dram0_m_axi_awsize,
output wire [ 15:0] m_axi_awburst, output wire [ 15:0] dram0_m_axi_awburst,
output wire [ 7:0] m_axi_awlock, output wire [ 7:0] dram0_m_axi_awlock,
output wire [ 31:0] m_axi_awcache, output wire [ 31:0] dram0_m_axi_awcache,
output wire [ 23:0] m_axi_awprot, output wire [ 23:0] dram0_m_axi_awprot,
output wire [ 31:0] m_axi_awqos, output wire [ 31:0] dram0_m_axi_awqos,
output wire [ 31:0] m_axi_awregion, output wire [ 31:0] dram0_m_axi_awregion,
output wire [ 7:0] m_axi_awuser, output wire [ 7:0] dram0_m_axi_awuser,
output wire [ 7:0] m_axi_awvalid, output wire [ 7:0] dram0_m_axi_awvalid,
input wire [ 7:0] m_axi_awready, input wire [ 7:0] dram0_m_axi_awready,
output wire [4191:0] m_axi_wdata, output wire [4191:0] dram0_m_axi_wdata,
output wire [ 511:0] m_axi_wstrb, output wire [ 511:0] dram0_m_axi_wstrb,
output wire [ 7:0] m_axi_wlast, output wire [ 7:0] dram0_m_axi_wlast,
output wire [ 7:0] m_axi_wuser, output wire [ 7:0] dram0_m_axi_wuser,
output wire [ 7:0] m_axi_wvalid, output wire [ 7:0] dram0_m_axi_wvalid,
input wire [ 7:0] m_axi_wready, input wire [ 7:0] dram0_m_axi_wready,
input wire [ 7:0] m_axi_bid, input wire [ 7:0] dram0_m_axi_bid,
input wire [ 15:0] m_axi_bresp, input wire [ 15:0] dram0_m_axi_bresp,
input wire [ 7:0] m_axi_buser, input wire [ 7:0] dram0_m_axi_buser,
input wire [ 7:0] m_axi_bvalid, input wire [ 7:0] dram0_m_axi_bvalid,
output wire [ 7:0] m_axi_bready, output wire [ 7:0] dram0_m_axi_bready,
output wire [ 7:0] m_axi_arid, output wire [ 7:0] dram0_m_axi_arid,
output wire [ 383:0] m_axi_araddr, output wire [ 383:0] dram0_m_axi_araddr,
output wire [ 63:0] m_axi_arlen, output wire [ 63:0] dram0_m_axi_arlen,
output wire [ 23:0] m_axi_arsize, output wire [ 23:0] dram0_m_axi_arsize,
output wire [ 15:0] m_axi_arburst, output wire [ 15:0] dram0_m_axi_arburst,
output wire [ 7:0] m_axi_arlock, output wire [ 7:0] dram0_m_axi_arlock,
output wire [ 31:0] m_axi_arcache, output wire [ 31:0] dram0_m_axi_arcache,
output wire [ 31:0] m_axi_arprot, output wire [ 31:0] dram0_m_axi_arprot,
output wire [ 31:0] m_axi_arqos, output wire [ 31:0] dram0_m_axi_arqos,
output wire [ 31:0] m_axi_arregion, output wire [ 31:0] dram0_m_axi_arregion,
output wire [ 7:0] m_axi_aruser, output wire [ 7:0] dram0_m_axi_aruser,
output wire [ 7:0] m_axi_arvalid, output wire [ 7:0] dram0_m_axi_arvalid,
input wire [ 7:0] m_axi_arready, input wire [ 7:0] dram0_m_axi_arready,
input wire [ 7:0] m_axi_rid, input wire [ 7:0] dram0_m_axi_rid,
input wire [4191:0] m_axi_rdata, input wire [4191:0] dram0_m_axi_rdata,
input wire [ 15:0] m_axi_rresp, input wire [ 15:0] dram0_m_axi_rresp,
input wire [ 7:0] m_axi_rlast, input wire [ 7:0] dram0_m_axi_rlast,
input wire [ 7:0] m_axi_ruser, input wire [ 7:0] dram0_m_axi_ruser,
input wire [ 7:0] m_axi_rvalid, input wire [ 7:0] dram0_m_axi_rvalid,
output wire [ 7:0] m_axi_rready, output wire [ 7:0] dram0_m_axi_rready,
// dram1
input wire [ 0:0] dram1_axi_rst,
output wire [ 7:0] dram1_m_axi_awid,
output wire [ 383:0] dram1_m_axi_awaddr,
output wire [ 63:0] dram1_m_axi_awlen,
output wire [ 23:0] dram1_m_axi_awsize,
output wire [ 15:0] dram1_m_axi_awburst,
output wire [ 7:0] dram1_m_axi_awlock,
output wire [ 31:0] dram1_m_axi_awcache,
output wire [ 23:0] dram1_m_axi_awprot,
output wire [ 31:0] dram1_m_axi_awqos,
output wire [ 31:0] dram1_m_axi_awregion,
output wire [ 7:0] dram1_m_axi_awuser,
output wire [ 7:0] dram1_m_axi_awvalid,
input wire [ 7:0] dram1_m_axi_awready,
output wire [4191:0] dram1_m_axi_wdata,
output wire [ 511:0] dram1_m_axi_wstrb,
output wire [ 7:0] dram1_m_axi_wlast,
output wire [ 7:0] dram1_m_axi_wuser,
output wire [ 7:0] dram1_m_axi_wvalid,
input wire [ 7:0] dram1_m_axi_wready,
input wire [ 7:0] dram1_m_axi_bid,
input wire [ 15:0] dram1_m_axi_bresp,
input wire [ 7:0] dram1_m_axi_buser,
input wire [ 7:0] dram1_m_axi_bvalid,
output wire [ 7:0] dram1_m_axi_bready,
output wire [ 7:0] dram1_m_axi_arid,
output wire [ 383:0] dram1_m_axi_araddr,
output wire [ 63:0] dram1_m_axi_arlen,
output wire [ 23:0] dram1_m_axi_arsize,
output wire [ 15:0] dram1_m_axi_arburst,
output wire [ 7:0] dram1_m_axi_arlock,
output wire [ 31:0] dram1_m_axi_arcache,
output wire [ 31:0] dram1_m_axi_arprot,
output wire [ 31:0] dram1_m_axi_arqos,
output wire [ 31:0] dram1_m_axi_arregion,
output wire [ 7:0] dram1_m_axi_aruser,
output wire [ 7:0] dram1_m_axi_arvalid,
input wire [ 7:0] dram1_m_axi_arready,
input wire [ 7:0] dram1_m_axi_rid,
input wire [4191:0] dram1_m_axi_rdata,
input wire [ 15:0] dram1_m_axi_rresp,
input wire [ 7:0] dram1_m_axi_rlast,
input wire [ 7:0] dram1_m_axi_ruser,
input wire [ 7:0] dram1_m_axi_rvalid,
output wire [ 7:0] dram1_m_axi_rready,
// Transport Adapters /////////////// // Transport Adapters ///////////////
+138 -92
View File
@@ -36,10 +36,10 @@ module rfnoc_image_core #(
input wire chdr_aclk, input wire chdr_aclk,
input wire ctrl_aclk, input wire ctrl_aclk,
input wire core_arst, input wire core_arst,
input wire ce_clk,
input wire radio_clk, input wire radio_clk,
input wire radio_2x_clk, input wire radio_2x_clk,
input wire dram_clk, input wire dram_clk,
input wire ce_clk,
// Basic // Basic
input wire [ 15:0] device_id, input wire [ 15:0] device_id,
@@ -83,52 +83,98 @@ module rfnoc_image_core #(
output wire [1023:0] radio_tx_data_radio1, output wire [1023:0] radio_tx_data_radio1,
input wire [ 31:0] radio_tx_stb_radio1, input wire [ 31:0] radio_tx_stb_radio1,
output wire [ 31:0] radio_tx_running_radio1, output wire [ 31:0] radio_tx_running_radio1,
// dram // dram0
input wire [ 0:0] axi_rst, input wire [ 0:0] dram0_axi_rst,
output wire [ 7:0] m_axi_awid, output wire [ 7:0] dram0_m_axi_awid,
output wire [ 383:0] m_axi_awaddr, output wire [ 383:0] dram0_m_axi_awaddr,
output wire [ 63:0] m_axi_awlen, output wire [ 63:0] dram0_m_axi_awlen,
output wire [ 23:0] m_axi_awsize, output wire [ 23:0] dram0_m_axi_awsize,
output wire [ 15:0] m_axi_awburst, output wire [ 15:0] dram0_m_axi_awburst,
output wire [ 7:0] m_axi_awlock, output wire [ 7:0] dram0_m_axi_awlock,
output wire [ 31:0] m_axi_awcache, output wire [ 31:0] dram0_m_axi_awcache,
output wire [ 23:0] m_axi_awprot, output wire [ 23:0] dram0_m_axi_awprot,
output wire [ 31:0] m_axi_awqos, output wire [ 31:0] dram0_m_axi_awqos,
output wire [ 31:0] m_axi_awregion, output wire [ 31:0] dram0_m_axi_awregion,
output wire [ 7:0] m_axi_awuser, output wire [ 7:0] dram0_m_axi_awuser,
output wire [ 7:0] m_axi_awvalid, output wire [ 7:0] dram0_m_axi_awvalid,
input wire [ 7:0] m_axi_awready, input wire [ 7:0] dram0_m_axi_awready,
output wire [4191:0] m_axi_wdata, output wire [4191:0] dram0_m_axi_wdata,
output wire [ 511:0] m_axi_wstrb, output wire [ 511:0] dram0_m_axi_wstrb,
output wire [ 7:0] m_axi_wlast, output wire [ 7:0] dram0_m_axi_wlast,
output wire [ 7:0] m_axi_wuser, output wire [ 7:0] dram0_m_axi_wuser,
output wire [ 7:0] m_axi_wvalid, output wire [ 7:0] dram0_m_axi_wvalid,
input wire [ 7:0] m_axi_wready, input wire [ 7:0] dram0_m_axi_wready,
input wire [ 7:0] m_axi_bid, input wire [ 7:0] dram0_m_axi_bid,
input wire [ 15:0] m_axi_bresp, input wire [ 15:0] dram0_m_axi_bresp,
input wire [ 7:0] m_axi_buser, input wire [ 7:0] dram0_m_axi_buser,
input wire [ 7:0] m_axi_bvalid, input wire [ 7:0] dram0_m_axi_bvalid,
output wire [ 7:0] m_axi_bready, output wire [ 7:0] dram0_m_axi_bready,
output wire [ 7:0] m_axi_arid, output wire [ 7:0] dram0_m_axi_arid,
output wire [ 383:0] m_axi_araddr, output wire [ 383:0] dram0_m_axi_araddr,
output wire [ 63:0] m_axi_arlen, output wire [ 63:0] dram0_m_axi_arlen,
output wire [ 23:0] m_axi_arsize, output wire [ 23:0] dram0_m_axi_arsize,
output wire [ 15:0] m_axi_arburst, output wire [ 15:0] dram0_m_axi_arburst,
output wire [ 7:0] m_axi_arlock, output wire [ 7:0] dram0_m_axi_arlock,
output wire [ 31:0] m_axi_arcache, output wire [ 31:0] dram0_m_axi_arcache,
output wire [ 31:0] m_axi_arprot, output wire [ 31:0] dram0_m_axi_arprot,
output wire [ 31:0] m_axi_arqos, output wire [ 31:0] dram0_m_axi_arqos,
output wire [ 31:0] m_axi_arregion, output wire [ 31:0] dram0_m_axi_arregion,
output wire [ 7:0] m_axi_aruser, output wire [ 7:0] dram0_m_axi_aruser,
output wire [ 7:0] m_axi_arvalid, output wire [ 7:0] dram0_m_axi_arvalid,
input wire [ 7:0] m_axi_arready, input wire [ 7:0] dram0_m_axi_arready,
input wire [ 7:0] m_axi_rid, input wire [ 7:0] dram0_m_axi_rid,
input wire [4191:0] m_axi_rdata, input wire [4191:0] dram0_m_axi_rdata,
input wire [ 15:0] m_axi_rresp, input wire [ 15:0] dram0_m_axi_rresp,
input wire [ 7:0] m_axi_rlast, input wire [ 7:0] dram0_m_axi_rlast,
input wire [ 7:0] m_axi_ruser, input wire [ 7:0] dram0_m_axi_ruser,
input wire [ 7:0] m_axi_rvalid, input wire [ 7:0] dram0_m_axi_rvalid,
output wire [ 7:0] m_axi_rready, output wire [ 7:0] dram0_m_axi_rready,
// dram1
input wire [ 0:0] dram1_axi_rst,
output wire [ 7:0] dram1_m_axi_awid,
output wire [ 383:0] dram1_m_axi_awaddr,
output wire [ 63:0] dram1_m_axi_awlen,
output wire [ 23:0] dram1_m_axi_awsize,
output wire [ 15:0] dram1_m_axi_awburst,
output wire [ 7:0] dram1_m_axi_awlock,
output wire [ 31:0] dram1_m_axi_awcache,
output wire [ 23:0] dram1_m_axi_awprot,
output wire [ 31:0] dram1_m_axi_awqos,
output wire [ 31:0] dram1_m_axi_awregion,
output wire [ 7:0] dram1_m_axi_awuser,
output wire [ 7:0] dram1_m_axi_awvalid,
input wire [ 7:0] dram1_m_axi_awready,
output wire [4191:0] dram1_m_axi_wdata,
output wire [ 511:0] dram1_m_axi_wstrb,
output wire [ 7:0] dram1_m_axi_wlast,
output wire [ 7:0] dram1_m_axi_wuser,
output wire [ 7:0] dram1_m_axi_wvalid,
input wire [ 7:0] dram1_m_axi_wready,
input wire [ 7:0] dram1_m_axi_bid,
input wire [ 15:0] dram1_m_axi_bresp,
input wire [ 7:0] dram1_m_axi_buser,
input wire [ 7:0] dram1_m_axi_bvalid,
output wire [ 7:0] dram1_m_axi_bready,
output wire [ 7:0] dram1_m_axi_arid,
output wire [ 383:0] dram1_m_axi_araddr,
output wire [ 63:0] dram1_m_axi_arlen,
output wire [ 23:0] dram1_m_axi_arsize,
output wire [ 15:0] dram1_m_axi_arburst,
output wire [ 7:0] dram1_m_axi_arlock,
output wire [ 31:0] dram1_m_axi_arcache,
output wire [ 31:0] dram1_m_axi_arprot,
output wire [ 31:0] dram1_m_axi_arqos,
output wire [ 31:0] dram1_m_axi_arregion,
output wire [ 7:0] dram1_m_axi_aruser,
output wire [ 7:0] dram1_m_axi_arvalid,
input wire [ 7:0] dram1_m_axi_arready,
input wire [ 7:0] dram1_m_axi_rid,
input wire [4191:0] dram1_m_axi_rdata,
input wire [ 15:0] dram1_m_axi_rresp,
input wire [ 7:0] dram1_m_axi_rlast,
input wire [ 7:0] dram1_m_axi_ruser,
input wire [ 7:0] dram1_m_axi_rvalid,
output wire [ 7:0] dram1_m_axi_rready,
// Transport Adapters /////////////// // Transport Adapters ///////////////
@@ -1678,51 +1724,51 @@ module rfnoc_image_core #(
assign radio1_m_ctrlport_resp_status = m_ctrlport_radio1_resp_status; assign radio1_m_ctrlport_resp_status = m_ctrlport_radio1_resp_status;
assign radio1_m_ctrlport_resp_data = m_ctrlport_radio1_resp_data; assign radio1_m_ctrlport_resp_data = m_ctrlport_radio1_resp_data;
assign replay0_axi_rst = axi_rst; assign replay0_axi_rst = dram0_axi_rst;
assign m_axi_awid = replay0_m_axi_awid; assign dram0_m_axi_awid = replay0_m_axi_awid;
assign m_axi_awaddr = replay0_m_axi_awaddr; assign dram0_m_axi_awaddr = replay0_m_axi_awaddr;
assign m_axi_awlen = replay0_m_axi_awlen; assign dram0_m_axi_awlen = replay0_m_axi_awlen;
assign m_axi_awsize = replay0_m_axi_awsize; assign dram0_m_axi_awsize = replay0_m_axi_awsize;
assign m_axi_awburst = replay0_m_axi_awburst; assign dram0_m_axi_awburst = replay0_m_axi_awburst;
assign m_axi_awlock = replay0_m_axi_awlock; assign dram0_m_axi_awlock = replay0_m_axi_awlock;
assign m_axi_awcache = replay0_m_axi_awcache; assign dram0_m_axi_awcache = replay0_m_axi_awcache;
assign m_axi_awprot = replay0_m_axi_awprot; assign dram0_m_axi_awprot = replay0_m_axi_awprot;
assign m_axi_awqos = replay0_m_axi_awqos; assign dram0_m_axi_awqos = replay0_m_axi_awqos;
assign m_axi_awregion = replay0_m_axi_awregion; assign dram0_m_axi_awregion = replay0_m_axi_awregion;
assign m_axi_awuser = replay0_m_axi_awuser; assign dram0_m_axi_awuser = replay0_m_axi_awuser;
assign m_axi_awvalid = replay0_m_axi_awvalid; assign dram0_m_axi_awvalid = replay0_m_axi_awvalid;
assign replay0_m_axi_awready = m_axi_awready; assign replay0_m_axi_awready = dram0_m_axi_awready;
assign m_axi_wdata = replay0_m_axi_wdata; assign dram0_m_axi_wdata = replay0_m_axi_wdata;
assign m_axi_wstrb = replay0_m_axi_wstrb; assign dram0_m_axi_wstrb = replay0_m_axi_wstrb;
assign m_axi_wlast = replay0_m_axi_wlast; assign dram0_m_axi_wlast = replay0_m_axi_wlast;
assign m_axi_wuser = replay0_m_axi_wuser; assign dram0_m_axi_wuser = replay0_m_axi_wuser;
assign m_axi_wvalid = replay0_m_axi_wvalid; assign dram0_m_axi_wvalid = replay0_m_axi_wvalid;
assign replay0_m_axi_wready = m_axi_wready; assign replay0_m_axi_wready = dram0_m_axi_wready;
assign replay0_m_axi_bid = m_axi_bid; assign replay0_m_axi_bid = dram0_m_axi_bid;
assign replay0_m_axi_bresp = m_axi_bresp; assign replay0_m_axi_bresp = dram0_m_axi_bresp;
assign replay0_m_axi_buser = m_axi_buser; assign replay0_m_axi_buser = dram0_m_axi_buser;
assign replay0_m_axi_bvalid = m_axi_bvalid; assign replay0_m_axi_bvalid = dram0_m_axi_bvalid;
assign m_axi_bready = replay0_m_axi_bready; assign dram0_m_axi_bready = replay0_m_axi_bready;
assign m_axi_arid = replay0_m_axi_arid; assign dram0_m_axi_arid = replay0_m_axi_arid;
assign m_axi_araddr = replay0_m_axi_araddr; assign dram0_m_axi_araddr = replay0_m_axi_araddr;
assign m_axi_arlen = replay0_m_axi_arlen; assign dram0_m_axi_arlen = replay0_m_axi_arlen;
assign m_axi_arsize = replay0_m_axi_arsize; assign dram0_m_axi_arsize = replay0_m_axi_arsize;
assign m_axi_arburst = replay0_m_axi_arburst; assign dram0_m_axi_arburst = replay0_m_axi_arburst;
assign m_axi_arlock = replay0_m_axi_arlock; assign dram0_m_axi_arlock = replay0_m_axi_arlock;
assign m_axi_arcache = replay0_m_axi_arcache; assign dram0_m_axi_arcache = replay0_m_axi_arcache;
assign m_axi_arprot = replay0_m_axi_arprot; assign dram0_m_axi_arprot = replay0_m_axi_arprot;
assign m_axi_arqos = replay0_m_axi_arqos; assign dram0_m_axi_arqos = replay0_m_axi_arqos;
assign m_axi_arregion = replay0_m_axi_arregion; assign dram0_m_axi_arregion = replay0_m_axi_arregion;
assign m_axi_aruser = replay0_m_axi_aruser; assign dram0_m_axi_aruser = replay0_m_axi_aruser;
assign m_axi_arvalid = replay0_m_axi_arvalid; assign dram0_m_axi_arvalid = replay0_m_axi_arvalid;
assign replay0_m_axi_arready = m_axi_arready; assign replay0_m_axi_arready = dram0_m_axi_arready;
assign replay0_m_axi_rid = m_axi_rid; assign replay0_m_axi_rid = dram0_m_axi_rid;
assign replay0_m_axi_rdata = m_axi_rdata; assign replay0_m_axi_rdata = dram0_m_axi_rdata;
assign replay0_m_axi_rresp = m_axi_rresp; assign replay0_m_axi_rresp = dram0_m_axi_rresp;
assign replay0_m_axi_rlast = m_axi_rlast; assign replay0_m_axi_rlast = dram0_m_axi_rlast;
assign replay0_m_axi_ruser = m_axi_ruser; assign replay0_m_axi_ruser = dram0_m_axi_ruser;
assign replay0_m_axi_rvalid = m_axi_rvalid; assign replay0_m_axi_rvalid = dram0_m_axi_rvalid;
assign m_axi_rready = replay0_m_axi_rready; assign dram0_m_axi_rready = replay0_m_axi_rready;
// Broadcaster/Listener Connections: // Broadcaster/Listener Connections:
assign radio0_radio_time = radio_time; assign radio0_radio_time = radio_time;
+1 -1
View File
@@ -149,7 +149,7 @@ connections:
- { srcblk: _device_, srcport: time, dstblk: radio1, dstport: time } - { srcblk: _device_, srcport: time, dstblk: radio1, dstport: time }
- { srcblk: radio0, srcport: ctrlport, dstblk: _device_, dstport: ctrlport_radio0 } - { srcblk: radio0, srcport: ctrlport, dstblk: _device_, dstport: ctrlport_radio0 }
- { srcblk: radio1, srcport: ctrlport, dstblk: _device_, dstport: ctrlport_radio1 } - { srcblk: radio1, srcport: ctrlport, dstblk: _device_, dstport: ctrlport_radio1 }
- { srcblk: replay0, srcport: axi_ram, dstblk: _device_, dstport: dram } - { srcblk: replay0, srcport: axi_ram, dstblk: _device_, dstport: dram0 }
# A list of all clock domain connections in design # A list of all clock domain connections in design
# ------------------------------------------------ # ------------------------------------------------
+93 -47
View File
@@ -36,10 +36,10 @@ module rfnoc_image_core #(
input wire chdr_aclk, input wire chdr_aclk,
input wire ctrl_aclk, input wire ctrl_aclk,
input wire core_arst, input wire core_arst,
input wire ce_clk,
input wire radio_clk, input wire radio_clk,
input wire radio_2x_clk, input wire radio_2x_clk,
input wire dram_clk, input wire dram_clk,
input wire ce_clk,
// Basic // Basic
input wire [ 15:0] device_id, input wire [ 15:0] device_id,
@@ -83,52 +83,98 @@ module rfnoc_image_core #(
output wire [1023:0] radio_tx_data_radio1, output wire [1023:0] radio_tx_data_radio1,
input wire [ 31:0] radio_tx_stb_radio1, input wire [ 31:0] radio_tx_stb_radio1,
output wire [ 31:0] radio_tx_running_radio1, output wire [ 31:0] radio_tx_running_radio1,
// dram // dram0
input wire [ 0:0] axi_rst, input wire [ 0:0] dram0_axi_rst,
output wire [ 7:0] m_axi_awid, output wire [ 7:0] dram0_m_axi_awid,
output wire [ 383:0] m_axi_awaddr, output wire [ 383:0] dram0_m_axi_awaddr,
output wire [ 63:0] m_axi_awlen, output wire [ 63:0] dram0_m_axi_awlen,
output wire [ 23:0] m_axi_awsize, output wire [ 23:0] dram0_m_axi_awsize,
output wire [ 15:0] m_axi_awburst, output wire [ 15:0] dram0_m_axi_awburst,
output wire [ 7:0] m_axi_awlock, output wire [ 7:0] dram0_m_axi_awlock,
output wire [ 31:0] m_axi_awcache, output wire [ 31:0] dram0_m_axi_awcache,
output wire [ 23:0] m_axi_awprot, output wire [ 23:0] dram0_m_axi_awprot,
output wire [ 31:0] m_axi_awqos, output wire [ 31:0] dram0_m_axi_awqos,
output wire [ 31:0] m_axi_awregion, output wire [ 31:0] dram0_m_axi_awregion,
output wire [ 7:0] m_axi_awuser, output wire [ 7:0] dram0_m_axi_awuser,
output wire [ 7:0] m_axi_awvalid, output wire [ 7:0] dram0_m_axi_awvalid,
input wire [ 7:0] m_axi_awready, input wire [ 7:0] dram0_m_axi_awready,
output wire [4191:0] m_axi_wdata, output wire [4191:0] dram0_m_axi_wdata,
output wire [ 511:0] m_axi_wstrb, output wire [ 511:0] dram0_m_axi_wstrb,
output wire [ 7:0] m_axi_wlast, output wire [ 7:0] dram0_m_axi_wlast,
output wire [ 7:0] m_axi_wuser, output wire [ 7:0] dram0_m_axi_wuser,
output wire [ 7:0] m_axi_wvalid, output wire [ 7:0] dram0_m_axi_wvalid,
input wire [ 7:0] m_axi_wready, input wire [ 7:0] dram0_m_axi_wready,
input wire [ 7:0] m_axi_bid, input wire [ 7:0] dram0_m_axi_bid,
input wire [ 15:0] m_axi_bresp, input wire [ 15:0] dram0_m_axi_bresp,
input wire [ 7:0] m_axi_buser, input wire [ 7:0] dram0_m_axi_buser,
input wire [ 7:0] m_axi_bvalid, input wire [ 7:0] dram0_m_axi_bvalid,
output wire [ 7:0] m_axi_bready, output wire [ 7:0] dram0_m_axi_bready,
output wire [ 7:0] m_axi_arid, output wire [ 7:0] dram0_m_axi_arid,
output wire [ 383:0] m_axi_araddr, output wire [ 383:0] dram0_m_axi_araddr,
output wire [ 63:0] m_axi_arlen, output wire [ 63:0] dram0_m_axi_arlen,
output wire [ 23:0] m_axi_arsize, output wire [ 23:0] dram0_m_axi_arsize,
output wire [ 15:0] m_axi_arburst, output wire [ 15:0] dram0_m_axi_arburst,
output wire [ 7:0] m_axi_arlock, output wire [ 7:0] dram0_m_axi_arlock,
output wire [ 31:0] m_axi_arcache, output wire [ 31:0] dram0_m_axi_arcache,
output wire [ 31:0] m_axi_arprot, output wire [ 31:0] dram0_m_axi_arprot,
output wire [ 31:0] m_axi_arqos, output wire [ 31:0] dram0_m_axi_arqos,
output wire [ 31:0] m_axi_arregion, output wire [ 31:0] dram0_m_axi_arregion,
output wire [ 7:0] m_axi_aruser, output wire [ 7:0] dram0_m_axi_aruser,
output wire [ 7:0] m_axi_arvalid, output wire [ 7:0] dram0_m_axi_arvalid,
input wire [ 7:0] m_axi_arready, input wire [ 7:0] dram0_m_axi_arready,
input wire [ 7:0] m_axi_rid, input wire [ 7:0] dram0_m_axi_rid,
input wire [4191:0] m_axi_rdata, input wire [4191:0] dram0_m_axi_rdata,
input wire [ 15:0] m_axi_rresp, input wire [ 15:0] dram0_m_axi_rresp,
input wire [ 7:0] m_axi_rlast, input wire [ 7:0] dram0_m_axi_rlast,
input wire [ 7:0] m_axi_ruser, input wire [ 7:0] dram0_m_axi_ruser,
input wire [ 7:0] m_axi_rvalid, input wire [ 7:0] dram0_m_axi_rvalid,
output wire [ 7:0] m_axi_rready, output wire [ 7:0] dram0_m_axi_rready,
// dram1
input wire [ 0:0] dram1_axi_rst,
output wire [ 7:0] dram1_m_axi_awid,
output wire [ 383:0] dram1_m_axi_awaddr,
output wire [ 63:0] dram1_m_axi_awlen,
output wire [ 23:0] dram1_m_axi_awsize,
output wire [ 15:0] dram1_m_axi_awburst,
output wire [ 7:0] dram1_m_axi_awlock,
output wire [ 31:0] dram1_m_axi_awcache,
output wire [ 23:0] dram1_m_axi_awprot,
output wire [ 31:0] dram1_m_axi_awqos,
output wire [ 31:0] dram1_m_axi_awregion,
output wire [ 7:0] dram1_m_axi_awuser,
output wire [ 7:0] dram1_m_axi_awvalid,
input wire [ 7:0] dram1_m_axi_awready,
output wire [4191:0] dram1_m_axi_wdata,
output wire [ 511:0] dram1_m_axi_wstrb,
output wire [ 7:0] dram1_m_axi_wlast,
output wire [ 7:0] dram1_m_axi_wuser,
output wire [ 7:0] dram1_m_axi_wvalid,
input wire [ 7:0] dram1_m_axi_wready,
input wire [ 7:0] dram1_m_axi_bid,
input wire [ 15:0] dram1_m_axi_bresp,
input wire [ 7:0] dram1_m_axi_buser,
input wire [ 7:0] dram1_m_axi_bvalid,
output wire [ 7:0] dram1_m_axi_bready,
output wire [ 7:0] dram1_m_axi_arid,
output wire [ 383:0] dram1_m_axi_araddr,
output wire [ 63:0] dram1_m_axi_arlen,
output wire [ 23:0] dram1_m_axi_arsize,
output wire [ 15:0] dram1_m_axi_arburst,
output wire [ 7:0] dram1_m_axi_arlock,
output wire [ 31:0] dram1_m_axi_arcache,
output wire [ 31:0] dram1_m_axi_arprot,
output wire [ 31:0] dram1_m_axi_arqos,
output wire [ 31:0] dram1_m_axi_arregion,
output wire [ 7:0] dram1_m_axi_aruser,
output wire [ 7:0] dram1_m_axi_arvalid,
input wire [ 7:0] dram1_m_axi_arready,
input wire [ 7:0] dram1_m_axi_rid,
input wire [4191:0] dram1_m_axi_rdata,
input wire [ 15:0] dram1_m_axi_rresp,
input wire [ 7:0] dram1_m_axi_rlast,
input wire [ 7:0] dram1_m_axi_ruser,
input wire [ 7:0] dram1_m_axi_rvalid,
output wire [ 7:0] dram1_m_axi_rready,
// Transport Adapters /////////////// // Transport Adapters ///////////////
+362 -128
View File
@@ -36,12 +36,12 @@ module rfnoc_image_core #(
input wire chdr_aclk, input wire chdr_aclk,
input wire ctrl_aclk, input wire ctrl_aclk,
input wire core_arst, input wire core_arst,
input wire ce_clk,
input wire radio0_clk, input wire radio0_clk,
input wire radio1_clk, input wire radio1_clk,
input wire radio0_2x_clk, input wire radio0_2x_clk,
input wire radio1_2x_clk, input wire radio1_2x_clk,
input wire dram_clk, input wire dram_clk,
input wire ce_clk,
// Basic // Basic
input wire [ 15:0] device_id, input wire [ 15:0] device_id,
@@ -87,52 +87,98 @@ module rfnoc_image_core #(
output wire [1023:0] radio_tx_data_radio1, output wire [1023:0] radio_tx_data_radio1,
input wire [ 31:0] radio_tx_stb_radio1, input wire [ 31:0] radio_tx_stb_radio1,
output wire [ 31:0] radio_tx_running_radio1, output wire [ 31:0] radio_tx_running_radio1,
// dram // dram0
input wire [ 0:0] axi_rst, input wire [ 0:0] dram0_axi_rst,
output wire [ 7:0] m_axi_awid, output wire [ 7:0] dram0_m_axi_awid,
output wire [ 383:0] m_axi_awaddr, output wire [ 383:0] dram0_m_axi_awaddr,
output wire [ 63:0] m_axi_awlen, output wire [ 63:0] dram0_m_axi_awlen,
output wire [ 23:0] m_axi_awsize, output wire [ 23:0] dram0_m_axi_awsize,
output wire [ 15:0] m_axi_awburst, output wire [ 15:0] dram0_m_axi_awburst,
output wire [ 7:0] m_axi_awlock, output wire [ 7:0] dram0_m_axi_awlock,
output wire [ 31:0] m_axi_awcache, output wire [ 31:0] dram0_m_axi_awcache,
output wire [ 23:0] m_axi_awprot, output wire [ 23:0] dram0_m_axi_awprot,
output wire [ 31:0] m_axi_awqos, output wire [ 31:0] dram0_m_axi_awqos,
output wire [ 31:0] m_axi_awregion, output wire [ 31:0] dram0_m_axi_awregion,
output wire [ 7:0] m_axi_awuser, output wire [ 7:0] dram0_m_axi_awuser,
output wire [ 7:0] m_axi_awvalid, output wire [ 7:0] dram0_m_axi_awvalid,
input wire [ 7:0] m_axi_awready, input wire [ 7:0] dram0_m_axi_awready,
output wire [4191:0] m_axi_wdata, output wire [4191:0] dram0_m_axi_wdata,
output wire [ 511:0] m_axi_wstrb, output wire [ 511:0] dram0_m_axi_wstrb,
output wire [ 7:0] m_axi_wlast, output wire [ 7:0] dram0_m_axi_wlast,
output wire [ 7:0] m_axi_wuser, output wire [ 7:0] dram0_m_axi_wuser,
output wire [ 7:0] m_axi_wvalid, output wire [ 7:0] dram0_m_axi_wvalid,
input wire [ 7:0] m_axi_wready, input wire [ 7:0] dram0_m_axi_wready,
input wire [ 7:0] m_axi_bid, input wire [ 7:0] dram0_m_axi_bid,
input wire [ 15:0] m_axi_bresp, input wire [ 15:0] dram0_m_axi_bresp,
input wire [ 7:0] m_axi_buser, input wire [ 7:0] dram0_m_axi_buser,
input wire [ 7:0] m_axi_bvalid, input wire [ 7:0] dram0_m_axi_bvalid,
output wire [ 7:0] m_axi_bready, output wire [ 7:0] dram0_m_axi_bready,
output wire [ 7:0] m_axi_arid, output wire [ 7:0] dram0_m_axi_arid,
output wire [ 383:0] m_axi_araddr, output wire [ 383:0] dram0_m_axi_araddr,
output wire [ 63:0] m_axi_arlen, output wire [ 63:0] dram0_m_axi_arlen,
output wire [ 23:0] m_axi_arsize, output wire [ 23:0] dram0_m_axi_arsize,
output wire [ 15:0] m_axi_arburst, output wire [ 15:0] dram0_m_axi_arburst,
output wire [ 7:0] m_axi_arlock, output wire [ 7:0] dram0_m_axi_arlock,
output wire [ 31:0] m_axi_arcache, output wire [ 31:0] dram0_m_axi_arcache,
output wire [ 31:0] m_axi_arprot, output wire [ 31:0] dram0_m_axi_arprot,
output wire [ 31:0] m_axi_arqos, output wire [ 31:0] dram0_m_axi_arqos,
output wire [ 31:0] m_axi_arregion, output wire [ 31:0] dram0_m_axi_arregion,
output wire [ 7:0] m_axi_aruser, output wire [ 7:0] dram0_m_axi_aruser,
output wire [ 7:0] m_axi_arvalid, output wire [ 7:0] dram0_m_axi_arvalid,
input wire [ 7:0] m_axi_arready, input wire [ 7:0] dram0_m_axi_arready,
input wire [ 7:0] m_axi_rid, input wire [ 7:0] dram0_m_axi_rid,
input wire [4191:0] m_axi_rdata, input wire [4191:0] dram0_m_axi_rdata,
input wire [ 15:0] m_axi_rresp, input wire [ 15:0] dram0_m_axi_rresp,
input wire [ 7:0] m_axi_rlast, input wire [ 7:0] dram0_m_axi_rlast,
input wire [ 7:0] m_axi_ruser, input wire [ 7:0] dram0_m_axi_ruser,
input wire [ 7:0] m_axi_rvalid, input wire [ 7:0] dram0_m_axi_rvalid,
output wire [ 7:0] m_axi_rready, output wire [ 7:0] dram0_m_axi_rready,
// dram1
input wire [ 0:0] dram1_axi_rst,
output wire [ 7:0] dram1_m_axi_awid,
output wire [ 383:0] dram1_m_axi_awaddr,
output wire [ 63:0] dram1_m_axi_awlen,
output wire [ 23:0] dram1_m_axi_awsize,
output wire [ 15:0] dram1_m_axi_awburst,
output wire [ 7:0] dram1_m_axi_awlock,
output wire [ 31:0] dram1_m_axi_awcache,
output wire [ 23:0] dram1_m_axi_awprot,
output wire [ 31:0] dram1_m_axi_awqos,
output wire [ 31:0] dram1_m_axi_awregion,
output wire [ 7:0] dram1_m_axi_awuser,
output wire [ 7:0] dram1_m_axi_awvalid,
input wire [ 7:0] dram1_m_axi_awready,
output wire [4191:0] dram1_m_axi_wdata,
output wire [ 511:0] dram1_m_axi_wstrb,
output wire [ 7:0] dram1_m_axi_wlast,
output wire [ 7:0] dram1_m_axi_wuser,
output wire [ 7:0] dram1_m_axi_wvalid,
input wire [ 7:0] dram1_m_axi_wready,
input wire [ 7:0] dram1_m_axi_bid,
input wire [ 15:0] dram1_m_axi_bresp,
input wire [ 7:0] dram1_m_axi_buser,
input wire [ 7:0] dram1_m_axi_bvalid,
output wire [ 7:0] dram1_m_axi_bready,
output wire [ 7:0] dram1_m_axi_arid,
output wire [ 383:0] dram1_m_axi_araddr,
output wire [ 63:0] dram1_m_axi_arlen,
output wire [ 23:0] dram1_m_axi_arsize,
output wire [ 15:0] dram1_m_axi_arburst,
output wire [ 7:0] dram1_m_axi_arlock,
output wire [ 31:0] dram1_m_axi_arcache,
output wire [ 31:0] dram1_m_axi_arprot,
output wire [ 31:0] dram1_m_axi_arqos,
output wire [ 31:0] dram1_m_axi_arregion,
output wire [ 7:0] dram1_m_axi_aruser,
output wire [ 7:0] dram1_m_axi_arvalid,
input wire [ 7:0] dram1_m_axi_arready,
input wire [ 7:0] dram1_m_axi_rid,
input wire [4191:0] dram1_m_axi_rdata,
input wire [ 15:0] dram1_m_axi_rresp,
input wire [ 7:0] dram1_m_axi_rlast,
input wire [ 7:0] dram1_m_axi_ruser,
input wire [ 7:0] dram1_m_axi_rvalid,
output wire [ 7:0] dram1_m_axi_rready,
// Transport Adapters /////////////// // Transport Adapters ///////////////
@@ -596,10 +642,14 @@ module rfnoc_image_core #(
wire m_replay0_ctrl_tlast, s_replay0_ctrl_tlast; wire m_replay0_ctrl_tlast, s_replay0_ctrl_tlast;
wire m_replay0_ctrl_tvalid, s_replay0_ctrl_tvalid; wire m_replay0_ctrl_tvalid, s_replay0_ctrl_tvalid;
wire m_replay0_ctrl_tready, s_replay0_ctrl_tready; wire m_replay0_ctrl_tready, s_replay0_ctrl_tready;
wire [31:0] m_replay1_ctrl_tdata, s_replay1_ctrl_tdata;
wire m_replay1_ctrl_tlast, s_replay1_ctrl_tlast;
wire m_replay1_ctrl_tvalid, s_replay1_ctrl_tvalid;
wire m_replay1_ctrl_tready, s_replay1_ctrl_tready;
axis_ctrl_crossbar_nxn #( axis_ctrl_crossbar_nxn #(
.WIDTH (32), .WIDTH (32),
.NPORTS (5), .NPORTS (6),
.TOPOLOGY ("TORUS"), .TOPOLOGY ("TORUS"),
.INGRESS_BUFF_SIZE(5), .INGRESS_BUFF_SIZE(5),
.ROUTER_BUFF_SIZE (5), .ROUTER_BUFF_SIZE (5),
@@ -608,14 +658,14 @@ module rfnoc_image_core #(
) ctrl_xb_i ( ) ctrl_xb_i (
.clk (rfnoc_ctrl_clk), .clk (rfnoc_ctrl_clk),
.reset (rfnoc_ctrl_rst), .reset (rfnoc_ctrl_rst),
.s_axis_tdata ({m_replay0_ctrl_tdata , m_radio1_ctrl_tdata , m_radio0_ctrl_tdata , m_ep0_ctrl_tdata , m_core_ctrl_tdata }), .s_axis_tdata ({m_replay1_ctrl_tdata , m_replay0_ctrl_tdata , m_radio1_ctrl_tdata , m_radio0_ctrl_tdata , m_ep0_ctrl_tdata , m_core_ctrl_tdata }),
.s_axis_tvalid ({m_replay0_ctrl_tvalid, m_radio1_ctrl_tvalid, m_radio0_ctrl_tvalid, m_ep0_ctrl_tvalid, m_core_ctrl_tvalid}), .s_axis_tvalid ({m_replay1_ctrl_tvalid, m_replay0_ctrl_tvalid, m_radio1_ctrl_tvalid, m_radio0_ctrl_tvalid, m_ep0_ctrl_tvalid, m_core_ctrl_tvalid}),
.s_axis_tlast ({m_replay0_ctrl_tlast , m_radio1_ctrl_tlast , m_radio0_ctrl_tlast , m_ep0_ctrl_tlast , m_core_ctrl_tlast }), .s_axis_tlast ({m_replay1_ctrl_tlast , m_replay0_ctrl_tlast , m_radio1_ctrl_tlast , m_radio0_ctrl_tlast , m_ep0_ctrl_tlast , m_core_ctrl_tlast }),
.s_axis_tready ({m_replay0_ctrl_tready, m_radio1_ctrl_tready, m_radio0_ctrl_tready, m_ep0_ctrl_tready, m_core_ctrl_tready}), .s_axis_tready ({m_replay1_ctrl_tready, m_replay0_ctrl_tready, m_radio1_ctrl_tready, m_radio0_ctrl_tready, m_ep0_ctrl_tready, m_core_ctrl_tready}),
.m_axis_tdata ({s_replay0_ctrl_tdata , s_radio1_ctrl_tdata , s_radio0_ctrl_tdata , s_ep0_ctrl_tdata , s_core_ctrl_tdata }), .m_axis_tdata ({s_replay1_ctrl_tdata , s_replay0_ctrl_tdata , s_radio1_ctrl_tdata , s_radio0_ctrl_tdata , s_ep0_ctrl_tdata , s_core_ctrl_tdata }),
.m_axis_tvalid ({s_replay0_ctrl_tvalid, s_radio1_ctrl_tvalid, s_radio0_ctrl_tvalid, s_ep0_ctrl_tvalid, s_core_ctrl_tvalid}), .m_axis_tvalid ({s_replay1_ctrl_tvalid, s_replay0_ctrl_tvalid, s_radio1_ctrl_tvalid, s_radio0_ctrl_tvalid, s_ep0_ctrl_tvalid, s_core_ctrl_tvalid}),
.m_axis_tlast ({s_replay0_ctrl_tlast , s_radio1_ctrl_tlast , s_radio0_ctrl_tlast , s_ep0_ctrl_tlast , s_core_ctrl_tlast }), .m_axis_tlast ({s_replay1_ctrl_tlast , s_replay0_ctrl_tlast , s_radio1_ctrl_tlast , s_radio0_ctrl_tlast , s_ep0_ctrl_tlast , s_core_ctrl_tlast }),
.m_axis_tready ({s_replay0_ctrl_tready, s_radio1_ctrl_tready, s_radio0_ctrl_tready, s_ep0_ctrl_tready, s_core_ctrl_tready}), .m_axis_tready ({s_replay1_ctrl_tready, s_replay0_ctrl_tready, s_radio1_ctrl_tready, s_radio0_ctrl_tready, s_ep0_ctrl_tready, s_core_ctrl_tready}),
.deadlock_detected() .deadlock_detected()
); );
@@ -624,14 +674,14 @@ module rfnoc_image_core #(
// RFNoC Core Kernel // RFNoC Core Kernel
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
wire [(512*3)-1:0] rfnoc_core_config, rfnoc_core_status; wire [(512*4)-1:0] rfnoc_core_config, rfnoc_core_status;
rfnoc_core_kernel #( rfnoc_core_kernel #(
.PROTOVER (PROTOVER), .PROTOVER (PROTOVER),
.DEVICE_TYPE (16'hA400), .DEVICE_TYPE (16'hA400),
.DEVICE_FAMILY ("ULTRASCALE"), .DEVICE_FAMILY ("ULTRASCALE"),
.SAFE_START_CLKS (0), .SAFE_START_CLKS (0),
.NUM_BLOCKS (3), .NUM_BLOCKS (4),
.NUM_STREAM_ENDPOINTS(4), .NUM_STREAM_ENDPOINTS(4),
.NUM_ENDPOINTS_CTRL (1), .NUM_ENDPOINTS_CTRL (1),
.NUM_TRANSPORTS (6), .NUM_TRANSPORTS (6),
@@ -841,14 +891,14 @@ module rfnoc_image_core #(
//----------------------------------- //-----------------------------------
wire replay0_mem_clk; wire replay0_mem_clk;
wire [BLOCK_CHDR_W-1:0] s_replay0_in_1_tdata , s_replay0_in_0_tdata ; wire [BLOCK_CHDR_W-1:0] s_replay0_in_0_tdata ;
wire s_replay0_in_1_tlast , s_replay0_in_0_tlast ; wire s_replay0_in_0_tlast ;
wire s_replay0_in_1_tvalid, s_replay0_in_0_tvalid; wire s_replay0_in_0_tvalid;
wire s_replay0_in_1_tready, s_replay0_in_0_tready; wire s_replay0_in_0_tready;
wire [BLOCK_CHDR_W-1:0] m_replay0_out_1_tdata , m_replay0_out_0_tdata ; wire [BLOCK_CHDR_W-1:0] m_replay0_out_0_tdata ;
wire m_replay0_out_1_tlast , m_replay0_out_0_tlast ; wire m_replay0_out_0_tlast ;
wire m_replay0_out_1_tvalid, m_replay0_out_0_tvalid; wire m_replay0_out_0_tvalid;
wire m_replay0_out_1_tready, m_replay0_out_0_tready; wire m_replay0_out_0_tready;
// axi_ram // axi_ram
wire [ 0:0] replay0_axi_rst; wire [ 0:0] replay0_axi_rst;
@@ -900,7 +950,7 @@ module rfnoc_image_core #(
rfnoc_block_replay #( rfnoc_block_replay #(
.THIS_PORTID (4), .THIS_PORTID (4),
.CHDR_W (BLOCK_CHDR_W), .CHDR_W (BLOCK_CHDR_W),
.NUM_PORTS (2), .NUM_PORTS (1),
.MEM_DATA_W (512), .MEM_DATA_W (512),
.MEM_ADDR_W (32), .MEM_ADDR_W (32),
.MTU (BLOCK_MTU) .MTU (BLOCK_MTU)
@@ -955,14 +1005,14 @@ module rfnoc_image_core #(
.m_axi_ruser (replay0_m_axi_ruser), .m_axi_ruser (replay0_m_axi_ruser),
.m_axi_rvalid (replay0_m_axi_rvalid), .m_axi_rvalid (replay0_m_axi_rvalid),
.m_axi_rready (replay0_m_axi_rready), .m_axi_rready (replay0_m_axi_rready),
.s_rfnoc_chdr_tdata ({s_replay0_in_1_tdata , s_replay0_in_0_tdata }), .s_rfnoc_chdr_tdata ({s_replay0_in_0_tdata }),
.s_rfnoc_chdr_tlast ({s_replay0_in_1_tlast , s_replay0_in_0_tlast }), .s_rfnoc_chdr_tlast ({s_replay0_in_0_tlast }),
.s_rfnoc_chdr_tvalid ({s_replay0_in_1_tvalid, s_replay0_in_0_tvalid}), .s_rfnoc_chdr_tvalid ({s_replay0_in_0_tvalid}),
.s_rfnoc_chdr_tready ({s_replay0_in_1_tready, s_replay0_in_0_tready}), .s_rfnoc_chdr_tready ({s_replay0_in_0_tready}),
.m_rfnoc_chdr_tdata ({m_replay0_out_1_tdata , m_replay0_out_0_tdata }), .m_rfnoc_chdr_tdata ({m_replay0_out_0_tdata }),
.m_rfnoc_chdr_tlast ({m_replay0_out_1_tlast , m_replay0_out_0_tlast }), .m_rfnoc_chdr_tlast ({m_replay0_out_0_tlast }),
.m_rfnoc_chdr_tvalid ({m_replay0_out_1_tvalid, m_replay0_out_0_tvalid}), .m_rfnoc_chdr_tvalid ({m_replay0_out_0_tvalid}),
.m_rfnoc_chdr_tready ({m_replay0_out_1_tready, m_replay0_out_0_tready}), .m_rfnoc_chdr_tready ({m_replay0_out_0_tready}),
.s_rfnoc_ctrl_tdata (s_replay0_ctrl_tdata), .s_rfnoc_ctrl_tdata (s_replay0_ctrl_tdata),
.s_rfnoc_ctrl_tlast (s_replay0_ctrl_tlast), .s_rfnoc_ctrl_tlast (s_replay0_ctrl_tlast),
.s_rfnoc_ctrl_tvalid (s_replay0_ctrl_tvalid), .s_rfnoc_ctrl_tvalid (s_replay0_ctrl_tvalid),
@@ -973,6 +1023,143 @@ module rfnoc_image_core #(
.m_rfnoc_ctrl_tready (m_replay0_ctrl_tready) .m_rfnoc_ctrl_tready (m_replay0_ctrl_tready)
); );
//-----------------------------------
// replay1
//-----------------------------------
wire replay1_mem_clk;
wire [BLOCK_CHDR_W-1:0] s_replay1_in_0_tdata ;
wire s_replay1_in_0_tlast ;
wire s_replay1_in_0_tvalid;
wire s_replay1_in_0_tready;
wire [BLOCK_CHDR_W-1:0] m_replay1_out_0_tdata ;
wire m_replay1_out_0_tlast ;
wire m_replay1_out_0_tvalid;
wire m_replay1_out_0_tready;
// axi_ram
wire [ 0:0] replay1_axi_rst;
wire [ 7:0] replay1_m_axi_awid;
wire [ 383:0] replay1_m_axi_awaddr;
wire [ 63:0] replay1_m_axi_awlen;
wire [ 23:0] replay1_m_axi_awsize;
wire [ 15:0] replay1_m_axi_awburst;
wire [ 7:0] replay1_m_axi_awlock;
wire [ 31:0] replay1_m_axi_awcache;
wire [ 23:0] replay1_m_axi_awprot;
wire [ 31:0] replay1_m_axi_awqos;
wire [ 31:0] replay1_m_axi_awregion;
wire [ 7:0] replay1_m_axi_awuser;
wire [ 7:0] replay1_m_axi_awvalid;
wire [ 7:0] replay1_m_axi_awready;
wire [4191:0] replay1_m_axi_wdata;
wire [ 511:0] replay1_m_axi_wstrb;
wire [ 7:0] replay1_m_axi_wlast;
wire [ 7:0] replay1_m_axi_wuser;
wire [ 7:0] replay1_m_axi_wvalid;
wire [ 7:0] replay1_m_axi_wready;
wire [ 7:0] replay1_m_axi_bid;
wire [ 15:0] replay1_m_axi_bresp;
wire [ 7:0] replay1_m_axi_buser;
wire [ 7:0] replay1_m_axi_bvalid;
wire [ 7:0] replay1_m_axi_bready;
wire [ 7:0] replay1_m_axi_arid;
wire [ 383:0] replay1_m_axi_araddr;
wire [ 63:0] replay1_m_axi_arlen;
wire [ 23:0] replay1_m_axi_arsize;
wire [ 15:0] replay1_m_axi_arburst;
wire [ 7:0] replay1_m_axi_arlock;
wire [ 31:0] replay1_m_axi_arcache;
wire [ 31:0] replay1_m_axi_arprot;
wire [ 31:0] replay1_m_axi_arqos;
wire [ 31:0] replay1_m_axi_arregion;
wire [ 7:0] replay1_m_axi_aruser;
wire [ 7:0] replay1_m_axi_arvalid;
wire [ 7:0] replay1_m_axi_arready;
wire [ 7:0] replay1_m_axi_rid;
wire [4191:0] replay1_m_axi_rdata;
wire [ 15:0] replay1_m_axi_rresp;
wire [ 7:0] replay1_m_axi_rlast;
wire [ 7:0] replay1_m_axi_ruser;
wire [ 7:0] replay1_m_axi_rvalid;
wire [ 7:0] replay1_m_axi_rready;
rfnoc_block_replay #(
.THIS_PORTID (5),
.CHDR_W (BLOCK_CHDR_W),
.NUM_PORTS (1),
.MEM_DATA_W (512),
.MEM_ADDR_W (32),
.MTU (BLOCK_MTU)
) b_replay1_3 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
.rfnoc_ctrl_clk (rfnoc_ctrl_clk),
.mem_clk (replay1_mem_clk),
.rfnoc_core_config (rfnoc_core_config[512*4-1:512*3]),
.rfnoc_core_status (rfnoc_core_status[512*4-1:512*3]),
.axi_rst (replay1_axi_rst),
.m_axi_awid (replay1_m_axi_awid),
.m_axi_awaddr (replay1_m_axi_awaddr),
.m_axi_awlen (replay1_m_axi_awlen),
.m_axi_awsize (replay1_m_axi_awsize),
.m_axi_awburst (replay1_m_axi_awburst),
.m_axi_awlock (replay1_m_axi_awlock),
.m_axi_awcache (replay1_m_axi_awcache),
.m_axi_awprot (replay1_m_axi_awprot),
.m_axi_awqos (replay1_m_axi_awqos),
.m_axi_awregion (replay1_m_axi_awregion),
.m_axi_awuser (replay1_m_axi_awuser),
.m_axi_awvalid (replay1_m_axi_awvalid),
.m_axi_awready (replay1_m_axi_awready),
.m_axi_wdata (replay1_m_axi_wdata),
.m_axi_wstrb (replay1_m_axi_wstrb),
.m_axi_wlast (replay1_m_axi_wlast),
.m_axi_wuser (replay1_m_axi_wuser),
.m_axi_wvalid (replay1_m_axi_wvalid),
.m_axi_wready (replay1_m_axi_wready),
.m_axi_bid (replay1_m_axi_bid),
.m_axi_bresp (replay1_m_axi_bresp),
.m_axi_buser (replay1_m_axi_buser),
.m_axi_bvalid (replay1_m_axi_bvalid),
.m_axi_bready (replay1_m_axi_bready),
.m_axi_arid (replay1_m_axi_arid),
.m_axi_araddr (replay1_m_axi_araddr),
.m_axi_arlen (replay1_m_axi_arlen),
.m_axi_arsize (replay1_m_axi_arsize),
.m_axi_arburst (replay1_m_axi_arburst),
.m_axi_arlock (replay1_m_axi_arlock),
.m_axi_arcache (replay1_m_axi_arcache),
.m_axi_arprot (replay1_m_axi_arprot),
.m_axi_arqos (replay1_m_axi_arqos),
.m_axi_arregion (replay1_m_axi_arregion),
.m_axi_aruser (replay1_m_axi_aruser),
.m_axi_arvalid (replay1_m_axi_arvalid),
.m_axi_arready (replay1_m_axi_arready),
.m_axi_rid (replay1_m_axi_rid),
.m_axi_rdata (replay1_m_axi_rdata),
.m_axi_rresp (replay1_m_axi_rresp),
.m_axi_rlast (replay1_m_axi_rlast),
.m_axi_ruser (replay1_m_axi_ruser),
.m_axi_rvalid (replay1_m_axi_rvalid),
.m_axi_rready (replay1_m_axi_rready),
.s_rfnoc_chdr_tdata ({s_replay1_in_0_tdata }),
.s_rfnoc_chdr_tlast ({s_replay1_in_0_tlast }),
.s_rfnoc_chdr_tvalid ({s_replay1_in_0_tvalid}),
.s_rfnoc_chdr_tready ({s_replay1_in_0_tready}),
.m_rfnoc_chdr_tdata ({m_replay1_out_0_tdata }),
.m_rfnoc_chdr_tlast ({m_replay1_out_0_tlast }),
.m_rfnoc_chdr_tvalid ({m_replay1_out_0_tvalid}),
.m_rfnoc_chdr_tready ({m_replay1_out_0_tready}),
.s_rfnoc_ctrl_tdata (s_replay1_ctrl_tdata),
.s_rfnoc_ctrl_tlast (s_replay1_ctrl_tlast),
.s_rfnoc_ctrl_tvalid (s_replay1_ctrl_tvalid),
.s_rfnoc_ctrl_tready (s_replay1_ctrl_tready),
.m_rfnoc_ctrl_tdata (m_replay1_ctrl_tdata),
.m_rfnoc_ctrl_tlast (m_replay1_ctrl_tlast),
.m_rfnoc_ctrl_tvalid (m_replay1_ctrl_tvalid),
.m_rfnoc_ctrl_tready (m_replay1_ctrl_tready)
);
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Static Router // Static Router
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@@ -1007,15 +1194,15 @@ module rfnoc_image_core #(
assign s_ep2_in0_tvalid = m_replay0_out_0_tvalid; assign s_ep2_in0_tvalid = m_replay0_out_0_tvalid;
assign m_replay0_out_0_tready = s_ep2_in0_tready; assign m_replay0_out_0_tready = s_ep2_in0_tready;
assign s_replay0_in_1_tdata = m_ep3_out0_tdata; assign s_replay1_in_0_tdata = m_ep3_out0_tdata;
assign s_replay0_in_1_tlast = m_ep3_out0_tlast; assign s_replay1_in_0_tlast = m_ep3_out0_tlast;
assign s_replay0_in_1_tvalid = m_ep3_out0_tvalid; assign s_replay1_in_0_tvalid = m_ep3_out0_tvalid;
assign m_ep3_out0_tready = s_replay0_in_1_tready; assign m_ep3_out0_tready = s_replay1_in_0_tready;
assign s_ep3_in0_tdata = m_replay0_out_1_tdata; assign s_ep3_in0_tdata = m_replay1_out_0_tdata;
assign s_ep3_in0_tlast = m_replay0_out_1_tlast; assign s_ep3_in0_tlast = m_replay1_out_0_tlast;
assign s_ep3_in0_tvalid = m_replay0_out_1_tvalid; assign s_ep3_in0_tvalid = m_replay1_out_0_tvalid;
assign m_replay0_out_1_tready = s_ep3_in0_tready; assign m_replay1_out_0_tready = s_ep3_in0_tready;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@@ -1031,6 +1218,7 @@ module rfnoc_image_core #(
assign radio0_radio_clk = radio0_clk; assign radio0_radio_clk = radio0_clk;
assign radio1_radio_clk = radio1_clk; assign radio1_radio_clk = radio1_clk;
assign replay0_mem_clk = dram_clk; assign replay0_mem_clk = dram_clk;
assign replay1_mem_clk = dram_clk;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@@ -1074,51 +1262,97 @@ module rfnoc_image_core #(
assign radio1_radio_tx_stb = radio_tx_stb_radio1; assign radio1_radio_tx_stb = radio_tx_stb_radio1;
assign radio_tx_running_radio1 = radio1_radio_tx_running; assign radio_tx_running_radio1 = radio1_radio_tx_running;
assign replay0_axi_rst = axi_rst; assign replay0_axi_rst = dram0_axi_rst;
assign m_axi_awid = replay0_m_axi_awid; assign dram0_m_axi_awid = replay0_m_axi_awid;
assign m_axi_awaddr = replay0_m_axi_awaddr; assign dram0_m_axi_awaddr = replay0_m_axi_awaddr;
assign m_axi_awlen = replay0_m_axi_awlen; assign dram0_m_axi_awlen = replay0_m_axi_awlen;
assign m_axi_awsize = replay0_m_axi_awsize; assign dram0_m_axi_awsize = replay0_m_axi_awsize;
assign m_axi_awburst = replay0_m_axi_awburst; assign dram0_m_axi_awburst = replay0_m_axi_awburst;
assign m_axi_awlock = replay0_m_axi_awlock; assign dram0_m_axi_awlock = replay0_m_axi_awlock;
assign m_axi_awcache = replay0_m_axi_awcache; assign dram0_m_axi_awcache = replay0_m_axi_awcache;
assign m_axi_awprot = replay0_m_axi_awprot; assign dram0_m_axi_awprot = replay0_m_axi_awprot;
assign m_axi_awqos = replay0_m_axi_awqos; assign dram0_m_axi_awqos = replay0_m_axi_awqos;
assign m_axi_awregion = replay0_m_axi_awregion; assign dram0_m_axi_awregion = replay0_m_axi_awregion;
assign m_axi_awuser = replay0_m_axi_awuser; assign dram0_m_axi_awuser = replay0_m_axi_awuser;
assign m_axi_awvalid = replay0_m_axi_awvalid; assign dram0_m_axi_awvalid = replay0_m_axi_awvalid;
assign replay0_m_axi_awready = m_axi_awready; assign replay0_m_axi_awready = dram0_m_axi_awready;
assign m_axi_wdata = replay0_m_axi_wdata; assign dram0_m_axi_wdata = replay0_m_axi_wdata;
assign m_axi_wstrb = replay0_m_axi_wstrb; assign dram0_m_axi_wstrb = replay0_m_axi_wstrb;
assign m_axi_wlast = replay0_m_axi_wlast; assign dram0_m_axi_wlast = replay0_m_axi_wlast;
assign m_axi_wuser = replay0_m_axi_wuser; assign dram0_m_axi_wuser = replay0_m_axi_wuser;
assign m_axi_wvalid = replay0_m_axi_wvalid; assign dram0_m_axi_wvalid = replay0_m_axi_wvalid;
assign replay0_m_axi_wready = m_axi_wready; assign replay0_m_axi_wready = dram0_m_axi_wready;
assign replay0_m_axi_bid = m_axi_bid; assign replay0_m_axi_bid = dram0_m_axi_bid;
assign replay0_m_axi_bresp = m_axi_bresp; assign replay0_m_axi_bresp = dram0_m_axi_bresp;
assign replay0_m_axi_buser = m_axi_buser; assign replay0_m_axi_buser = dram0_m_axi_buser;
assign replay0_m_axi_bvalid = m_axi_bvalid; assign replay0_m_axi_bvalid = dram0_m_axi_bvalid;
assign m_axi_bready = replay0_m_axi_bready; assign dram0_m_axi_bready = replay0_m_axi_bready;
assign m_axi_arid = replay0_m_axi_arid; assign dram0_m_axi_arid = replay0_m_axi_arid;
assign m_axi_araddr = replay0_m_axi_araddr; assign dram0_m_axi_araddr = replay0_m_axi_araddr;
assign m_axi_arlen = replay0_m_axi_arlen; assign dram0_m_axi_arlen = replay0_m_axi_arlen;
assign m_axi_arsize = replay0_m_axi_arsize; assign dram0_m_axi_arsize = replay0_m_axi_arsize;
assign m_axi_arburst = replay0_m_axi_arburst; assign dram0_m_axi_arburst = replay0_m_axi_arburst;
assign m_axi_arlock = replay0_m_axi_arlock; assign dram0_m_axi_arlock = replay0_m_axi_arlock;
assign m_axi_arcache = replay0_m_axi_arcache; assign dram0_m_axi_arcache = replay0_m_axi_arcache;
assign m_axi_arprot = replay0_m_axi_arprot; assign dram0_m_axi_arprot = replay0_m_axi_arprot;
assign m_axi_arqos = replay0_m_axi_arqos; assign dram0_m_axi_arqos = replay0_m_axi_arqos;
assign m_axi_arregion = replay0_m_axi_arregion; assign dram0_m_axi_arregion = replay0_m_axi_arregion;
assign m_axi_aruser = replay0_m_axi_aruser; assign dram0_m_axi_aruser = replay0_m_axi_aruser;
assign m_axi_arvalid = replay0_m_axi_arvalid; assign dram0_m_axi_arvalid = replay0_m_axi_arvalid;
assign replay0_m_axi_arready = m_axi_arready; assign replay0_m_axi_arready = dram0_m_axi_arready;
assign replay0_m_axi_rid = m_axi_rid; assign replay0_m_axi_rid = dram0_m_axi_rid;
assign replay0_m_axi_rdata = m_axi_rdata; assign replay0_m_axi_rdata = dram0_m_axi_rdata;
assign replay0_m_axi_rresp = m_axi_rresp; assign replay0_m_axi_rresp = dram0_m_axi_rresp;
assign replay0_m_axi_rlast = m_axi_rlast; assign replay0_m_axi_rlast = dram0_m_axi_rlast;
assign replay0_m_axi_ruser = m_axi_ruser; assign replay0_m_axi_ruser = dram0_m_axi_ruser;
assign replay0_m_axi_rvalid = m_axi_rvalid; assign replay0_m_axi_rvalid = dram0_m_axi_rvalid;
assign m_axi_rready = replay0_m_axi_rready; assign dram0_m_axi_rready = replay0_m_axi_rready;
assign replay1_axi_rst = dram1_axi_rst;
assign dram1_m_axi_awid = replay1_m_axi_awid;
assign dram1_m_axi_awaddr = replay1_m_axi_awaddr;
assign dram1_m_axi_awlen = replay1_m_axi_awlen;
assign dram1_m_axi_awsize = replay1_m_axi_awsize;
assign dram1_m_axi_awburst = replay1_m_axi_awburst;
assign dram1_m_axi_awlock = replay1_m_axi_awlock;
assign dram1_m_axi_awcache = replay1_m_axi_awcache;
assign dram1_m_axi_awprot = replay1_m_axi_awprot;
assign dram1_m_axi_awqos = replay1_m_axi_awqos;
assign dram1_m_axi_awregion = replay1_m_axi_awregion;
assign dram1_m_axi_awuser = replay1_m_axi_awuser;
assign dram1_m_axi_awvalid = replay1_m_axi_awvalid;
assign replay1_m_axi_awready = dram1_m_axi_awready;
assign dram1_m_axi_wdata = replay1_m_axi_wdata;
assign dram1_m_axi_wstrb = replay1_m_axi_wstrb;
assign dram1_m_axi_wlast = replay1_m_axi_wlast;
assign dram1_m_axi_wuser = replay1_m_axi_wuser;
assign dram1_m_axi_wvalid = replay1_m_axi_wvalid;
assign replay1_m_axi_wready = dram1_m_axi_wready;
assign replay1_m_axi_bid = dram1_m_axi_bid;
assign replay1_m_axi_bresp = dram1_m_axi_bresp;
assign replay1_m_axi_buser = dram1_m_axi_buser;
assign replay1_m_axi_bvalid = dram1_m_axi_bvalid;
assign dram1_m_axi_bready = replay1_m_axi_bready;
assign dram1_m_axi_arid = replay1_m_axi_arid;
assign dram1_m_axi_araddr = replay1_m_axi_araddr;
assign dram1_m_axi_arlen = replay1_m_axi_arlen;
assign dram1_m_axi_arsize = replay1_m_axi_arsize;
assign dram1_m_axi_arburst = replay1_m_axi_arburst;
assign dram1_m_axi_arlock = replay1_m_axi_arlock;
assign dram1_m_axi_arcache = replay1_m_axi_arcache;
assign dram1_m_axi_arprot = replay1_m_axi_arprot;
assign dram1_m_axi_arqos = replay1_m_axi_arqos;
assign dram1_m_axi_arregion = replay1_m_axi_arregion;
assign dram1_m_axi_aruser = replay1_m_axi_aruser;
assign dram1_m_axi_arvalid = replay1_m_axi_arvalid;
assign replay1_m_axi_arready = dram1_m_axi_arready;
assign replay1_m_axi_rid = dram1_m_axi_rid;
assign replay1_m_axi_rdata = dram1_m_axi_rdata;
assign replay1_m_axi_rresp = dram1_m_axi_rresp;
assign replay1_m_axi_rlast = dram1_m_axi_rlast;
assign replay1_m_axi_ruser = dram1_m_axi_ruser;
assign replay1_m_axi_rvalid = dram1_m_axi_rvalid;
assign dram1_m_axi_rready = replay1_m_axi_rready;
// Broadcaster/Listener Connections: // Broadcaster/Listener Connections:
assign radio0_radio_time = radio_time0; assign radio0_radio_time = radio_time0;
+12 -4
View File
@@ -71,7 +71,13 @@ noc_blocks:
replay0: replay0:
block_desc: 'replay.yml' block_desc: 'replay.yml'
parameters: parameters:
NUM_PORTS: 2 NUM_PORTS: 1
MEM_DATA_W: 512
MEM_ADDR_W: 32
replay1:
block_desc: 'replay.yml'
parameters:
NUM_PORTS: 1
MEM_DATA_W: 512 MEM_DATA_W: 512
MEM_ADDR_W: 32 MEM_ADDR_W: 32
@@ -97,8 +103,8 @@ connections:
# Replay Connections # Replay Connections
- { srcblk: ep2, srcport: out0, dstblk: replay0, dstport: in_0 } - { srcblk: ep2, srcport: out0, dstblk: replay0, dstport: in_0 }
- { srcblk: replay0, srcport: out_0, dstblk: ep2, dstport: in0 } - { srcblk: replay0, srcport: out_0, dstblk: ep2, dstport: in0 }
- { srcblk: ep3, srcport: out0, dstblk: replay0, dstport: in_1 } - { srcblk: ep3, srcport: out0, dstblk: replay1, dstport: in_0 }
- { srcblk: replay0, srcport: out_1, dstblk: ep3, dstport: in0 } - { srcblk: replay1, srcport: out_0, dstblk: ep3, dstport: in0 }
# #
# BSP Connections # BSP Connections
- { srcblk: radio0, srcport: ctrlport, dstblk: _device_, dstport: ctrlport_radio0 } - { srcblk: radio0, srcport: ctrlport, dstblk: _device_, dstport: ctrlport_radio0 }
@@ -107,7 +113,8 @@ connections:
- { srcblk: _device_, srcport: radio1, dstblk: radio1, dstport: radio } - { srcblk: _device_, srcport: radio1, dstblk: radio1, dstport: radio }
- { srcblk: _device_, srcport: time0, dstblk: radio0, dstport: time } - { srcblk: _device_, srcport: time0, dstblk: radio0, dstport: time }
- { srcblk: _device_, srcport: time1, dstblk: radio1, dstport: time } - { srcblk: _device_, srcport: time1, dstblk: radio1, dstport: time }
- { srcblk: replay0, srcport: axi_ram, dstblk: _device_, dstport: dram } - { srcblk: replay0, srcport: axi_ram, dstblk: _device_, dstport: dram0 }
- { srcblk: replay1, srcport: axi_ram, dstblk: _device_, dstport: dram1 }
# A list of all clock domain connections in design # A list of all clock domain connections in design
# ------------------------------------------------ # ------------------------------------------------
@@ -120,3 +127,4 @@ clk_domains:
- { srcblk: _device_, srcport: radio0, dstblk: radio0, dstport: radio } - { srcblk: _device_, srcport: radio0, dstblk: radio0, dstport: radio }
- { srcblk: _device_, srcport: radio1, dstblk: radio1, dstport: radio } - { srcblk: _device_, srcport: radio1, dstblk: radio1, dstport: radio }
- { srcblk: _device_, srcport: dram, dstblk: replay0, dstport: mem } - { srcblk: _device_, srcport: dram, dstblk: replay0, dstport: mem }
- { srcblk: _device_, srcport: dram, dstblk: replay1, dstport: mem }
+2 -2
View File
@@ -5,5 +5,5 @@
01800080 01800080
00c001c0 00c001c0
01c000c0 01c000c0
010001c1 01000200
01c10100 02000100
+93 -47
View File
@@ -36,12 +36,12 @@ module rfnoc_image_core #(
input wire chdr_aclk, input wire chdr_aclk,
input wire ctrl_aclk, input wire ctrl_aclk,
input wire core_arst, input wire core_arst,
input wire ce_clk,
input wire radio0_clk, input wire radio0_clk,
input wire radio1_clk, input wire radio1_clk,
input wire radio0_2x_clk, input wire radio0_2x_clk,
input wire radio1_2x_clk, input wire radio1_2x_clk,
input wire dram_clk, input wire dram_clk,
input wire ce_clk,
// Basic // Basic
input wire [ 15:0] device_id, input wire [ 15:0] device_id,
@@ -87,52 +87,98 @@ module rfnoc_image_core #(
output wire [1023:0] radio_tx_data_radio1, output wire [1023:0] radio_tx_data_radio1,
input wire [ 31:0] radio_tx_stb_radio1, input wire [ 31:0] radio_tx_stb_radio1,
output wire [ 31:0] radio_tx_running_radio1, output wire [ 31:0] radio_tx_running_radio1,
// dram // dram0
input wire [ 0:0] axi_rst, input wire [ 0:0] dram0_axi_rst,
output wire [ 7:0] m_axi_awid, output wire [ 7:0] dram0_m_axi_awid,
output wire [ 383:0] m_axi_awaddr, output wire [ 383:0] dram0_m_axi_awaddr,
output wire [ 63:0] m_axi_awlen, output wire [ 63:0] dram0_m_axi_awlen,
output wire [ 23:0] m_axi_awsize, output wire [ 23:0] dram0_m_axi_awsize,
output wire [ 15:0] m_axi_awburst, output wire [ 15:0] dram0_m_axi_awburst,
output wire [ 7:0] m_axi_awlock, output wire [ 7:0] dram0_m_axi_awlock,
output wire [ 31:0] m_axi_awcache, output wire [ 31:0] dram0_m_axi_awcache,
output wire [ 23:0] m_axi_awprot, output wire [ 23:0] dram0_m_axi_awprot,
output wire [ 31:0] m_axi_awqos, output wire [ 31:0] dram0_m_axi_awqos,
output wire [ 31:0] m_axi_awregion, output wire [ 31:0] dram0_m_axi_awregion,
output wire [ 7:0] m_axi_awuser, output wire [ 7:0] dram0_m_axi_awuser,
output wire [ 7:0] m_axi_awvalid, output wire [ 7:0] dram0_m_axi_awvalid,
input wire [ 7:0] m_axi_awready, input wire [ 7:0] dram0_m_axi_awready,
output wire [4191:0] m_axi_wdata, output wire [4191:0] dram0_m_axi_wdata,
output wire [ 511:0] m_axi_wstrb, output wire [ 511:0] dram0_m_axi_wstrb,
output wire [ 7:0] m_axi_wlast, output wire [ 7:0] dram0_m_axi_wlast,
output wire [ 7:0] m_axi_wuser, output wire [ 7:0] dram0_m_axi_wuser,
output wire [ 7:0] m_axi_wvalid, output wire [ 7:0] dram0_m_axi_wvalid,
input wire [ 7:0] m_axi_wready, input wire [ 7:0] dram0_m_axi_wready,
input wire [ 7:0] m_axi_bid, input wire [ 7:0] dram0_m_axi_bid,
input wire [ 15:0] m_axi_bresp, input wire [ 15:0] dram0_m_axi_bresp,
input wire [ 7:0] m_axi_buser, input wire [ 7:0] dram0_m_axi_buser,
input wire [ 7:0] m_axi_bvalid, input wire [ 7:0] dram0_m_axi_bvalid,
output wire [ 7:0] m_axi_bready, output wire [ 7:0] dram0_m_axi_bready,
output wire [ 7:0] m_axi_arid, output wire [ 7:0] dram0_m_axi_arid,
output wire [ 383:0] m_axi_araddr, output wire [ 383:0] dram0_m_axi_araddr,
output wire [ 63:0] m_axi_arlen, output wire [ 63:0] dram0_m_axi_arlen,
output wire [ 23:0] m_axi_arsize, output wire [ 23:0] dram0_m_axi_arsize,
output wire [ 15:0] m_axi_arburst, output wire [ 15:0] dram0_m_axi_arburst,
output wire [ 7:0] m_axi_arlock, output wire [ 7:0] dram0_m_axi_arlock,
output wire [ 31:0] m_axi_arcache, output wire [ 31:0] dram0_m_axi_arcache,
output wire [ 31:0] m_axi_arprot, output wire [ 31:0] dram0_m_axi_arprot,
output wire [ 31:0] m_axi_arqos, output wire [ 31:0] dram0_m_axi_arqos,
output wire [ 31:0] m_axi_arregion, output wire [ 31:0] dram0_m_axi_arregion,
output wire [ 7:0] m_axi_aruser, output wire [ 7:0] dram0_m_axi_aruser,
output wire [ 7:0] m_axi_arvalid, output wire [ 7:0] dram0_m_axi_arvalid,
input wire [ 7:0] m_axi_arready, input wire [ 7:0] dram0_m_axi_arready,
input wire [ 7:0] m_axi_rid, input wire [ 7:0] dram0_m_axi_rid,
input wire [4191:0] m_axi_rdata, input wire [4191:0] dram0_m_axi_rdata,
input wire [ 15:0] m_axi_rresp, input wire [ 15:0] dram0_m_axi_rresp,
input wire [ 7:0] m_axi_rlast, input wire [ 7:0] dram0_m_axi_rlast,
input wire [ 7:0] m_axi_ruser, input wire [ 7:0] dram0_m_axi_ruser,
input wire [ 7:0] m_axi_rvalid, input wire [ 7:0] dram0_m_axi_rvalid,
output wire [ 7:0] m_axi_rready, output wire [ 7:0] dram0_m_axi_rready,
// dram1
input wire [ 0:0] dram1_axi_rst,
output wire [ 7:0] dram1_m_axi_awid,
output wire [ 383:0] dram1_m_axi_awaddr,
output wire [ 63:0] dram1_m_axi_awlen,
output wire [ 23:0] dram1_m_axi_awsize,
output wire [ 15:0] dram1_m_axi_awburst,
output wire [ 7:0] dram1_m_axi_awlock,
output wire [ 31:0] dram1_m_axi_awcache,
output wire [ 23:0] dram1_m_axi_awprot,
output wire [ 31:0] dram1_m_axi_awqos,
output wire [ 31:0] dram1_m_axi_awregion,
output wire [ 7:0] dram1_m_axi_awuser,
output wire [ 7:0] dram1_m_axi_awvalid,
input wire [ 7:0] dram1_m_axi_awready,
output wire [4191:0] dram1_m_axi_wdata,
output wire [ 511:0] dram1_m_axi_wstrb,
output wire [ 7:0] dram1_m_axi_wlast,
output wire [ 7:0] dram1_m_axi_wuser,
output wire [ 7:0] dram1_m_axi_wvalid,
input wire [ 7:0] dram1_m_axi_wready,
input wire [ 7:0] dram1_m_axi_bid,
input wire [ 15:0] dram1_m_axi_bresp,
input wire [ 7:0] dram1_m_axi_buser,
input wire [ 7:0] dram1_m_axi_bvalid,
output wire [ 7:0] dram1_m_axi_bready,
output wire [ 7:0] dram1_m_axi_arid,
output wire [ 383:0] dram1_m_axi_araddr,
output wire [ 63:0] dram1_m_axi_arlen,
output wire [ 23:0] dram1_m_axi_arsize,
output wire [ 15:0] dram1_m_axi_arburst,
output wire [ 7:0] dram1_m_axi_arlock,
output wire [ 31:0] dram1_m_axi_arcache,
output wire [ 31:0] dram1_m_axi_arprot,
output wire [ 31:0] dram1_m_axi_arqos,
output wire [ 31:0] dram1_m_axi_arregion,
output wire [ 7:0] dram1_m_axi_aruser,
output wire [ 7:0] dram1_m_axi_arvalid,
input wire [ 7:0] dram1_m_axi_arready,
input wire [ 7:0] dram1_m_axi_rid,
input wire [4191:0] dram1_m_axi_rdata,
input wire [ 15:0] dram1_m_axi_rresp,
input wire [ 7:0] dram1_m_axi_rlast,
input wire [ 7:0] dram1_m_axi_ruser,
input wire [ 7:0] dram1_m_axi_rvalid,
output wire [ 7:0] dram1_m_axi_rready,
// Transport Adapters /////////////// // Transport Adapters ///////////////
+386 -152
View File
@@ -36,12 +36,12 @@ module rfnoc_image_core #(
input wire chdr_aclk, input wire chdr_aclk,
input wire ctrl_aclk, input wire ctrl_aclk,
input wire core_arst, input wire core_arst,
input wire ce_clk,
input wire radio0_clk, input wire radio0_clk,
input wire radio1_clk, input wire radio1_clk,
input wire radio0_2x_clk, input wire radio0_2x_clk,
input wire radio1_2x_clk, input wire radio1_2x_clk,
input wire dram_clk, input wire dram_clk,
input wire ce_clk,
// Basic // Basic
input wire [ 15:0] device_id, input wire [ 15:0] device_id,
@@ -87,52 +87,98 @@ module rfnoc_image_core #(
output wire [1023:0] radio_tx_data_radio1, output wire [1023:0] radio_tx_data_radio1,
input wire [ 31:0] radio_tx_stb_radio1, input wire [ 31:0] radio_tx_stb_radio1,
output wire [ 31:0] radio_tx_running_radio1, output wire [ 31:0] radio_tx_running_radio1,
// dram // dram0
input wire [ 0:0] axi_rst, input wire [ 0:0] dram0_axi_rst,
output wire [ 7:0] m_axi_awid, output wire [ 7:0] dram0_m_axi_awid,
output wire [ 383:0] m_axi_awaddr, output wire [ 383:0] dram0_m_axi_awaddr,
output wire [ 63:0] m_axi_awlen, output wire [ 63:0] dram0_m_axi_awlen,
output wire [ 23:0] m_axi_awsize, output wire [ 23:0] dram0_m_axi_awsize,
output wire [ 15:0] m_axi_awburst, output wire [ 15:0] dram0_m_axi_awburst,
output wire [ 7:0] m_axi_awlock, output wire [ 7:0] dram0_m_axi_awlock,
output wire [ 31:0] m_axi_awcache, output wire [ 31:0] dram0_m_axi_awcache,
output wire [ 23:0] m_axi_awprot, output wire [ 23:0] dram0_m_axi_awprot,
output wire [ 31:0] m_axi_awqos, output wire [ 31:0] dram0_m_axi_awqos,
output wire [ 31:0] m_axi_awregion, output wire [ 31:0] dram0_m_axi_awregion,
output wire [ 7:0] m_axi_awuser, output wire [ 7:0] dram0_m_axi_awuser,
output wire [ 7:0] m_axi_awvalid, output wire [ 7:0] dram0_m_axi_awvalid,
input wire [ 7:0] m_axi_awready, input wire [ 7:0] dram0_m_axi_awready,
output wire [4191:0] m_axi_wdata, output wire [4191:0] dram0_m_axi_wdata,
output wire [ 511:0] m_axi_wstrb, output wire [ 511:0] dram0_m_axi_wstrb,
output wire [ 7:0] m_axi_wlast, output wire [ 7:0] dram0_m_axi_wlast,
output wire [ 7:0] m_axi_wuser, output wire [ 7:0] dram0_m_axi_wuser,
output wire [ 7:0] m_axi_wvalid, output wire [ 7:0] dram0_m_axi_wvalid,
input wire [ 7:0] m_axi_wready, input wire [ 7:0] dram0_m_axi_wready,
input wire [ 7:0] m_axi_bid, input wire [ 7:0] dram0_m_axi_bid,
input wire [ 15:0] m_axi_bresp, input wire [ 15:0] dram0_m_axi_bresp,
input wire [ 7:0] m_axi_buser, input wire [ 7:0] dram0_m_axi_buser,
input wire [ 7:0] m_axi_bvalid, input wire [ 7:0] dram0_m_axi_bvalid,
output wire [ 7:0] m_axi_bready, output wire [ 7:0] dram0_m_axi_bready,
output wire [ 7:0] m_axi_arid, output wire [ 7:0] dram0_m_axi_arid,
output wire [ 383:0] m_axi_araddr, output wire [ 383:0] dram0_m_axi_araddr,
output wire [ 63:0] m_axi_arlen, output wire [ 63:0] dram0_m_axi_arlen,
output wire [ 23:0] m_axi_arsize, output wire [ 23:0] dram0_m_axi_arsize,
output wire [ 15:0] m_axi_arburst, output wire [ 15:0] dram0_m_axi_arburst,
output wire [ 7:0] m_axi_arlock, output wire [ 7:0] dram0_m_axi_arlock,
output wire [ 31:0] m_axi_arcache, output wire [ 31:0] dram0_m_axi_arcache,
output wire [ 31:0] m_axi_arprot, output wire [ 31:0] dram0_m_axi_arprot,
output wire [ 31:0] m_axi_arqos, output wire [ 31:0] dram0_m_axi_arqos,
output wire [ 31:0] m_axi_arregion, output wire [ 31:0] dram0_m_axi_arregion,
output wire [ 7:0] m_axi_aruser, output wire [ 7:0] dram0_m_axi_aruser,
output wire [ 7:0] m_axi_arvalid, output wire [ 7:0] dram0_m_axi_arvalid,
input wire [ 7:0] m_axi_arready, input wire [ 7:0] dram0_m_axi_arready,
input wire [ 7:0] m_axi_rid, input wire [ 7:0] dram0_m_axi_rid,
input wire [4191:0] m_axi_rdata, input wire [4191:0] dram0_m_axi_rdata,
input wire [ 15:0] m_axi_rresp, input wire [ 15:0] dram0_m_axi_rresp,
input wire [ 7:0] m_axi_rlast, input wire [ 7:0] dram0_m_axi_rlast,
input wire [ 7:0] m_axi_ruser, input wire [ 7:0] dram0_m_axi_ruser,
input wire [ 7:0] m_axi_rvalid, input wire [ 7:0] dram0_m_axi_rvalid,
output wire [ 7:0] m_axi_rready, output wire [ 7:0] dram0_m_axi_rready,
// dram1
input wire [ 0:0] dram1_axi_rst,
output wire [ 7:0] dram1_m_axi_awid,
output wire [ 383:0] dram1_m_axi_awaddr,
output wire [ 63:0] dram1_m_axi_awlen,
output wire [ 23:0] dram1_m_axi_awsize,
output wire [ 15:0] dram1_m_axi_awburst,
output wire [ 7:0] dram1_m_axi_awlock,
output wire [ 31:0] dram1_m_axi_awcache,
output wire [ 23:0] dram1_m_axi_awprot,
output wire [ 31:0] dram1_m_axi_awqos,
output wire [ 31:0] dram1_m_axi_awregion,
output wire [ 7:0] dram1_m_axi_awuser,
output wire [ 7:0] dram1_m_axi_awvalid,
input wire [ 7:0] dram1_m_axi_awready,
output wire [4191:0] dram1_m_axi_wdata,
output wire [ 511:0] dram1_m_axi_wstrb,
output wire [ 7:0] dram1_m_axi_wlast,
output wire [ 7:0] dram1_m_axi_wuser,
output wire [ 7:0] dram1_m_axi_wvalid,
input wire [ 7:0] dram1_m_axi_wready,
input wire [ 7:0] dram1_m_axi_bid,
input wire [ 15:0] dram1_m_axi_bresp,
input wire [ 7:0] dram1_m_axi_buser,
input wire [ 7:0] dram1_m_axi_bvalid,
output wire [ 7:0] dram1_m_axi_bready,
output wire [ 7:0] dram1_m_axi_arid,
output wire [ 383:0] dram1_m_axi_araddr,
output wire [ 63:0] dram1_m_axi_arlen,
output wire [ 23:0] dram1_m_axi_arsize,
output wire [ 15:0] dram1_m_axi_arburst,
output wire [ 7:0] dram1_m_axi_arlock,
output wire [ 31:0] dram1_m_axi_arcache,
output wire [ 31:0] dram1_m_axi_arprot,
output wire [ 31:0] dram1_m_axi_arqos,
output wire [ 31:0] dram1_m_axi_arregion,
output wire [ 7:0] dram1_m_axi_aruser,
output wire [ 7:0] dram1_m_axi_arvalid,
input wire [ 7:0] dram1_m_axi_arready,
input wire [ 7:0] dram1_m_axi_rid,
input wire [4191:0] dram1_m_axi_rdata,
input wire [ 15:0] dram1_m_axi_rresp,
input wire [ 7:0] dram1_m_axi_rlast,
input wire [ 7:0] dram1_m_axi_ruser,
input wire [ 7:0] dram1_m_axi_rvalid,
output wire [ 7:0] dram1_m_axi_rready,
// Transport Adapters /////////////// // Transport Adapters ///////////////
@@ -1580,10 +1626,14 @@ module rfnoc_image_core #(
wire m_replay0_ctrl_tlast, s_replay0_ctrl_tlast; wire m_replay0_ctrl_tlast, s_replay0_ctrl_tlast;
wire m_replay0_ctrl_tvalid, s_replay0_ctrl_tvalid; wire m_replay0_ctrl_tvalid, s_replay0_ctrl_tvalid;
wire m_replay0_ctrl_tready, s_replay0_ctrl_tready; wire m_replay0_ctrl_tready, s_replay0_ctrl_tready;
wire [31:0] m_replay1_ctrl_tdata, s_replay1_ctrl_tdata;
wire m_replay1_ctrl_tlast, s_replay1_ctrl_tlast;
wire m_replay1_ctrl_tvalid, s_replay1_ctrl_tvalid;
wire m_replay1_ctrl_tready, s_replay1_ctrl_tready;
axis_ctrl_crossbar_nxn #( axis_ctrl_crossbar_nxn #(
.WIDTH (32), .WIDTH (32),
.NPORTS (5), .NPORTS (6),
.TOPOLOGY ("TORUS"), .TOPOLOGY ("TORUS"),
.INGRESS_BUFF_SIZE(5), .INGRESS_BUFF_SIZE(5),
.ROUTER_BUFF_SIZE (5), .ROUTER_BUFF_SIZE (5),
@@ -1592,14 +1642,14 @@ module rfnoc_image_core #(
) ctrl_xb_i ( ) ctrl_xb_i (
.clk (rfnoc_ctrl_clk), .clk (rfnoc_ctrl_clk),
.reset (rfnoc_ctrl_rst), .reset (rfnoc_ctrl_rst),
.s_axis_tdata ({m_replay0_ctrl_tdata , m_radio1_ctrl_tdata , m_radio0_ctrl_tdata , m_ep0_ctrl_tdata , m_core_ctrl_tdata }), .s_axis_tdata ({m_replay1_ctrl_tdata , m_replay0_ctrl_tdata , m_radio1_ctrl_tdata , m_radio0_ctrl_tdata , m_ep0_ctrl_tdata , m_core_ctrl_tdata }),
.s_axis_tvalid ({m_replay0_ctrl_tvalid, m_radio1_ctrl_tvalid, m_radio0_ctrl_tvalid, m_ep0_ctrl_tvalid, m_core_ctrl_tvalid}), .s_axis_tvalid ({m_replay1_ctrl_tvalid, m_replay0_ctrl_tvalid, m_radio1_ctrl_tvalid, m_radio0_ctrl_tvalid, m_ep0_ctrl_tvalid, m_core_ctrl_tvalid}),
.s_axis_tlast ({m_replay0_ctrl_tlast , m_radio1_ctrl_tlast , m_radio0_ctrl_tlast , m_ep0_ctrl_tlast , m_core_ctrl_tlast }), .s_axis_tlast ({m_replay1_ctrl_tlast , m_replay0_ctrl_tlast , m_radio1_ctrl_tlast , m_radio0_ctrl_tlast , m_ep0_ctrl_tlast , m_core_ctrl_tlast }),
.s_axis_tready ({m_replay0_ctrl_tready, m_radio1_ctrl_tready, m_radio0_ctrl_tready, m_ep0_ctrl_tready, m_core_ctrl_tready}), .s_axis_tready ({m_replay1_ctrl_tready, m_replay0_ctrl_tready, m_radio1_ctrl_tready, m_radio0_ctrl_tready, m_ep0_ctrl_tready, m_core_ctrl_tready}),
.m_axis_tdata ({s_replay0_ctrl_tdata , s_radio1_ctrl_tdata , s_radio0_ctrl_tdata , s_ep0_ctrl_tdata , s_core_ctrl_tdata }), .m_axis_tdata ({s_replay1_ctrl_tdata , s_replay0_ctrl_tdata , s_radio1_ctrl_tdata , s_radio0_ctrl_tdata , s_ep0_ctrl_tdata , s_core_ctrl_tdata }),
.m_axis_tvalid ({s_replay0_ctrl_tvalid, s_radio1_ctrl_tvalid, s_radio0_ctrl_tvalid, s_ep0_ctrl_tvalid, s_core_ctrl_tvalid}), .m_axis_tvalid ({s_replay1_ctrl_tvalid, s_replay0_ctrl_tvalid, s_radio1_ctrl_tvalid, s_radio0_ctrl_tvalid, s_ep0_ctrl_tvalid, s_core_ctrl_tvalid}),
.m_axis_tlast ({s_replay0_ctrl_tlast , s_radio1_ctrl_tlast , s_radio0_ctrl_tlast , s_ep0_ctrl_tlast , s_core_ctrl_tlast }), .m_axis_tlast ({s_replay1_ctrl_tlast , s_replay0_ctrl_tlast , s_radio1_ctrl_tlast , s_radio0_ctrl_tlast , s_ep0_ctrl_tlast , s_core_ctrl_tlast }),
.m_axis_tready ({s_replay0_ctrl_tready, s_radio1_ctrl_tready, s_radio0_ctrl_tready, s_ep0_ctrl_tready, s_core_ctrl_tready}), .m_axis_tready ({s_replay1_ctrl_tready, s_replay0_ctrl_tready, s_radio1_ctrl_tready, s_radio0_ctrl_tready, s_ep0_ctrl_tready, s_core_ctrl_tready}),
.deadlock_detected() .deadlock_detected()
); );
@@ -1608,14 +1658,14 @@ module rfnoc_image_core #(
// RFNoC Core Kernel // RFNoC Core Kernel
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
wire [(512*3)-1:0] rfnoc_core_config, rfnoc_core_status; wire [(512*4)-1:0] rfnoc_core_config, rfnoc_core_status;
rfnoc_core_kernel #( rfnoc_core_kernel #(
.PROTOVER (PROTOVER), .PROTOVER (PROTOVER),
.DEVICE_TYPE (16'hA400), .DEVICE_TYPE (16'hA400),
.DEVICE_FAMILY ("ULTRASCALE"), .DEVICE_FAMILY ("ULTRASCALE"),
.SAFE_START_CLKS (0), .SAFE_START_CLKS (0),
.NUM_BLOCKS (3), .NUM_BLOCKS (4),
.NUM_STREAM_ENDPOINTS(16), .NUM_STREAM_ENDPOINTS(16),
.NUM_ENDPOINTS_CTRL (1), .NUM_ENDPOINTS_CTRL (1),
.NUM_TRANSPORTS (6), .NUM_TRANSPORTS (6),
@@ -1825,14 +1875,14 @@ module rfnoc_image_core #(
//----------------------------------- //-----------------------------------
wire replay0_mem_clk; wire replay0_mem_clk;
wire [BLOCK_CHDR_W-1:0] s_replay0_in_7_tdata , s_replay0_in_6_tdata , s_replay0_in_5_tdata , s_replay0_in_4_tdata , s_replay0_in_3_tdata , s_replay0_in_2_tdata , s_replay0_in_1_tdata , s_replay0_in_0_tdata ; wire [BLOCK_CHDR_W-1:0] s_replay0_in_3_tdata , s_replay0_in_2_tdata , s_replay0_in_1_tdata , s_replay0_in_0_tdata ;
wire s_replay0_in_7_tlast , s_replay0_in_6_tlast , s_replay0_in_5_tlast , s_replay0_in_4_tlast , s_replay0_in_3_tlast , s_replay0_in_2_tlast , s_replay0_in_1_tlast , s_replay0_in_0_tlast ; wire s_replay0_in_3_tlast , s_replay0_in_2_tlast , s_replay0_in_1_tlast , s_replay0_in_0_tlast ;
wire s_replay0_in_7_tvalid, s_replay0_in_6_tvalid, s_replay0_in_5_tvalid, s_replay0_in_4_tvalid, s_replay0_in_3_tvalid, s_replay0_in_2_tvalid, s_replay0_in_1_tvalid, s_replay0_in_0_tvalid; wire s_replay0_in_3_tvalid, s_replay0_in_2_tvalid, s_replay0_in_1_tvalid, s_replay0_in_0_tvalid;
wire s_replay0_in_7_tready, s_replay0_in_6_tready, s_replay0_in_5_tready, s_replay0_in_4_tready, s_replay0_in_3_tready, s_replay0_in_2_tready, s_replay0_in_1_tready, s_replay0_in_0_tready; wire s_replay0_in_3_tready, s_replay0_in_2_tready, s_replay0_in_1_tready, s_replay0_in_0_tready;
wire [BLOCK_CHDR_W-1:0] m_replay0_out_7_tdata , m_replay0_out_6_tdata , m_replay0_out_5_tdata , m_replay0_out_4_tdata , m_replay0_out_3_tdata , m_replay0_out_2_tdata , m_replay0_out_1_tdata , m_replay0_out_0_tdata ; wire [BLOCK_CHDR_W-1:0] m_replay0_out_3_tdata , m_replay0_out_2_tdata , m_replay0_out_1_tdata , m_replay0_out_0_tdata ;
wire m_replay0_out_7_tlast , m_replay0_out_6_tlast , m_replay0_out_5_tlast , m_replay0_out_4_tlast , m_replay0_out_3_tlast , m_replay0_out_2_tlast , m_replay0_out_1_tlast , m_replay0_out_0_tlast ; wire m_replay0_out_3_tlast , m_replay0_out_2_tlast , m_replay0_out_1_tlast , m_replay0_out_0_tlast ;
wire m_replay0_out_7_tvalid, m_replay0_out_6_tvalid, m_replay0_out_5_tvalid, m_replay0_out_4_tvalid, m_replay0_out_3_tvalid, m_replay0_out_2_tvalid, m_replay0_out_1_tvalid, m_replay0_out_0_tvalid; wire m_replay0_out_3_tvalid, m_replay0_out_2_tvalid, m_replay0_out_1_tvalid, m_replay0_out_0_tvalid;
wire m_replay0_out_7_tready, m_replay0_out_6_tready, m_replay0_out_5_tready, m_replay0_out_4_tready, m_replay0_out_3_tready, m_replay0_out_2_tready, m_replay0_out_1_tready, m_replay0_out_0_tready; wire m_replay0_out_3_tready, m_replay0_out_2_tready, m_replay0_out_1_tready, m_replay0_out_0_tready;
// axi_ram // axi_ram
wire [ 0:0] replay0_axi_rst; wire [ 0:0] replay0_axi_rst;
@@ -1884,7 +1934,7 @@ module rfnoc_image_core #(
rfnoc_block_replay #( rfnoc_block_replay #(
.THIS_PORTID (4), .THIS_PORTID (4),
.CHDR_W (BLOCK_CHDR_W), .CHDR_W (BLOCK_CHDR_W),
.NUM_PORTS (8), .NUM_PORTS (4),
.MEM_DATA_W (128), .MEM_DATA_W (128),
.MEM_ADDR_W (32), .MEM_ADDR_W (32),
.MTU (BLOCK_MTU) .MTU (BLOCK_MTU)
@@ -1939,14 +1989,14 @@ module rfnoc_image_core #(
.m_axi_ruser (replay0_m_axi_ruser), .m_axi_ruser (replay0_m_axi_ruser),
.m_axi_rvalid (replay0_m_axi_rvalid), .m_axi_rvalid (replay0_m_axi_rvalid),
.m_axi_rready (replay0_m_axi_rready), .m_axi_rready (replay0_m_axi_rready),
.s_rfnoc_chdr_tdata ({s_replay0_in_7_tdata , s_replay0_in_6_tdata , s_replay0_in_5_tdata , s_replay0_in_4_tdata , s_replay0_in_3_tdata , s_replay0_in_2_tdata , s_replay0_in_1_tdata , s_replay0_in_0_tdata }), .s_rfnoc_chdr_tdata ({s_replay0_in_3_tdata , s_replay0_in_2_tdata , s_replay0_in_1_tdata , s_replay0_in_0_tdata }),
.s_rfnoc_chdr_tlast ({s_replay0_in_7_tlast , s_replay0_in_6_tlast , s_replay0_in_5_tlast , s_replay0_in_4_tlast , s_replay0_in_3_tlast , s_replay0_in_2_tlast , s_replay0_in_1_tlast , s_replay0_in_0_tlast }), .s_rfnoc_chdr_tlast ({s_replay0_in_3_tlast , s_replay0_in_2_tlast , s_replay0_in_1_tlast , s_replay0_in_0_tlast }),
.s_rfnoc_chdr_tvalid ({s_replay0_in_7_tvalid, s_replay0_in_6_tvalid, s_replay0_in_5_tvalid, s_replay0_in_4_tvalid, s_replay0_in_3_tvalid, s_replay0_in_2_tvalid, s_replay0_in_1_tvalid, s_replay0_in_0_tvalid}), .s_rfnoc_chdr_tvalid ({s_replay0_in_3_tvalid, s_replay0_in_2_tvalid, s_replay0_in_1_tvalid, s_replay0_in_0_tvalid}),
.s_rfnoc_chdr_tready ({s_replay0_in_7_tready, s_replay0_in_6_tready, s_replay0_in_5_tready, s_replay0_in_4_tready, s_replay0_in_3_tready, s_replay0_in_2_tready, s_replay0_in_1_tready, s_replay0_in_0_tready}), .s_rfnoc_chdr_tready ({s_replay0_in_3_tready, s_replay0_in_2_tready, s_replay0_in_1_tready, s_replay0_in_0_tready}),
.m_rfnoc_chdr_tdata ({m_replay0_out_7_tdata , m_replay0_out_6_tdata , m_replay0_out_5_tdata , m_replay0_out_4_tdata , m_replay0_out_3_tdata , m_replay0_out_2_tdata , m_replay0_out_1_tdata , m_replay0_out_0_tdata }), .m_rfnoc_chdr_tdata ({m_replay0_out_3_tdata , m_replay0_out_2_tdata , m_replay0_out_1_tdata , m_replay0_out_0_tdata }),
.m_rfnoc_chdr_tlast ({m_replay0_out_7_tlast , m_replay0_out_6_tlast , m_replay0_out_5_tlast , m_replay0_out_4_tlast , m_replay0_out_3_tlast , m_replay0_out_2_tlast , m_replay0_out_1_tlast , m_replay0_out_0_tlast }), .m_rfnoc_chdr_tlast ({m_replay0_out_3_tlast , m_replay0_out_2_tlast , m_replay0_out_1_tlast , m_replay0_out_0_tlast }),
.m_rfnoc_chdr_tvalid ({m_replay0_out_7_tvalid, m_replay0_out_6_tvalid, m_replay0_out_5_tvalid, m_replay0_out_4_tvalid, m_replay0_out_3_tvalid, m_replay0_out_2_tvalid, m_replay0_out_1_tvalid, m_replay0_out_0_tvalid}), .m_rfnoc_chdr_tvalid ({m_replay0_out_3_tvalid, m_replay0_out_2_tvalid, m_replay0_out_1_tvalid, m_replay0_out_0_tvalid}),
.m_rfnoc_chdr_tready ({m_replay0_out_7_tready, m_replay0_out_6_tready, m_replay0_out_5_tready, m_replay0_out_4_tready, m_replay0_out_3_tready, m_replay0_out_2_tready, m_replay0_out_1_tready, m_replay0_out_0_tready}), .m_rfnoc_chdr_tready ({m_replay0_out_3_tready, m_replay0_out_2_tready, m_replay0_out_1_tready, m_replay0_out_0_tready}),
.s_rfnoc_ctrl_tdata (s_replay0_ctrl_tdata), .s_rfnoc_ctrl_tdata (s_replay0_ctrl_tdata),
.s_rfnoc_ctrl_tlast (s_replay0_ctrl_tlast), .s_rfnoc_ctrl_tlast (s_replay0_ctrl_tlast),
.s_rfnoc_ctrl_tvalid (s_replay0_ctrl_tvalid), .s_rfnoc_ctrl_tvalid (s_replay0_ctrl_tvalid),
@@ -1957,6 +2007,143 @@ module rfnoc_image_core #(
.m_rfnoc_ctrl_tready (m_replay0_ctrl_tready) .m_rfnoc_ctrl_tready (m_replay0_ctrl_tready)
); );
//-----------------------------------
// replay1
//-----------------------------------
wire replay1_mem_clk;
wire [BLOCK_CHDR_W-1:0] s_replay1_in_3_tdata , s_replay1_in_2_tdata , s_replay1_in_1_tdata , s_replay1_in_0_tdata ;
wire s_replay1_in_3_tlast , s_replay1_in_2_tlast , s_replay1_in_1_tlast , s_replay1_in_0_tlast ;
wire s_replay1_in_3_tvalid, s_replay1_in_2_tvalid, s_replay1_in_1_tvalid, s_replay1_in_0_tvalid;
wire s_replay1_in_3_tready, s_replay1_in_2_tready, s_replay1_in_1_tready, s_replay1_in_0_tready;
wire [BLOCK_CHDR_W-1:0] m_replay1_out_3_tdata , m_replay1_out_2_tdata , m_replay1_out_1_tdata , m_replay1_out_0_tdata ;
wire m_replay1_out_3_tlast , m_replay1_out_2_tlast , m_replay1_out_1_tlast , m_replay1_out_0_tlast ;
wire m_replay1_out_3_tvalid, m_replay1_out_2_tvalid, m_replay1_out_1_tvalid, m_replay1_out_0_tvalid;
wire m_replay1_out_3_tready, m_replay1_out_2_tready, m_replay1_out_1_tready, m_replay1_out_0_tready;
// axi_ram
wire [ 0:0] replay1_axi_rst;
wire [ 7:0] replay1_m_axi_awid;
wire [ 383:0] replay1_m_axi_awaddr;
wire [ 63:0] replay1_m_axi_awlen;
wire [ 23:0] replay1_m_axi_awsize;
wire [ 15:0] replay1_m_axi_awburst;
wire [ 7:0] replay1_m_axi_awlock;
wire [ 31:0] replay1_m_axi_awcache;
wire [ 23:0] replay1_m_axi_awprot;
wire [ 31:0] replay1_m_axi_awqos;
wire [ 31:0] replay1_m_axi_awregion;
wire [ 7:0] replay1_m_axi_awuser;
wire [ 7:0] replay1_m_axi_awvalid;
wire [ 7:0] replay1_m_axi_awready;
wire [4191:0] replay1_m_axi_wdata;
wire [ 511:0] replay1_m_axi_wstrb;
wire [ 7:0] replay1_m_axi_wlast;
wire [ 7:0] replay1_m_axi_wuser;
wire [ 7:0] replay1_m_axi_wvalid;
wire [ 7:0] replay1_m_axi_wready;
wire [ 7:0] replay1_m_axi_bid;
wire [ 15:0] replay1_m_axi_bresp;
wire [ 7:0] replay1_m_axi_buser;
wire [ 7:0] replay1_m_axi_bvalid;
wire [ 7:0] replay1_m_axi_bready;
wire [ 7:0] replay1_m_axi_arid;
wire [ 383:0] replay1_m_axi_araddr;
wire [ 63:0] replay1_m_axi_arlen;
wire [ 23:0] replay1_m_axi_arsize;
wire [ 15:0] replay1_m_axi_arburst;
wire [ 7:0] replay1_m_axi_arlock;
wire [ 31:0] replay1_m_axi_arcache;
wire [ 31:0] replay1_m_axi_arprot;
wire [ 31:0] replay1_m_axi_arqos;
wire [ 31:0] replay1_m_axi_arregion;
wire [ 7:0] replay1_m_axi_aruser;
wire [ 7:0] replay1_m_axi_arvalid;
wire [ 7:0] replay1_m_axi_arready;
wire [ 7:0] replay1_m_axi_rid;
wire [4191:0] replay1_m_axi_rdata;
wire [ 15:0] replay1_m_axi_rresp;
wire [ 7:0] replay1_m_axi_rlast;
wire [ 7:0] replay1_m_axi_ruser;
wire [ 7:0] replay1_m_axi_rvalid;
wire [ 7:0] replay1_m_axi_rready;
rfnoc_block_replay #(
.THIS_PORTID (5),
.CHDR_W (BLOCK_CHDR_W),
.NUM_PORTS (4),
.MEM_DATA_W (128),
.MEM_ADDR_W (32),
.MTU (BLOCK_MTU)
) b_replay1_3 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
.rfnoc_ctrl_clk (rfnoc_ctrl_clk),
.mem_clk (replay1_mem_clk),
.rfnoc_core_config (rfnoc_core_config[512*4-1:512*3]),
.rfnoc_core_status (rfnoc_core_status[512*4-1:512*3]),
.axi_rst (replay1_axi_rst),
.m_axi_awid (replay1_m_axi_awid),
.m_axi_awaddr (replay1_m_axi_awaddr),
.m_axi_awlen (replay1_m_axi_awlen),
.m_axi_awsize (replay1_m_axi_awsize),
.m_axi_awburst (replay1_m_axi_awburst),
.m_axi_awlock (replay1_m_axi_awlock),
.m_axi_awcache (replay1_m_axi_awcache),
.m_axi_awprot (replay1_m_axi_awprot),
.m_axi_awqos (replay1_m_axi_awqos),
.m_axi_awregion (replay1_m_axi_awregion),
.m_axi_awuser (replay1_m_axi_awuser),
.m_axi_awvalid (replay1_m_axi_awvalid),
.m_axi_awready (replay1_m_axi_awready),
.m_axi_wdata (replay1_m_axi_wdata),
.m_axi_wstrb (replay1_m_axi_wstrb),
.m_axi_wlast (replay1_m_axi_wlast),
.m_axi_wuser (replay1_m_axi_wuser),
.m_axi_wvalid (replay1_m_axi_wvalid),
.m_axi_wready (replay1_m_axi_wready),
.m_axi_bid (replay1_m_axi_bid),
.m_axi_bresp (replay1_m_axi_bresp),
.m_axi_buser (replay1_m_axi_buser),
.m_axi_bvalid (replay1_m_axi_bvalid),
.m_axi_bready (replay1_m_axi_bready),
.m_axi_arid (replay1_m_axi_arid),
.m_axi_araddr (replay1_m_axi_araddr),
.m_axi_arlen (replay1_m_axi_arlen),
.m_axi_arsize (replay1_m_axi_arsize),
.m_axi_arburst (replay1_m_axi_arburst),
.m_axi_arlock (replay1_m_axi_arlock),
.m_axi_arcache (replay1_m_axi_arcache),
.m_axi_arprot (replay1_m_axi_arprot),
.m_axi_arqos (replay1_m_axi_arqos),
.m_axi_arregion (replay1_m_axi_arregion),
.m_axi_aruser (replay1_m_axi_aruser),
.m_axi_arvalid (replay1_m_axi_arvalid),
.m_axi_arready (replay1_m_axi_arready),
.m_axi_rid (replay1_m_axi_rid),
.m_axi_rdata (replay1_m_axi_rdata),
.m_axi_rresp (replay1_m_axi_rresp),
.m_axi_rlast (replay1_m_axi_rlast),
.m_axi_ruser (replay1_m_axi_ruser),
.m_axi_rvalid (replay1_m_axi_rvalid),
.m_axi_rready (replay1_m_axi_rready),
.s_rfnoc_chdr_tdata ({s_replay1_in_3_tdata , s_replay1_in_2_tdata , s_replay1_in_1_tdata , s_replay1_in_0_tdata }),
.s_rfnoc_chdr_tlast ({s_replay1_in_3_tlast , s_replay1_in_2_tlast , s_replay1_in_1_tlast , s_replay1_in_0_tlast }),
.s_rfnoc_chdr_tvalid ({s_replay1_in_3_tvalid, s_replay1_in_2_tvalid, s_replay1_in_1_tvalid, s_replay1_in_0_tvalid}),
.s_rfnoc_chdr_tready ({s_replay1_in_3_tready, s_replay1_in_2_tready, s_replay1_in_1_tready, s_replay1_in_0_tready}),
.m_rfnoc_chdr_tdata ({m_replay1_out_3_tdata , m_replay1_out_2_tdata , m_replay1_out_1_tdata , m_replay1_out_0_tdata }),
.m_rfnoc_chdr_tlast ({m_replay1_out_3_tlast , m_replay1_out_2_tlast , m_replay1_out_1_tlast , m_replay1_out_0_tlast }),
.m_rfnoc_chdr_tvalid ({m_replay1_out_3_tvalid, m_replay1_out_2_tvalid, m_replay1_out_1_tvalid, m_replay1_out_0_tvalid}),
.m_rfnoc_chdr_tready ({m_replay1_out_3_tready, m_replay1_out_2_tready, m_replay1_out_1_tready, m_replay1_out_0_tready}),
.s_rfnoc_ctrl_tdata (s_replay1_ctrl_tdata),
.s_rfnoc_ctrl_tlast (s_replay1_ctrl_tlast),
.s_rfnoc_ctrl_tvalid (s_replay1_ctrl_tvalid),
.s_rfnoc_ctrl_tready (s_replay1_ctrl_tready),
.m_rfnoc_ctrl_tdata (m_replay1_ctrl_tdata),
.m_rfnoc_ctrl_tlast (m_replay1_ctrl_tlast),
.m_rfnoc_ctrl_tvalid (m_replay1_ctrl_tvalid),
.m_rfnoc_ctrl_tready (m_replay1_ctrl_tready)
);
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Static Router // Static Router
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@@ -2081,45 +2268,45 @@ module rfnoc_image_core #(
assign s_ep11_in0_tvalid = m_replay0_out_3_tvalid; assign s_ep11_in0_tvalid = m_replay0_out_3_tvalid;
assign m_replay0_out_3_tready = s_ep11_in0_tready; assign m_replay0_out_3_tready = s_ep11_in0_tready;
assign s_replay0_in_4_tdata = m_ep12_out0_tdata; assign s_replay1_in_0_tdata = m_ep12_out0_tdata;
assign s_replay0_in_4_tlast = m_ep12_out0_tlast; assign s_replay1_in_0_tlast = m_ep12_out0_tlast;
assign s_replay0_in_4_tvalid = m_ep12_out0_tvalid; assign s_replay1_in_0_tvalid = m_ep12_out0_tvalid;
assign m_ep12_out0_tready = s_replay0_in_4_tready; assign m_ep12_out0_tready = s_replay1_in_0_tready;
assign s_ep12_in0_tdata = m_replay0_out_4_tdata; assign s_ep12_in0_tdata = m_replay1_out_0_tdata;
assign s_ep12_in0_tlast = m_replay0_out_4_tlast; assign s_ep12_in0_tlast = m_replay1_out_0_tlast;
assign s_ep12_in0_tvalid = m_replay0_out_4_tvalid; assign s_ep12_in0_tvalid = m_replay1_out_0_tvalid;
assign m_replay0_out_4_tready = s_ep12_in0_tready; assign m_replay1_out_0_tready = s_ep12_in0_tready;
assign s_replay0_in_5_tdata = m_ep13_out0_tdata; assign s_replay1_in_1_tdata = m_ep13_out0_tdata;
assign s_replay0_in_5_tlast = m_ep13_out0_tlast; assign s_replay1_in_1_tlast = m_ep13_out0_tlast;
assign s_replay0_in_5_tvalid = m_ep13_out0_tvalid; assign s_replay1_in_1_tvalid = m_ep13_out0_tvalid;
assign m_ep13_out0_tready = s_replay0_in_5_tready; assign m_ep13_out0_tready = s_replay1_in_1_tready;
assign s_ep13_in0_tdata = m_replay0_out_5_tdata; assign s_ep13_in0_tdata = m_replay1_out_1_tdata;
assign s_ep13_in0_tlast = m_replay0_out_5_tlast; assign s_ep13_in0_tlast = m_replay1_out_1_tlast;
assign s_ep13_in0_tvalid = m_replay0_out_5_tvalid; assign s_ep13_in0_tvalid = m_replay1_out_1_tvalid;
assign m_replay0_out_5_tready = s_ep13_in0_tready; assign m_replay1_out_1_tready = s_ep13_in0_tready;
assign s_replay0_in_6_tdata = m_ep14_out0_tdata; assign s_replay1_in_2_tdata = m_ep14_out0_tdata;
assign s_replay0_in_6_tlast = m_ep14_out0_tlast; assign s_replay1_in_2_tlast = m_ep14_out0_tlast;
assign s_replay0_in_6_tvalid = m_ep14_out0_tvalid; assign s_replay1_in_2_tvalid = m_ep14_out0_tvalid;
assign m_ep14_out0_tready = s_replay0_in_6_tready; assign m_ep14_out0_tready = s_replay1_in_2_tready;
assign s_ep14_in0_tdata = m_replay0_out_6_tdata; assign s_ep14_in0_tdata = m_replay1_out_2_tdata;
assign s_ep14_in0_tlast = m_replay0_out_6_tlast; assign s_ep14_in0_tlast = m_replay1_out_2_tlast;
assign s_ep14_in0_tvalid = m_replay0_out_6_tvalid; assign s_ep14_in0_tvalid = m_replay1_out_2_tvalid;
assign m_replay0_out_6_tready = s_ep14_in0_tready; assign m_replay1_out_2_tready = s_ep14_in0_tready;
assign s_replay0_in_7_tdata = m_ep15_out0_tdata; assign s_replay1_in_3_tdata = m_ep15_out0_tdata;
assign s_replay0_in_7_tlast = m_ep15_out0_tlast; assign s_replay1_in_3_tlast = m_ep15_out0_tlast;
assign s_replay0_in_7_tvalid = m_ep15_out0_tvalid; assign s_replay1_in_3_tvalid = m_ep15_out0_tvalid;
assign m_ep15_out0_tready = s_replay0_in_7_tready; assign m_ep15_out0_tready = s_replay1_in_3_tready;
assign s_ep15_in0_tdata = m_replay0_out_7_tdata; assign s_ep15_in0_tdata = m_replay1_out_3_tdata;
assign s_ep15_in0_tlast = m_replay0_out_7_tlast; assign s_ep15_in0_tlast = m_replay1_out_3_tlast;
assign s_ep15_in0_tvalid = m_replay0_out_7_tvalid; assign s_ep15_in0_tvalid = m_replay1_out_3_tvalid;
assign m_replay0_out_7_tready = s_ep15_in0_tready; assign m_replay1_out_3_tready = s_ep15_in0_tready;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@@ -2135,6 +2322,7 @@ module rfnoc_image_core #(
assign radio0_radio_clk = radio0_clk; assign radio0_radio_clk = radio0_clk;
assign radio1_radio_clk = radio1_clk; assign radio1_radio_clk = radio1_clk;
assign replay0_mem_clk = dram_clk; assign replay0_mem_clk = dram_clk;
assign replay1_mem_clk = dram_clk;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@@ -2178,51 +2366,97 @@ module rfnoc_image_core #(
assign radio1_radio_tx_stb = radio_tx_stb_radio1; assign radio1_radio_tx_stb = radio_tx_stb_radio1;
assign radio_tx_running_radio1 = radio1_radio_tx_running; assign radio_tx_running_radio1 = radio1_radio_tx_running;
assign replay0_axi_rst = axi_rst; assign replay0_axi_rst = dram0_axi_rst;
assign m_axi_awid = replay0_m_axi_awid; assign dram0_m_axi_awid = replay0_m_axi_awid;
assign m_axi_awaddr = replay0_m_axi_awaddr; assign dram0_m_axi_awaddr = replay0_m_axi_awaddr;
assign m_axi_awlen = replay0_m_axi_awlen; assign dram0_m_axi_awlen = replay0_m_axi_awlen;
assign m_axi_awsize = replay0_m_axi_awsize; assign dram0_m_axi_awsize = replay0_m_axi_awsize;
assign m_axi_awburst = replay0_m_axi_awburst; assign dram0_m_axi_awburst = replay0_m_axi_awburst;
assign m_axi_awlock = replay0_m_axi_awlock; assign dram0_m_axi_awlock = replay0_m_axi_awlock;
assign m_axi_awcache = replay0_m_axi_awcache; assign dram0_m_axi_awcache = replay0_m_axi_awcache;
assign m_axi_awprot = replay0_m_axi_awprot; assign dram0_m_axi_awprot = replay0_m_axi_awprot;
assign m_axi_awqos = replay0_m_axi_awqos; assign dram0_m_axi_awqos = replay0_m_axi_awqos;
assign m_axi_awregion = replay0_m_axi_awregion; assign dram0_m_axi_awregion = replay0_m_axi_awregion;
assign m_axi_awuser = replay0_m_axi_awuser; assign dram0_m_axi_awuser = replay0_m_axi_awuser;
assign m_axi_awvalid = replay0_m_axi_awvalid; assign dram0_m_axi_awvalid = replay0_m_axi_awvalid;
assign replay0_m_axi_awready = m_axi_awready; assign replay0_m_axi_awready = dram0_m_axi_awready;
assign m_axi_wdata = replay0_m_axi_wdata; assign dram0_m_axi_wdata = replay0_m_axi_wdata;
assign m_axi_wstrb = replay0_m_axi_wstrb; assign dram0_m_axi_wstrb = replay0_m_axi_wstrb;
assign m_axi_wlast = replay0_m_axi_wlast; assign dram0_m_axi_wlast = replay0_m_axi_wlast;
assign m_axi_wuser = replay0_m_axi_wuser; assign dram0_m_axi_wuser = replay0_m_axi_wuser;
assign m_axi_wvalid = replay0_m_axi_wvalid; assign dram0_m_axi_wvalid = replay0_m_axi_wvalid;
assign replay0_m_axi_wready = m_axi_wready; assign replay0_m_axi_wready = dram0_m_axi_wready;
assign replay0_m_axi_bid = m_axi_bid; assign replay0_m_axi_bid = dram0_m_axi_bid;
assign replay0_m_axi_bresp = m_axi_bresp; assign replay0_m_axi_bresp = dram0_m_axi_bresp;
assign replay0_m_axi_buser = m_axi_buser; assign replay0_m_axi_buser = dram0_m_axi_buser;
assign replay0_m_axi_bvalid = m_axi_bvalid; assign replay0_m_axi_bvalid = dram0_m_axi_bvalid;
assign m_axi_bready = replay0_m_axi_bready; assign dram0_m_axi_bready = replay0_m_axi_bready;
assign m_axi_arid = replay0_m_axi_arid; assign dram0_m_axi_arid = replay0_m_axi_arid;
assign m_axi_araddr = replay0_m_axi_araddr; assign dram0_m_axi_araddr = replay0_m_axi_araddr;
assign m_axi_arlen = replay0_m_axi_arlen; assign dram0_m_axi_arlen = replay0_m_axi_arlen;
assign m_axi_arsize = replay0_m_axi_arsize; assign dram0_m_axi_arsize = replay0_m_axi_arsize;
assign m_axi_arburst = replay0_m_axi_arburst; assign dram0_m_axi_arburst = replay0_m_axi_arburst;
assign m_axi_arlock = replay0_m_axi_arlock; assign dram0_m_axi_arlock = replay0_m_axi_arlock;
assign m_axi_arcache = replay0_m_axi_arcache; assign dram0_m_axi_arcache = replay0_m_axi_arcache;
assign m_axi_arprot = replay0_m_axi_arprot; assign dram0_m_axi_arprot = replay0_m_axi_arprot;
assign m_axi_arqos = replay0_m_axi_arqos; assign dram0_m_axi_arqos = replay0_m_axi_arqos;
assign m_axi_arregion = replay0_m_axi_arregion; assign dram0_m_axi_arregion = replay0_m_axi_arregion;
assign m_axi_aruser = replay0_m_axi_aruser; assign dram0_m_axi_aruser = replay0_m_axi_aruser;
assign m_axi_arvalid = replay0_m_axi_arvalid; assign dram0_m_axi_arvalid = replay0_m_axi_arvalid;
assign replay0_m_axi_arready = m_axi_arready; assign replay0_m_axi_arready = dram0_m_axi_arready;
assign replay0_m_axi_rid = m_axi_rid; assign replay0_m_axi_rid = dram0_m_axi_rid;
assign replay0_m_axi_rdata = m_axi_rdata; assign replay0_m_axi_rdata = dram0_m_axi_rdata;
assign replay0_m_axi_rresp = m_axi_rresp; assign replay0_m_axi_rresp = dram0_m_axi_rresp;
assign replay0_m_axi_rlast = m_axi_rlast; assign replay0_m_axi_rlast = dram0_m_axi_rlast;
assign replay0_m_axi_ruser = m_axi_ruser; assign replay0_m_axi_ruser = dram0_m_axi_ruser;
assign replay0_m_axi_rvalid = m_axi_rvalid; assign replay0_m_axi_rvalid = dram0_m_axi_rvalid;
assign m_axi_rready = replay0_m_axi_rready; assign dram0_m_axi_rready = replay0_m_axi_rready;
assign replay1_axi_rst = dram1_axi_rst;
assign dram1_m_axi_awid = replay1_m_axi_awid;
assign dram1_m_axi_awaddr = replay1_m_axi_awaddr;
assign dram1_m_axi_awlen = replay1_m_axi_awlen;
assign dram1_m_axi_awsize = replay1_m_axi_awsize;
assign dram1_m_axi_awburst = replay1_m_axi_awburst;
assign dram1_m_axi_awlock = replay1_m_axi_awlock;
assign dram1_m_axi_awcache = replay1_m_axi_awcache;
assign dram1_m_axi_awprot = replay1_m_axi_awprot;
assign dram1_m_axi_awqos = replay1_m_axi_awqos;
assign dram1_m_axi_awregion = replay1_m_axi_awregion;
assign dram1_m_axi_awuser = replay1_m_axi_awuser;
assign dram1_m_axi_awvalid = replay1_m_axi_awvalid;
assign replay1_m_axi_awready = dram1_m_axi_awready;
assign dram1_m_axi_wdata = replay1_m_axi_wdata;
assign dram1_m_axi_wstrb = replay1_m_axi_wstrb;
assign dram1_m_axi_wlast = replay1_m_axi_wlast;
assign dram1_m_axi_wuser = replay1_m_axi_wuser;
assign dram1_m_axi_wvalid = replay1_m_axi_wvalid;
assign replay1_m_axi_wready = dram1_m_axi_wready;
assign replay1_m_axi_bid = dram1_m_axi_bid;
assign replay1_m_axi_bresp = dram1_m_axi_bresp;
assign replay1_m_axi_buser = dram1_m_axi_buser;
assign replay1_m_axi_bvalid = dram1_m_axi_bvalid;
assign dram1_m_axi_bready = replay1_m_axi_bready;
assign dram1_m_axi_arid = replay1_m_axi_arid;
assign dram1_m_axi_araddr = replay1_m_axi_araddr;
assign dram1_m_axi_arlen = replay1_m_axi_arlen;
assign dram1_m_axi_arsize = replay1_m_axi_arsize;
assign dram1_m_axi_arburst = replay1_m_axi_arburst;
assign dram1_m_axi_arlock = replay1_m_axi_arlock;
assign dram1_m_axi_arcache = replay1_m_axi_arcache;
assign dram1_m_axi_arprot = replay1_m_axi_arprot;
assign dram1_m_axi_arqos = replay1_m_axi_arqos;
assign dram1_m_axi_arregion = replay1_m_axi_arregion;
assign dram1_m_axi_aruser = replay1_m_axi_aruser;
assign dram1_m_axi_arvalid = replay1_m_axi_arvalid;
assign replay1_m_axi_arready = dram1_m_axi_arready;
assign replay1_m_axi_rid = dram1_m_axi_rid;
assign replay1_m_axi_rdata = dram1_m_axi_rdata;
assign replay1_m_axi_rresp = dram1_m_axi_rresp;
assign replay1_m_axi_rlast = dram1_m_axi_rlast;
assign replay1_m_axi_ruser = dram1_m_axi_ruser;
assign replay1_m_axi_rvalid = dram1_m_axi_rvalid;
assign dram1_m_axi_rready = replay1_m_axi_rready;
// Broadcaster/Listener Connections: // Broadcaster/Listener Connections:
assign radio0_radio_time = radio_time0; assign radio0_radio_time = radio_time0;
+18 -10
View File
@@ -131,7 +131,13 @@ noc_blocks:
replay0: replay0:
block_desc: 'replay.yml' block_desc: 'replay.yml'
parameters: parameters:
NUM_PORTS: 8 NUM_PORTS: 4
MEM_DATA_W: 128
MEM_ADDR_W: 32
replay1:
block_desc: 'replay.yml'
parameters:
NUM_PORTS: 4
MEM_DATA_W: 128 MEM_DATA_W: 128
MEM_ADDR_W: 32 MEM_ADDR_W: 32
@@ -186,14 +192,14 @@ connections:
- { srcblk: replay0, srcport: out_2, dstblk: ep10, dstport: in0 } - { srcblk: replay0, srcport: out_2, dstblk: ep10, dstport: in0 }
- { srcblk: ep11, srcport: out0, dstblk: replay0, dstport: in_3 } - { srcblk: ep11, srcport: out0, dstblk: replay0, dstport: in_3 }
- { srcblk: replay0, srcport: out_3, dstblk: ep11, dstport: in0 } - { srcblk: replay0, srcport: out_3, dstblk: ep11, dstport: in0 }
- { srcblk: ep12, srcport: out0, dstblk: replay0, dstport: in_4 } - { srcblk: ep12, srcport: out0, dstblk: replay1, dstport: in_0 }
- { srcblk: replay0, srcport: out_4, dstblk: ep12, dstport: in0 } - { srcblk: replay1, srcport: out_0, dstblk: ep12, dstport: in0 }
- { srcblk: ep13, srcport: out0, dstblk: replay0, dstport: in_5 } - { srcblk: ep13, srcport: out0, dstblk: replay1, dstport: in_1 }
- { srcblk: replay0, srcport: out_5, dstblk: ep13, dstport: in0 } - { srcblk: replay1, srcport: out_1, dstblk: ep13, dstport: in0 }
- { srcblk: ep14, srcport: out0, dstblk: replay0, dstport: in_6 } - { srcblk: ep14, srcport: out0, dstblk: replay1, dstport: in_2 }
- { srcblk: replay0, srcport: out_6, dstblk: ep14, dstport: in0 } - { srcblk: replay1, srcport: out_2, dstblk: ep14, dstport: in0 }
- { srcblk: ep15, srcport: out0, dstblk: replay0, dstport: in_7 } - { srcblk: ep15, srcport: out0, dstblk: replay1, dstport: in_3 }
- { srcblk: replay0, srcport: out_7, dstblk: ep15, dstport: in0 } - { srcblk: replay1, srcport: out_3, dstblk: ep15, dstport: in0 }
# #
# BSP Connections # BSP Connections
- { srcblk: radio0, srcport: ctrlport, dstblk: _device_, dstport: ctrlport_radio0 } - { srcblk: radio0, srcport: ctrlport, dstblk: _device_, dstport: ctrlport_radio0 }
@@ -202,7 +208,8 @@ connections:
- { srcblk: _device_, srcport: radio1, dstblk: radio1, dstport: radio } - { srcblk: _device_, srcport: radio1, dstblk: radio1, dstport: radio }
- { srcblk: _device_, srcport: time0, dstblk: radio0, dstport: time } - { srcblk: _device_, srcport: time0, dstblk: radio0, dstport: time }
- { srcblk: _device_, srcport: time1, dstblk: radio1, dstport: time } - { srcblk: _device_, srcport: time1, dstblk: radio1, dstport: time }
- { srcblk: replay0, srcport: axi_ram, dstblk: _device_, dstport: dram } - { srcblk: replay0, srcport: axi_ram, dstblk: _device_, dstport: dram0 }
- { srcblk: replay1, srcport: axi_ram, dstblk: _device_, dstport: dram1 }
# A list of all clock domain connections in design # A list of all clock domain connections in design
# ------------------------------------------------ # ------------------------------------------------
@@ -215,3 +222,4 @@ clk_domains:
- { srcblk: _device_, srcport: radio0, dstblk: radio0, dstport: radio } - { srcblk: _device_, srcport: radio0, dstblk: radio0, dstport: radio }
- { srcblk: _device_, srcport: radio1, dstblk: radio1, dstport: radio } - { srcblk: _device_, srcport: radio1, dstblk: radio1, dstport: radio }
- { srcblk: _device_, srcport: dram, dstblk: replay0, dstport: mem } - { srcblk: _device_, srcport: dram, dstblk: replay0, dstport: mem }
- { srcblk: _device_, srcport: dram, dstblk: replay1, dstport: mem }
+8 -8
View File
@@ -23,11 +23,11 @@
04c202c0 04c202c0
030004c3 030004c3
04c30300 04c30300
034004c4 03400500
04c40340 05000340
038004c5 03800501
04c50380 05010380
03c004c6 03c00502
04c603c0 050203c0
040004c7 04000503
04c70400 05030400
+93 -47
View File
@@ -36,12 +36,12 @@ module rfnoc_image_core #(
input wire chdr_aclk, input wire chdr_aclk,
input wire ctrl_aclk, input wire ctrl_aclk,
input wire core_arst, input wire core_arst,
input wire ce_clk,
input wire radio0_clk, input wire radio0_clk,
input wire radio1_clk, input wire radio1_clk,
input wire radio0_2x_clk, input wire radio0_2x_clk,
input wire radio1_2x_clk, input wire radio1_2x_clk,
input wire dram_clk, input wire dram_clk,
input wire ce_clk,
// Basic // Basic
input wire [ 15:0] device_id, input wire [ 15:0] device_id,
@@ -87,52 +87,98 @@ module rfnoc_image_core #(
output wire [1023:0] radio_tx_data_radio1, output wire [1023:0] radio_tx_data_radio1,
input wire [ 31:0] radio_tx_stb_radio1, input wire [ 31:0] radio_tx_stb_radio1,
output wire [ 31:0] radio_tx_running_radio1, output wire [ 31:0] radio_tx_running_radio1,
// dram // dram0
input wire [ 0:0] axi_rst, input wire [ 0:0] dram0_axi_rst,
output wire [ 7:0] m_axi_awid, output wire [ 7:0] dram0_m_axi_awid,
output wire [ 383:0] m_axi_awaddr, output wire [ 383:0] dram0_m_axi_awaddr,
output wire [ 63:0] m_axi_awlen, output wire [ 63:0] dram0_m_axi_awlen,
output wire [ 23:0] m_axi_awsize, output wire [ 23:0] dram0_m_axi_awsize,
output wire [ 15:0] m_axi_awburst, output wire [ 15:0] dram0_m_axi_awburst,
output wire [ 7:0] m_axi_awlock, output wire [ 7:0] dram0_m_axi_awlock,
output wire [ 31:0] m_axi_awcache, output wire [ 31:0] dram0_m_axi_awcache,
output wire [ 23:0] m_axi_awprot, output wire [ 23:0] dram0_m_axi_awprot,
output wire [ 31:0] m_axi_awqos, output wire [ 31:0] dram0_m_axi_awqos,
output wire [ 31:0] m_axi_awregion, output wire [ 31:0] dram0_m_axi_awregion,
output wire [ 7:0] m_axi_awuser, output wire [ 7:0] dram0_m_axi_awuser,
output wire [ 7:0] m_axi_awvalid, output wire [ 7:0] dram0_m_axi_awvalid,
input wire [ 7:0] m_axi_awready, input wire [ 7:0] dram0_m_axi_awready,
output wire [4191:0] m_axi_wdata, output wire [4191:0] dram0_m_axi_wdata,
output wire [ 511:0] m_axi_wstrb, output wire [ 511:0] dram0_m_axi_wstrb,
output wire [ 7:0] m_axi_wlast, output wire [ 7:0] dram0_m_axi_wlast,
output wire [ 7:0] m_axi_wuser, output wire [ 7:0] dram0_m_axi_wuser,
output wire [ 7:0] m_axi_wvalid, output wire [ 7:0] dram0_m_axi_wvalid,
input wire [ 7:0] m_axi_wready, input wire [ 7:0] dram0_m_axi_wready,
input wire [ 7:0] m_axi_bid, input wire [ 7:0] dram0_m_axi_bid,
input wire [ 15:0] m_axi_bresp, input wire [ 15:0] dram0_m_axi_bresp,
input wire [ 7:0] m_axi_buser, input wire [ 7:0] dram0_m_axi_buser,
input wire [ 7:0] m_axi_bvalid, input wire [ 7:0] dram0_m_axi_bvalid,
output wire [ 7:0] m_axi_bready, output wire [ 7:0] dram0_m_axi_bready,
output wire [ 7:0] m_axi_arid, output wire [ 7:0] dram0_m_axi_arid,
output wire [ 383:0] m_axi_araddr, output wire [ 383:0] dram0_m_axi_araddr,
output wire [ 63:0] m_axi_arlen, output wire [ 63:0] dram0_m_axi_arlen,
output wire [ 23:0] m_axi_arsize, output wire [ 23:0] dram0_m_axi_arsize,
output wire [ 15:0] m_axi_arburst, output wire [ 15:0] dram0_m_axi_arburst,
output wire [ 7:0] m_axi_arlock, output wire [ 7:0] dram0_m_axi_arlock,
output wire [ 31:0] m_axi_arcache, output wire [ 31:0] dram0_m_axi_arcache,
output wire [ 31:0] m_axi_arprot, output wire [ 31:0] dram0_m_axi_arprot,
output wire [ 31:0] m_axi_arqos, output wire [ 31:0] dram0_m_axi_arqos,
output wire [ 31:0] m_axi_arregion, output wire [ 31:0] dram0_m_axi_arregion,
output wire [ 7:0] m_axi_aruser, output wire [ 7:0] dram0_m_axi_aruser,
output wire [ 7:0] m_axi_arvalid, output wire [ 7:0] dram0_m_axi_arvalid,
input wire [ 7:0] m_axi_arready, input wire [ 7:0] dram0_m_axi_arready,
input wire [ 7:0] m_axi_rid, input wire [ 7:0] dram0_m_axi_rid,
input wire [4191:0] m_axi_rdata, input wire [4191:0] dram0_m_axi_rdata,
input wire [ 15:0] m_axi_rresp, input wire [ 15:0] dram0_m_axi_rresp,
input wire [ 7:0] m_axi_rlast, input wire [ 7:0] dram0_m_axi_rlast,
input wire [ 7:0] m_axi_ruser, input wire [ 7:0] dram0_m_axi_ruser,
input wire [ 7:0] m_axi_rvalid, input wire [ 7:0] dram0_m_axi_rvalid,
output wire [ 7:0] m_axi_rready, output wire [ 7:0] dram0_m_axi_rready,
// dram1
input wire [ 0:0] dram1_axi_rst,
output wire [ 7:0] dram1_m_axi_awid,
output wire [ 383:0] dram1_m_axi_awaddr,
output wire [ 63:0] dram1_m_axi_awlen,
output wire [ 23:0] dram1_m_axi_awsize,
output wire [ 15:0] dram1_m_axi_awburst,
output wire [ 7:0] dram1_m_axi_awlock,
output wire [ 31:0] dram1_m_axi_awcache,
output wire [ 23:0] dram1_m_axi_awprot,
output wire [ 31:0] dram1_m_axi_awqos,
output wire [ 31:0] dram1_m_axi_awregion,
output wire [ 7:0] dram1_m_axi_awuser,
output wire [ 7:0] dram1_m_axi_awvalid,
input wire [ 7:0] dram1_m_axi_awready,
output wire [4191:0] dram1_m_axi_wdata,
output wire [ 511:0] dram1_m_axi_wstrb,
output wire [ 7:0] dram1_m_axi_wlast,
output wire [ 7:0] dram1_m_axi_wuser,
output wire [ 7:0] dram1_m_axi_wvalid,
input wire [ 7:0] dram1_m_axi_wready,
input wire [ 7:0] dram1_m_axi_bid,
input wire [ 15:0] dram1_m_axi_bresp,
input wire [ 7:0] dram1_m_axi_buser,
input wire [ 7:0] dram1_m_axi_bvalid,
output wire [ 7:0] dram1_m_axi_bready,
output wire [ 7:0] dram1_m_axi_arid,
output wire [ 383:0] dram1_m_axi_araddr,
output wire [ 63:0] dram1_m_axi_arlen,
output wire [ 23:0] dram1_m_axi_arsize,
output wire [ 15:0] dram1_m_axi_arburst,
output wire [ 7:0] dram1_m_axi_arlock,
output wire [ 31:0] dram1_m_axi_arcache,
output wire [ 31:0] dram1_m_axi_arprot,
output wire [ 31:0] dram1_m_axi_arqos,
output wire [ 31:0] dram1_m_axi_arregion,
output wire [ 7:0] dram1_m_axi_aruser,
output wire [ 7:0] dram1_m_axi_arvalid,
input wire [ 7:0] dram1_m_axi_arready,
input wire [ 7:0] dram1_m_axi_rid,
input wire [4191:0] dram1_m_axi_rdata,
input wire [ 15:0] dram1_m_axi_rresp,
input wire [ 7:0] dram1_m_axi_rlast,
input wire [ 7:0] dram1_m_axi_ruser,
input wire [ 7:0] dram1_m_axi_rvalid,
output wire [ 7:0] dram1_m_axi_rready,
// Transport Adapters /////////////// // Transport Adapters ///////////////
+255 -129
View File
@@ -421,9 +421,10 @@ module x4xx_core #(
`define DRAM_W 64 `define DRAM_W 64
`endif `endif
localparam DRAM_AXI_DWIDTH = `DRAM_W; localparam ENABLE_DRAM = (`DRAM_CH > 0 && `DRAM_BANKS > 0);
localparam ENABLE_DRAM = (`DRAM_CH > 0); localparam DRAM_AXI_DWIDTH = `DRAM_W;
localparam DRAM_NUM_PORTS = `DRAM_CH; localparam DRAM_NUM_BANKS = ENABLE_DRAM ? `DRAM_BANKS : 1;
localparam DRAM_PORTS_PER_BANK = ENABLE_DRAM ? `DRAM_CH / DRAM_NUM_BANKS : 1;
wire dram0_ui_clk; wire dram0_ui_clk;
wire dram0_ui_clk_sync_rst; wire dram0_ui_clk_sync_rst;
@@ -432,50 +433,91 @@ module x4xx_core #(
wire dram_rst = dram0_ui_clk_sync_rst; wire dram_rst = dram0_ui_clk_sync_rst;
wire sys_rst = rfnoc_chdr_rst; wire sys_rst = rfnoc_chdr_rst;
wire [ 32*DRAM_NUM_PORTS-1:0] dram_axi_araddr; wire [ 32*DRAM_PORTS_PER_BANK-1:0] dram0_axi_araddr;
wire [ 2*DRAM_NUM_PORTS-1:0] dram_axi_arburst; wire [ 2*DRAM_PORTS_PER_BANK-1:0] dram0_axi_arburst;
wire [ 4*DRAM_NUM_PORTS-1:0] dram_axi_arcache; wire [ 4*DRAM_PORTS_PER_BANK-1:0] dram0_axi_arcache;
wire [ 1*DRAM_NUM_PORTS-1:0] dram_axi_arid; wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram0_axi_arid;
wire [ 8*DRAM_NUM_PORTS-1:0] dram_axi_arlen; wire [ 8*DRAM_PORTS_PER_BANK-1:0] dram0_axi_arlen;
wire [ 1*DRAM_NUM_PORTS-1:0] dram_axi_arlock; wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram0_axi_arlock;
wire [ 3*DRAM_NUM_PORTS-1:0] dram_axi_arprot; wire [ 3*DRAM_PORTS_PER_BANK-1:0] dram0_axi_arprot;
wire [ 4*DRAM_NUM_PORTS-1:0] dram_axi_arqos; wire [ 4*DRAM_PORTS_PER_BANK-1:0] dram0_axi_arqos;
wire [ 1*DRAM_NUM_PORTS-1:0] dram_axi_arready; wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram0_axi_arready;
wire [ 4*DRAM_NUM_PORTS-1:0] dram_axi_arregion; wire [ 4*DRAM_PORTS_PER_BANK-1:0] dram0_axi_arregion;
wire [ 3*DRAM_NUM_PORTS-1:0] dram_axi_arsize; wire [ 3*DRAM_PORTS_PER_BANK-1:0] dram0_axi_arsize;
wire [ 1*DRAM_NUM_PORTS-1:0] dram_axi_arvalid; wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram0_axi_arvalid;
wire [ 32*DRAM_NUM_PORTS-1:0] dram_axi_awaddr; wire [ 32*DRAM_PORTS_PER_BANK-1:0] dram0_axi_awaddr;
wire [ 2*DRAM_NUM_PORTS-1:0] dram_axi_awburst; wire [ 2*DRAM_PORTS_PER_BANK-1:0] dram0_axi_awburst;
wire [ 4*DRAM_NUM_PORTS-1:0] dram_axi_awcache; wire [ 4*DRAM_PORTS_PER_BANK-1:0] dram0_axi_awcache;
wire [ 1*DRAM_NUM_PORTS-1:0] dram_axi_awid; wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram0_axi_awid;
wire [ 8*DRAM_NUM_PORTS-1:0] dram_axi_awlen; wire [ 8*DRAM_PORTS_PER_BANK-1:0] dram0_axi_awlen;
wire [ 1*DRAM_NUM_PORTS-1:0] dram_axi_awlock; wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram0_axi_awlock;
wire [ 3*DRAM_NUM_PORTS-1:0] dram_axi_awprot; wire [ 3*DRAM_PORTS_PER_BANK-1:0] dram0_axi_awprot;
wire [ 4*DRAM_NUM_PORTS-1:0] dram_axi_awqos; wire [ 4*DRAM_PORTS_PER_BANK-1:0] dram0_axi_awqos;
wire [ 1*DRAM_NUM_PORTS-1:0] dram_axi_awready; wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram0_axi_awready;
wire [ 4*DRAM_NUM_PORTS-1:0] dram_axi_awregion; wire [ 4*DRAM_PORTS_PER_BANK-1:0] dram0_axi_awregion;
wire [ 3*DRAM_NUM_PORTS-1:0] dram_axi_awsize; wire [ 3*DRAM_PORTS_PER_BANK-1:0] dram0_axi_awsize;
wire [ 1*DRAM_NUM_PORTS-1:0] dram_axi_awvalid; wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram0_axi_awvalid;
wire [ 1*DRAM_NUM_PORTS-1:0] dram_axi_bid; wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram0_axi_bid;
wire [ 1*DRAM_NUM_PORTS-1:0] dram_axi_bready; wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram0_axi_bready;
wire [ 2*DRAM_NUM_PORTS-1:0] dram_axi_bresp; wire [ 2*DRAM_PORTS_PER_BANK-1:0] dram0_axi_bresp;
wire [ 1*DRAM_NUM_PORTS-1:0] dram_axi_bvalid; wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram0_axi_bvalid;
wire [ DRAM_AXI_DWIDTH*DRAM_NUM_PORTS-1:0] dram_axi_rdata; wire [ DRAM_AXI_DWIDTH*DRAM_PORTS_PER_BANK-1:0] dram0_axi_rdata;
wire [ 1*DRAM_NUM_PORTS-1:0] dram_axi_rid; wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram0_axi_rid;
wire [ 1*DRAM_NUM_PORTS-1:0] dram_axi_rlast; wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram0_axi_rlast;
wire [ 1*DRAM_NUM_PORTS-1:0] dram_axi_rready; wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram0_axi_rready;
wire [ 2*DRAM_NUM_PORTS-1:0] dram_axi_rresp; wire [ 2*DRAM_PORTS_PER_BANK-1:0] dram0_axi_rresp;
wire [ 1*DRAM_NUM_PORTS-1:0] dram_axi_rvalid; wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram0_axi_rvalid;
wire [ DRAM_AXI_DWIDTH*DRAM_NUM_PORTS-1:0] dram_axi_wdata; wire [ DRAM_AXI_DWIDTH*DRAM_PORTS_PER_BANK-1:0] dram0_axi_wdata;
wire [ 1*DRAM_NUM_PORTS-1:0] dram_axi_wlast; wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram0_axi_wlast;
wire [ 1*DRAM_NUM_PORTS-1:0] dram_axi_wready; wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram0_axi_wready;
wire [DRAM_AXI_DWIDTH/8*DRAM_NUM_PORTS-1:0] dram_axi_wstrb; wire [DRAM_AXI_DWIDTH/8*DRAM_PORTS_PER_BANK-1:0] dram0_axi_wstrb;
wire [ 1*DRAM_NUM_PORTS-1:0] dram_axi_wvalid; wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram0_axi_wvalid;
wire [ 32*DRAM_PORTS_PER_BANK-1:0] dram1_axi_araddr;
wire [ 2*DRAM_PORTS_PER_BANK-1:0] dram1_axi_arburst;
wire [ 4*DRAM_PORTS_PER_BANK-1:0] dram1_axi_arcache;
wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram1_axi_arid;
wire [ 8*DRAM_PORTS_PER_BANK-1:0] dram1_axi_arlen;
wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram1_axi_arlock;
wire [ 3*DRAM_PORTS_PER_BANK-1:0] dram1_axi_arprot;
wire [ 4*DRAM_PORTS_PER_BANK-1:0] dram1_axi_arqos;
wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram1_axi_arready;
wire [ 4*DRAM_PORTS_PER_BANK-1:0] dram1_axi_arregion;
wire [ 3*DRAM_PORTS_PER_BANK-1:0] dram1_axi_arsize;
wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram1_axi_arvalid;
wire [ 32*DRAM_PORTS_PER_BANK-1:0] dram1_axi_awaddr;
wire [ 2*DRAM_PORTS_PER_BANK-1:0] dram1_axi_awburst;
wire [ 4*DRAM_PORTS_PER_BANK-1:0] dram1_axi_awcache;
wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram1_axi_awid;
wire [ 8*DRAM_PORTS_PER_BANK-1:0] dram1_axi_awlen;
wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram1_axi_awlock;
wire [ 3*DRAM_PORTS_PER_BANK-1:0] dram1_axi_awprot;
wire [ 4*DRAM_PORTS_PER_BANK-1:0] dram1_axi_awqos;
wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram1_axi_awready;
wire [ 4*DRAM_PORTS_PER_BANK-1:0] dram1_axi_awregion;
wire [ 3*DRAM_PORTS_PER_BANK-1:0] dram1_axi_awsize;
wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram1_axi_awvalid;
wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram1_axi_bid;
wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram1_axi_bready;
wire [ 2*DRAM_PORTS_PER_BANK-1:0] dram1_axi_bresp;
wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram1_axi_bvalid;
wire [ DRAM_AXI_DWIDTH*DRAM_PORTS_PER_BANK-1:0] dram1_axi_rdata;
wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram1_axi_rid;
wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram1_axi_rlast;
wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram1_axi_rready;
wire [ 2*DRAM_PORTS_PER_BANK-1:0] dram1_axi_rresp;
wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram1_axi_rvalid;
wire [ DRAM_AXI_DWIDTH*DRAM_PORTS_PER_BANK-1:0] dram1_axi_wdata;
wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram1_axi_wlast;
wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram1_axi_wready;
wire [DRAM_AXI_DWIDTH/8*DRAM_PORTS_PER_BANK-1:0] dram1_axi_wstrb;
wire [ 1*DRAM_PORTS_PER_BANK-1:0] dram1_axi_wvalid;
x4xx_dram #( x4xx_dram #(
.ENABLE_DRAM (ENABLE_DRAM), .ENABLE_DRAM (ENABLE_DRAM),
.AXI_DWIDTH (DRAM_AXI_DWIDTH), .AXI_DWIDTH (DRAM_AXI_DWIDTH),
.NUM_PORTS (DRAM_NUM_PORTS) .NUM_BANKS (DRAM_NUM_BANKS),
.PORTS_PER_BANK (DRAM_PORTS_PER_BANK)
) x4xx_dram_i ( ) x4xx_dram_i (
.sys_rst (sys_rst), .sys_rst (sys_rst),
.dram0_sys_clk_p (dram0_sys_clk_p), .dram0_sys_clk_p (dram0_sys_clk_p),
@@ -517,45 +559,84 @@ module x4xx_core #(
.dram_clk (dram_clk), .dram_clk (dram_clk),
.dram_rst (dram_rst), .dram_rst (dram_rst),
.dram_init_calib_complete (), .dram_init_calib_complete (),
.dram_axi_araddr (dram_axi_araddr), .dram0_axi_araddr (dram0_axi_araddr),
.dram_axi_arburst (dram_axi_arburst), .dram0_axi_arburst (dram0_axi_arburst),
.dram_axi_arcache (dram_axi_arcache), .dram0_axi_arcache (dram0_axi_arcache),
.dram_axi_arid (dram_axi_arid), .dram0_axi_arid (dram0_axi_arid),
.dram_axi_arlen (dram_axi_arlen), .dram0_axi_arlen (dram0_axi_arlen),
.dram_axi_arlock (dram_axi_arlock), .dram0_axi_arlock (dram0_axi_arlock),
.dram_axi_arprot (dram_axi_arprot), .dram0_axi_arprot (dram0_axi_arprot),
.dram_axi_arqos (dram_axi_arqos), .dram0_axi_arqos (dram0_axi_arqos),
.dram_axi_arready (dram_axi_arready), .dram0_axi_arready (dram0_axi_arready),
.dram_axi_arregion (dram_axi_arregion), .dram0_axi_arregion (dram0_axi_arregion),
.dram_axi_arsize (dram_axi_arsize), .dram0_axi_arsize (dram0_axi_arsize),
.dram_axi_arvalid (dram_axi_arvalid), .dram0_axi_arvalid (dram0_axi_arvalid),
.dram_axi_awaddr (dram_axi_awaddr), .dram0_axi_awaddr (dram0_axi_awaddr),
.dram_axi_awburst (dram_axi_awburst), .dram0_axi_awburst (dram0_axi_awburst),
.dram_axi_awcache (dram_axi_awcache), .dram0_axi_awcache (dram0_axi_awcache),
.dram_axi_awid (dram_axi_awid), .dram0_axi_awid (dram0_axi_awid),
.dram_axi_awlen (dram_axi_awlen), .dram0_axi_awlen (dram0_axi_awlen),
.dram_axi_awlock (dram_axi_awlock), .dram0_axi_awlock (dram0_axi_awlock),
.dram_axi_awprot (dram_axi_awprot), .dram0_axi_awprot (dram0_axi_awprot),
.dram_axi_awqos (dram_axi_awqos), .dram0_axi_awqos (dram0_axi_awqos),
.dram_axi_awready (dram_axi_awready), .dram0_axi_awready (dram0_axi_awready),
.dram_axi_awregion (dram_axi_awregion), .dram0_axi_awregion (dram0_axi_awregion),
.dram_axi_awsize (dram_axi_awsize), .dram0_axi_awsize (dram0_axi_awsize),
.dram_axi_awvalid (dram_axi_awvalid), .dram0_axi_awvalid (dram0_axi_awvalid),
.dram_axi_bid (dram_axi_bid), .dram0_axi_bid (dram0_axi_bid),
.dram_axi_bready (dram_axi_bready), .dram0_axi_bready (dram0_axi_bready),
.dram_axi_bresp (dram_axi_bresp), .dram0_axi_bresp (dram0_axi_bresp),
.dram_axi_bvalid (dram_axi_bvalid), .dram0_axi_bvalid (dram0_axi_bvalid),
.dram_axi_rdata (dram_axi_rdata), .dram0_axi_rdata (dram0_axi_rdata),
.dram_axi_rid (dram_axi_rid), .dram0_axi_rid (dram0_axi_rid),
.dram_axi_rlast (dram_axi_rlast), .dram0_axi_rlast (dram0_axi_rlast),
.dram_axi_rready (dram_axi_rready), .dram0_axi_rready (dram0_axi_rready),
.dram_axi_rresp (dram_axi_rresp), .dram0_axi_rresp (dram0_axi_rresp),
.dram_axi_rvalid (dram_axi_rvalid), .dram0_axi_rvalid (dram0_axi_rvalid),
.dram_axi_wdata (dram_axi_wdata), .dram0_axi_wdata (dram0_axi_wdata),
.dram_axi_wlast (dram_axi_wlast), .dram0_axi_wlast (dram0_axi_wlast),
.dram_axi_wready (dram_axi_wready), .dram0_axi_wready (dram0_axi_wready),
.dram_axi_wstrb (dram_axi_wstrb), .dram0_axi_wstrb (dram0_axi_wstrb),
.dram_axi_wvalid (dram_axi_wvalid) .dram0_axi_wvalid (dram0_axi_wvalid),
.dram1_axi_araddr (dram1_axi_araddr),
.dram1_axi_arburst (dram1_axi_arburst),
.dram1_axi_arcache (dram1_axi_arcache),
.dram1_axi_arid (dram1_axi_arid),
.dram1_axi_arlen (dram1_axi_arlen),
.dram1_axi_arlock (dram1_axi_arlock),
.dram1_axi_arprot (dram1_axi_arprot),
.dram1_axi_arqos (dram1_axi_arqos),
.dram1_axi_arready (dram1_axi_arready),
.dram1_axi_arregion (dram1_axi_arregion),
.dram1_axi_arsize (dram1_axi_arsize),
.dram1_axi_arvalid (dram1_axi_arvalid),
.dram1_axi_awaddr (dram1_axi_awaddr),
.dram1_axi_awburst (dram1_axi_awburst),
.dram1_axi_awcache (dram1_axi_awcache),
.dram1_axi_awid (dram1_axi_awid),
.dram1_axi_awlen (dram1_axi_awlen),
.dram1_axi_awlock (dram1_axi_awlock),
.dram1_axi_awprot (dram1_axi_awprot),
.dram1_axi_awqos (dram1_axi_awqos),
.dram1_axi_awready (dram1_axi_awready),
.dram1_axi_awregion (dram1_axi_awregion),
.dram1_axi_awsize (dram1_axi_awsize),
.dram1_axi_awvalid (dram1_axi_awvalid),
.dram1_axi_bid (dram1_axi_bid),
.dram1_axi_bready (dram1_axi_bready),
.dram1_axi_bresp (dram1_axi_bresp),
.dram1_axi_bvalid (dram1_axi_bvalid),
.dram1_axi_rdata (dram1_axi_rdata),
.dram1_axi_rid (dram1_axi_rid),
.dram1_axi_rlast (dram1_axi_rlast),
.dram1_axi_rready (dram1_axi_rready),
.dram1_axi_rresp (dram1_axi_rresp),
.dram1_axi_rvalid (dram1_axi_rvalid),
.dram1_axi_wdata (dram1_axi_wdata),
.dram1_axi_wlast (dram1_axi_wlast),
.dram1_axi_wready (dram1_axi_wready),
.dram1_axi_wstrb (dram1_axi_wstrb),
.dram1_axi_wvalid (dram1_axi_wvalid)
); );
@@ -662,51 +743,96 @@ module x4xx_core #(
`else `else
.radio_time (radio_time[0*64+:64]), .radio_time (radio_time[0*64+:64]),
`endif `endif
.axi_rst (dram_rst), .dram0_axi_rst (dram_rst),
.m_axi_awid (dram_axi_awid), .dram0_m_axi_awid (dram0_axi_awid),
.m_axi_awaddr (dram_axi_awaddr), .dram0_m_axi_awaddr (dram0_axi_awaddr),
.m_axi_awlen (dram_axi_awlen), .dram0_m_axi_awlen (dram0_axi_awlen),
.m_axi_awsize (dram_axi_awsize), .dram0_m_axi_awsize (dram0_axi_awsize),
.m_axi_awburst (dram_axi_awburst), .dram0_m_axi_awburst (dram0_axi_awburst),
.m_axi_awlock (dram_axi_awlock), .dram0_m_axi_awlock (dram0_axi_awlock),
.m_axi_awcache (dram_axi_awcache), .dram0_m_axi_awcache (dram0_axi_awcache),
.m_axi_awprot (dram_axi_awprot), .dram0_m_axi_awprot (dram0_axi_awprot),
.m_axi_awqos (dram_axi_awqos), .dram0_m_axi_awqos (dram0_axi_awqos),
.m_axi_awregion (dram_axi_awregion), .dram0_m_axi_awregion (dram0_axi_awregion),
.m_axi_awuser (), .dram0_m_axi_awuser (),
.m_axi_awvalid (dram_axi_awvalid), .dram0_m_axi_awvalid (dram0_axi_awvalid),
.m_axi_awready (dram_axi_awready), .dram0_m_axi_awready (dram0_axi_awready),
.m_axi_wdata (dram_axi_wdata), .dram0_m_axi_wdata (dram0_axi_wdata),
.m_axi_wstrb (dram_axi_wstrb), .dram0_m_axi_wstrb (dram0_axi_wstrb),
.m_axi_wlast (dram_axi_wlast), .dram0_m_axi_wlast (dram0_axi_wlast),
.m_axi_wuser (), .dram0_m_axi_wuser (),
.m_axi_wvalid (dram_axi_wvalid), .dram0_m_axi_wvalid (dram0_axi_wvalid),
.m_axi_wready (dram_axi_wready), .dram0_m_axi_wready (dram0_axi_wready),
.m_axi_bid (dram_axi_bid), .dram0_m_axi_bid (dram0_axi_bid),
.m_axi_bresp (dram_axi_bresp), .dram0_m_axi_bresp (dram0_axi_bresp),
.m_axi_buser (0), .dram0_m_axi_buser (0),
.m_axi_bvalid (dram_axi_bvalid), .dram0_m_axi_bvalid (dram0_axi_bvalid),
.m_axi_bready (dram_axi_bready), .dram0_m_axi_bready (dram0_axi_bready),
.m_axi_arid (dram_axi_arid), .dram0_m_axi_arid (dram0_axi_arid),
.m_axi_araddr (dram_axi_araddr), .dram0_m_axi_araddr (dram0_axi_araddr),
.m_axi_arlen (dram_axi_arlen), .dram0_m_axi_arlen (dram0_axi_arlen),
.m_axi_arsize (dram_axi_arsize), .dram0_m_axi_arsize (dram0_axi_arsize),
.m_axi_arburst (dram_axi_arburst), .dram0_m_axi_arburst (dram0_axi_arburst),
.m_axi_arlock (dram_axi_arlock), .dram0_m_axi_arlock (dram0_axi_arlock),
.m_axi_arcache (dram_axi_arcache), .dram0_m_axi_arcache (dram0_axi_arcache),
.m_axi_arprot (dram_axi_arprot), .dram0_m_axi_arprot (dram0_axi_arprot),
.m_axi_arqos (dram_axi_arqos), .dram0_m_axi_arqos (dram0_axi_arqos),
.m_axi_arregion (dram_axi_arregion), .dram0_m_axi_arregion (dram0_axi_arregion),
.m_axi_aruser (), .dram0_m_axi_aruser (),
.m_axi_arvalid (dram_axi_arvalid), .dram0_m_axi_arvalid (dram0_axi_arvalid),
.m_axi_arready (dram_axi_arready), .dram0_m_axi_arready (dram0_axi_arready),
.m_axi_rid (dram_axi_rid), .dram0_m_axi_rid (dram0_axi_rid),
.m_axi_rdata (dram_axi_rdata), .dram0_m_axi_rdata (dram0_axi_rdata),
.m_axi_rresp (dram_axi_rresp), .dram0_m_axi_rresp (dram0_axi_rresp),
.m_axi_rlast (dram_axi_rlast), .dram0_m_axi_rlast (dram0_axi_rlast),
.m_axi_ruser (0), .dram0_m_axi_ruser (0),
.m_axi_rvalid (dram_axi_rvalid), .dram0_m_axi_rvalid (dram0_axi_rvalid),
.m_axi_rready (dram_axi_rready), .dram0_m_axi_rready (dram0_axi_rready),
.dram1_axi_rst (dram_rst),
.dram1_m_axi_awid (dram1_axi_awid),
.dram1_m_axi_awaddr (dram1_axi_awaddr),
.dram1_m_axi_awlen (dram1_axi_awlen),
.dram1_m_axi_awsize (dram1_axi_awsize),
.dram1_m_axi_awburst (dram1_axi_awburst),
.dram1_m_axi_awlock (dram1_axi_awlock),
.dram1_m_axi_awcache (dram1_axi_awcache),
.dram1_m_axi_awprot (dram1_axi_awprot),
.dram1_m_axi_awqos (dram1_axi_awqos),
.dram1_m_axi_awregion (dram1_axi_awregion),
.dram1_m_axi_awuser (),
.dram1_m_axi_awvalid (dram1_axi_awvalid),
.dram1_m_axi_awready (dram1_axi_awready),
.dram1_m_axi_wdata (dram1_axi_wdata),
.dram1_m_axi_wstrb (dram1_axi_wstrb),
.dram1_m_axi_wlast (dram1_axi_wlast),
.dram1_m_axi_wuser (),
.dram1_m_axi_wvalid (dram1_axi_wvalid),
.dram1_m_axi_wready (dram1_axi_wready),
.dram1_m_axi_bid (dram1_axi_bid),
.dram1_m_axi_bresp (dram1_axi_bresp),
.dram1_m_axi_buser (0),
.dram1_m_axi_bvalid (dram1_axi_bvalid),
.dram1_m_axi_bready (dram1_axi_bready),
.dram1_m_axi_arid (dram1_axi_arid),
.dram1_m_axi_araddr (dram1_axi_araddr),
.dram1_m_axi_arlen (dram1_axi_arlen),
.dram1_m_axi_arsize (dram1_axi_arsize),
.dram1_m_axi_arburst (dram1_axi_arburst),
.dram1_m_axi_arlock (dram1_axi_arlock),
.dram1_m_axi_arcache (dram1_axi_arcache),
.dram1_m_axi_arprot (dram1_axi_arprot),
.dram1_m_axi_arqos (dram1_axi_arqos),
.dram1_m_axi_arregion (dram1_axi_arregion),
.dram1_m_axi_aruser (),
.dram1_m_axi_arvalid (dram1_axi_arvalid),
.dram1_m_axi_arready (dram1_axi_arready),
.dram1_m_axi_rid (dram1_axi_rid),
.dram1_m_axi_rdata (dram1_axi_rdata),
.dram1_m_axi_rresp (dram1_axi_rresp),
.dram1_m_axi_rlast (dram1_axi_rlast),
.dram1_m_axi_ruser (0),
.dram1_m_axi_rvalid (dram1_axi_rvalid),
.dram1_m_axi_rready (dram1_axi_rready),
.s_eth0_tdata (e2v_tdata [0*ENET_W +: ENET0_W]), .s_eth0_tdata (e2v_tdata [0*ENET_W +: ENET0_W]),
.s_eth0_tlast (e2v_tlast [0* 1 +: 1]), .s_eth0_tlast (e2v_tlast [0* 1 +: 1]),
.s_eth0_tvalid (e2v_tvalid [0* 1 +: 1]), .s_eth0_tvalid (e2v_tvalid [0* 1 +: 1]),
+1767 -1699
View File
File diff suppressed because it is too large Load Diff