PHY Transmitter Register Map
The PHY Transmitter IP core implements an AXI4-Lite slave interface which must be be connected to a CPU in the FPGA design. The software must configure and control the Tx PHY by accessing registers via this AXI interface.
The name and contents of each register are detailed below. The register address offsets are chosen automatically by System Generator when the IP core is exported. The actual address offsets are defined in the wlan_phy_tx_pmd_hw.h
header file written by System Generator during the export process.
All software-accessible registers are 32 bits wide. Each register is either read/write (“Gateway In” block in the Sysgen model) or read-only (“Gateway Out” block).
Individual register fields have specific System Generator data types. Datatype descriptions below use the standard System Generator syntax, where UFixM_N
and FixM_N
refer to unsigned and signed fixed-point values with M
total bits and binary point N
.
Register List
Name |
Access |
Description |
TX_START |
RW |
Tx start control bits (only for software-initiated Tx events) |
TX_CONFIG |
RW |
Configuration bits |
TIMING |
RW |
Post-Tx Timing values |
PKT_BUF_SEL |
RW |
Packet buffer selection and interface config |
PHY_START_DELAY |
RW |
Tx start delay configuration |
OUTPUT_SCALING |
RW |
Post-Tx Timing values |
FFT_CONFIG |
RW |
FFT core configuration |
STATUS |
RO |
Tx core status |
Register TX_START
Name |
Bits |
Datatype |
Description |
TX_START_DIRECT |
0 |
UFix1_0 |
Immediately starts a new software-initiated transmission from the packet buffer selected by the Pkt_Buf_Sel value. This field should only be used for testing the Tx PHY alone; in the full FPGA design the Tx PHY is started by the MAC support core via the TX_START.IND port. |
Register TX_CONFIG
Name |
Bits |
Datatype |
Description |
RESET |
31 |
UFix1_0 |
Resets all state in the Tx pipeline, does not reset registers |
PHY_MODE |
14:12 |
UFix3_0 |
Sets the PHY mode (1=NONHT, 2=HTMF) for software-initiated transmissions; PHY mode is typically set by the MAC support core via the PHY_TX_PHY_MODE input port |
RESET_SIGNAL_ERRS |
9 |
UFix1_0 |
Resets the latches which capture SIGNAL field decoding errors |
TX_START_SEL |
8 |
UFix1_0 |
Selects which event starts the Tx PHY pipeline; 0 selects the RC_PHY_START input port, 1 selects a programmed delay after the PHY_TX_START input port |
USE_MAC_ANTMASKS |
6 |
UFix1_0 |
Enables the PHY_TX_ANT_MASK input port, giving control of Tx antenna selection to the MAC support core |
ANTB_TX_EN |
3 |
UFix1_0 |
Enables the I/Q outputs to the RF B interface; can be overridden by the antenna selection value provided by the MAC core in hardware |
ANTA_TX_EN |
2 |
UFix1_0 |
Enables the I/Q outputs to the RF A interface; can be overridden by the antenna selection value provided by the MAC core in hardware |
RESET_SCRBL_PERTX |
1 |
UFix1_0 |
When asserted the Tx PHY resets the scrambler on every transmission; set to 0 for pseudo-random initial scrambler state per transmission. |
RC_RXEN_ENABLE |
0 |
UFix1_0 |
Asserts the RC_RXEN output when the Tx PHY is not transmitting |
Register TIMING
Name |
Bits |
Datatype |
Description |
POST_TX_RX_SIGS_INVALID |
29:20 |
UFix10_0 |
Delay between the last sample output to the DACs and de-assertion of the RX_SIGS_INVALID output, in units of 4 proc_clk cycles |
POST_TXEN_EXTENSION |
19:10 |
UFix10_0 |
Delay between the last sample output to the DACs and de-assertion of the RX_USR_TXEN outputs, in units of 4 proc_clk cycles |
POST_TX_EXTENSION |
9:0 |
UFix10_0 |
Delay between the last sample output to the DACs and assertion of the TX_END.IND output to the MAC, in units of 4 proc_clk cycles |
Register PKT_BUF_SEL
Name |
Bits |
Datatype |
Description |
PKT_BUYF_ADDR_OFFSET |
23:16 |
UFix8_0 |
Sets the byte index of the start of the PHY header in Tx packet buffers, typically set to sizeof(tx_frame_info_t) by MAC software. Must be a multiple of 8. |
PKT_BUF_SEL |
3:0 |
UFix4_0 |
Selects the Tx packet index, only used for software-initiated transmissions. Packet buffer is typically selected by the MAC support core via the PHY_TX_PKT_BUF input port. |
Register PHY_START_DELAY
Name |
Bits |
Datatype |
Description |
PHY_START_DELAY |
13:0 |
UFix14_0 |
Sets delay between assertion of TX_START.IND by MAC core and start of Tx pipeline, in units of 4 proc_clk cycles |
Register OUTPUT_SCALING
Name |
Bits |
Datatype |
Description |
TX_SCALING |
15:0 |
UFix16_12 |
Sets digital scaling at output of Tx pipeine before samples are fed to DACs |
Register FFT_CONFIG
Name |
Bits |
Datatype |
Description |
FFT_SCALING |
29:24 |
UFix6_0 |
Scaling configuration for FFT core, should be set to 0x2A ; refer to Xilinx FFT core datasheet for details on scaling modes |
CP_LEN |
15:8 |
UFix8_0 |
Number of cyclic prefix samples, must be set to 16 |
NUM_SC |
7:0 |
UFix8_0 |
Number of subcarriers, must be set to 64 |
Register STATUS
Name |
Bits |
Datatype |
Description |
SIG_DECODE_ERRS |
3:1 |
UFix3_0 |
Error code when Tx PHY cannot decode SIGNAL field as provided by MAC sofware in Tx packet buffer |
TX_RUNNING |
0 |
UFix1_0 |
Indicates Tx PHY is active; asserts when software or hardware initiates a transmission, de-asserts after Tx extension after last sample output to DACs |