Hello,
I am trying to implement OFDM on E310 using RFNoC. My software versions:
UHD: v3.14.0.0-rc1
gnuradio: 3.7.13.4
gr-ettus: master branch
FPGA: e57dfe0
I followed the FG in below that shown in GRCon15.
https://static1.squarespace.com/static/543ae9afe4b0c3b808d72acd/t/55f85aaee4b02e1b84d8ff51/1442339502956/7-pendlum_johathan-OFDM_RFNoC-2015-08-27.pdf
But FPGA of E310 is small so i just can place 3 RFNoC blocks in it. I
thought using some blocks from RFNoC and others from GNURadio.
Q1. Can you suggest a way to implement OFDM in E310? (Because i could
not find a OFDM implementation that includes both RFNoC and gnuradio
blocks. There is a example in gr-ettus which is rfnoc_ofdm, but its OFDM
receiver is also done with full of RFNoC blocks.)
Q2. For example, i can compile FPGA image using eq, schmidl_cox and
constellation_demap blocks. ( FFT dont fit) So i thought using FFT from
gnuradio. I created a FG which includes;
RFNoC: Radio --> RFNoC: OFDM Sync --> FFT --> RFNoC: OFDM Eq --> RFNoC:
OFDM constellation demap --> File Sink
When i run this it gives that error;
root@ettus-e3xx-sg3:~# ./rfnoc_ofdm_test.py
[INFO] [UHD] linux; GNU C++ version 4.9.2; Boost_105700;
UHD_3.14.0.HEAD-0-gc7941e05
[INFO] [E300] Loading FPGA image:
/home/root/usrp_e310_eq_sch_const_RFNOC_sg3.bit...
[INFO] [E300] FPGA image loaded
[INFO] [E300] Initializing core control (global registers)...
[INFO] [E300] Performing register loopback test...
[INFO] [E300] Register loopback test passed
[INFO] [0/Radio_0] Initializing block control (NOC ID: 0x12AD100000000000)
[WARNING] [RFNOC] Can't find a block controller for key OFDMEq, using
default block controller!
[INFO] [0/OFDMEq_0] Initializing block control (NOC ID: 0xFF42000000000000)
[WARNING] [RFNOC] Can't find a block controller for key OFDMDemap, using
default block controller!
[INFO] [0/OFDMDemap_0] Initializing block control (NOC ID:
0x0FCD000000000000)
[WARNING] [RFNOC] Can't find a block controller for key SchmidlCox,
using default block controller!
[INFO] [0/SchmidlCox_0] Initializing block control (NOC ID:
0x5CC0000000000000)
Traceback (most recent call last):
File "./rfnoc_ofdm_test.py", line 184, in <module>
main()
File "./rfnoc_ofdm_test.py", line 173, in main
tb = top_block_cls()
File "./rfnoc_ofdm_test.py", line 129, in __init__
self.connect((self.uhd_rfnoc_ofdm_demap_0, 0),
(self.blocks_file_sink_0, 0))
File
"/home/root/localinstall/usr/lib/python2.7/site-packages/gnuradio/gr/hier_block2.py",
line 47, in wrapped
func(self, src, src_port, dst, dst_port)
File
"/home/root/localinstall/usr/lib/python2.7/site-packages/gnuradio/gr/hier_block2.py",
line 110, in connect
self.primitive_connect(*args)
File
"/home/root/localinstall/usr/lib/python2.7/site-packages/gnuradio/gr/runtime_swig.py",
line 3482, in primitive_connect
return _runtime_swig.top_block_sptr_primitive_connect(self, *args)
ValueError: itemsize mismatch: uhd_rfnoc_OFDMDemap0:0 using 8,
file_sink0:0 using 64
[INFO] [E300] Loading FPGA image:
/home/root/localinstall/usr/share/uhd/images/usrp_e3xx_fpga_idle_sg3.bit...
[INFO] [E300] FPGA image loaded
What is the problem in there?
Best regards.
Ramazan
<?xml version='1.0' encoding='utf-8'?>
<?grc format='1' created='3.7.13'?>
<flow_graph>
<timestamp>Fri Nov 7 10:40:33 2014</timestamp>
<block>
<key>options</key>
<param>
<key>author</key>
<value></value>
</param>
<param>
<key>window_size</key>
<value>1280, 1024</value>
</param>
<param>
<key>category</key>
<value>Custom</value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>description</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(8, 4)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>generate_options</key>
<value>no_gui</value>
</param>
<param>
<key>hier_block_src_path</key>
<value>.:</value>
</param>
<param>
<key>id</key>
<value>rfnoc_ofdm_test</value>
</param>
<param>
<key>max_nouts</key>
<value>0</value>
</param>
<param>
<key>qt_qss_theme</key>
<value></value>
</param>
<param>
<key>realtime_scheduling</key>
<value></value>
</param>
<param>
<key>run_command</key>
<value>{python} -u {filename}</value>
</param>
<param>
<key>run_options</key>
<value>prompt</value>
</param>
<param>
<key>run</key>
<value>True</value>
</param>
<param>
<key>sizing_mode</key>
<value>fixed</value>
</param>
<param>
<key>thread_safe_setters</key>
<value></value>
</param>
<param>
<key>title</key>
<value></value>
</param>
<param>
<key>placement</key>
<value>(0,0)</value>
</param>
</block>
<block>
<key>variable_uhd_device3</key>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>dev_addr</key>
<value>type=e3x0</value>
</param>
<param>
<key>dev_args</key>
<value>"fpga=/home/root/usrp_e310_eq_sch_const_RFNOC_sg3.bit"</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(200, 12)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>device3</value>
</param>
</block>
<block>
<key>variable</key>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(104, 75)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>fft_len</value>
</param>
<param>
<key>value</key>
<value>64</value>
</param>
</block>
<block>
<key>variable</key>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(176, 92)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>rx_freq</value>
</param>
<param>
<key>value</key>
<value>2150e6</value>
</param>
</block>
<block>
<key>variable</key>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(272, 92)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>rx_gain</value>
</param>
<param>
<key>value</key>
<value>10</value>
</param>
</block>
<block>
<key>variable</key>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(8, 75)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>samp_rate</value>
</param>
<param>
<key>value</key>
<value>1e6</value>
</param>
</block>
<block>
<key>blocks_file_sink</key>
<param>
<key>append</key>
<value>False</value>
</param>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>affinity</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>1</value>
</param>
<param>
<key>file</key>
<value>/home/root/ofdm_rx.bin</value>
</param>
<param>
<key>_coordinate</key>
<value>(936, 452)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>blocks_file_sink_0</value>
</param>
<param>
<key>type</key>
<value>byte</value>
</param>
<param>
<key>unbuffered</key>
<value>False</value>
</param>
<param>
<key>vlen</key>
<value>fft_len</value>
</param>
</block>
<block>
<key>fft_vxx</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>affinity</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>1</value>
</param>
<param>
<key>fft_size</key>
<value>fft_len</value>
</param>
<param>
<key>forward</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(504, 228)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>fft_vxx_0_0</value>
</param>
<param>
<key>type</key>
<value>complex</value>
</param>
<param>
<key>maxoutbuf</key>
<value>0</value>
</param>
<param>
<key>minoutbuf</key>
<value>0</value>
</param>
<param>
<key>nthreads</key>
<value>1</value>
</param>
<param>
<key>shift</key>
<value>True</value>
</param>
<param>
<key>window</key>
<value>()</value>
</param>
</block>
<block>
<key>uhd_rfnoc_ofdm_demap</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>block_index</key>
<value>-1</value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>affinity</key>
<value></value>
</param>
<param>
<key>device_index</key>
<value>-1</value>
</param>
<param>
<key>_enabled</key>
<value>1</value>
</param>
<param>
<key>fft_size</key>
<value>64</value>
</param>
<param>
<key>fpga_module_name</key>
<value>noc_block_ofdmdemap</value>
</param>
<param>
<key>_coordinate</key>
<value>(968, 252)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>uhd_rfnoc_ofdm_demap_0</value>
</param>
<param>
<key>maxoutbuf</key>
<value>0</value>
</param>
<param>
<key>minoutbuf</key>
<value>0</value>
</param>
<param>
<key>mod_order</key>
<value>4</value>
</param>
<param>
<key>output_type</key>
<value>0</value>
</param>
<param>
<key>scaling</key>
<value>1.4142135623730951/2.0</value>
</param>
</block>
<block>
<key>uhd_rfnoc_ofdm_eq</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>block_index</key>
<value>-1</value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>affinity</key>
<value></value>
</param>
<param>
<key>device_index</key>
<value>-1</value>
</param>
<param>
<key>_enabled</key>
<value>1</value>
</param>
<param>
<key>fft_size</key>
<value>64</value>
</param>
<param>
<key>fpga_module_name</key>
<value>noc_block_ofdmequ</value>
</param>
<param>
<key>_coordinate</key>
<value>(752, 268)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>uhd_rfnoc_ofdm_eq_0</value>
</param>
<param>
<key>maxoutbuf</key>
<value>0</value>
</param>
<param>
<key>minoutbuf</key>
<value>0</value>
</param>
</block>
<block>
<key>uhd_rfnoc_ofdm_schmidlcox</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>block_index</key>
<value>-1</value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>affinity</key>
<value></value>
</param>
<param>
<key>cp_len</key>
<value>16</value>
</param>
<param>
<key>device_index</key>
<value>-1</value>
</param>
<param>
<key>_enabled</key>
<value>1</value>
</param>
<param>
<key>fft_size</key>
<value>64</value>
</param>
<param>
<key>fpga_module_name</key>
<value>noc_block_schmidl_cox</value>
</param>
<param>
<key>_coordinate</key>
<value>(288, 228)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>uhd_rfnoc_ofdm_schmidlcox_0</value>
</param>
<param>
<key>max_num_symbols</key>
<value>12</value>
</param>
<param>
<key>maxoutbuf</key>
<value>0</value>
</param>
<param>
<key>minoutbuf</key>
<value>0</value>
</param>
<param>
<key>threshold</key>
<value>0.9</value>
</param>
<param>
<key>delay</key>
<value>fft_len+fft_len/4</value>
</param>
</block>
<block>
<key>uhd_rfnoc_streamer_radio</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>rx_bandwidth0</key>
<value>56e6</value>
</param>
<param>
<key>ant0</key>
<value>"RX2"</value>
</param>
<param>
<key>freq0</key>
<value>rx_freq</value>
</param>
<param>
<key>dcenable0</key>
<value>True</value>
</param>
<param>
<key>gain0</key>
<value>rx_gain</value>
</param>
<param>
<key>lo_export0</key>
<value>False</value>
</param>
<param>
<key>lo_source0</key>
<value>"internal"</value>
</param>
<param>
<key>rx_bandwidth1</key>
<value>56e6</value>
</param>
<param>
<key>ant1</key>
<value></value>
</param>
<param>
<key>freq1</key>
<value>1.982e9</value>
</param>
<param>
<key>dcenable1</key>
<value>True</value>
</param>
<param>
<key>gain1</key>
<value>20</value>
</param>
<param>
<key>lo_export1</key>
<value>False</value>
</param>
<param>
<key>lo_source1</key>
<value>"internal"</value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>affinity</key>
<value></value>
</param>
<param>
<key>otw_format</key>
<value>sc16</value>
</param>
<param>
<key>device_index</key>
<value>-1</value>
</param>
<param>
<key>_enabled</key>
<value>1</value>
</param>
<param>
<key>grvlen</key>
<value>fft_len</value>
</param>
<param>
<key>_coordinate</key>
<value>(8, 268)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>cpu_format</key>
<value>fc32</value>
</param>
<param>
<key>id</key>
<value>uhd_rfnoc_streamer_radio_0</value>
</param>
<param>
<key>source</key>
<value>"internal"</value>
</param>
<param>
<key>maxoutbuf</key>
<value>0</value>
</param>
<param>
<key>minoutbuf</key>
<value>0</value>
</param>
<param>
<key>direction</key>
<value>rx</value>
</param>
<param>
<key>num_channels</key>
<value>1</value>
</param>
<param>
<key>radio_index</key>
<value>0</value>
</param>
<param>
<key>rate</key>
<value>samp_rate</value>
</param>
<param>
<key>hide_lo_controls</key>
<value>True</value>
</param>
<param>
<key>stream_args</key>
<value></value>
</param>
</block>
<connection>
<source_block_id>fft_vxx_0_0</source_block_id>
<sink_block_id>uhd_rfnoc_ofdm_eq_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>uhd_rfnoc_ofdm_demap_0</source_block_id>
<sink_block_id>blocks_file_sink_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>uhd_rfnoc_ofdm_eq_0</source_block_id>
<sink_block_id>uhd_rfnoc_ofdm_demap_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>uhd_rfnoc_ofdm_schmidlcox_0</source_block_id>
<sink_block_id>fft_vxx_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>uhd_rfnoc_streamer_radio_0</source_block_id>
<sink_block_id>uhd_rfnoc_ofdm_schmidlcox_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
</flow_graph>
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com