Skip to content
Snippets Groups Projects
Commit ab3d30c5 authored by Eric Kooistra's avatar Eric Kooistra
Browse files

Added dp_shiftram, dp_bsn_source, dp_bsn_source_v2, dp_bsn_scheduler, dp_bsn_monitor.

parent 4588d73d
No related branches found
No related tags found
2 merge requests!100Removed text for XSub that is now written in Confluence Subband correlator...,!71Resolve L2SDP-186
......@@ -50,9 +50,247 @@ peripherals:
# MM port for mms_dp_fifo_from_mm.vhd / dp_fifo_from_mm.vhd
- slave_name: REG_MMDP_DATA # Use REG_, instead of preferred FIFO_, to match slave_port_name in pi_mmdp.py
slave_type: FIFO
slave_description: "MMDP = write word to the MM to DP write FIFO"
slave_description: "MMDP = write word to the MM to DP write FIFO."
fields:
- - field_name: data
field_description: "Write data to the FIFO."
access_mode: WO
address_offset: 0x0
- peripheral_name: dp_shiftram # pi_dp_shiftram.py
peripheral_description: "Sample delay buffer with programmable delay for streaming data."
parameters:
# Parameters of dp_shiftram.vhd
- { name: g_nof_streams, value: 1 }
- { name: g_nof_words, value: 1024 }
- { name: g_data_w, value: 16 }
slave_ports:
# MM port for dp_shiftram.vhd
- slave_name: REG_DP_SHIFTRAM
slave_type: REG
slave_description: ""
number_of_slaves: g_nof_streams
fields:
- - field_name: shift
field_description: "Fill level of the sample delay buffer in number of data samples."
width: ceil_log2(g_nof_words)
access_mode: RW
address_offset: 0x0
- peripheral_name: dp_bsn_source # pi_dp_bsn_source.py
peripheral_description: "Block Sequence Number (BSN) source for timestamping blocks of data samples."
parameters:
# Parameters of dp_bsn_source_reg.vhd
- { name: g_nof_block_per_sync, value: 20 }
slave_ports:
# MM port for dp_bsn_source_reg.vhd
- slave_name: REG_DP_BSN_SOURCE
slave_type: REG
slave_description: ""
fields:
- - field_name: dp_on
field_description: |
"When 1 then enable BSN source, else when 0 disable BSN source. If dp_on_pps is 0,
then dp_on = 1 enables the BSN source immediately. To enable the BSN source at
the next PPS, then first set dp_on_pps = 1. Clearing dp_on stops the BSN source."
width: 1
access_mode: RW
address_offset: 0x0
- - field_name: dp_on_pps
field_description: "When 1 and dp_on = 1 then enable BSN source at next PPS."
width: 1
bit_offset: 1
access_mode: RW
address_offset: 0x0
- - field_name: nof_block_per_sync
field_description: "Number of blocks per sync interval."
access_mode: RW
address_offset: 0x4
- - 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
- 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."
parameters:
# Parameters of dp_bsn_source_reg_v2.vhd
- { name: g_nof_clk_per_sync, value: 200000000 }
- { name: g_block_size, value: 256 }
- { name: g_bsn_time_offset_w, value: 8 } # note: g_bsn_time_offset_w = ceil_log2(g_block_size)
slave_ports:
# MM port for dp_bsn_source_reg_v2.vhd
- slave_name: REG_DP_BSN_SOURCE_V2
slave_type: REG
slave_description: ""
fields:
- - field_name: dp_on
field_description: |
"When 1 then enable BSN source, else when 0 disable BSN source. If dp_on_pps is 0,
then dp_on = 1 enables the BSN source immediately. To enable the BSN source at
the next PPS, then first set dp_on_pps = 1. Clearing dp_on stops the BSN source."
width: 1
access_mode: RW
address_offset: 0x0
- - field_name: dp_on_pps
field_description: "When 1 and dp_on = 1, then enable BSN source at next PPS."
width: 1
bit_offset: 1
access_mode: RW
address_offset: 0x0
- - field_name: nof_block_per_sync
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]"
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_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
access_mode: RW
address_offset: 0x10
- peripheral_name: dp_bsn_scheduler # pi_dp_bsn_scheduler.py
peripheral_description: "Schedule a trigger at a certain Block Sequence Number (BSN) instant."
slave_ports:
# MM port for dp_bsn_scheduler_reg.vhd
- slave_name: REG_DP_BSN_SCHEDULER
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."
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
- peripheral_name: dp_bsn_monitor # pi_dp_bsn_monitor.py
peripheral_description: "Monitor the Block Sequence Number (BSN) status of streaming data."
parameters:
# Parameters of mms_dp_bsn_monitor.vhd
- { name: g_nof_streams, value: 1 }
slave_ports:
# MM port for dp_bsn_monitor_reg.vhd
- slave_name: REG_DP_BSN_MONITOR
slave_type: REG
slave_description: ""
number_of_slaves: g_nof_streams
fields:
- - field_name: xon_stable
field_description: "Data block flow control xon signal was active and stable during last sync interval."
width: 1
bit_offset: 0
access_mode: RO
address_offset: 0x0
- - field_name: ready_stable
field_description: "Clock cycle flow control ready signal was active and stable during last sync interval."
width: 1
bit_offset: 1
access_mode: RO
address_offset: 0x0
- - field_name: sync_timeout
field_description: "Data stream sync did not occur during last sync interval."
width: 1
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."
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: nof_sop
field_description: "Number data blocks (sop = start of packet) during last sync interval."
access_mode: RO
address_offset: 0xC
- - field_name: nof_valid
field_description: "Number valid samples of the data blocks during last sync interval (= nof_sop * block size)."
access_mode: RO
address_offset: 0x10
- - field_name: nof_err
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."
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_cycle_cnt
field_description: "Arrival latency of first data stream BSN ever, relative to local sync."
access_mode: RO
address_offset: 0x20
- peripheral_name: dp_bsn_monitor_v2 # pi_dp_bsn_monitor_v2.py
peripheral_description: "Monitor the Block Sequence Number (BSN) status and latency of streaming data."
parameters:
# Parameters of mms_dp_bsn_monitor_v2.vhd
- { name: g_nof_streams, value: 1 }
slave_ports:
# MM port for dp_bsn_monitor_reg_v2.vhd
- slave_name: REG_DP_BSN_MONITOR_V2
slave_type: REG
slave_description: ""
number_of_slaves: g_nof_streams
fields:
- - field_name: xon_stable
field_description: "Data block flow control xon signal was active and stable during last sync interval."
width: 1
bit_offset: 0
access_mode: RO
address_offset: 0x0
- - field_name: ready_stable
field_description: "Clock cycle flow control ready signal was active and stable during last sync interval."
width: 1
bit_offset: 1
access_mode: RO
address_offset: 0x0
- - field_name: sync_timeout
field_description: "Data stream sync did not occur during last sync interval."
width: 1
bit_offset: 1
access_mode: RO
address_offset: 0x0
- - 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: nof_sop
field_description: "Number data blocks (sop = start of packet) during last sync interval."
access_mode: RO
address_offset: 0xC
- - field_name: nof_valid
field_description: "Number valid samples of the data blocks during last sync interval (= nof_sop * block size)."
access_mode: RO
address_offset: 0x10
- - field_name: nof_err
field_description: "Number data blocks with error indication during last sync interval."
access_mode: RO
address_offset: 0x14
- - field_name: latency
field_description: "Arrival latency of data stream BSN at sync, relative to local sync."
access_mode: RO
address_offset: 0x20
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment