drmpeg / gr-dvbs2

A DVB-S2 and DVB-S2X transmitter for GNU Radio
GNU General Public License v3.0
128 stars 37 forks source link

DVBS2rate code using for Zynq board #8

Closed brahmi152 closed 4 years ago

brahmi152 commented 4 years ago

Hi,

I am using dvbs2rate.c code for ZC-706 zynq board. When I tried to compile this code in vivado hls then it is synthesized successfully but when I tried to export RTL then it showed below error.

ERROR: [HLS 200-478] vivado returned an error child process exited abnormally command 'ap_source' returned error code while executing "source C:/Xilinx/Vivado/2018.3/DVBS2/solution1/export.tcl" invoked from within "hls::main C:/Xilinx/Vivado/2018.3/DVBS2/solution1/export.tcl" ("uplevel" body line 1) invoked from within "uplevel 1 hls::main {*}$args" (procedure "hls_proc" line 5) invoked from within "hls_proc $argv" Finished export RTL.

Kindly help to solve this error.

Waiting for your response.

Thanks.

drmpeg commented 4 years ago

Sorry, I don't know anything about Vivado. dvbs2rate.c is just a utility that's meant to be compiled on a regular host.

gcc -O2 dvbs2rate.c -lm -o dvbs2rate

brahmi152 commented 4 years ago

This command gcc -O2 dvbs2rate.c -lm -o dvbs2rate is compatible with GNU radio?

drmpeg commented 4 years ago

It's not part of GNU Radio. It's just a tool to allow you to use the DVB-S2 transmitter in GNU Radio properly. For example, the DVB-S2 transmitter test flow graph (dvbs2_tx.grc) is configured for 5 MSyms/s, 16APSK, 9/10 code rate, normal size (64800 bit) baseband frames with pilots. What is the correct bit-rate of the input Transport Stream?

$ ./dvbs2rate 5000000
DVB-S2 normal FECFRAME
QPSK, pilots off
coderate = 1/4,  BCH rate = 12, ts rate = 2451215.758695
coderate = 1/3,  BCH rate = 12, ts rate = 3282240.689443
coderate = 2/5,  BCH rate = 12, ts rate = 3947060.634041
coderate = 1/2,  BCH rate = 12, ts rate = 4944290.550939
coderate = 3/5,  BCH rate = 12, ts rate = 5941520.467836
coderate = 2/3,  BCH rate = 10, ts rate = 6611265.004617
coderate = 3/4,  BCH rate = 12, ts rate = 7437365.343183
coderate = 4/5,  BCH rate = 12, ts rate = 7935980.301631
coderate = 5/6,  BCH rate = 10, ts rate = 8273314.866113
coderate = 8/9,  BCH rate =  8, ts rate = 8832256.078793
coderate = 9/10, BCH rate =  8, ts rate = 8943059.402893
QPSK, pilots on
coderate = 1/4,  BCH rate = 12, ts rate = 2392885.042966
coderate = 1/3,  BCH rate = 12, ts rate = 3204134.366925
coderate = 2/5,  BCH rate = 12, ts rate = 3853133.826092
coderate = 1/2,  BCH rate = 12, ts rate = 4826633.014843
coderate = 3/5,  BCH rate = 12, ts rate = 5800132.203594
coderate = 2/3,  BCH rate = 10, ts rate = 6453939.066162
coderate = 3/4,  BCH rate = 12, ts rate = 7260380.986720
coderate = 4/5,  BCH rate = 12, ts rate = 7747130.581095
coderate = 5/6,  BCH rate = 10, ts rate = 8076437.714080
coderate = 8/9,  BCH rate =  8, ts rate = 8622078.000120
coderate = 9/10, BCH rate =  8, ts rate = 8730244.576648
8PSK, pilots off
coderate = 3/5,  BCH rate = 12, ts rate = 8899953.895805
coderate = 2/3,  BCH rate = 10, ts rate = 9903181.189488
coderate = 3/4,  BCH rate = 12, ts rate = 11140617.796219
coderate = 5/6,  BCH rate = 10, ts rate = 12392807.745505
coderate = 8/9,  BCH rate =  8, ts rate = 13230059.935454
coderate = 9/10, BCH rate =  8, ts rate = 13396035.039189
8PSK, pilots on
coderate = 3/5,  BCH rate = 12, ts rate = 8697846.264756
coderate = 2/3,  BCH rate = 10, ts rate = 9678291.430116
coderate = 3/4,  BCH rate = 12, ts rate = 10887627.286654
coderate = 5/6,  BCH rate = 10, ts rate = 12111381.454447
coderate = 8/9,  BCH rate =  8, ts rate = 12929620.618185
coderate = 9/10, BCH rate =  8, ts rate = 13091826.619807
16APSK, pilots off
coderate = 2/3,  BCH rate = 10, ts rate = 13186003.683241
coderate = 3/4,  BCH rate = 12, ts rate = 14833640.270104
coderate = 4/5,  BCH rate = 12, ts rate = 15828115.408226
coderate = 5/6,  BCH rate = 10, ts rate = 16500920.810313
coderate = 8/9,  BCH rate =  8, ts rate = 17615715.162676
coderate = 9/10, BCH rate =  8, ts rate = 17836709.637815
16APSK, pilots on
coderate = 2/3,  BCH rate = 10, ts rate = 12873067.241999
coderate = 3/4,  BCH rate = 12, ts rate = 14481601.342443
coderate = 4/5,  BCH rate = 12, ts rate = 15452475.128851
coderate = 5/6,  BCH rate = 10, ts rate = 16109313.196692
coderate = 8/9,  BCH rate =  8, ts rate = 17197650.725159
coderate = 9/10, BCH rate =  8, ts rate = 17413400.455472    <---------
32APSK, pilots off
coderate = 3/4,  BCH rate = 12, ts rate = 18516475.095785
coderate = 4/5,  BCH rate = 12, ts rate = 19757854.406130
coderate = 5/6,  BCH rate = 10, ts rate = 20597701.149425
coderate = 8/9,  BCH rate =  8, ts rate = 21989272.030651
coderate = 9/10, BCH rate =  8, ts rate = 22265134.099617
32APSK, pilots on
coderate = 3/4,  BCH rate = 12, ts rate = 18116659.169291
coderate = 4/5,  BCH rate = 12, ts rate = 19331234.068076
coderate = 5/6,  BCH rate = 10, ts rate = 20152946.468736
coderate = 8/9,  BCH rate =  8, ts rate = 21514469.935523
coderate = 9/10, BCH rate =  8, ts rate = 21784375.468586

From the output of dvbs2rate.c, we can see that 17413400.455472 bps (or 17.4134 Mbps) is the correct bit-rate. The test file http://www.w6rz.net/adv16apsk910.ts is multiplexed exactly at that rate.

If any transmitter parameter is changed, then a new input Transport Stream has to be generated.