From f07af03214e818d45fb49d59795e9bb4983968c3 Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Tue, 22 Oct 2024 17:49:13 +0200 Subject: [PATCH] image builder: Use RADIO_NIPC parameter This simplifies image core files by generating a RADIO_NIPC parameter for the X410, X440 and E31x BSP files. The IO port widths for X410 are now dynamically widened based on the NIPC value, which is a function of the RF_BW parameter, and cannot be modified. The radio block can now read the NIPC value from the BSP, and populate its spc parameter dynamically. This avoids having to know the right spc value when writing YAML image core files and reduces redundancy. This also removes the RADIO_NIPC parameter entirely from all the image core files. This parameter was fine, but it was a bit confusing because it referenced a Verilog parameter, which you just had to know was there in the generated Verilog. By referencing the BSP parameter instead, the YAML files (BSP, radio.yml, and image core file) are now self-contained regarding the RADIO_NIPC/spc information. As a minor upside, the input wire widths for X410's and N310's rfnoc_image_core.sv module are now generated with the correct widths, and not, as before, with the worst-case width (and then we assume Vivado will do the right thing). Original-commit: 53b4d7a21018fe7aabf9f774260aefb41297a41b --- top/e31x/e310_rfnoc_image_core.yml | 1 - top/x400/x410_UC_200_rfnoc_image_core.yml | 2 -- top/x400/x410_X4_200_rfnoc_image_core.yml | 2 -- top/x400/x410_XG_200_rfnoc_image_core.yml | 2 -- top/x400/x440_CG_1600_rfnoc_image_core.yml | 2 -- top/x400/x440_X4_1600_rfnoc_image_core.yml | 2 -- top/x400/x440_X4_200_rfnoc_image_core.yml | 4 +--- top/x400/x440_X4_400_rfnoc_image_core.yml | 2 -- top/x400/yaml_include/x410_radio_base.yml | 2 -- top/x400/yaml_include/x440_radio_base.yml | 2 -- 10 files changed, 1 insertion(+), 20 deletions(-) diff --git a/top/e31x/e310_rfnoc_image_core.yml b/top/e31x/e310_rfnoc_image_core.yml index fb4badf..7011b5f 100644 --- a/top/e31x/e310_rfnoc_image_core.yml +++ b/top/e31x/e310_rfnoc_image_core.yml @@ -32,7 +32,6 @@ noc_blocks: block_desc: 'radio.yml' # Block device descriptor parameters: NUM_PORTS: 2 - NIPC: RADIO_NIPC # A list of all static connections in design # ------------------------------------------ diff --git a/top/x400/x410_UC_200_rfnoc_image_core.yml b/top/x400/x410_UC_200_rfnoc_image_core.yml index 6b36099..75bce12 100644 --- a/top/x400/x410_UC_200_rfnoc_image_core.yml +++ b/top/x400/x410_UC_200_rfnoc_image_core.yml @@ -91,7 +91,6 @@ noc_blocks: block_desc: 'radio.yml' parameters: NUM_PORTS: 2 - NIPC: RADIO_NIPC duc1: block_desc: 'duc.yml' parameters: @@ -104,7 +103,6 @@ noc_blocks: block_desc: 'radio.yml' parameters: NUM_PORTS: 2 - NIPC: RADIO_NIPC replay0: block_desc: 'replay.yml' parameters: diff --git a/top/x400/x410_X4_200_rfnoc_image_core.yml b/top/x400/x410_X4_200_rfnoc_image_core.yml index 4e8ba68..309458c 100644 --- a/top/x400/x410_X4_200_rfnoc_image_core.yml +++ b/top/x400/x410_X4_200_rfnoc_image_core.yml @@ -72,7 +72,6 @@ noc_blocks: block_desc: 'radio.yml' parameters: NUM_PORTS: 2 - NIPC: RADIO_NIPC duc1: block_desc: 'duc.yml' parameters: @@ -85,7 +84,6 @@ noc_blocks: block_desc: 'radio.yml' parameters: NUM_PORTS: 2 - NIPC: RADIO_NIPC replay0: block_desc: 'replay.yml' parameters: diff --git a/top/x400/x410_XG_200_rfnoc_image_core.yml b/top/x400/x410_XG_200_rfnoc_image_core.yml index 9104996..468e106 100644 --- a/top/x400/x410_XG_200_rfnoc_image_core.yml +++ b/top/x400/x410_XG_200_rfnoc_image_core.yml @@ -72,7 +72,6 @@ noc_blocks: block_desc: 'radio.yml' parameters: NUM_PORTS: 2 - NIPC: RADIO_NIPC duc1: block_desc: 'duc.yml' parameters: @@ -85,7 +84,6 @@ noc_blocks: block_desc: 'radio.yml' parameters: NUM_PORTS: 2 - NIPC: RADIO_NIPC replay0: block_desc: 'replay.yml' parameters: diff --git a/top/x400/x440_CG_1600_rfnoc_image_core.yml b/top/x400/x440_CG_1600_rfnoc_image_core.yml index 155b618..2589279 100644 --- a/top/x400/x440_CG_1600_rfnoc_image_core.yml +++ b/top/x400/x440_CG_1600_rfnoc_image_core.yml @@ -53,12 +53,10 @@ noc_blocks: block_desc: 'radio.yml' parameters: NUM_PORTS: 1 - NIPC: RADIO_NIPC radio1: block_desc: 'radio.yml' parameters: NUM_PORTS: 1 - NIPC: RADIO_NIPC # A list of all static connections in design # ------------------------------------------ diff --git a/top/x400/x440_X4_1600_rfnoc_image_core.yml b/top/x400/x440_X4_1600_rfnoc_image_core.yml index 4a8f93c..05d9bf9 100644 --- a/top/x400/x440_X4_1600_rfnoc_image_core.yml +++ b/top/x400/x440_X4_1600_rfnoc_image_core.yml @@ -65,12 +65,10 @@ noc_blocks: block_desc: 'radio.yml' parameters: NUM_PORTS: 1 - NIPC: RADIO_NIPC radio1: block_desc: 'radio.yml' parameters: NUM_PORTS: 1 - NIPC: RADIO_NIPC replay0: block_desc: 'replay.yml' parameters: diff --git a/top/x400/x440_X4_200_rfnoc_image_core.yml b/top/x400/x440_X4_200_rfnoc_image_core.yml index 95e0dd5..10df5ae 100644 --- a/top/x400/x440_X4_200_rfnoc_image_core.yml +++ b/top/x400/x440_X4_200_rfnoc_image_core.yml @@ -85,12 +85,10 @@ noc_blocks: block_desc: 'radio.yml' parameters: NUM_PORTS: 4 - NIPC: RADIO_NIPC radio1: block_desc: 'radio.yml' parameters: NUM_PORTS: 4 - NIPC: RADIO_NIPC duc0: block_desc: 'duc.yml' parameters: @@ -180,4 +178,4 @@ clk_domains: - { srcblk: _device_, srcport: ce, dstblk: ddc0, dstport: ce } - { srcblk: _device_, srcport: ce, dstblk: duc1, dstport: ce } - { srcblk: _device_, srcport: ce, dstblk: ddc1, dstport: ce } - # Other clock domains are inherited from YAML include files \ No newline at end of file + # Other clock domains are inherited from YAML include files diff --git a/top/x400/x440_X4_400_rfnoc_image_core.yml b/top/x400/x440_X4_400_rfnoc_image_core.yml index deb4b05..c90eb9b 100644 --- a/top/x400/x440_X4_400_rfnoc_image_core.yml +++ b/top/x400/x440_X4_400_rfnoc_image_core.yml @@ -125,12 +125,10 @@ noc_blocks: block_desc: 'radio.yml' parameters: NUM_PORTS: 4 - NIPC: RADIO_NIPC radio1: block_desc: 'radio.yml' parameters: NUM_PORTS: 4 - NIPC: RADIO_NIPC replay0: block_desc: 'replay.yml' parameters: diff --git a/top/x400/yaml_include/x410_radio_base.yml b/top/x400/yaml_include/x410_radio_base.yml index 99a07bb..d3d3f80 100644 --- a/top/x400/yaml_include/x410_radio_base.yml +++ b/top/x400/yaml_include/x410_radio_base.yml @@ -17,7 +17,6 @@ noc_blocks: block_desc: 'radio.yml' 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. @@ -26,7 +25,6 @@ noc_blocks: block_desc: 'radio.yml' parameters: NUM_PORTS: 2 - NIPC: RADIO_NIPC ctrl_clock: _device_.rfnoc_ctrl timebase_clock: _device_.radio diff --git a/top/x400/yaml_include/x440_radio_base.yml b/top/x400/yaml_include/x440_radio_base.yml index 693c2b5..25c8a59 100644 --- a/top/x400/yaml_include/x440_radio_base.yml +++ b/top/x400/yaml_include/x440_radio_base.yml @@ -16,7 +16,6 @@ noc_blocks: block_desc: 'radio.yml' 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. @@ -25,7 +24,6 @@ noc_blocks: block_desc: 'radio.yml' parameters: NUM_PORTS: 4 - NIPC: RADIO_NIPC ctrl_clock: _device_.rfnoc_ctrl timebase_clock: _device_.radio1