PHY Transmitter Interface¶
The PHY Transmitter IP core must be instantiated in the FPGA design along with other required cores. The PHY Tx core also requires a CPU in the FPGA design for configuration and control from software.
The PHY Transmitter core port are described below.
Clocks and Resets¶
The Tx PHY core implements two clock domains - Sampling Clock and Processing Clock domains.
The Sampling Clock domain implements the I/Q outputs to the radio interface DACs. These outputs are driven by a clock-domain-crossing FIFO. The Sampling Clock must be synchronous to the radio interface logic.
The Processing Clock domain implements the complete 802.11 Tx pipeline. The Processing Clock is typically synchronous to the CPU and AXI infrastructure clocks.
Port | Direction | Data Type | Description |
---|---|---|---|
tx_phy_pipeline_proc_clk_clk |
Input | UFix1_0 |
Processing clock input, must be at least 4x faster than the sampling rate (toggling rate of rf_tx_iq_rd_en input) |
tx_phy_interface_samp_clk_clk |
Input | UFix1_0 |
Sampling clock input |
tx_reset |
Input | UFix1_0 |
Synchronous active-high reset to all state in Tx processing pipeline. This reset does not clear registers in the AXI slave interface. |
tx_phy_pipeline_proc_clk_aresetn |
Input | UFix1_0 |
Asynchronous active-low reset for AXI interface logic. This reset does not clear registers in the AXI slave interface. This signal should be connected to the same reset as the AXI infrastructure cores. |
AXI Slave Interface¶
The Tx PHY IP core implements an AXI4-Lite slave interface with many configuration and status registers. The FPGA design must connect this AXI slave interface to an AXI master, typically a CPU. The CPU must configure the Tx PHY IP core at boot by writing the core’s registers.
The Tx core’s AXI interface appears as a bus named tx_phy_pipeline_proc_clk_regs_s_axi
in the Vivado tools. This bus interface wraps all the inputs/outputs which implement the AXI interface.
Packet Buffer Block RAM Interface¶
The Tx PHY IP core implements a block RAM master interface. The FPGA design must connect this interface to one port of a dual-port 64KB block RAM. The other block RAM port must be accessible by the CPUs in the FPGA design. The block RAM must be in the Processing Clock domain.
This block RAM implements the 16 packet buffers required by the MAC software. The Tx PHY core reads packet data directly from the packet buffer block RAM during a transmission.
Port | Direction | Data Type | Description |
---|---|---|---|
bram_addr |
Output | UFix31_0 |
Address, connect to block RAM addr port |
bram_din |
Input | UFix63_0 |
Data in, connect to block RAM dout port |
bram_wen |
Output | UFix7_0 |
Write enable, connect to block RAM we port. The Tx PHY ties this port to zero. |
bram_dout |
Output | UFix63_0 |
Data output, connect to block RAM din port. The Tx PHY ties this port to zero. |
bram_en |
Output | UFix1_0 |
RAM enable, connect to block RAM en port |
bram_reset |
Output | UFix1_0 |
RAM reset, connect to block RAM rst port |
MAC Support Core Interface¶
The following ports must be connected to the MAC Support Core (wlan_mac_hw
) in the FPGA design. These signals are in the Processing Clock domain.
Port | Direction | Data Type | Description |
---|---|---|---|
phy_tx_start |
Input | UFix1_0 |
Rising edge starts new transmission |
phy_tx_pkt_buf |
Input | UFix4_0 |
Index of packet buffer containing packet to transmit; captured on rising edge of phy_tx_start |
phy_tx_phy_mode |
Input | UFix2_0 |
Selects waveform format for transmission (1=NONHT, 2=HTMF); captured on rising edge of phy_tx_start |
phy_tx_ant_mask |
Input | UFix4_0 |
One-hot value selects which antenna outputs are active for transmission; captured on rising edge of phy_tx_start |
phy_tx_phy_mode |
Input | UFix2_0 |
Selects waveform format for transmission (1=NONHT, 2=HTMF); captured on rising edge of phy_tx_start |
phy_tx_gain_X |
Input | UFix6_0 |
Tx gain indexes passed through to rc_tx_gain_X output at start of transmission; captured on rising edge of phy_tx_start |
phy_tx_started |
Output | UFix1_0 |
Asserts when first sample is output from Tx PHY to DACs |
phy_tx_done |
Output | UFix1_0 |
Pulses high after last sample is output from Tx PHY to DACs |
I/Q Sample Interface¶
The following ports must be connected to the radio interface in the FPGA design. These signals are in the samp_clk
clock domain.
Port | Direction | Data Type | Description |
---|---|---|---|
rf_tx_iq_rd_en |
Input | UFix1_0 |
High level on this input outputs new IQ sample on all IQ outputs. The radio interface must drive this signal at the rate at which it requires samples. |
rf_a_tx_<i,q> |
Outputs | Fix16_15 |
Complex baseband (IQ) samples for RF A interface |
rf_b_tx_<i,q> |
Outputs | Fix16_15 |
Complex baseband (IQ) samples for RF B interface |