x4xx: Add support for auto clock ID

- Update X410 and X440 BSP YAML files to properly index clocks
- Update image core files to declare clock indices
- Update get_clocks() in MPM to return the correct values

This does not include changes to the x400_radio_control block registry.
This change by itself will thus not change behaviour.


Original-commit: f215af2ccde6420b685b4ca493c8bd71d28781cb
This commit is contained in:
Martin Braun
2023-10-20 07:30:16 -05:00
committed by Wade Fife
parent dbabc04cd9
commit 2c5a2f5974
18 changed files with 90 additions and 0 deletions
+4
View File
@@ -1137,6 +1137,8 @@ module rfnoc_image_core #(
.NUM_PORTS (2),
.NIPC (RADIO_NIPC),
.ITEM_W (32),
.CTRL_CLK_IDX (1),
.TB_CLK_IDX (4),
.MTU (BLOCK_MTU)
) b_radio0_2 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
@@ -1310,6 +1312,8 @@ module rfnoc_image_core #(
.NUM_PORTS (2),
.NIPC (RADIO_NIPC),
.ITEM_W (32),
.CTRL_CLK_IDX (1),
.TB_CLK_IDX (4),
.MTU (BLOCK_MTU)
) b_radio1_5 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
+6
View File
@@ -63,6 +63,10 @@ noc_blocks:
parameters:
NUM_PORTS: 2
NIPC: RADIO_NIPC
ctrl_clock: _device_.rfnoc_ctrl # The clock that is used for the control
# interface. This is the default clock,
# so we could skip it.
timebase_clock: _device_.radio # The clock that is used for the timebase.
duc1:
block_desc: 'duc.yml'
parameters:
@@ -76,6 +80,8 @@ noc_blocks:
parameters:
NUM_PORTS: 2
NIPC: RADIO_NIPC
ctrl_clock: _device_.rfnoc_ctrl
timebase_clock: _device_.radio
replay0:
block_desc: 'replay.yml'
parameters:
+4
View File
@@ -1031,6 +1031,8 @@ module rfnoc_image_core #(
.NUM_PORTS (2),
.NIPC (RADIO_NIPC),
.ITEM_W (32),
.CTRL_CLK_IDX (1),
.TB_CLK_IDX (4),
.MTU (BLOCK_MTU)
) b_radio0_0 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
@@ -1114,6 +1116,8 @@ module rfnoc_image_core #(
.NUM_PORTS (2),
.NIPC (RADIO_NIPC),
.ITEM_W (32),
.CTRL_CLK_IDX (1),
.TB_CLK_IDX (4),
.MTU (BLOCK_MTU)
) b_radio1_1 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
+6
View File
@@ -55,11 +55,17 @@ noc_blocks:
parameters:
NUM_PORTS: 2
NIPC: RADIO_NIPC
ctrl_clock: _device_.rfnoc_ctrl # The clock that is used for the control
# interface. This is the default clock,
# so we could skip it.
timebase_clock: _device_.radio # The clock that is used for the timebase.
radio1:
block_desc: 'radio.yml'
parameters:
NUM_PORTS: 2
NIPC: RADIO_NIPC
ctrl_clock: _device_.rfnoc_ctrl
timebase_clock: _device_.radio
replay0:
block_desc: 'replay.yml'
parameters:
+4
View File
@@ -699,6 +699,8 @@ module rfnoc_image_core #(
.NUM_PORTS (2),
.NIPC (RADIO_NIPC),
.ITEM_W (32),
.CTRL_CLK_IDX (1),
.TB_CLK_IDX (4),
.MTU (BLOCK_MTU)
) b_radio0_0 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
@@ -782,6 +784,8 @@ module rfnoc_image_core #(
.NUM_PORTS (2),
.NIPC (RADIO_NIPC),
.ITEM_W (32),
.CTRL_CLK_IDX (1),
.TB_CLK_IDX (4),
.MTU (BLOCK_MTU)
) b_radio1_1 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
+6
View File
@@ -39,11 +39,17 @@ noc_blocks:
parameters:
NUM_PORTS: 2
NIPC: RADIO_NIPC
ctrl_clock: _device_.rfnoc_ctrl # The clock that is used for the control
# interface. This is the default clock,
# so we could skip it.
timebase_clock: _device_.radio # The clock that is used for the timebase.
radio1:
block_desc: 'radio.yml'
parameters:
NUM_PORTS: 2
NIPC: RADIO_NIPC
ctrl_clock: _device_.rfnoc_ctrl
timebase_clock: _device_.radio
# A list of all static connections in design
# ------------------------------------------
+4
View File
@@ -1137,6 +1137,8 @@ module rfnoc_image_core #(
.NUM_PORTS (2),
.NIPC (RADIO_NIPC),
.ITEM_W (32),
.CTRL_CLK_IDX (1),
.TB_CLK_IDX (4),
.MTU (BLOCK_MTU)
) b_radio0_2 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
@@ -1310,6 +1312,8 @@ module rfnoc_image_core #(
.NUM_PORTS (2),
.NIPC (RADIO_NIPC),
.ITEM_W (32),
.CTRL_CLK_IDX (1),
.TB_CLK_IDX (4),
.MTU (BLOCK_MTU)
) b_radio1_5 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
@@ -72,6 +72,10 @@ noc_blocks:
parameters:
NUM_PORTS: 2
NIPC: RADIO_NIPC
ctrl_clock: _device_.rfnoc_ctrl # The clock that is used for the control
# interface. This is the default clock,
# so we could skip it.
timebase_clock: _device_.radio # The clock that is used for the timebase.
duc1:
block_desc: 'duc.yml'
parameters:
@@ -85,6 +89,8 @@ noc_blocks:
parameters:
NUM_PORTS: 2
NIPC: RADIO_NIPC
ctrl_clock: _device_.rfnoc_ctrl
timebase_clock: _device_.radio
replay0:
block_desc: 'replay.yml'
parameters:
+4
View File
@@ -805,6 +805,8 @@ module rfnoc_image_core #(
.NUM_PORTS (2),
.NIPC (RADIO_NIPC),
.ITEM_W (32),
.CTRL_CLK_IDX (1),
.TB_CLK_IDX (4),
.MTU (BLOCK_MTU)
) b_radio0_2 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
@@ -978,6 +980,8 @@ module rfnoc_image_core #(
.NUM_PORTS (2),
.NIPC (RADIO_NIPC),
.ITEM_W (32),
.CTRL_CLK_IDX (1),
.TB_CLK_IDX (4),
.MTU (BLOCK_MTU)
) b_radio1_5 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
@@ -52,6 +52,10 @@ noc_blocks:
parameters:
NUM_PORTS: 2
NIPC: RADIO_NIPC
ctrl_clock: _device_.rfnoc_ctrl # The clock that is used for the control
# interface. This is the default clock,
# so we could skip it.
timebase_clock: _device_.radio # The clock that is used for the timebase.
duc1:
block_desc: 'duc.yml'
parameters:
@@ -65,6 +69,8 @@ noc_blocks:
parameters:
NUM_PORTS: 2
NIPC: RADIO_NIPC
ctrl_clock: _device_.rfnoc_ctrl
timebase_clock: _device_.radio
# A list of all static connections in design
# ------------------------------------------
+4
View File
@@ -707,6 +707,8 @@ module rfnoc_image_core #(
.NUM_PORTS (1),
.NIPC (RADIO_NIPC),
.ITEM_W (32),
.CTRL_CLK_IDX (1),
.TB_CLK_IDX (4),
.MTU (BLOCK_MTU)
) b_radio0_0 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
@@ -790,6 +792,8 @@ module rfnoc_image_core #(
.NUM_PORTS (1),
.NIPC (RADIO_NIPC),
.ITEM_W (32),
.CTRL_CLK_IDX (1),
.TB_CLK_IDX (5),
.MTU (BLOCK_MTU)
) b_radio1_1 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
@@ -57,11 +57,17 @@ noc_blocks:
parameters:
NUM_PORTS: 1
NIPC: RADIO_NIPC
ctrl_clock: _device_.rfnoc_ctrl # The clock that is used for the control
# interface. This is the default clock,
# so we could skip it.
timebase_clock: _device_.radio0 # The clock that is used for the timebase.
radio1:
block_desc: 'radio.yml'
parameters:
NUM_PORTS: 1
NIPC: RADIO_NIPC
ctrl_clock: _device_.rfnoc_ctrl
timebase_clock: _device_.radio1
replay0:
block_desc: 'replay.yml'
parameters:
+4
View File
@@ -539,6 +539,8 @@ module rfnoc_image_core #(
.NUM_PORTS (1),
.NIPC (RADIO_NIPC),
.ITEM_W (32),
.CTRL_CLK_IDX (1),
.TB_CLK_IDX (4),
.MTU (BLOCK_MTU)
) b_radio0_0 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
@@ -622,6 +624,8 @@ module rfnoc_image_core #(
.NUM_PORTS (1),
.NIPC (RADIO_NIPC),
.ITEM_W (32),
.CTRL_CLK_IDX (1),
.TB_CLK_IDX (5),
.MTU (BLOCK_MTU)
) b_radio1_1 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
+6
View File
@@ -47,11 +47,17 @@ noc_blocks:
parameters:
NUM_PORTS: 1
NIPC: RADIO_NIPC
ctrl_clock: _device_.rfnoc_ctrl # The clock that is used for the control
# interface. This is the default clock,
# so we could skip it.
timebase_clock: _device_.radio0 # The clock that is used for the timebase.
radio1:
block_desc: 'radio.yml'
parameters:
NUM_PORTS: 1
NIPC: RADIO_NIPC
ctrl_clock: _device_.rfnoc_ctrl
timebase_clock: _device_.radio1
# A list of all static connections in design
# ------------------------------------------
+4
View File
@@ -1691,6 +1691,8 @@ module rfnoc_image_core #(
.NUM_PORTS (4),
.NIPC (RADIO_NIPC),
.ITEM_W (32),
.CTRL_CLK_IDX (1),
.TB_CLK_IDX (4),
.MTU (BLOCK_MTU)
) b_radio0_0 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
@@ -1774,6 +1776,8 @@ module rfnoc_image_core #(
.NUM_PORTS (4),
.NIPC (RADIO_NIPC),
.ITEM_W (32),
.CTRL_CLK_IDX (1),
.TB_CLK_IDX (5),
.MTU (BLOCK_MTU)
) b_radio1_1 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
+6
View File
@@ -117,11 +117,17 @@ noc_blocks:
parameters:
NUM_PORTS: 4
NIPC: RADIO_NIPC
ctrl_clock: _device_.rfnoc_ctrl # The clock that is used for the control
# interface. This is the default clock,
# so we could skip it.
timebase_clock: _device_.radio0 # The clock that is used for the timebase.
radio1:
block_desc: 'radio.yml'
parameters:
NUM_PORTS: 4
NIPC: RADIO_NIPC
ctrl_clock: _device_.rfnoc_ctrl
timebase_clock: _device_.radio1
replay0:
block_desc: 'replay.yml'
parameters:
+4
View File
@@ -1031,6 +1031,8 @@ module rfnoc_image_core #(
.NUM_PORTS (4),
.NIPC (RADIO_NIPC),
.ITEM_W (32),
.CTRL_CLK_IDX (1),
.TB_CLK_IDX (4),
.MTU (BLOCK_MTU)
) b_radio0_0 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
@@ -1114,6 +1116,8 @@ module rfnoc_image_core #(
.NUM_PORTS (4),
.NIPC (RADIO_NIPC),
.ITEM_W (32),
.CTRL_CLK_IDX (1),
.TB_CLK_IDX (5),
.MTU (BLOCK_MTU)
) b_radio1_1 (
.rfnoc_chdr_clk (rfnoc_chdr_clk),
+6
View File
@@ -78,11 +78,17 @@ noc_blocks:
parameters:
NUM_PORTS: 4
NIPC: RADIO_NIPC
ctrl_clock: _device_.rfnoc_ctrl # The clock that is used for the control
# interface. This is the default clock,
# so we could skip it.
timebase_clock: _device_.radio0 # The clock that is used for the timebase.
radio1:
block_desc: 'radio.yml'
parameters:
NUM_PORTS: 4
NIPC: RADIO_NIPC
ctrl_clock: _device_.rfnoc_ctrl
timebase_clock: _device_.radio1
# A list of all static connections in design
# ------------------------------------------