fpga: rfnoc: Add clock info to backend ifc
- Adds 6 bits each for an identifier for timebase and control clock - Update all mako templates accordingly Original-commit: 58c0276ff1ceaf825d7cbffbab5016ddef9a5cd9
This commit is contained in:
@@ -7,6 +7,15 @@
|
|||||||
// Description:
|
// Description:
|
||||||
// A noc_shell interface to the backend infrastructure
|
// A noc_shell interface to the backend infrastructure
|
||||||
//
|
//
|
||||||
|
// Parameters:
|
||||||
|
// - CTRL_CLK_IDX: The index of the clock that is used for the control interface.
|
||||||
|
// UHD will query this to generate a clock interface object for
|
||||||
|
// the register interface. Set to 0 to let UHD figure this out
|
||||||
|
// itself.
|
||||||
|
// - TB_CLK_IDX: The index of the clock that is used as the timebase for this
|
||||||
|
// block. UHD will query this to generate a clock interface object
|
||||||
|
// for the register interface. This allows converting real-valued
|
||||||
|
// timestamps into tick counts.
|
||||||
|
|
||||||
module backend_iface #(
|
module backend_iface #(
|
||||||
parameter [31:0] NOC_ID = 32'h0,
|
parameter [31:0] NOC_ID = 32'h0,
|
||||||
@@ -14,6 +23,8 @@ module backend_iface #(
|
|||||||
parameter [5:0] NUM_DATA_O = 0,
|
parameter [5:0] NUM_DATA_O = 0,
|
||||||
parameter [5:0] CTRL_FIFOSIZE = 0,
|
parameter [5:0] CTRL_FIFOSIZE = 0,
|
||||||
parameter [7:0] CTRL_MAX_ASYNC_MSGS = 0,
|
parameter [7:0] CTRL_MAX_ASYNC_MSGS = 0,
|
||||||
|
parameter [5:0] CTRL_CLK_IDX = 6'h3F,
|
||||||
|
parameter [5:0] TB_CLK_IDX = 6'h3F,
|
||||||
parameter [5:0] MTU = 0
|
parameter [5:0] MTU = 0
|
||||||
)(
|
)(
|
||||||
// Input clock
|
// Input clock
|
||||||
@@ -135,6 +146,8 @@ module backend_iface #(
|
|||||||
assign rfnoc_core_status[BES_FLUSH_ACTIVE_OFFSET +:BES_FLUSH_ACTIVE_WIDTH ] = flush_active_ctclk;
|
assign rfnoc_core_status[BES_FLUSH_ACTIVE_OFFSET +:BES_FLUSH_ACTIVE_WIDTH ] = flush_active_ctclk;
|
||||||
assign rfnoc_core_status[BES_FLUSH_DONE_OFFSET +:BES_FLUSH_DONE_WIDTH ] = flush_done_ctclk;
|
assign rfnoc_core_status[BES_FLUSH_DONE_OFFSET +:BES_FLUSH_DONE_WIDTH ] = flush_done_ctclk;
|
||||||
assign rfnoc_core_status[BES_DATA_MTU_OFFSET +:BES_DATA_MTU_WIDTH ] = MTU;
|
assign rfnoc_core_status[BES_DATA_MTU_OFFSET +:BES_DATA_MTU_WIDTH ] = MTU;
|
||||||
|
assign rfnoc_core_status[BES_CTRL_CLK_IDX_OFFSET +:BES_CTRL_CLK_IDX_WIDTH ] = CTRL_CLK_IDX;
|
||||||
|
assign rfnoc_core_status[BES_TB_CLK_IDX_OFFSET +:BES_TB_CLK_IDX_WIDTH ] = TB_CLK_IDX;
|
||||||
// Assign the rest to 0
|
// Assign the rest to 0
|
||||||
assign rfnoc_core_status[511:BES_TOTAL_WIDTH] = {(512-BES_TOTAL_WIDTH){1'b0}};
|
assign rfnoc_core_status[511:BES_TOTAL_WIDTH] = {(512-BES_TOTAL_WIDTH){1'b0}};
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,11 @@ localparam BES_FLUSH_DONE_OFFSET = BES_FLUSH_ACTIVE_OFFSET + BES_FLUSH_
|
|||||||
localparam BES_FLUSH_DONE_WIDTH = 1;
|
localparam BES_FLUSH_DONE_WIDTH = 1;
|
||||||
localparam BES_DATA_MTU_OFFSET = BES_FLUSH_DONE_OFFSET + BES_FLUSH_DONE_WIDTH;
|
localparam BES_DATA_MTU_OFFSET = BES_FLUSH_DONE_OFFSET + BES_FLUSH_DONE_WIDTH;
|
||||||
localparam BES_DATA_MTU_WIDTH = 6;
|
localparam BES_DATA_MTU_WIDTH = 6;
|
||||||
localparam BES_TOTAL_WIDTH = BES_DATA_MTU_OFFSET + BES_DATA_MTU_WIDTH;
|
localparam BES_CTRL_CLK_IDX_OFFSET = BES_DATA_MTU_OFFSET + BES_DATA_MTU_WIDTH;
|
||||||
|
localparam BES_CTRL_CLK_IDX_WIDTH = 6;
|
||||||
|
localparam BES_TB_CLK_IDX_OFFSET = BES_CTRL_CLK_IDX_OFFSET + BES_CTRL_CLK_IDX_WIDTH;
|
||||||
|
localparam BES_TB_CLK_IDX_WIDTH = 6;
|
||||||
|
localparam BES_TOTAL_WIDTH = BES_TB_CLK_IDX_OFFSET + BES_TB_CLK_IDX_WIDTH;
|
||||||
|
|
||||||
// Protocol version for this definition
|
// Protocol version for this definition
|
||||||
localparam [5:0] BACKEND_PROTO_VER = 6'd1;
|
localparam [5:0] BACKEND_PROTO_VER = 6'd1;
|
||||||
Reference in New Issue
Block a user