WARP Project Forums - Wireless Open-Access Research Platform

You are not logged in.

#26 2015-Jun-02 14:34:33

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: 802.11 reference design EDK error

The interpolation and decimation filters must adapt your PHY Tx/Rx rates to the DAC/ADC interface rates. Your design controls all these parameters. The interpolation/decimation rates depend on how you configure the rest of the system. The AD9963 ADC/DAC chip has on-board filters (see the WARP v3 user guide for details) that can implement part of your overall rate change. In general running the ADC/DAC faster is better. In the 802.11 ref design we run the ADCs and DACs at 40MSps and the 2x decimation and 2x interpolation filters to realize a 20MSps Tx and Rx interface at the FPGA.

Offline

 

#27 2015-Jun-03 04:04:24

balire2351
Member
Registered: 2014-Nov-20
Posts: 19

Re: 802.11 reference design EDK error

If, I use

Tx I/Q data rate = 2.5MHz
Interpolation : 8x
Rx I/Q data rate = 10MHz
Decimation : 2x
REF_CLK = 40MHz
DLL=1/2
ADCDIV=2
DAC_CLK = 20MHz
ADC_CLK = 20MHz

Because Tx data rate is 2.5MHz(default 20MHz),Does it want to add a upsample at gateway In of DAC_TX_CLK in SysGen to change the period of I/Q Valid?

Offline

 

#28 2015-Jun-03 10:23:39

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: 802.11 reference design EDK error

DAC_CLK = 20MHz
ADC_CLK = 20MHz

For ADC/DAC clk of 20MHz it would be better to set the REF_CLK to 20MHz by adjusting the divider in the sampling clock buffer. The default configuration sets the divider to 2 (see wlan_phy_util.c) for a 40MHz REF_CLK.

For a DAC_CLK of 20MHz and interpolation by 8x in the AD9963 the FPGA-DAC data rate would be 2.5MHz. This brings you back to the same challenge of generating a 2.5MHz clock in the FPGA discussed in post #18 above. However, if you move part of the interpolation to the FPGA the DAC-FPGA data rate would be higher. For example, if you use a DAC_CLK of 20MHz and 2x interpolation in the AD9963, the DAC-FPGA interface would run at 10MHz. You could then implement 4x interpolation between the Tx PHY outputs and w3_ad_bridge inputs to realize 2.5MHz bandwidth.

For ADC_CLK of 20MHz and decimation by 2x in the AD9963 the ADC-FPGA interface would run at 10MHz. You would then need a 4x decimation filter in the FPGA between the w3_ad_bridge outputs and AGC/PHY inputs to realize 2.5MHz bandwidth.

Offline

 

#29 2015-Jun-03 21:45:03

balire2351
Member
Registered: 2014-Nov-20
Posts: 19

Re: 802.11 reference design EDK error

For ADC_CLK of 20MHz and decimation by 2x in the AD9963 the ADC-FPGA interface would run at 10MHz. You would then need a 4x decimation filter in the FPGA between the w3_ad_bridge outputs and AGC/PHY inputs to realize 2.5MHz bandwidth.

Does it mean DAC_TX_CLK in SysGen still 10MHz?


If I add 4x Interpolation between Tx PHY outputs and w3_ad_bridge inputs,
IQ_Valid still need 2.5MHz.

Which one is correct?

Offline

 

#30 2015-Jun-04 09:01:29

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: 802.11 reference design EDK error

The signal at w3_ad_bridge.sys_samp_clk_Tx and w3_ad_bridge.sys_samp_clk_Tx_90 must be stable clocks with 50% duty cycle running at the same rate as the FPGA->DAC digital interface. These clock signals should be generated by a single MMCM to assure the 90-degree phase relationship.

The Tx PHY DAC_TX_CLK signal is used as a clock-enable in the PHY pipeline. This does not need to be a 50%-duty-cycle clock. You can replace this input with a pulse using an upsampled, zero-inserted '1' constant like the AGC Rx IQ valid.

If you add an interpolation filter between the PHY and w3_ad_bridge, the frequency of the sys_samp_clk_Tx ports and the Tx PHY DAC_TX_CLK signal will differ by the interpolation rate.

Offline

 

#31 2015-Jun-04 09:47:41

balire2351
Member
Registered: 2014-Nov-20
Posts: 19

Re: 802.11 reference design EDK error

You mean

If I use

DAC_CLK = 10MHz
ADC_CLK = 10MHz

In SysGen
Tx : Tx_IQ_SAMP_CE is 2.5MHz(using an upsampled, zero-inserted '1' constant)
Rx : Cs_ADC_IQ_Valid is 2.5MHz(using an upsampled, zero-inserted '1' constant)

It will run at 2.5Mhz bandwidth in hardware?

Offline

 

#32 2015-Dec-17 08:11:35

alice_warp
Member
From: Italy
Registered: 2015-Sep-08
Posts: 53

Re: 802.11 reference design EDK error

murphpo wrote:

I don't believe the MMCM can generate a 2.5MHz clock. The only options I can think of:
-Build a small HDL pcore which wraps a BUFR instance. The BUFR can be configured to divide its input clock by [1:8]. Each BUFR can drive clocks in the same and adjacent regions as the buffer. You might need multiple BUFR instances to reach all the logic connected to the sample clock.

Dear murphpo,

Could you explain this option more in detail?

Thanks,

Alice

Last edited by alice_warp (2015-Dec-17 08:12:21)

Offline

 

#33 2015-Dec-17 09:52:05

alice_warp
Member
From: Italy
Registered: 2015-Sep-08
Posts: 53

Re: 802.11 reference design EDK error

More specifically, I made this custom clock_generator:

http://s28.postimg.org/4dfr74gkt/blocks.png

but the simulation is this:

http://s7.postimg.org/7r7pnjel7/locked.png

LOCKED is high *BEFORE* that CLKOUT2 and CLKOUT3 are different from X.
Is this a problem for the global system?

Thanks in advance.

Alice

Offline

 

#34 2015-Dec-17 16:30:07

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: 802.11 reference design EDK error

Interesting. I've never run a simulation with MMCM_ADV and BUFG instances. I'm not sure if their simulation models match the clocking circuits in hardware. In the ref designs the only use of the LOCKED signal is to drive the reset logic in the proc_sys_reset block. The proc_sys_reset releases its output resets some time after LOCKED asserts and all reset inputs de-assert. If the delay from LOCKED to actual clocks in your sim also occurs in hardware, it is probably still fine given the reset logic design.

Offline

 

#35 2015-Dec-18 06:11:21

alice_warp
Member
From: Italy
Registered: 2015-Sep-08
Posts: 53

Re: 802.11 reference design EDK error

murphpo wrote:

Interesting. I've never run a simulation with MMCM_ADV and BUFG instances. I'm not sure if their simulation models match the clocking circuits in hardware. In the ref designs the only use of the LOCKED signal is to drive the reset logic in the proc_sys_reset block. The proc_sys_reset releases its output resets some time after LOCKED asserts and all reset inputs de-assert. If the delay from LOCKED to actual clocks in your sim also occurs in hardware, it is probably still fine given the reset logic design.

Maybe I don't understand totally or I didn't explain well my problem, in both cases I'm sorry.
I implemented BUFR after the CLKOUT2 and CLKOUT3 outputs and for this reason these outputs are X *after* that the LOCKED output signal is high.
Is this a problem? I tried the generated bitstream in two WARP, but they don't receive anything (I implemented a filter in rx chian, changed the agc clock reference and changed the right value in the C code in SDK for the ADC/DAC), Therefore, it seems that the transmit packets are too short. If you want I can attach some figs for explanation.

Last edited by alice_warp (2015-Dec-18 09:13:56)

Offline

 

#36 2015-Dec-18 10:05:09

alice_warp
Member
From: Italy
Registered: 2015-Sep-08
Posts: 53

Re: 802.11 reference design EDK error

These are the images.

(1)
http://s7.postimg.org/rza6lraaj/putty_2_5_MHz.png

(2)
http://s7.postimg.org/fytbyrs9n/usrp2_5_MHz.png

(3)
http://s7.postimg.org/6i3is58ez/2_5_MHz_iperf.png

(4)
http://s7.postimg.org/lpjici09n/10_MHz_iperf.png

(1) Putty screen CPU Low. It seems good, but don't print anything (I insert a xil_printf in frame_receive function).
(2) Transmission channel bandwidth is good (so DAC is properly configured).
(3) Packet duration (time) with 2.5 MHz settings (about 0.4x10^4)
(4) Packet duration (time) with 10 MHz settings. It is possible to see that the duration @10MHz and @2.5MHz are similar...

Thank you in advance,

Alice

Offline

 

#37 2015-Dec-19 09:00:01

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: 802.11 reference design EDK error

I implemented BUFR after the CLKOUT2 and CLKOUT3 outputs and for this reason these outputs are X *after* that the LOCKED output signal is high.
Is this a problem?

Sorry, I missed your BUFR post above. Do the BUFR outputs drive only the w3_ad_bridge.sys_samp_clk ports? If so I can't see how a startup delay on these clocks would break anything as these ports only drive clock inputs on IOB registers.

These images are interesting. The duration of the Tx waveform is controlled by the Tx PHY. Do you have an oscilloscope? It would be helpful to see the Tx PHY's actual "Tx Active" signal relative to the RF waveform durations you're observing. The Tx Active signal is driven to the debug header (pin 0 in the current design).

Do you expect the transmissions to be so densely packed in the 2.5MHz mode image (3) above? Were these packets generated by a backlogged broadcast traffic flow? What waveform duration did you expect (i.e. what is the rate/length of the packet)?

Offline

 

#38 2015-Dec-21 05:19:48

alice_warp
Member
From: Italy
Registered: 2015-Sep-08
Posts: 53

Re: 802.11 reference design EDK error

Sorry, I missed your BUFR post above. Do the BUFR outputs drive only the w3_ad_bridge.sys_samp_clk ports? If so I can't see how a startup delay on these clocks would break anything as these ports only drive clock inputs on IOB registers.

They drive the w3_ad_bridge.sys_samp_clk ports and the dac_tx_clk in wlan_phy_tx.

These images are interesting. The duration of the Tx waveform is controlled by the Tx PHY. Do you have an oscilloscope? It would be helpful to see the Tx PHY's actual "Tx Active" signal relative to the RF waveform durations you're observing. The Tx Active signal is driven to the debug header (pin 0 in the current design).

No, I haven't, but I can have it as soon as possible.

Do you expect the transmissions to be so densely packed in the 2.5MHz mode image (3) above? Were these packets generated by a backlogged broadcast traffic flow? What waveform duration did you expect (i.e. what is the rate/length of the packet)?

Yes, I expect something like this. I tried to do traffic iperf unicast to other WARP (the client's display turns to 1, but the server's display remains to 0; I don't know the reason, but I tried to do the same thing with the Reference Design v.1.3 and it has the same behaviour; but this is other strange thing). So one WARP can do traffic with 6Mbps rate and 1470 byte of length of the packets. I expected a waveform duration about 15000us.

Edit: I noticed that if I set the DAC @10MHz, I can receive beacon @10MHz. I have the impression that BUFR doesn't work. I'll try to understand the reason.

Last edited by alice_warp (2015-Dec-21 05:27:18)

Offline

 

#39 2015-Dec-21 08:49:56

alice_warp
Member
From: Italy
Registered: 2015-Sep-08
Posts: 53

Re: 802.11 reference design EDK error

EDIT: Solved. Maybe something was wrong, but now it works!
Association works between two WARP, and iperf is perfect!

http://s28.postimg.org/3xzw0ena5/2_5.png

Thank you!

Last edited by alice_warp (2015-Dec-21 09:01:22)

Offline

 

Board footer