fpga: Use PROTOVER and CHDR_W from RFNoC image builder
This updates all RFNoC devices so that they get the RFNoC protocol version and CHDR width in the same way, from the output generated by the RFNoC image builder. Original-commit: 6f038dc2f69b38e715206b2e700fdd3a1bbc638e
This commit is contained in:
+6
-6
@@ -34,12 +34,12 @@ XQ_DEFS=SFP0_WR=1 QSFP_10GBE=1 USE_REPLAY=1 BUILD_WR=1 BUILD_10G=1
|
||||
AQ_DEFS=SFP0_10GBE=1 SFP1_10GBE=1 QSFP_AURORA=1 USE_REPLAY=1 BUILD_10G=1 BUILD_AURORA=1 QSFP_LANES=4 $(OPTIONS)
|
||||
|
||||
# Defaults specific to the various targets:
|
||||
N300_DEFAULTS:=DEFAULT_RFNOC_IMAGE_CORE_FILE=n300_rfnoc_image_core.v DEFAULT_EDGE_FILE=$(abspath n300_static_router.hex)
|
||||
N310_DEFAULTS:=DEFAULT_RFNOC_IMAGE_CORE_FILE=n310_rfnoc_image_core.v DEFAULT_EDGE_FILE=$(abspath n310_static_router.hex)
|
||||
N320_DEFAULTS:=DEFAULT_RFNOC_IMAGE_CORE_FILE=n320_rfnoc_image_core.v DEFAULT_EDGE_FILE=$(abspath n320_static_router.hex)
|
||||
N300AA_DEFAULTS:=DEFAULT_RFNOC_IMAGE_CORE_FILE=n300_bist_image_core.v DEFAULT_EDGE_FILE=$(abspath n300_bist_static_router.hex)
|
||||
N310AA_DEFAULTS:=DEFAULT_RFNOC_IMAGE_CORE_FILE=n310_bist_image_core.v DEFAULT_EDGE_FILE=$(abspath n310_bist_static_router.hex)
|
||||
N320AA_DEFAULTS:=DEFAULT_RFNOC_IMAGE_CORE_FILE=n320_bist_image_core.v DEFAULT_EDGE_FILE=$(abspath n320_bist_static_router.hex)
|
||||
N300_DEFAULTS:=DEFAULT_RFNOC_IMAGE_CORE_FILE=$(abspath n300_rfnoc_image_core.v) DEFAULT_EDGE_FILE=$(abspath n300_static_router.hex)
|
||||
N310_DEFAULTS:=DEFAULT_RFNOC_IMAGE_CORE_FILE=$(abspath n310_rfnoc_image_core.v) DEFAULT_EDGE_FILE=$(abspath n310_static_router.hex)
|
||||
N320_DEFAULTS:=DEFAULT_RFNOC_IMAGE_CORE_FILE=$(abspath n320_rfnoc_image_core.v) DEFAULT_EDGE_FILE=$(abspath n320_static_router.hex)
|
||||
N300AA_DEFAULTS:=DEFAULT_RFNOC_IMAGE_CORE_FILE=$(abspath n300_bist_image_core.v) DEFAULT_EDGE_FILE=$(abspath n300_bist_static_router.hex)
|
||||
N310AA_DEFAULTS:=DEFAULT_RFNOC_IMAGE_CORE_FILE=$(abspath n310_bist_image_core.v) DEFAULT_EDGE_FILE=$(abspath n310_bist_static_router.hex)
|
||||
N320AA_DEFAULTS:=DEFAULT_RFNOC_IMAGE_CORE_FILE=$(abspath n320_bist_image_core.v) DEFAULT_EDGE_FILE=$(abspath n320_bist_static_router.hex)
|
||||
|
||||
# Set build option (check RTL, run synthesis, or do a full build)
|
||||
ifndef TARGET
|
||||
|
||||
@@ -142,13 +142,14 @@ $(RFNOC_BLOCK_RADIO_SRCS) \
|
||||
$(RFNOC_BLOCK_REPLAY_SRCS)
|
||||
|
||||
EDGE_TBL_DEF="RFNOC_EDGE_TBL_FILE=$(call RESOLVE_PATH,$(EDGE_FILE))"
|
||||
IMAGE_CORE_DEF="RFNOC_IMAGE_CORE_HDR=$(call RESOLVE_PATH,$(IMAGE_CORE:.v=.vh))"
|
||||
|
||||
##################################################
|
||||
# Dependency Targets
|
||||
##################################################
|
||||
.SECONDEXPANSION:
|
||||
|
||||
VERILOG_DEFS=$(EXTRA_DEFS) $(CUSTOM_DEFS) $(GIT_HASH_VERILOG_DEF) $(EDGE_TBL_DEF)
|
||||
VERILOG_DEFS=$(EXTRA_DEFS) $(CUSTOM_DEFS) $(GIT_HASH_VERILOG_DEF) $(EDGE_TBL_DEF) $(IMAGE_CORE_DEF)
|
||||
|
||||
# DESIGN_SRCS and VERILOG_DEFS must be defined
|
||||
bin: .prereqs $$(DESIGN_SRCS) ip
|
||||
|
||||
@@ -315,6 +315,22 @@ module n3xx (
|
||||
`endif
|
||||
);
|
||||
|
||||
// Include the RFNoC image core header file
|
||||
`ifdef RFNOC_IMAGE_CORE_HDR
|
||||
`include `"`RFNOC_IMAGE_CORE_HDR`"
|
||||
`else
|
||||
ERROR_RFNOC_IMAGE_CORE_HDR_not_defined();
|
||||
`define CHDR_WIDTH 64
|
||||
`define RFNOC_PROTOVER { 8'd1, 8'd0 }
|
||||
`endif
|
||||
localparam CHDR_W = `CHDR_WIDTH;
|
||||
localparam RFNOC_PROTOVER = `RFNOC_PROTOVER;
|
||||
|
||||
// This USRP currently only supports 64-bit CHDR width
|
||||
if (CHDR_W != 64) begin : gen_chdr_w_error
|
||||
CHDR_W_must_be_64_for_this_USRP();
|
||||
end
|
||||
|
||||
localparam N_AXILITE_SLAVES = 4;
|
||||
localparam REG_AWIDTH = 14; // log2(0x4000)
|
||||
localparam QSFP_REG_AWIDTH = 17; // log2(0x20000)
|
||||
@@ -332,7 +348,6 @@ module n3xx (
|
||||
localparam NUM_DBOARDS = 1;
|
||||
`endif
|
||||
localparam NUM_CHANNELS = NUM_RADIOS * NUM_CHANNELS_PER_RADIO;
|
||||
localparam [15:0] RFNOC_PROTOVER = {8'd1, 8'd0};
|
||||
|
||||
// Internal connections to PS
|
||||
// HP0 -- High Performance port 0, FPGA is the master
|
||||
@@ -3517,6 +3532,8 @@ module n3xx (
|
||||
.NUM_CHANNELS_PER_RADIO(NUM_CHANNELS_PER_RADIO),
|
||||
.NUM_CHANNELS(NUM_CHANNELS),
|
||||
.NUM_DBOARDS(NUM_DBOARDS),
|
||||
.CHDR_W(CHDR_W),
|
||||
.RFNOC_PROTOVER(RFNOC_PROTOVER),
|
||||
`ifdef USE_REPLAY
|
||||
.USE_REPLAY(1)
|
||||
`else
|
||||
|
||||
@@ -307,6 +307,22 @@ module n3xx (
|
||||
output DBB_LED_TX
|
||||
);
|
||||
|
||||
// Include the RFNoC image core header file
|
||||
`ifdef RFNOC_IMAGE_CORE_HDR
|
||||
`include `"`RFNOC_IMAGE_CORE_HDR`"
|
||||
`else
|
||||
ERROR_RFNOC_IMAGE_CORE_HDR_not_defined();
|
||||
`define CHDR_WIDTH 64
|
||||
`define RFNOC_PROTOVER { 8'd1, 8'd0 }
|
||||
`endif
|
||||
localparam CHDR_W = `CHDR_WIDTH;
|
||||
localparam RFNOC_PROTOVER = `RFNOC_PROTOVER;
|
||||
|
||||
// This USRP currently only supports 64-bit CHDR width
|
||||
if (CHDR_W != 64) begin : gen_chdr_w_error
|
||||
CHDR_W_must_be_64_for_this_USRP();
|
||||
end
|
||||
|
||||
localparam N_AXILITE_SLAVES = 4;
|
||||
localparam REG_AWIDTH = 14; // log2(0x4000)
|
||||
localparam QSFP_REG_AWIDTH = 17; // log2(0x20000)
|
||||
@@ -320,7 +336,6 @@ module n3xx (
|
||||
localparam NUM_CHANNELS = NUM_RADIOS * NUM_CHANNELS_PER_RADIO;
|
||||
localparam CHANNEL_WIDTH = 32;
|
||||
|
||||
|
||||
// Internal connections to PS
|
||||
// HP0 -- High Performance port 0, FPGA is the master
|
||||
wire [31:0] S_AXI_HP0_AWADDR;
|
||||
@@ -3447,6 +3462,8 @@ module n3xx (
|
||||
.NUM_DBOARDS(NUM_DBOARDS),
|
||||
.NUM_SPI_PER_DBOARD(4),
|
||||
.USE_CORRECTION(1),
|
||||
.CHDR_W(CHDR_W),
|
||||
.RFNOC_PROTOVER(RFNOC_PROTOVER),
|
||||
`ifdef USE_REPLAY
|
||||
.USE_REPLAY(1)
|
||||
`else
|
||||
|
||||
@@ -26,8 +26,8 @@ module n3xx_core #(
|
||||
parameter USE_CORRECTION = 0,
|
||||
parameter USE_REPLAY = 0, // 1 for Replay block instead of DMA FIFO
|
||||
parameter FP_GPIO_WIDTH = 12, // Front panel GPIO width
|
||||
parameter RFNOC_PROTOVER = {8'd1, 8'd0},
|
||||
parameter CHDR_WIDTH = 16'd64
|
||||
parameter CHDR_W = 64,
|
||||
parameter RFNOC_PROTOVER = {8'd1, 8'd0}
|
||||
)(
|
||||
// Clocks and resets
|
||||
input radio_clk,
|
||||
@@ -535,7 +535,7 @@ module n3xx_core #(
|
||||
cp_glob_resp_data <= {16'd0, device_id};
|
||||
|
||||
REG_RFNOC_INFO:
|
||||
cp_glob_resp_data <= {CHDR_WIDTH[15:0], RFNOC_PROTOVER[15:0]};
|
||||
cp_glob_resp_data <= {CHDR_W[15:0], RFNOC_PROTOVER[15:0]};
|
||||
|
||||
REG_COMPAT_NUM:
|
||||
cp_glob_resp_data <= {COMPAT_MAJOR, COMPAT_MINOR};
|
||||
@@ -1118,7 +1118,8 @@ module n3xx_core #(
|
||||
|
||||
|
||||
rfnoc_image_core #(
|
||||
.PROTOVER(RFNOC_PROTOVER)
|
||||
.CHDR_W (CHDR_W),
|
||||
.PROTOVER (RFNOC_PROTOVER)
|
||||
) rfnoc_sandbox_i (
|
||||
.chdr_aclk (bus_clk ),
|
||||
.ctrl_aclk (clk40 ),
|
||||
|
||||
Reference in New Issue
Block a user