Changes between Version 5 and Version 6 of 802.11/wlan_exp/app_notes/four_radio


Ignore:
Timestamp:
Apr 13, 2016, 2:59:20 PM (8 years ago)
Author:
murphpo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • 802.11/wlan_exp/app_notes/four_radio

    v5 v6  
    1 = Adding 4 antenna support =
    2 '''WORK IN PROGRESS'''
     1= Modifying the 802.11 Reference Design for 4 Radios =
     2The 802.11 Reference Design Tx and Rx PHY cores implement ports for 4 RF interfaces. The reference hardware project only connects RF A and RF B in order to maintain compatibility with WARP v3 nodes using third-party FMC modules. In order to use the reference design with 4 RF interfaces (2 WARP v3 on-board, 2 on FMC-RF-2X245 module) the following changes must be made to the XPS project's {{{system.mhs}}} and {{{data/system.ucf}}} files. The changes below are based on 802.11 Reference Design v1.5.
    33
    44== MHS Changes ==
     5
     6The changes below apply to the XPS project's {{{system.mhs}}} file.
    57
    68Add new top-level ports:
     
    7577Add new instances of {{{w3_ad_bridge}}} and {{{w3_iic_eeprom_axi}}} cores:
    7678{{{#!sh
     79# samp_ce  unused in FMC ad_bridge; on-board ad_bridge drives PHY's ce ports
    7780BEGIN w3_ad_bridge
    7881 PARAMETER INSTANCE = ad_bridge_FMC
    79  PARAMETER HW_VER = 3.01.e
     82 PARAMETER HW_VER = 3.03.a
    8083# Clock ports (inputs to w3_ad_bridge)
    81  PORT sys_samp_clk_Tx = clk_20MHz
    82  PORT sys_samp_clk_Tx_90 = clk_20MHz_90degphase
    83  PORT sys_samp_clk_Rx = clk_20MHz
     84 PORT sys_clk = clk_160MHz
    8485 PORT ad_TXCLK_out_en = RF_AD_TXCLK_out_en
    8586# Top-level AD9963 ports
     
    108109BEGIN w3_iic_eeprom_axi
    109110 PARAMETER INSTANCE = w3_iic_eeprom_FMC
    110  PARAMETER HW_VER = 1.00.b
    111  PARAMETER C_BASEADDR = 0x70410000
    112  PARAMETER C_HIGHADDR = 0x7041ffff
     111 PARAMETER HW_VER = 1.02.a
     112 PARAMETER C_BASEADDR = 0x82010000
     113 PARAMETER C_HIGHADDR = 0x8201FFFF
    113114 PARAMETER C_INTERCONNECT_S_AXI_AW_REGISTER = 7
    114115 PARAMETER C_INTERCONNECT_S_AXI_AR_REGISTER = 7
     
    116117 PARAMETER C_INTERCONNECT_S_AXI_R_REGISTER = 7
    117118 PARAMETER C_INTERCONNECT_S_AXI_B_REGISTER = 7
    118  BUS_INTERFACE S_AXI = mb_low_axi_periph
     119 BUS_INTERFACE S_AXI = mb_shared_axi_periph
    119120 PORT S_AXI_ACLK = clk_160MHz
    120  PORT iic_scl = iic_eeprom_fmc_scl_pin
    121  PORT iic_sda = iic_eeprom_fmc_sda_pin
     121 PORT iic_scl_io= iic_eeprom_fmc_scl_pin
     122 PORT iic_sda_io= iic_eeprom_fmc_sda_pin
    122123END
    123124}}}
     
    173174}}}
    174175
    175 Add parameter and port connections to {{{w3_ad_controller_axi}}} instance:
     176Add parameter and port connections to the existing {{{w3_ad_controller_axi}}} instance:
    176177{{{#!sh
    177178BEGIN w3_ad_controller_axi
     
    192193
    193194
    194 Add port connections to {{{wlan_mac_dcf_hw_axiw}}} core:
    195 {{{#!sh
    196 BEGIN wlan_mac_dcf_hw_axiw
     195Add port connections to the existing {{{wlan_mac_hw}}} instance:
     196{{{#!sh
     197BEGIN wlan_mac_hw
    197198  ...
    198199 PORT phy_tx_gain_c = mac_phy_tx_gain_c
     
    202203}}}
    203204
    204 Add port connections to {{{wlan_phy_tx_pmd_axiw}}} core:
     205Add port connections to the existing {{{wlan_phy_tx_pmd_axiw}}} instance:
    205206
    206207{{{#!sh
     
    224225}}}
    225226
    226 Add port connections to {{{wlan_phy_rx_pmd_axiw}}} core:
     227Add port connections to the existing {{{wlan_phy_rx_pmd_axiw}}} instance:
    227228{{{#!sh
    228229BEGIN wlan_phy_rx_pmd_axiw
     
    244245}}}
    245246
    246 Add port connections to {{{wlan_agc_axiw}}} core:
     247Add port connections to the existing {{{wlan_agc_axiw}}} instance:
    247248{{{#!sh
    248249BEGIN wlan_agc_axiw
     
    273274== UCF Changes ==
    274275
    275 Add LOC and timing constraints for FMC-RF-2X245 signals:
     276Add LOC and timing constraints for FMC-RF-2X245 signals to {{{data/system.ucf}}}:
    276277
    277278{{{#!sh
     
    446447
    447448#Timing
     449#AD9963 data interface clock constraints
    448450Net RFC_AD_TRXCLK TNM_NET = TNM_RFC_AD_TRXCLK;
    449451Net RFD_AD_TRXCLK TNM_NET = TNM_RFD_AD_TRXCLK;
    450452
    451 #TRXCLK runs at 20MHz (using decimation in AD9963s)
    452 TIMESPEC TS_RFC_AD_TRXCLK = PERIOD TNM_RFC_AD_TRXCLK TS_samp_clk_pin*4;
    453 TIMESPEC TS_RFD_AD_TRXCLK = PERIOD TNM_RFD_AD_TRXCLK TS_samp_clk_pin*4;
    454 
    455 #TRXCLK -> clk20 is first stage of registers (IDDR -> 2xDFF)
    456 TIMESPEC TS_RFC_TRX_TO_20M = FROM "TNM_RFC_AD_TRXCLK" to "TNM_clk_20MHz" 40ns;
    457 TIMESPEC TS_RFD_TRX_TO_20M = FROM "TNM_RFD_AD_TRXCLK" to "TNM_clk_20MHz" 40ns;
    458 
    459 #clk20 -> clk160 is paths from ad_bridge to sample-consuming PHY cores
    460 TIMESPEC TS_RFC_20M_TO_160M = FROM "TNM_clk_20MHz" to "TNM_clk_160" 6.2ns;
    461 TIMESPEC TS_RFD_20M_TO_160M = FROM "TNM_clk_20MHz" to "TNM_clk_160" 6.2ns;
    462 
    463 
     453#TRXCLK runs up to 40MHz (no decimation in AD9963s)
     454TIMESPEC TS_RFC_AD_TRXCLK = PERIOD TNM_RFC_AD_TRXCLK TS_samp_clk*2;
     455TIMESPEC TS_RFD_AD_TRXCLK = PERIOD TNM_RFD_AD_TRXCLK TS_samp_clk*2;
     456
     457#Define relationship of TRXD and TRXCLK, based on AD9963 specs
     458# Using worst-case output delay from AD9963 datasheet table 23
     459# TRXCLK leads TRXD transition by t_OD2; ad_bridge uses IDELAY to shift this to mid valid window
     460# VALID window below assumes DDR interleaved I/Q at 20MSps rate (25nsec / half sample)
    464461INST "RFC_AD_TRXD<*>" TNM = RFC_AD_TRXD_group;
    465462NET "RFC_AD_TRXCLK" TNM_NET = RFC_AD_TRXCLK;
     
    471468TIMEGRP "RFD_AD_TRXD_group" OFFSET = IN 0.7 ns VALID 22 ns BEFORE "RFD_AD_TRXCLK" RISING;
    472469TIMEGRP "RFD_AD_TRXD_group" OFFSET = IN 0.7 ns VALID 22 ns BEFORE "RFD_AD_TRXCLK" FALLING;
    473 
    474 #Mark TRX-samp_clk_rx paths as fully async, with short max route (use DFFs near ILOGIC.IDDRs)
    475 INST "ad_bridge_FMC/ad_bridge_FMC/DDR_REGS_RFA_RFB[*].IDDR*" TNM = "AD_TRXCLK_IDDRS_FMC";
    476 INST "ad_bridge_FMC/ad_bridge_FMC/DDR_REGS_RFA_RFB[*].DFF2*" TNM = "AD_SYSCLK_FFS_FMC";
    477 
    478 TIMESPEC TS_async_rx_samp_clks_FMC_IN = FROM "AD_TRXCLK_IDDRS_FMC" TO "AD_SYSCLK_FFS_FMC" 2 ns DATAPATHONLY;
    479 TIMESPEC TS_async_rx_samp_clks_FMC_OUT = FROM "AD_SYSCLK_FFS_FMC" TO "AD_TRXCLK_IDDRS_FMC" 2 ns DATAPATHONLY;
    480 
    481 }}}
     470}}}