Entity: tx_intf

Diagram

integer DAC_PACK_DATA_WIDTH integer IQ_DATA_WIDTH integer CSI_FUZZER_WIDTH integer WIFI_TX_BRAM_DATA_WIDTH integer WIFI_TX_BRAM_ADDR_WIDTH integer WIFI_TX_BRAM_WEN_WIDTH integer C_S00_AXI_DATA_WIDTH integer C_S00_AXI_ADDR_WIDTH integer C_S00_AXIS_TDATA_WIDTH integer C_M00_AXIS_TDATA_WIDTH integer WAIT_COUNT_BITS integer MAX_NUM_DMA_SYMBOL wire dac_rst wire dac_clk wire dma_valid wire [(DAC_PACK_DATA_WIDTH-1) : 0] dma_data wire dac_ready wire [(WIFI_TX_BRAM_ADDR_WIDTH-1):0] bram_addr wire signed [(IQ_DATA_WIDTH-1) : 0] rf_i_from_acc wire signed [(IQ_DATA_WIDTH-1) : 0] rf_q_from_acc wire rf_iq_valid_from_acc wire tx_start_from_acc wire tx_end_from_acc wire [4:0] tx_status wire [47:0] mac_addr wire high_tx_allowed0 wire high_tx_allowed1 wire high_tx_allowed2 wire high_tx_allowed3 wire tx_bb_is_ongoing wire ack_tx_flag wire wea_from_xpu wire [9:0] addra_from_xpu wire [(C_S00_AXIS_TDATA_WIDTH-1):0] dina_from_xpu wire tx_try_complete wire [9:0] num_slot_random wire [3:0] cw wire retrans_in_progress wire start_retrans wire start_tx_ack wire tx_control_state_idle wire tsf_pulse_1M wire [3:0] band wire [7:0] channel wire s00_axi_aclk wire s00_axi_aresetn wire [C_S00_AXI_ADDR_WIDTH-1 : 0] s00_axi_awaddr wire [2 : 0] s00_axi_awprot wire s00_axi_awvalid wire [C_S00_AXI_DATA_WIDTH-1 : 0] s00_axi_wdata wire [(C_S00_AXI_DATA_WIDTH/8)-1 : 0] s00_axi_wstrb wire s00_axi_wvalid wire s00_axi_bready wire [C_S00_AXI_ADDR_WIDTH-1 : 0] s00_axi_araddr wire [2 : 0] s00_axi_arprot wire s00_axi_arvalid wire s00_axi_rready wire s00_axis_aclk wire s00_axis_aresetn wire [C_S00_AXIS_TDATA_WIDTH-1 : 0] s00_axis_tdata wire [(C_S00_AXIS_TDATA_WIDTH/8)-1 : 0] s00_axis_tstrb wire s00_axis_tlast wire s00_axis_tvalid wire dma_ready wire dac_valid wire [(DAC_PACK_DATA_WIDTH-1) : 0] dac_data wire [(2*IQ_DATA_WIDTH-1) : 0] iq0_for_check wire [(2*IQ_DATA_WIDTH-1) : 0] iq1_for_check wire iq_valid_for_check wire phy_tx_start wire tx_hold wire [(WIFI_TX_BRAM_DATA_WIDTH-1) : 0] data_to_acc wire [(WIFI_TX_BRAM_ADDR_WIDTH-1):0] bram_addr_to_xpu wire tx_itrpt wire [(WIFI_TX_BRAM_DATA_WIDTH-1):0] douta wire tx_iq_fifo_empty wire tx_pkt_need_ack wire [3:0] tx_pkt_retrans_limit wire cts_toself_bb_is_ongoing wire cts_toself_rf_is_ongoing wire quit_retrans wire high_trigger wire [1:0] tx_queue_idx_to_xpu wire s00_axi_awready wire s00_axi_wready wire [1 : 0] s00_axi_bresp wire s00_axi_bvalid wire s00_axi_arready wire [C_S00_AXI_DATA_WIDTH-1 : 0] s00_axi_rdata wire [1 : 0] s00_axi_rresp wire s00_axi_rvalid wire s00_axis_tready

Description

Xianjun jiao. putaoshu@msn.com; xianjun.jiao@imec.be;

Generics

Generic name Type Value Description
DAC_PACK_DATA_WIDTH integer 64
IQ_DATA_WIDTH integer 16
CSI_FUZZER_WIDTH integer 7
WIFI_TX_BRAM_DATA_WIDTH integer 64
WIFI_TX_BRAM_ADDR_WIDTH integer 10
WIFI_TX_BRAM_WEN_WIDTH integer 8
C_S00_AXI_DATA_WIDTH integer 32
C_S00_AXI_ADDR_WIDTH integer 7
C_S00_AXIS_TDATA_WIDTH integer 64
C_M00_AXIS_TDATA_WIDTH integer 64
WAIT_COUNT_BITS integer 5
MAX_NUM_DMA_SYMBOL integer 8192

Ports

Port name Direction Type Description
dac_rst input wire
dac_clk input wire
dma_valid input wire connect axi_ad9361_dac_dma
dma_data input wire [(DAC_PACK_DATA_WIDTH-1) : 0]
dma_ready output wire
dac_valid output wire connect util_ad9361_dac_upack
dac_data output wire [(DAC_PACK_DATA_WIDTH-1) : 0]
dac_ready input wire
iq0_for_check output wire [(2*IQ_DATA_WIDTH-1) : 0] Ports to side_ch for check
iq1_for_check output wire [(2*IQ_DATA_WIDTH-1) : 0]
iq_valid_for_check output wire
phy_tx_start output wire Ports to ACC: PHY_TX
tx_hold output wire
bram_addr input wire [(WIFI_TX_BRAM_ADDR_WIDTH-1):0]
rf_i_from_acc input wire signed [(IQ_DATA_WIDTH-1) : 0]
rf_q_from_acc input wire signed [(IQ_DATA_WIDTH-1) : 0]
rf_iq_valid_from_acc input wire
data_to_acc output wire [(WIFI_TX_BRAM_DATA_WIDTH-1) : 0]
bram_addr_to_xpu output wire [(WIFI_TX_BRAM_ADDR_WIDTH-1):0]
tx_start_from_acc input wire
tx_end_from_acc input wire
tx_itrpt output wire interrupt to PS
tx_status input wire [4:0] for xpu
mac_addr input wire [47:0]
douta output wire [(WIFI_TX_BRAM_DATA_WIDTH-1):0] for changing some bits to indicate it is the 1st pkt or retransmitted pkt
tx_iq_fifo_empty output wire output wire [(IQ_DATA_WIDTH-1):0] i0, output wire [(IQ_DATA_WIDTH-1):0] q0, output wire [(IQ_DATA_WIDTH-1):0] i1, output wire [(IQ_DATA_WIDTH-1):0] q1, output wire iq_valid, output wire [31:0] mixer_cfg,
high_tx_allowed0 input wire when this is valid, driver takes over tx, other wise xpu takes over tx
high_tx_allowed1 input wire for another queue
high_tx_allowed2 input wire
high_tx_allowed3 input wire
tx_bb_is_ongoing input wire
ack_tx_flag input wire
wea_from_xpu input wire
addra_from_xpu input wire [9:0]
dina_from_xpu input wire [(C_S00_AXIS_TDATA_WIDTH-1):0]
tx_pkt_need_ack output wire
tx_pkt_retrans_limit output wire [3:0]
tx_try_complete input wire
num_slot_random input wire [9:0]
cw input wire [3:0]
retrans_in_progress input wire
start_retrans input wire
start_tx_ack input wire
tx_control_state_idle input wire
cts_toself_bb_is_ongoing output wire
cts_toself_rf_is_ongoing output wire
tsf_pulse_1M input wire
band input wire [3:0]
channel input wire [7:0]
quit_retrans output wire
high_trigger output wire
tx_queue_idx_to_xpu output wire [1:0]
s00_axi_aclk input wire Ports of Axi Slave Bus Interface S00_AXI
s00_axi_aresetn input wire
s00_axi_awaddr input wire [C_S00_AXI_ADDR_WIDTH-1 : 0]
s00_axi_awprot input wire [2 : 0]
s00_axi_awvalid input wire
s00_axi_awready output wire
s00_axi_wdata input wire [C_S00_AXI_DATA_WIDTH-1 : 0]
s00_axi_wstrb input wire [(C_S00_AXI_DATA_WIDTH/8)-1 : 0]
s00_axi_wvalid input wire
s00_axi_wready output wire
s00_axi_bresp output wire [1 : 0]
s00_axi_bvalid output wire
s00_axi_bready input wire
s00_axi_araddr input wire [C_S00_AXI_ADDR_WIDTH-1 : 0]
s00_axi_arprot input wire [2 : 0]
s00_axi_arvalid input wire
s00_axi_arready output wire
s00_axi_rdata output wire [C_S00_AXI_DATA_WIDTH-1 : 0]
s00_axi_rresp output wire [1 : 0]
s00_axi_rvalid output wire
s00_axi_rready input wire
s00_axis_aclk input wire Ports of Axi Slave Bus Interface S00_AXIS to PS
s00_axis_aresetn input wire
s00_axis_tready output wire
s00_axis_tdata input wire [C_S00_AXIS_TDATA_WIDTH-1 : 0]
s00_axis_tstrb input wire [(C_S00_AXIS_TDATA_WIDTH/8)-1 : 0]
s00_axis_tlast input wire
s00_axis_tvalid input wire

Signals

Name Type Description
slv_reg_rden wire
axi_araddr_core wire [4:0]
slv_reg0 wire [(C_S00_AXI_DATA_WIDTH-1):0]
slv_reg1 wire [(C_S00_AXI_DATA_WIDTH-1):0] duc config
slv_reg2 wire [(C_S00_AXI_DATA_WIDTH-1):0] phy tx auto_start_mode and num_dma_symbol_th
slv_reg3 wire [(C_S00_AXI_DATA_WIDTH-1):0]
slv_reg4 wire [(C_S00_AXI_DATA_WIDTH-1):0] CTS duration for CTS-TO-SELF CTS-PROTECT TX
slv_reg5 wire [(C_S00_AXI_DATA_WIDTH-1):0]
slv_reg6 wire [(C_S00_AXI_DATA_WIDTH-1):0]
slv_reg7 wire [(C_S00_AXI_DATA_WIDTH-1):0]
slv_reg8 wire [(C_S00_AXI_DATA_WIDTH-1):0]
slv_reg9 wire [(C_S00_AXI_DATA_WIDTH-1):0]
slv_reg10 wire [(C_S00_AXI_DATA_WIDTH-1):0]
slv_reg11 wire [(C_S00_AXI_DATA_WIDTH-1):0]
slv_reg12 wire [(C_S00_AXI_DATA_WIDTH-1):0]
slv_reg13 wire [(C_S00_AXI_DATA_WIDTH-1):0]
slv_reg14 wire [(C_S00_AXI_DATA_WIDTH-1):0]
slv_reg16 wire [(C_S00_AXI_DATA_WIDTH-1):0] wire [(C_S00_AXI_DATA_WIDTH-1):0] slv_reg15; //
slv_reg21 wire [(C_S00_AXI_DATA_WIDTH-1):0]
slv_reg22 wire [(C_S00_AXI_DATA_WIDTH-1):0]
slv_reg24 wire [(C_S00_AXI_DATA_WIDTH-1):0] wire [(C_S00_AXI_DATA_WIDTH-1):0] slv_reg23; //
ant_data wire [(2*IQ_DATA_WIDTH-1) : 0] wire [(C_S00_AXI_DATA_WIDTH-1):0] slv_reg25; // wire [(C_S00_AXI_DATA_WIDTH-1):0] slv_reg26; wire [(C_S00_AXI_DATA_WIDTH-1):0] slv_reg27; // wire [(C_S00_AXI_DATA_WIDTH-1):0] slv_reg28; // wire [(C_S00_AXI_DATA_WIDTH-1):0] slv_reg29; // wire [(C_S00_AXI_DATA_WIDTH-1):0] slv_reg30; // wire [(C_S00_AXI_DATA_WIDTH-1):0] slv_reg31; // MSB 8 bits are used for version read out
ant_data_valid wire
fulln_from_dac_to_duc wire
wifi_iq_pack wire [(2*IQ_DATA_WIDTH-1) : 0]
wifi_iq_valid wire
wifi_iq_ready wire
s_axis_data_to_acc wire [(C_S00_AXIS_TDATA_WIDTH-1):0]
tx_bit_intf_acc_ask_data_from_s_axis wire
acc_ask_data_from_s_axis wire
s_axis_emptyn_to_acc wire
s_axis_fifo_data_count0 wire [(MAX_BIT_NUM_DMA_SYMBOL-1) : 0]
s_axis_fifo_data_count1 wire [(MAX_BIT_NUM_DMA_SYMBOL-1) : 0]
s_axis_fifo_data_count2 wire [(MAX_BIT_NUM_DMA_SYMBOL-1) : 0]
s_axis_fifo_data_count3 wire [(MAX_BIT_NUM_DMA_SYMBOL-1) : 0]
tx_queue_idx wire [1:0] (* mark_debug = "true" *) wire [1:0] tx_queue_idx;
linux_prio wire [1:0]
tx_pkt_sn wire [9:0]
num_dma_symbol_fifo_data_count0 wire [6:0] wire [15:0] tx_pkt_num_dma_byte;
num_dma_symbol_fifo_data_count1 wire [6:0]
num_dma_symbol_fifo_data_count2 wire [6:0]
num_dma_symbol_fifo_data_count3 wire [6:0]
dac_intf_rd_data_count wire [5:0]
dac_intf_wr_data_count wire [5:0]
dac_intf_counter_1s wire [27:0]
dac_intf_counter_rden_store wire [26:0]
dac_intf_counter_dac wire [27:0]
dac_intf_counter_wren_store wire [26:0]
phy_tx_auto_start_mode wire
phy_tx_auto_start_num_dma_symbol_th wire [9:0]
s_axis_recv_data_from_high wire
tx_itrpt_internal wire
send_cts_toself_wait_sifs_top wire [13:0]

Constants

Name Type Value Description
MAX_BIT_NUM_DMA_SYMBOL integer clogb2(MAX_NUM_DMA_SYMBOL)

Functions

Instantiations

Description
Instantiation of Axi Bus Interface S00_AXI

Description
hooked to slv_reg22!

Description
Instantiation of Axi Bus Interface S00_AXIS