From 174ebe06ce7515e83dd74e442b9b3ad8edc6b280 Mon Sep 17 00:00:00 2001
From: Eric Kooistra <kooistra@astron.nl>
Date: Wed, 10 Mar 2021 12:13:31 +0100
Subject: [PATCH] Use radix_width=64 for BSN instead of separate hi and lo 32b
 field words.

---
 libraries/base/dp/dp.peripheral.yaml | 102 +++++++++++++++++----------
 1 file changed, 66 insertions(+), 36 deletions(-)

diff --git a/libraries/base/dp/dp.peripheral.yaml b/libraries/base/dp/dp.peripheral.yaml
index 30d8efd01b..56fe45d749 100644
--- a/libraries/base/dp/dp.peripheral.yaml
+++ b/libraries/base/dp/dp.peripheral.yaml
@@ -106,14 +106,19 @@ peripherals:
               field_description: "Number of blocks per sync interval."
               access_mode: RW
               address_offset: 0x4
-          - - field_name: bsn_lo
-              field_description: "Initial BSN[31:0]"
+          #- - field_name: bsn_lo
+          #    field_description: "Initial BSN[31:0]"
+          #    access_mode: RW
+          #    address_offset: 0x8
+          #- - field_name: bsn_hi
+          #    field_description: "Initial BSN[63:32]"
+          #    access_mode: RW
+          #    address_offset: 0xC
+          - - field_name: bsn
+              field_description: "Initial BSN"
               access_mode: RW
               address_offset: 0x8
-          - - field_name: bsn_hi
-              field_description: "Initial BSN[63:32]"
-              access_mode: RW
-              address_offset: 0xC
+              radix_width: 64
 
   - peripheral_name: dp_bsn_source_v2    # pi_dp_bsn_source_v2.py
     peripheral_description: "Block Sequence Number (BSN) source with block time offset, for timestamping blocks of data samples."
@@ -146,14 +151,19 @@ peripherals:
               field_description: "Number of clock cycles per sync interval."
               access_mode: RW
               address_offset: 0x4
-          - - field_name: bsn_init_lo
-              field_description: "Initial BSN[31:0]"
+          #- - field_name: bsn_init_lo
+          #    field_description: "Initial BSN[31:0]"
+          #    access_mode: RW
+          #    address_offset: 0x8
+          #- - field_name: bsn_init_hi
+          #    field_description: "Initial BSN[63:32]"
+          #    access_mode: RW
+          #    address_offset: 0xC
+          - - field_name: bsn_init
+              field_description: "Initial BSN"
               access_mode: RW
               address_offset: 0x8
-          - - field_name: bsn_init_hi
-              field_description: "Initial BSN[63:32]"
-              access_mode: RW
-              address_offset: 0xC
+              radix_width: 64
           - - field_name: bsn_time_offset
               field_description: "The BSN block time offset in number of clock cycles, with respect to the PPS."
               width: g_bsn_time_offset_w
@@ -168,14 +178,19 @@ peripherals:
         slave_type: REG
         slave_description: ""
         fields:
-          - - field_name: scheduled_bsn_lo
-              field_description: "Write scheduled BSN lo, read current BSN lo. First access lo, then hi."
+          #- - field_name: scheduled_bsn_lo
+          #    field_description: "Write scheduled BSN lo, read current BSN lo. First access lo, then hi."
+          #    access_mode: RW
+          #    address_offset: 0x0
+          #- - field_name: scheduled_bsn_hi
+          #    field_description: "Write scheduled BSN hi, read current BSN hi. First access lo, then hi."
+          #    access_mode: RW
+          #    address_offset: 0x4
+          - - field_name: scheduled_bsn
+              field_description: "Write scheduled BSN. First access lo, then hi."
               access_mode: RW
               address_offset: 0x0
-          - - field_name: scheduled_bsn_hi
-              field_description: "Write scheduled BSN hi, read current BSN hi. First access lo, then hi."
-              access_mode: RW
-              address_offset: 0x4
+              radix_width: 64
               
   - peripheral_name: dp_bsn_monitor    # pi_dp_bsn_monitor.py
     peripheral_description: "Monitor the Block Sequence Number (BSN) status of streaming data."
@@ -207,14 +222,19 @@ peripherals:
               bit_offset: 2      # EK TODO: using 1 cause gen_doc.py to fail without clear error, because fields then overlap
               access_mode: RO
               address_offset: 0x0
-          - - field_name: bsn_at_sync_lo
-              field_description: "Data stream BSN lo at sync."
+          #- - field_name: bsn_at_sync_lo
+          #    field_description: "Data stream BSN lo at sync."
+          #    access_mode: RO
+          #    address_offset: 0x4
+          #- - field_name: bsn_at_sync_hi
+          #    field_description: "Data stream BSN hi at sync."
+          #    access_mode: RO
+          #    address_offset: 0x8
+          - - field_name: bsn_at_sync
+              field_description: "Data stream BSN at sync."
               access_mode: RO
               address_offset: 0x4
-          - - field_name: bsn_at_sync_hi
-              field_description: "Data stream BSN hi at sync."
-              access_mode: RO
-              address_offset: 0x8
+              radix_width: 64
           - - field_name: nof_sop
               field_description: "Number data blocks (sop = start of packet) during last sync interval."
               access_mode: RO
@@ -227,14 +247,19 @@ peripherals:
               field_description: "Number data blocks with error indication during last sync interval."
               access_mode: RO
               address_offset: 0x14
-          - - field_name: bsn_first_lo
-              field_description: "First data stream BSN lo ever."
+          #- - field_name: bsn_first_lo
+          #    field_description: "First data stream BSN lo ever."
+          #    access_mode: RO
+          #    address_offset: 0x18
+          #- - field_name: bsn_first_hi
+          #    field_description: "First data stream BSN hi ever."
+          #    access_mode: RO
+          #    address_offset: 0x1C
+          - - field_name: bsn_first
+              field_description: "First data stream BSN ever."
               access_mode: RO
               address_offset: 0x18
-          - - field_name: bsn_first_hi
-              field_description: "First data stream BSN hi ever."
-              access_mode: RO
-              address_offset: 0x1C
+              radix_width: 64
           - - field_name: bsn_first_cycle_cnt
               field_description: "Arrival latency of first data stream BSN ever, relative to local sync."
               access_mode: RO
@@ -270,14 +295,19 @@ peripherals:
               bit_offset: 1
               access_mode: RO
               address_offset: 0x0
-          - - field_name: bsn_at_sync_lo
-              field_description: "Data stream BSN lo at sync."
+          #- - field_name: bsn_at_sync_lo
+          #    field_description: "Data stream BSN lo at sync."
+          #    access_mode: RO
+          #    address_offset: 0x4
+          #- - field_name: bsn_at_sync_hi
+          #    field_description: "Data stream BSN hi at sync."
+          #    access_mode: RO
+          #    address_offset: 0x8
+          - - field_name: bsn_at_sync
+              field_description: "Data stream BSN at sync."
               access_mode: RO
               address_offset: 0x4
-          - - field_name: bsn_at_sync_hi
-              field_description: "Data stream BSN hi at sync."
-              access_mode: RO
-              address_offset: 0x8
+              radix_width: 64
           - - field_name: nof_sop
               field_description: "Number data blocks (sop = start of packet) during last sync interval."
               access_mode: RO
-- 
GitLab