WARP Project Forums - Wireless Open-Access Research Platform

You are not logged in.

#1 2017-Oct-31 15:07:40

mmcruirong
Member
Registered: 2017-Sep-20
Posts: 18

802.11 Demo Constellation Diagram

Hi,I am new to Warp, sorry for asking dumb questions. Currently I have two questions for the 802.11 Demo based on warp 3

First is I have modified the PHY design in System Generator, exported as IP core to the 802.11 demo XPS project. Is the IP core automatically updated in XPS project after IP core is exported from system generator? Is there anything else I should do before I generate new system.bit and exported to EDK?

Second question is I am using two warp 3 nodes, one as AP, one as STA.How can I plot the constellation diagram from the receiver and compare the transmitted bits and received bits?

Thanks
Ruirong Chen

Offline

 

#2 2017-Oct-31 15:59:32

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

Re: 802.11 Demo Constellation Diagram

First is I have modified the PHY design in System Generator, exported as IP core to the 802.11 demo XPS project. Is the IP core automatically updated in XPS project after IP core is exported from system generator? Is there anything else I should do before I generate new system.bit and exported to EDK?

We recommend every time you export a Sysgen model as a pcore that you increment the pcore version (i.e. 1.02.y -> 1.02.z -> 1.03.a). The pcore version is set via the System Generator token under the Settings dialog box. It's also a good idea to change the target netlist folder for each export (i.e. netlist_102y -> netlist_102z). This avoids any conflicts between previous and new exports.

After exporting the new pcore you can copy the pcore into the XPS project pcores/ folder. Then modify the XPS project system.mhs file to use the new pcore version. The version of each pcore is set by the HW_VER parameter. XPS requires the matching pcore be in the local pcores folder *before* updating the MHS file (otherwise you'll get an error about missing MPD files).

After re-building the hardware via XPS you should export the hardware to the SDK via the usual flow. After doing the export you should update the driver version for the new pcore in the corresponding BSP settings (i.e. PHY core drivers are set in the wlan_bsp_cpu_low project).

Second question is I am using two warp 3 nodes, one as AP, one as STA.How can I plot the constellation diagram from the receiver and compare the transmitted bits and received bits?

The raw equalized symbol values are not logged, so you cannot view the constellations of every packet. You can use the ChipScope ILA (integrated logic analyzer) core in the Rx PHY to view the equalized symbols for a single packet. Launch ChipScope Analyzer after configuring your node via JTAG, then import the .cdc file that is generated by Sysgen when exporting your core. The .cdc file describes the signals attached to the ILA core. The .cdc file is saved to the netlist folder you specify when exporting the pcore from Sysgen.

Tx/Rx bits are logged for every packet; you can analyze these via the node log using the wlan_exp Python tools.

Offline

 

#3 2017-Nov-01 12:21:37

mmcruirong
Member
Registered: 2017-Sep-20
Posts: 18

Re: 802.11 Demo Constellation Diagram

Thank you so much for the help.

I am currently looking into the log files. I have look through your guide to log files, still kind of confused.Should I create my own python script to view the TX/RX bits in log files since the log_process_summary.py only gives me big picture of the log files? What command should I use?

Thanks
Ruirong Chen

Offline

 

#4 2017-Nov-02 12:41:46

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

Re: 802.11 Demo Constellation Diagram

There are some other log_process example scripts that illustrate how to process log files. Refer to the user guide for the full list of log entry types and the fields in each entry. The 'mac_payload' fields contain the Tx (TX_OFDM*) and Rx (RX_OFDM*) bits.

Offline

 

#5 2017-Dec-13 16:15:19

mmcruirong
Member
Registered: 2017-Sep-20
Posts: 18

Re: 802.11 Demo Constellation Diagram

Thanks Murphpo! Your advice is very helpful. When I using chipscope Pro, it can only capture some packet in a specific time zone and out put data to .prn files. What I am trying to figure out is how to get all the EQ_I and EQ_Q signals during the whole transmission period like testing using the throughput_two_nodes.py. How can I modify the Rx core or what should I do to have FPGA write the signal from EQ_I and EQ_Q to a .txt file or .mat file through JTAG or Ethernet connection so I can do some processing with?

Thanks
Ruirong Chen

Offline

 

#6 2017-Dec-13 19:17:15

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

Re: 802.11 Demo Constellation Diagram

What I am trying to figure out is how to get all the EQ_I and EQ_Q signals during the whole transmission period like testing using the throughput_two_nodes.py

This is not really feasible with the 802.11 Reference Design. It would require a large amount of memory to store that many I/Q samples. ChipScope stores samples in on-chip BRAM, hence the limited history the ChipScope ILA can capture. To store more samples you would need to use the off-chip DRAM. Doing this would require major changes to the 802.11 Reference Design hardware, as there is no path from the Rx PHY core to the DRAM in the reference hardware.

If you need to capture many seconds worth of IQ data, I suggest looking at the WARPLab Reference Design. With WARPLab you could capture the raw IQ samples from the ADC then apply Rx PHY processing MATLAB to recover the equalized IQ values you need.

Offline

 

#7 2017-Dec-14 11:35:09

mmcruirong
Member
Registered: 2017-Sep-20
Posts: 18

Re: 802.11 Demo Constellation Diagram

Thank you so much for the help. I am currently working on a project on 802.11 PHY layer, and need a lot of modifications on the PHY TX and RX pcore. Could I create another output from the RX pcore to I/O interfaces between board and computer so I can use UART or Ethernet to acquire the data output from FPGA like the OFDM data?

Thanks

Offline

 

#8 2017-Dec-15 09:59:39

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

Re: 802.11 Demo Constellation Diagram

Could I create another output from the RX pcore to I/O interfaces between board and computer so I can use UART or Ethernet to acquire the data output from FPGA like the OFDM data?

UART is far too slow to gather real time IQ data from the Rx PHY. In theory Ethernet could be used, but would require re-designing the overall architecture of the 802.11 design to somehow connect the PHY to the Ethernet MAC. No such path exists in the reference design - the Ethernet MACs are connected to DMAs, both controlled from software in CPU High.

Offline

 

#9 2017-Dec-19 16:48:30

mmcruirong
Member
Registered: 2017-Sep-20
Posts: 18

Re: 802.11 Demo Constellation Diagram

Thank you so much Murphpo. I went through the system generator Rx design. I did find a debug outputs for I and Q, could I use the data from the debug outputs?

What I want to do is adding an output for locations of the lowest power in all subcarriers. So I only need one output for testing about 3000 ofdm symbols. The chipscope can only caputre 26 symbols at most.

Or I can put the computation for finding the lowest power in Rx pcore and saves output for only 100-200 bits, that should be enough for onchip BRAM. Then my question is how can I get the BRAM data out through I/O?

Thank you so much for the help! Happy holidays!
Ruirong Chen

Offline

 

#10 2017-Dec-20 11:52:36

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

Re: 802.11 Demo Constellation Diagram

What I want to do is adding an output for locations of the lowest power in all subcarriers. So I only need one output for testing about 3000 ofdm symbols. The chipscope can only caputre 26 symbols at most.

Have you considered using the node's log? You could compute your metric using the channel estimates recorded for every OFDM reception.

Offline

 

#11 2017-Dec-20 16:59:14

mmcruirong
Member
Registered: 2017-Sep-20
Posts: 18

Re: 802.11 Demo Constellation Diagram

Thank you so much for the help. I did use I/Q data the index:chan_est in RX_OFDM today, after doing some processing of the data in matlab, I had the constellation diagram as:https://i.imgur.com/JfQJzqH.jpg comparing with the right one from chipscope data, which is 26 ofdm symbols:https://i.imgur.com/6GgdLe8.jpg. So I am kind of confusing what is that chan_est data from? Is it the same as the EQ_I EQ_Q from the Rx Phy?

Here is the log file after processing

Log Index Contents:
         1 of Type 1
         1 of Type 6
     4,952 of Type 10
     1,245 of Type 11
     4,535 of Type 21
     1,141 of Type 25
     7,315 of Type 26
--------------------------
    19,190 total entries

Filtered Log Index:
         1 of Type NODE_INFO
     6,197 of Type RX_OFDM
         1 of Type TIME_INFO
     4,535 of Type TX_HIGH
     8,456 of Type TX_LOW
--------------------------
    19,190 total entries

Node Info:
  Node Type    : (AP/DCF)
  MAC Address  : 40:d8:55:04:26:28
  Serial Number: W3-a-00810
  WLAN Exp Ver : 1.7.4

Experiment Started at: Wed Dec 20 16:52:27 2017


Example 1: Tx Information per Rate:
               Rate                            # Tx Pkts           
                                       CPU Low        Re-trans
6.0 Mbps (NONHT BPSK 1/2)                 135               0
9.0 Mbps (NONHT BPSK 3/4)                   0               0
12.0 Mbps (NONHT QPSK 1/2)                1006               0
18.0 Mbps (NONHT QPSK 3/4)                   0               0
24.0 Mbps (NONHT 16-QAM 1/2)                 0               0
36.0 Mbps (NONHT 16-QAM 3/4)                 0               0
48.0 Mbps (NONHT 64-QAM 2/3)                 0               0
54.0 Mbps (NONHT 64-QAM 3/4)                 0               0
6.5 Mbps (HTMF BPSK 1/2)                    0               0
13.0 Mbps (HTMF QPSK 1/2)                 7315            2780
19.5 Mbps (HTMF QPSK 3/4)                    0               0
26.0 Mbps (HTMF 16-QAM 1/2)                  0               0
39.0 Mbps (HTMF 16-QAM 3/4)                  0               0
52.0 Mbps (HTMF 64-QAM 2/3)                  0               0
58.5 Mbps (HTMF 64-QAM 3/4)                  0               0
65.0 Mbps (HTMF 64-QAM 5/6)                  0               0

Total Retransmissions: 2780

Thanks
Ruirong Chen

Offline

 

#12 2017-Dec-20 17:42:10

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

Re: 802.11 Demo Constellation Diagram

So I am kind of confusing what is that chan_est data from? Is it the same as the EQ_I EQ_Q from the Rx Phy

No, the channel estimates are computed by the Rx PHY using the long training symbols in the preamble. The equalizer uses the channel estimates to remove effects of the channel from the received data symbols. EQ_I/Q are the complex symbols at the output of the equalizer (EQ_IQ = Rx_Sym / Chan_Est).

Offline

 

#13 2017-Dec-20 18:41:30

mmcruirong
Member
Registered: 2017-Sep-20
Posts: 18

Re: 802.11 Demo Constellation Diagram

Thank you so much murphpo, i see where the problem is now. Since I only erase the power in the Rx LTG data bits and remain the preamble unchanged, that is why the chan_est data could not being use in our situation. Could you give me some more advice how I can have more EQ_I/EQ_Q LTG data using log or BRAM in FPGA?

Sorry for keeping asking dumb questions, kind of new to warp. And I have validate the testing works just want to gather more data from packets.

Thank you so much
Ruirong Chen

Offline

 

#14 2017-Dec-23 12:06:36

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

Re: 802.11 Demo Constellation Diagram

You'll have to provide more details on what your application is and what specific data it requires. I thought you were trying to find which subcarrier had the lowest Rx power. You could do this from the Rx channel estimates. The magnitude of the EQ_I/Q signals (post-equalizer IQ) do not represent the Rx power of each subcarrier, as the equalizer it designed to remove the effects of the channel.

Offline

 

#15 2018-Jan-08 09:04:12

mmcruirong
Member
Registered: 2017-Sep-20
Posts: 18

Re: 802.11 Demo Constellation Diagram

Happy New Year Murphpo! Just get back to work, the thing we want to do now is, instead of using the preamble to find out the lowerest Rx Power, we need to record the transmitted data from EQ_I/Q after the preamble. Because in Tx PHY, we did put some of data subcarrier I/Q to zero in one OFDM symbol with unchanged preamble. We are trying to find a way to record the Rx EQ_I/Q to retrieve the Tx data without the preamble, and finding out the lowerest power in the data OFDM subcarriers, which should be close to zero on both EQ_I/Q.

I think recording the EQ_I/Q should be the best way to do it, we are trying to figuring out how to record complete data in the transmission, and output to computer to process it.

Thanks
Ruirong Chen

Offline

 

#16 2018-Jan-09 12:25:40

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

Re: 802.11 Demo Constellation Diagram

There is no easy way to record the raw equalizer output in the 802.11 Rx PHY - it's just too much data arriving too quickly. You can capture equalizer outputs for 1 packet with ChipScope, but capturing and offloading equalizer outputs for every packet would require big changes to the FPGA design.

If your goal is to identify data subcarriers where symbols are "missing" (i.e. set to zero at the transmitter), you could add logic to the Rx equalizer to monitor the amplitude of each data subcarrier in each OFDM symbol, then indicate a "missing symbol" event via an Rx PHY register.

Offline

 

#17 2018-Jan-10 17:21:28

mmcruirong
Member
Registered: 2017-Sep-20
Posts: 18

Re: 802.11 Demo Constellation Diagram

Thanks a lot, I am planning to use logic in Rx with shared memory block to store the output.

Thanks!
Ruirong Chen

Offline

 

Board footer