docs: axi_tdd: Add TDD docs (#1334)

Signed-off-by: Jorge Marques <jorge.marques@analog.com>
Signed-off-by: Ionut Podgoreanu <ionut.podgoreanu@analog.com>
main
podgori 2024-05-21 15:58:31 +03:00 committed by GitHub
parent c2754429c1
commit 026149b894
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 581 additions and 1092 deletions

View File

@ -0,0 +1,285 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="875"
height="210"
viewBox="0 0 875 210"
version="1.1"
id="svg1"
xml:space="preserve"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs1"><linearGradient
id="linearGradient20"><stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop20" /><stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop21" /></linearGradient><linearGradient
xlink:href="#linearGradient20"
id="linearGradient21"
x1="865"
y1="100"
x2="845"
y2="100"
gradientUnits="userSpaceOnUse" /></defs><g
id="layer1"><rect
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-dasharray:8, 2, 1, 2;stroke-dashoffset:0;stroke-opacity:0.5"
id="rect19"
width="875"
height="210"
x="0"
y="0" /><text
xml:space="preserve"
style="font-size:14px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1"
x="500"
y="180"
id="text15-14-7"><tspan
id="tspan15-4-5"
x="500"
y="180"
dy="0">T<tspan
style="font-size:65%;baseline-shift:sub"
id="tspan16-85-6">CH1</tspan></tspan><tspan
x="500"
y="197.5"
id="tspan17-59-9"
style="font-size:12px;baseline-shift:baseline">OFF</tspan></text><text
xml:space="preserve"
style="font-size:14px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1"
x="440"
y="180"
id="text15-14"><tspan
id="tspan15-4"
x="440"
y="180"
dy="0">T<tspan
style="font-size:65%;baseline-shift:sub"
id="tspan16-85">CH0</tspan></tspan><tspan
x="440"
y="197.5"
id="tspan17-59"
style="font-size:12px;baseline-shift:baseline">OFF</tspan></text><text
xml:space="preserve"
style="font-size:14px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1"
x="125"
y="180"
id="text15-1"><tspan
id="tspan15-9"
x="125"
y="180"
dy="0">T<tspan
style="font-size:65%;baseline-shift:sub"
id="tspan16-8">CH1</tspan></tspan><tspan
x="125"
y="197.5"
id="tspan17-5"
style="font-size:12px;baseline-shift:baseline">ON</tspan></text><text
xml:space="preserve"
style="font-size:14px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1"
x="160"
y="67.603027"
id="text13-8"><tspan
id="tspan13-0"
x="160"
y="67.603027">CH2</tspan></text><rect
style="fill:none;stroke:#000000;stroke-opacity:1"
id="rect1"
width="260"
height="25"
x="165"
y="50" /><rect
style="fill:none;stroke:#000000;stroke-opacity:1"
id="rect2"
width="370"
height="25"
x="115"
y="95" /><rect
style="fill:none;stroke:#000000;stroke-opacity:1"
id="rect3"
width="460"
height="25"
x="70"
y="140" /><rect
style="fill:none;stroke:#000000;stroke-opacity:1"
id="rect4"
width="160"
height="25"
x="705"
y="50" /><rect
style="fill:none;stroke:#000000;stroke-opacity:1"
id="rect5"
width="210"
height="25"
x="655"
y="95" /><rect
style="fill:none;stroke:#000000;stroke-opacity:1"
id="rect6"
width="250"
height="25"
x="615"
y="140" /><path
style="fill:none;stroke:#000000;stroke-opacity:1"
d="M 865,35 H 30 v 130"
id="path8" /><path
style="fill:none;stroke:#000000;stroke-dasharray:8, 8;stroke-dashoffset:0;stroke-opacity:1"
d="M 580,165 V 35"
id="path9" /><path
style="fill:none;stroke:#000000;stroke-opacity:1"
d="M 5,15 10,5 15,15"
id="path11" /><text
xml:space="preserve"
style="font-size:16px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:center;text-anchor:middle;fill:none;stroke:#000000;stroke-opacity:1"
x="304.74609"
y="25.097656"
id="text12"><tspan
id="tspan12"
x="304.74609"
y="25.097656"
style="fill:#000000;fill-opacity:1;stroke:none">Frame 0</tspan></text><text
xml:space="preserve"
style="font-size:16px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:center;text-anchor:middle;fill:none;stroke:#000000;stroke-opacity:1"
x="825"
y="25"
id="text12-6"><tspan
id="tspan12-1"
x="825"
y="25"
style="fill:#000000;fill-opacity:1;stroke:none">Frame 1</tspan></text><text
xml:space="preserve"
style="font-size:14px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1"
x="110"
y="112.58936"
id="text13"><tspan
id="tspan13"
x="110"
y="112.58936">CH1</tspan></text><g
id="g1"
transform="translate(25.46875,-77.570312)"><text
xml:space="preserve"
style="font-size:14px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1"
x="39.53125"
y="235.15625"
id="text13-3"><tspan
id="tspan13-5"
x="39.53125"
y="235.15625">CH0</tspan></text></g><text
xml:space="preserve"
style="font-size:14px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1"
x="34.277641"
y="180.9375"
id="text14"><tspan
id="tspan14"
x="34.277641"
y="180.9375">0</tspan></text><text
xml:space="preserve"
style="font-size:14px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1"
x="80"
y="180"
id="text15"><tspan
id="tspan15"
x="80"
y="180"
dy="0">T<tspan
style="font-size:65%;baseline-shift:sub"
id="tspan16">CH0</tspan></tspan><tspan
x="80"
y="197.5"
id="tspan17"
style="font-size:12px;baseline-shift:baseline">ON</tspan></text><g
id="g1-3"
transform="translate(79.60454,-60.000001)"><text
xml:space="preserve"
style="font-size:14px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1"
x="95"
y="240"
id="text15-7"><tspan
id="tspan15-0"
x="95"
y="240"
dy="0">T<tspan
style="font-size:65%;baseline-shift:sub"
id="tspan16-9">CH2</tspan></tspan><tspan
x="95"
y="257.5"
id="tspan17-8"
style="font-size:12px;baseline-shift:baseline">ON</tspan></text></g><g
id="g1-8"
transform="translate(183.25553,-70.178711)"><text
xml:space="preserve"
style="font-size:14px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1"
x="359.60455"
y="250.17871"
id="text15-14-3"><tspan
id="tspan15-4-2"
x="359.60455"
y="250.17871"
dy="0">T<tspan
style="font-size:65%;baseline-shift:sub"
id="tspan16-85-5">CH2</tspan></tspan><tspan
x="359.60455"
y="267.67871"
id="tspan17-59-7"
style="font-size:12px;baseline-shift:baseline">OFF</tspan></text></g><g
id="g1-4"
transform="translate(250.39545,-70.178711)"><text
xml:space="preserve"
style="font-size:14px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1"
x="359.60455"
y="250.17871"
id="text15-14-9"><tspan
x="359.60455"
y="250.17871"
id="tspan17-59-6"
style="font-size:12px;baseline-shift:baseline"><tspan
dy="0"
id="tspan18"
style="font-size:14px">T<tspan
style="font-size:65%;baseline-shift:sub"
id="tspan19">frame</tspan></tspan></tspan></text></g><g
id="g1-4-6"
transform="translate(514.68255,-55)"><text
xml:space="preserve"
style="font-size:14px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1"
x="350.31744"
y="235"
id="text15-14-9-3"><tspan
x="350.31744"
y="235"
id="tspan17-59-6-8"
style="font-size:12px;baseline-shift:baseline">t<tspan
id="tspan18-5"
style="font-size:14px" /></tspan></text></g><path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-dasharray:8, 8;stroke-dashoffset:0;stroke-opacity:0.5"
d="m 165,75 v 95"
id="path19" /><path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-dasharray:8, 8;stroke-dashoffset:0;stroke-opacity:0.5"
d="m 115,120 v 50"
id="path19-4" /><path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-dasharray:8, 8;stroke-dashoffset:0;stroke-opacity:0.5"
d="m 70,165 v 5"
id="path19-5" /><path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-dasharray:8, 8;stroke-dashoffset:0;stroke-opacity:0.5"
d="m 425,75 v 95"
id="path19-57" /><path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-dasharray:8, 8;stroke-dashoffset:0;stroke-opacity:0.5"
d="m 485,120 v 50"
id="path19-4-3" /><path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-dasharray:8, 8;stroke-dashoffset:0;stroke-opacity:0.5"
d="m 530,165 v 5"
id="path19-5-8" /><rect
style="fill:url(#linearGradient21);stroke:none;stroke-dasharray:8, 2, 1, 2;stroke-dashoffset:0;stroke-opacity:0.5"
id="rect20"
width="25"
height="125"
x="845"
y="40" /><path
style="fill:none;stroke:#000000;stroke-opacity:1"
d="M 10,5 V 165 H 865"
id="path10" /><path
style="fill:none;stroke:#000000;stroke-opacity:1"
d="m 855,160 10,5 -10,5"
id="path12" /></g></svg>

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -0,0 +1,192 @@
.. _axi_tdd:
AXI TDD
================================================================================
.. hdl-component-diagram::
The :git-hdl:`AXI Time-Division Duplexing <library/axi_tdd>` Controller IP core
is a pulse wave generator capable of addressing RF applications which require
Time Division Duplexing, as well as controlling other modules of general
applications through its dedicated 32 channel outputs.
The reason of creating the generic TDD controller was to reduce the naming
confusion around the existing repurposed
:dokuwiki:`TDD core <resources/eval/user-guides/ad-pzsdr2400tdd-eb/reference_hdl#TDD Controller>`
built for AD9361, as well as expanding its number of output channels for systems
which require more than six controlling signals.
.. note::
TDD (Time-Division Duplex) mode allows the user to control the time period of
the receive and transmit bursts.
Features
--------------------------------------------------------------------------------
* Up to 32 independent output channels
* Start/stop time values per channel
* Enable and polarity bit values per channel
* 32 bit-max internal reference counter
* Initial startup delay before wave generation
* Configurable frame length and number of frames per burst
* 3 sources of synchronization: external, internal and software generated
Files
--------------------------------------------------------------------------------
.. list-table::
:header-rows: 1
* - Name
- Description
* - :git-hdl:`library/axi_tdd/axi_tdd.sv`
- Top module.
* - :git-hdl:`library/axi_tdd/axi_tdd_pkg.sv`
- SystemVerilog Package.
* - :git-hdl:`library/axi_tdd/axi_tdd_regmap.sv`
- Register Map with CDC synchronizers.
* - :git-hdl:`library/axi_tdd/axi_tdd_counter.sv`
- Internal counters and FSM logic.
* - :git-hdl:`library/axi_tdd/axi_tdd_channel.sv`
- Channel waveform generator.
* - :git-hdl:`library/axi_tdd/axi_tdd_sync_gen.sv`
- Synchronization pulse generator.
* - :git-hdl:`library/axi_tdd/axi_tdd_ip.tcl`
- TCL script to generate the Vivado IP-integrator project.
* - :git-hdl:`library/axi_tdd/axi_tdd_hw.tcl`
- TCL script to generate the Quartus IP-integrator project.
Configuration Parameters
--------------------------------------------------------------------------------
.. hdl-parameters::
* - ID
- Instance identification number
* - CHANNEL_COUNT
- Number of channels
* - DEFAULT_POLARITY
- Initial channel polarity
* - REGISTER_WIDTH
- Internal counter and register width
* - BURST_COUNT_WIDTH
- Burst counter width
* - SYNC_INTERNAL
- Enable support for internal sync signal
* - SYNC_EXTERNAL
- Enable support for external sync signal
* - SYNC_EXTERNAL_CDC
- Enable synchronization of external sync signal
* - SYNC_COUNT_WIDTH
- Sync generator counter width
Interface
--------------------------------------------------------------------------------
.. hdl-interfaces::
* - s_axi_aclk
- System clock.
* - s_axi_aresetn
- System reset, synchronous active low reset.
* - s_axi
- AXI-Lite bus slave, memory mapped AXI-Lite bus that provides access to module's
register map.
* - clk
- Core clock.
* - resetn
- Core reset, synchronous active low reset.
* - sync_in
- External synchronization input signal.
* - sync_out
- Module synchronization output signal.
* - tdd_channel
- Channels output.
Theory of Operation
--------------------------------------------------------------------------------
The central idea of the TDD controller is “frame”-based operation, i.e. all the
timing defined for the individual channels is relative to the beginning of a
frame. The ``FRAME_LENGTH`` value controls the length of a single frame, while
the ``BURST_COUNT`` value controls how many frames should be played after
enabling the device (a value of 0 means the frames will be repeated indefinitely).
Before the start of a burst, an optional startup delay is inserted, defined by
the ``STARTUP_DELAY`` value in clock cycles.
.. image:: diagram.svg
This diagram illustrates how different channels can be enabled at different
times relative to the beginning of a frame.
.. note::
While the above graphic shows all channels being enabled in a stacked
manner, they are completely independent of each other.
Detailed Description
--------------------------------------------------------------------------------
In order to begin its operation, the peripheral must be enabled. This is done by
setting the ``ENABLE`` bit. Next, the peripheral waits to receive a synchronization
signal. There are 3 possible sync sources, which can be independently activated
through their corresponding enabling bits: ``SYNC_INT``, ``SYNC_EXT`` and ``SYNC_SOFT``
can all be active at the same time.
The external synchronization capability allows the alignment of frames between
multiple devices in different locations, for example using a GPSDO 1 PPS output.
The internal sync signal is generated based on a dedicated counter, when its
value matches the one defined in ``SYNC_COUNTER_LOW`` / ``SYNC_COUNTER_HIGH``.
The software generated sync pulse is triggered at an arbitrary point in time
when writing a 1 value in ``SYNC_SOFT``.
The next diagram shows the peripherals FSM, which transitions between 4 states:
IDLE, ARMED, WAITING and RUNNING.
.. image:: fsm.svg
In case a synchronization signal is received while the TDD core is running, the
signal can reset the internal counter to zero by setting ``SYNC_RST`` to 1.
This can alter the counter value in both WAITING or RUNNING states.
The generic TDD controller can have up to 32 output channels, each of them
having its unique values when the channel is set/reset under ``CHX_ON`` /
``CHX_OFF``. They are continuously compared to the internal counters value
while the core is RUNNING.
Every bit in ``CHANNEL_ENABLE`` / ``CHANNEL_POLARITY`` corresponds to a specific
channel. The bit position is correlated to the channel index, so the LSB will
always be associated with CH0 and the MSB with CH31.
The following registers will not be updated unless the peripheral is disabled:
- ``BURST_COUNT``
- ``STARTUP_DELAY``
- ``FRAME_LENGTH``
- ``CHANNEL_POLARITY``
- ``SYNC_COUNTER_LOW``
- ``SYNC_COUNTER_HIGH``
- ``CHX_ON``
- ``CHX_OFF``
The user must configure them before enabling the peripheral. Any subsequent
write while the peripheral is enabled will be ignored.
An exception to this rule is ``CHANNEL_ENABLE``, which allows enabling /
disabling independent channels on-the-fly. The new value will come into effect
when in ARMED state or at the end of a frame. ``CONTROL`` can also be modified
on-the-fly with immediate effect (after going through the synchronization stage).
``STATUS`` can be used for debugging purposes, reflecting the current peripheral
state.
By adapting the synthesis parameters to the application requirements, the module
is highly flexible and can substantially reduce resource utilization.
Register Map
--------------------------------------------------------------------------------
.. hdl-regmap::
:name: TDDN_CNTRL

File diff suppressed because it is too large Load Diff

View File

@ -8,12 +8,12 @@ ENDTITLE
REG REG
0x0010 0x0010
REG_TDD_CONTROL_0 TDD_CONTROL_0
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[5] 0x0 [5] 0x00000000
TDD_GATED_TX_DMAPATH TDD_GATED_TX_DMAPATH
RW RW
If this bit is set, the core requests data from the TX DMA, just when the data path is active. If this bit is set, the core requests data from the TX DMA, just when the data path is active.
@ -22,7 +22,7 @@ facilitate debug. This bit must be SET to preserve data integrity.
ENDFIELD ENDFIELD
FIELD FIELD
[4] 0x0 [4] 0x00000000
TDD_GATED_RX_DMAPATH TDD_GATED_RX_DMAPATH
RW RW
If this bit is set, the core provides data for the RX DMA, just when the data path is active. If this bit is set, the core provides data for the RX DMA, just when the data path is active.
@ -31,7 +31,7 @@ facilitate debug. This bit must be SET to preserve data integrity.
ENDFIELD ENDFIELD
FIELD FIELD
[3] 0x0 [3] 0x00000000
TDD_TXONLY TDD_TXONLY
RW RW
If this bit is set- the TDD controller ignores all the TX_* timing registers If this bit is set- the TDD controller ignores all the TX_* timing registers
@ -39,7 +39,7 @@ below and assumes continuous receive operation within a frame.
ENDFIELD ENDFIELD
FIELD FIELD
[2] 0x0 [2] 0x00000000
TDD_RXONLY TDD_RXONLY
RW RW
If this bit is set- the TDD controller ignores all the RX_* timing registers If this bit is set- the TDD controller ignores all the RX_* timing registers
@ -47,7 +47,7 @@ below and assumes continuous transmit operation within a frame.
ENDFIELD ENDFIELD
FIELD FIELD
[1] 0x0 [1] 0x00000000
TDD_SECONDARY TDD_SECONDARY
RW RW
Enable the secondary transmit/receive on the active frame. If this bit is clear - Enable the secondary transmit/receive on the active frame. If this bit is clear -
@ -56,7 +56,7 @@ the controller uses the _1 and _2 timing registers below.
ENDFIELD ENDFIELD
FIELD FIELD
[0] 0x0 [0] 0x00000000
TDD_ENABLE TDD_ENABLE
RW RW
If set, enables the TDD controller- software must set this bit after programming If set, enables the TDD controller- software must set this bit after programming
@ -71,12 +71,12 @@ ENDFIELD
REG REG
0x0011 0x0011
REG_TDD_CONTROL_1 TDD_CONTROL_1
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[7:0] 0x00 [7:0] 0x00000000
TDD_BURST_COUNT TDD_BURST_COUNT
RW RW
If set to 0x0 and enabled (TDD_ENABLE is set) - the controller operates in TDD mode If set to 0x0 and enabled (TDD_ENABLE is set) - the controller operates in TDD mode
@ -89,12 +89,12 @@ ENDFIELD
REG REG
0x0012 0x0012
REG_TDD_CONTROL_2 TDD_CONTROL_2
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_COUNTER_INIT TDD_COUNTER_INIT
RW RW
The controller sets the frame counter to this value when starting TDD operation. The controller sets the frame counter to this value when starting TDD operation.
@ -106,12 +106,12 @@ ENDFIELD
REG REG
0x0013 0x0013
REG_TDD_FRAME_LENGTH TDD_FRAME_LENGTH
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_FRAME_LENGTH TDD_FRAME_LENGTH
RW RW
The frame length is the terminal count for the 10ms counter running at the digital The frame length is the terminal count for the 10ms counter running at the digital
@ -123,12 +123,12 @@ ENDFIELD
REG REG
0x0014 0x0014
REG_TDD_SYNC_TERMINAL_TYPE TDD_SYNC_TERMINAL_TYPE
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[0] 0x0 [0] 0x00000000
TDD_SYNC_TERMINAL_TYPE TDD_SYNC_TERMINAL_TYPE
RW RW
Set this bit, if the current terminal will generate the syncronization pulse, reset otherwise. Set this bit, if the current terminal will generate the syncronization pulse, reset otherwise.
@ -139,19 +139,19 @@ ENDFIELD
REG REG
0x0018 0x0018
REG_TDD_STATUS TDD_STATUS
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[0] 0x0 [0] 0x00000000
TDD_RXTX_VCO_OVERLAP TDD_RXTX_VCO_OVERLAP
RO RO
This bit is asserted, if exist a time interval when both the TX and RX VCOs are powered up. This bit is asserted, if exist a time interval when both the TX and RX VCOs are powered up.
ENDFIELD ENDFIELD
FIELD FIELD
[1] 0x0 [1] 0x00000000
TDD_RXTX_RF_OVERLAP TDD_RXTX_RF_OVERLAP
RO RO
This bit is asserted, if exist a time interval when both the TX and RX RF datapath are powered up. This bit is asserted, if exist a time interval when both the TX and RX RF datapath are powered up.
@ -162,12 +162,12 @@ ENDFIELD
REG REG
0x0020 0x0020
REG_TDD_VCO_RX_ON_1 TDD_VCO_RX_ON_1
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_VCO_RX_ON_1 TDD_VCO_RX_ON_1
RW RW
Defines the offset (from frame count equal zero), when the RX VCO powers up at the first time. Defines the offset (from frame count equal zero), when the RX VCO powers up at the first time.
@ -181,12 +181,12 @@ ENDFIELD
REG REG
0x0021 0x0021
REG_TDD_VCO_RX_OFF_1 TDD_VCO_RX_OFF_1
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_VCO_RX_OFF_1 TDD_VCO_RX_OFF_1
RW RW
Defines the offset (from frame count equal zero), when the RX VCO powers down at the first Defines the offset (from frame count equal zero), when the RX VCO powers down at the first
@ -200,12 +200,12 @@ ENDFIELD
REG REG
0x0022 0x0022
REG_TDD_VCO_TX_ON_1 TDD_VCO_TX_ON_1
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_VCO_TX_ON_1 TDD_VCO_TX_ON_1
RW RW
Defines the offset (from frame count equal zero), when the TX VCO powers up at the first time. Defines the offset (from frame count equal zero), when the TX VCO powers up at the first time.
@ -218,12 +218,12 @@ ENDFIELD
REG REG
0x0023 0x0023
REG_TDD_VCO_TX_OFF_1 TDD_VCO_TX_OFF_1
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_VCO_TX_OFF_1 TDD_VCO_TX_OFF_1
RW RW
Defines the offset (from frame count equal zero), when the TX VCO powers down at the first Defines the offset (from frame count equal zero), when the TX VCO powers down at the first
@ -237,12 +237,12 @@ ENDFIELD
REG REG
0x0024 0x0024
REG_TDD_RX_ON_1 TDD_RX_ON_1
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_RX_ON_1 TDD_RX_ON_1
RW RW
Defines the offset (from frame count equal zero), when the RX data path is activated at the Defines the offset (from frame count equal zero), when the RX data path is activated at the
@ -255,12 +255,12 @@ ENDFIELD
REG REG
0x0025 0x0025
REG_TDD_RX_OFF_1 TDD_RX_OFF_1
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_RX_OFF_1 TDD_RX_OFF_1
RW RW
Defines the offset (from frame count equal zero), when the RX data path is deactivated the Defines the offset (from frame count equal zero), when the RX data path is deactivated the
@ -274,12 +274,12 @@ ENDFIELD
REG REG
0x0026 0x0026
REG_TDD_TX_ON_1 TDD_TX_ON_1
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_TX_ON_1 TDD_TX_ON_1
RW RW
Defines the offset (from frame count equal zero), when the TX data path is activated at the Defines the offset (from frame count equal zero), when the TX data path is activated at the
@ -294,12 +294,12 @@ ENDFIELD
REG REG
0x0027 0x0027
REG_TDD_TX_OFF_1 TDD_TX_OFF_1
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_TX_OFF_1 TDD_TX_OFF_1
RW RW
Defines the offset (from frame count equal zero), when the TX data path is deactivated at the Defines the offset (from frame count equal zero), when the TX data path is deactivated at the
@ -314,12 +314,12 @@ ENDFIELD
REG REG
0x0028 0x0028
REG_TDD_RX_DP_ON_1 TDD_RX_DP_ON_1
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_RX_DP_ON_1 TDD_RX_DP_ON_1
RW RW
Defines the offset (from frame count equal zero), when the controller starts to accept data from Defines the offset (from frame count equal zero), when the controller starts to accept data from
@ -331,12 +331,12 @@ ENDFIELD
REG REG
0x0029 0x0029
REG_TDD_RX_DP_OFF_1 TDD_RX_DP_OFF_1
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_RX_DP_OFF_1 TDD_RX_DP_OFF_1
RW RW
Defines the offset (from frame count equal zero), when the controller stops to accept data from Defines the offset (from frame count equal zero), when the controller stops to accept data from
@ -349,12 +349,12 @@ ENDFIELD
REG REG
0x002A 0x002A
REG_TDD_TX_DP_ON_1 TDD_TX_DP_ON_1
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_TX_DP_ON_1 TDD_TX_DP_ON_1
RW RW
Defines the offset (from frame count equal zero), when the controller starts to request data from the system Defines the offset (from frame count equal zero), when the controller starts to request data from the system
@ -366,12 +366,12 @@ ENDFIELD
REG REG
0x002B 0x002B
REG_TDD_TX_DP_OFF_1 TDD_TX_DP_OFF_1
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_TX_DP_OFF_1 TDD_TX_DP_OFF_1
RW RW
Defines the offset (from frame count equal zero), when the controller stop requesting data from the system Defines the offset (from frame count equal zero), when the controller stop requesting data from the system
@ -383,12 +383,12 @@ ENDFIELD
REG REG
0x0030 0x0030
REG_TDD_VCO_RX_ON_2 TDD_VCO_RX_ON_2
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_VCO_RX_ON_2 TDD_VCO_RX_ON_2
RW RW
The secondary pointer for VCO_RX_ON. The secondary pointer for VCO_RX_ON.
@ -399,12 +399,12 @@ ENDFIELD
REG REG
0x0031 0x0031
REG_TDD_VCO_RX_OFF_2 TDD_VCO_RX_OFF_2
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_VCO_RX_OFF_2 TDD_VCO_RX_OFF_2
RW RW
The secondary pointer for VCO_RX_OFF. The secondary pointer for VCO_RX_OFF.
@ -415,12 +415,12 @@ ENDFIELD
REG REG
0x0032 0x0032
REG_TDD_VCO_TX_ON_2 TDD_VCO_TX_ON_2
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_VCO_TX_ON_2 TDD_VCO_TX_ON_2
RW RW
The secondary pointer for VCO_TX_ON. The secondary pointer for VCO_TX_ON.
@ -431,12 +431,12 @@ ENDFIELD
REG REG
0x0033 0x0033
REG_TDD_VCO_TX_OFF_2 TDD_VCO_TX_OFF_2
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_VCO_TX_OFF_2 TDD_VCO_TX_OFF_2
RW RW
The secondary pointer for VCO_TX_OFF. The secondary pointer for VCO_TX_OFF.
@ -447,12 +447,12 @@ ENDFIELD
REG REG
0x0034 0x0034
REG_TDD_RX_ON_2 TDD_RX_ON_2
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_RX_ON_2 TDD_RX_ON_2
RW RW
The secondary pointer for RX_ON. The secondary pointer for RX_ON.
@ -463,12 +463,12 @@ ENDFIELD
REG REG
0x0035 0x0035
REG_TDD_RX_OFF_2 TDD_RX_OFF_2
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_RX_OFF_2 TDD_RX_OFF_2
RW RW
The secondary pointer for RX_OFF. The secondary pointer for RX_OFF.
@ -479,12 +479,12 @@ ENDFIELD
REG REG
0x0036 0x0036
REG_TDD_TX_ON_2 TDD_TX_ON_2
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_TX_ON_2 TDD_TX_ON_2
RW RW
The secondary pointer for TX_ON. The secondary pointer for TX_ON.
@ -495,12 +495,12 @@ ENDFIELD
REG REG
0x0037 0x0037
REG_TDD_TX_OFF_2 TDD_TX_OFF_2
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_TX_OFF_2 TDD_TX_OFF_2
RW RW
The secondary pointer for TX_OFF. The secondary pointer for TX_OFF.
@ -511,12 +511,12 @@ ENDFIELD
REG REG
0x0038 0x0038
REG_TDD_RX_DP_ON_2 TDD_RX_DP_ON_2
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_RX_DP_ON_2 TDD_RX_DP_ON_2
RW RW
The secondary pointer for RX_DP_ON. The secondary pointer for RX_DP_ON.
@ -527,12 +527,12 @@ ENDFIELD
REG REG
0x0039 0x0039
REG_TDD_RX_DP_OFF_2 TDD_RX_DP_OFF_2
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_RX_DP_OFF_2 TDD_RX_DP_OFF_2
RW RW
The secondary pointer for RX_DP_OFF. The secondary pointer for RX_DP_OFF.
@ -543,12 +543,12 @@ ENDFIELD
REG REG
0x003A 0x003A
REG_TDD_TX_DP_ON_2 TDD_TX_DP_ON_2
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_TX_DP_ON_2 TDD_TX_DP_ON_2
RW RW
The secondary pointer for TX_DP_ON. The secondary pointer for TX_DP_ON.
@ -559,12 +559,12 @@ ENDFIELD
REG REG
0x003B 0x003B
REG_TDD_TX_DP_OFF_2 TDD_TX_DP_OFF_2
TDD Control & Status TDD Control & Status
ENDREG ENDREG
FIELD FIELD
[23:0] 0x000000 [23:0] 0x00000000
TDD_TX_DP_OFF_2 TDD_TX_DP_OFF_2
RW RW
The secondary pointer for TX_DP_OFF. The secondary pointer for TX_DP_OFF.
@ -572,4 +572,3 @@ ENDFIELD
############################################################################################ ############################################################################################
############################################################################################ ############################################################################################