Entity: dot11_tx
- File: dot11_tx.v
Diagram
Description
Ports
| Port name | Direction | Type | Description |
|---|---|---|---|
| clk | input | wire | |
| phy_tx_arest | input | wire | |
| phy_tx_start | input | wire | |
| phy_tx_done | output | ||
| phy_tx_started | output | ||
| init_pilot_scram_state | input | wire [6:0] | |
| init_data_scram_state | input | wire [6:0] | |
| bram_din | input | wire [63:0] | |
| bram_addr | output | [9:0] | |
| result_iq_ready | input | wire | |
| result_iq_valid | output | wire | |
| result_i | output | wire [15:0] | |
| result_q | output | wire [15:0] |
Signals
| Name | Type | Description |
|---|---|---|
| FSM3_reset | reg | Reset after transmiting a whole packet |
| reset_int | wire | |
| state1 | reg [1:0] | Data collection states |
| state11 | reg [2:0] | |
| state2 | reg [1:0] | IQ sample generation states |
| state3 | reg [2:0] | IQ sample forwarding states |
| PKT_TYPE | reg | |
| plcp_bit_cnt | reg [5:0] | |
| service_bit_cnt | reg [3:0] | |
| psdu_bit_cnt | reg [14:0] | Maximum number of PSDU bits = 4095*8 = 32760 |
| ofdm_cnt_FSM1 | reg [10:0] | Maximum number of OFDM symbols = 1 + ceil((16+4095*8+6)/24) = 1367 |
| l_stf | wire [31:0] | //////////////////////////////////////////////////////////////////////// LEGACY SHORT + LONG PREAMBLE //////////////////////////////////////////////////////////////////////// |
| l_ltf | wire [31:0] | |
| preamble_addr | reg [7:0] | |
| ht_stf | wire [31:0] | //////////////////////////////////////////////////////////////////////// HT SHORT + LONG PREAMBLE //////////////////////////////////////////////////////////////////////// |
| ht_ltf | wire [31:0] | |
| crc_en | wire | //////////////////////////////////////////////////////////////////////// Cyclic redundancy check (CRC32) and frame check sequence (FCS) block //////////////////////////////////////////////////////////////////////// |
| crc_data | wire [3:0] | |
| pkt_fcs | wire [31:0] | |
| pkt_fcs_idx | reg [4:0] | |
| bit_scram | reg | //////////////////////////////////////////////////////////////////////// bit source selection and scrambling operation //////////////////////////////////////////////////////////////////////// |
| data_scram_state | reg [6:0] | |
| enc_reset | wire | //////////////////////////////////////////////////////////////////////// Convolutional encoding //////////////////////////////////////////////////////////////////////// |
| enc_en | wire | |
| bits_enc | wire [1:0] | |
| N_BPSC | reg [2:0] | //////////////////////////////////////////////////////////////////////// DOT11 TX FINITE STATE MACHINE 1 //////////////////////////////////////////////////////////////////////// |
| N_DBPS | reg [8:0] | |
| RATE | reg [4:0] | |
| PSDU_BIT_LEN | reg [14:0] | |
| S_GI | reg | |
| dbps_cnt_FSM1 | reg [8:0] | |
| bits_enc_fifo_idata | wire [1:0] | //////////////////////////////////////////////////////////////////////// Store scrambed bits into axi stream fifo //////////////////////////////////////////////////////////////////////// |
| bits_enc_fifo_odata | wire [1:0] | //////////////////////////////////////////////////////////////////////// Store scrambed bits into axi stream fifo //////////////////////////////////////////////////////////////////////// |
| bits_enc_fifo_ivalid | wire | |
| bits_enc_fifo_ovalid | wire | |
| bits_enc_fifo_iready | wire | |
| bits_enc_fifo_oready | wire | |
| bits_enc_fifo_space | wire [15:0] | |
| ofdm_cnt_FSM2 | reg [10:0] | //////////////////////////////////////////////////////////////////////// Bit puncturing and bit interleaving //////////////////////////////////////////////////////////////////////// Puncturing and interleaving index look up table |
| dbps_cnt_FSM2 | reg [8:0] | |
| punc_info | wire [1:0] | |
| interlv_addrs | wire [17:0] | |
| enc_pos | reg | This is a RAM module for holding convolutionally encoded, punctured and interleaved bits. Bit puncturing is implicitly carried out, such that punc_interlv_lut provides write address along with puncturing ON/OFF signal |
| bits_ram_en | wire | |
| punc_bit | wire | |
| bits_ram_waddr | wire [8:0] | |
| mod_addr | reg [5:0] | |
| bits_to_mod | wire [5:0] | |
| mod_IQ | wire [31:0] | //////////////////////////////////////////////////////////////////////// Bits modulation //////////////////////////////////////////////////////////////////////// BPSK, QPSK, 16-QAM and 64-QAM modulation |
| pilot_iq | reg [31:0] | //////////////////////////////////////////////////////////////////////// PILOT, DC (0Hz) and sideband(SB) //////////////////////////////////////////////////////////////////////// |
| pilot_scram_state | reg [6:0] | |
| ht_polarity | reg [3:0] | |
| pilot_gain | wire | |
| DC_SB_IQ | wire [31:0] | |
| ifft_iq | reg [31:0] | //////////////////////////////////////////////////////////////////////// Inverse Fast Fourier Transform (IFFT) //////////////////////////////////////////////////////////////////////// |
| iq_cnt | reg [7:0] | |
| ifft_ce | reg | |
| ifft_o_sync | wire | |
| ifft_o_result | wire [31:0] | |
| dbps_size | wire [8:0] | //////////////////////////////////////////////////////////////////////// DOT11 TX FINITE STATE MACHINE 2 //////////////////////////////////////////////////////////////////////// |
| ifft_status | reg | //////////////////////////////////////////////////////////////////////// Count number of [pkt/CP] IQ samples to send //////////////////////////////////////////////////////////////////////// |
| ifft_ce_reg | reg | |
| ifft_o_result_reg | reg [31:0] | |
| ifft_o_iq_cnt | reg [5:0] | |
| ifft_o_sync_cnt | reg [10:0] | |
| nof_iq2send | reg [15:0] | |
| CP_fifo_idata | wire [31:0] | //////////////////////////////////////////////////////////////////////// Cyclic Prefix IFFT output -> Axi stream fifo //////////////////////////////////////////////////////////////////////// |
| CP_fifo_odata | wire [31:0] | //////////////////////////////////////////////////////////////////////// Cyclic Prefix IFFT output -> Axi stream fifo //////////////////////////////////////////////////////////////////////// |
| CP_fifo_ivalid | wire | |
| CP_fifo_ovalid | wire | |
| CP_fifo_iready | wire | |
| CP_fifo_oready | wire | |
| CP_fifo_space | wire [15:0] | |
| pkt_fifo_idata | wire [31:0] | //////////////////////////////////////////////////////////////////////// Packet IFFT output -> Axi stream fifo //////////////////////////////////////////////////////////////////////// |
| pkt_fifo_odata | wire [31:0] | //////////////////////////////////////////////////////////////////////// Packet IFFT output -> Axi stream fifo //////////////////////////////////////////////////////////////////////// |
| pkt_fifo_ivalid | wire | |
| pkt_fifo_ovalid | wire | |
| pkt_fifo_iready | wire | |
| pkt_fifo_oready | wire | |
| pkt_fifo_space | wire [15:0] | |
| fifo_turn | reg | //////////////////////////////////////////////////////////////////////// Count number of [pkt/CP] IQ samples sent //////////////////////////////////////////////////////////////////////// |
| pkt_iq_sent | reg [15:0] | |
| CP_iq_sent | reg [13:0] |
Constants
| Name | Type | Value | Description |
|---|---|---|---|
| S1_WAIT_PKT | 0 | ||
| S1_L_SIG | 1 | ||
| S1_HT_SIG | 2 | ||
| S1_DATA | 3 | ||
| S11_SERVICE | 0 | ||
| S11_PSDU_DATA | 1 | ||
| S11_PSDU_CRC | 2 | ||
| S11_TAIL | 3 | ||
| S11_PAD | 4 | ||
| S11_RESET | 5 | ||
| S2_PUNC_INTERLV | 0 | ||
| S2_PILOT_DC_SB | 1 | ||
| S2_MOD_IFFT_INPUT | 2 | ||
| S2_RESET | 3 | ||
| S3_WAIT_PKT | 0 | ||
| S3_L_STF | 1 | ||
| S3_L_LTF | 2 | ||
| S3_L_SIG | 3 | ||
| S3_HT_SIG | 4 | ||
| S3_HT_STF | 5 | ||
| S3_HT_LTF | 6 | ||
| S3_DATA | 7 | ||
| LEGACY | 0 | ||
| HT | 1 | ||
| NO_OUTPUT_YET | 0 | ||
| OUTPUT_STARTED | 1 | ||
| CP_FIFO | 0 | ||
| PKT_FIFO | 1 |
Processes
- unnamed: ( @* )
Type: always
- unnamed: ( @(posedge clk) )
Type: always
- unnamed: ( @* )
Type: always
- unnamed: ( @(posedge clk) )
Type: always
- unnamed: ( @(posedge clk) )
Type: always
- unnamed: ( @(posedge clk) )
Type: always
- unnamed: ( @(posedge clk) )
Type: always
Description
//////////////////////////////////////////////////////////////////////// DOT11 TX FINITE STATE MACHINE 3 ////////////////////////////////////////////////////////////////////////
Instantiations
- l_stf_rom: l_stf_rom
- l_ltf_rom: l_ltf_rom
- ht_stf_rom: ht_stf_rom
- ht_ltf_rom: ht_ltf_rom
- fcs_inst: crc32_tx
- convenc: convenc
- bits_enc_fifo: axi_fifo_bram
- punc_interlv_lut: punc_interlv_lut
- bits_ram: ram_simo
- modulation: modulation
- ifft64: ifftmain
- CP_fifo: axi_fifo_bram
- pkt_fifo: axi_fifo_bram
State machines
- ////////////////////////////////////////////////////////////////////////
DOT11 TX FINITE STATE MACHINE 3
////////////////////////////////////////////////////////////////////////