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.c #6

Closed brahmi152 closed 4 years ago

brahmi152 commented 4 years ago

[[Hello,]]

I am using dvbs2rate.c file in vivado hls and during synthesis the project I am getting 7 errors. Kindly find the below mentioned errors for your reference and do the needful to solve the error.

ERROR: [SYNCHK 200-61] E:/dtv-utils-master/dvbs2rate.c:99: unsupported memory access on variable 'argv' which is (or contains) an array with unknown size at compile time.

ERROR: [SYNCHK 200-72] E:/dtv-utils-master/dvbs2rate.c:97: unsupported c/c++ library function 'strlen'.

ERROR: [SYNCHK 200-43] E:/dtv-utils-master/dvbs2rate.c:97: use or assignment of a non-static pointer '' (this pointer may refer to different memory locations).

ERROR: [SYNCHK 200-72] E:/dtv-utils-master/dvbs2rate.c:91: unsupported c/c++ library function 'atof'.

ERROR: [SYNCHK 200-71] E:/dtv-utils-master/dvbs2rate.c:83: function '__iob_func' has no function body.

ERROR: [SYNCHK 200-72] E:/dtv-utils-master/dvbs2rate.c:91: unsupported c/c++ library function 'atof'.

ERROR: [SYNCHK 200-71] E:/dtv-utils-master/dvbs2rate.c:83: function '__iob_func' has no function body.

ERROR: [SYNCHK 200-11] E:/dtv-utils-master/dvbs2rate.c:73: Argument 'argv' of function 'main' (E:/dtv-utils-master/dvbs2rate.c:73) has an unsynthesizable type (possible cause(s): pointer to pointer or global pointer).

waiting for your response.

drmpeg commented 4 years ago

dvbs2rate.c is just a command line utility to determine the correct Transport Stream rate for a specific DVB-S2 configuration and symbol rate. Why would you want it in an FPGA?

brahmi152 commented 4 years ago

We want use this code as a testing purpose in FPGA.

drmpeg commented 4 years ago

Okay, give this a try. It still uses printf() and ceil(), so I'm not sure it will compile.

/* DVB-S2 useful bitrate */

#include <stdio.h>
#include <math.h>

#define TRUE            1
#define FALSE           0

double    rate_qpsk[11][4] = {{1.0, 4.0, 12.0, 2}, {1.0, 3.0, 12.0, 2}, {2.0, 5.0, 12.0, 2}, {1.0, 2.0, 12.0, 2}, {3.0, 5.0, 12.0, 2}, {2.0, 3.0, 10.0, 2}, {3.0, 4.0, 12.0, 2}, {4.0, 5.0, 12.0, 2}, {5.0, 6.0, 10.0, 2}, {8.0, 9.0, 8.0, 2}, {9.0, 10.0, 8.0, 1}};
double    rate_8psk[6][4] = {{3.0, 5.0, 12.0, 2}, {2.0, 3.0, 10.0, 2}, {3.0, 4.0, 12.0, 2}, {5.0, 6.0, 10.0, 2}, {8.0, 9.0, 8.0, 2}, {9.0, 10.0, 8.0, 1}};
double    rate_16apsk[6][4] = {{2.0, 3.0, 10.0, 2}, {3.0, 4.0, 12.0, 2}, {4.0, 5.0, 12.0, 2}, {5.0, 6.0, 10.0, 2}, {8.0, 9.0, 8.0, 2}, {9.0, 10.0, 8.0, 1}};
double    rate_32apsk[5][4] = {{3.0, 4.0, 12.0, 2}, {4.0, 5.0, 12.0, 2}, {5.0, 6.0, 10.0, 2}, {8.0, 9.0, 8.0, 2}, {9.0, 10.0, 8.0, 1}};

double    rate_qpsk_short[10][6] = {{1.0, 4.0, 12.0, 2, 1.0, 5.0}, {1.0, 3.0, 12.0, 2, 1.0, 3.0}, {2.0, 5.0, 12.0, 2, 2.0, 5.0}, {1.0, 2.0, 12.0, 2, 4.0, 9.0}, {3.0, 5.0, 12.0, 2, 3.0, 5.0}, {2.0, 3.0, 12.0, 2, 2.0, 3.0}, {3.0, 4.0, 12.0, 2, 11.0, 15.0}, {4.0, 5.0, 12.0, 2, 7.0, 9.0}, {5.0, 6.0, 12.0, 2, 37.0, 45.0}, {8.0, 9.0, 12.0, 2, 8.0, 9.0}};
double    rate_8psk_short[5][6] = {{3.0, 5.0, 12.0, 2, 3.0, 5.0}, {2.0, 3.0, 12.0, 2, 2.0, 3.0}, {3.0, 4.0, 12.0, 2, 11.0, 15.0}, {5.0, 6.0, 12.0, 2, 37.0, 45.0}, {8.0, 9.0, 12.0, 2, 8.0, 9.0}};
double    rate_16apsk_short[5][6] = {{2.0, 3.0, 12.0, 2, 2.0, 3.0}, {3.0, 4.0, 12.0, 2, 11.0, 15.0}, {4.0, 5.0, 12.0, 2, 7.0, 9.0}, {5.0, 6.0, 12.0, 2, 37.0, 45.0}, {8.0, 9.0, 12.0, 2, 8.0, 9.0}};
double    rate_32apsk_short[4][6] = {{3.0, 4.0, 12.0, 2, 11.0, 15.0}, {4.0, 5.0, 12.0, 2, 7.0, 9.0}, {5.0, 6.0, 12.0, 2, 37.0, 45.0}, {8.0, 9.0, 12.0, 2, 8.0, 9.0}};

double    rate_qpskx[3][4] = {{13.0, 45.0, 12.0, 3}, {9.0, 20.0, 12.0, 4}, {11.0, 20.0, 12.0, 3}};
double    rate_8apsk[2][4] = {{100.0, 180.0, 12.0, 1}, {104.0, 180.0, 12.0, 1}};
double    rate_8pskx[3][4] = {{23.0, 36.0, 12.0, 3}, {25.0, 36.0, 12.0, 3}, {13.0, 18.0, 12.0, 3}};
double    rate_16apskx[8][4] = {{26.0, 45.0, 12.0, 3}, {3.0, 5.0, 12.0, 5}, {28.0, 45.0, 12.0, 3}, {23.0, 36.0, 12.0, 3}, {25.0, 36.0, 12.0, 3}, {13.0, 18.0, 12.0, 3}, {140.0, 180.0, 12.0, 1}, {154.0, 180.0, 12.0, 1}};
double    rate_8_8apsk[5][4] = {{90.0, 180.0, 12.0, 2}, {96.0, 180.0, 12.0, 2}, {100.0, 180.0, 12.0, 1}, {18.0, 30.0, 12.0, 3}, {20.0, 30.0, 12.0, 3}};
double    rate_32_16rbapsk[1][4] = {{2.0, 3.0, 12.0, 5}};
double    rate_32_16apsk[3][4] = {{128.0, 180.0, 12.0, 1}, {132.0, 180.0, 12.0, 1}, {140.0, 180.0, 12.0, 1}};
double    rate_64apsk[1][4] = {{128.0, 180.0, 12.0, 1}};
double    rate_64_28apsk[1][4] = {{132.0, 180.0, 12.0, 1}};
double    rate_64_20apsk[3][4] = {{7.0, 9.0, 12.0, 5}, {4.0, 5.0, 12.0, 5}, {5.0, 6.0, 12.0, 5}};
double    rate_128apsk[2][4] = {{135.0, 180.0, 12.0, 1}, {140.0, 180.0, 12.0, 1}};
double    rate_256apsk[6][4] = {{20.0, 30.0, 12.0, 3}, {22.0, 30.0, 12.0, 3}, {116.0, 180.0, 12.0, 1}, {124.0, 180.0, 12.0, 1}, {128.0, 180.0, 12.0, 1}, {135.0, 180.0, 12.0, 1}};

double    rate_qpskx_short[6][4] = {{11.0, 45.0, 12.0, 3}, {4.0, 15.0, 12.0, 4}, {14.0, 45.0, 12.0, 3}, {7.0, 15.0, 12.0, 4}, {8.0, 15.0, 12.0, 4}, {32.0, 45.0, 12.0, 3}};
double    rate_8pskx_short[4][4] = {{7.0, 15.0, 12.0, 4}, {8.0, 15.0, 12.0, 4}, {26.0, 45.0, 12.0, 3}, {32.0, 45.0, 12.0, 3}};
double    rate_16apskx_short[5][4] = {{7.0, 15.0, 12.0, 4}, {8.0, 15.0, 12.0, 4}, {26.0, 45.0, 12.0, 3}, {3.0, 5.0, 12.0, 5}, {32.0, 45.0, 12.0, 3}};
double    rate_32_16rbapsk_short[2][4] = {{2.0, 3.0, 12.0, 5}, {32.0, 45.0, 12.0, 3}};

double calc(double symbols, double mod, double num, double den, double bch, double pilots)
{
    double    fec_frame = 64800.0;
    double    tsrate;

    tsrate = symbols / (fec_frame / mod + 90 + ceil((fec_frame/ mod / 90 / 16 - 1)) * pilots) * (fec_frame * (num / den) - (16 * bch) - 80);
    return (tsrate);
}

double calc_short(double symbols, double mod, double num, double den, double bch, double pilots)
{
    double    fec_frame = 16200.0;
    double    tsrate;

    tsrate = symbols / (fec_frame / mod + 90 + ceil((fec_frame/ mod / 90 / 16 - 1)) * pilots) * (fec_frame * (num / den) - (16 * bch) - 80);
    return (tsrate);
}

void dump(double rate, double num, double den, double bch, double spaces)
{
    int    i;
    char   s[10];

    for (i = 0; i < (int)spaces; i++)
    {
        s[i] = 0x20;
    }
    s[i] = 0x0;
    printf("coderate = %d/%d,%sBCH rate = %2d, ts rate = %f\n", (int)num, (int)den, s, (int)bch, rate);
}

void main(void)
{
    int       i;
    int       short_frame = FALSE;
    int       dvb_s2x = FALSE;
    double    rate;
    double    symbol_rate = 27500000.0;
    double    q;

    if (dvb_s2x == FALSE)
    {
        if (short_frame == FALSE)
        {
            printf("DVB-S2 normal FECFRAME\n");
            q = 2.0;
            printf("QPSK, pilots off\n");
            for (i = 0; i < 11; i++)
            {
                rate = calc(symbol_rate, q, rate_qpsk[i][0], rate_qpsk[i][1], rate_qpsk[i][2], 0.0);
                dump(rate, rate_qpsk[i][0], rate_qpsk[i][1], rate_qpsk[i][2], rate_qpsk[i][3]);
            }
            printf("QPSK, pilots on\n");
            for (i = 0; i < 11; i++)
            {
                rate = calc(symbol_rate, q, rate_qpsk[i][0], rate_qpsk[i][1], rate_qpsk[i][2], 36.0);
                dump(rate, rate_qpsk[i][0], rate_qpsk[i][1], rate_qpsk[i][2], rate_qpsk[i][3]);
            }

            q = 3.0;
            printf("8PSK, pilots off\n");
            for (i = 0; i < 6; i++)
            {
                rate = calc(symbol_rate, q, rate_8psk[i][0], rate_8psk[i][1], rate_8psk[i][2], 0.0);
                dump(rate, rate_8psk[i][0], rate_8psk[i][1], rate_8psk[i][2], rate_8psk[i][3]);
            }
            printf("8PSK, pilots on\n");
            for (i = 0; i < 6; i++)
            {
                rate = calc(symbol_rate, q, rate_8psk[i][0], rate_8psk[i][1], rate_8psk[i][2], 36.0);
                dump(rate, rate_8psk[i][0], rate_8psk[i][1], rate_8psk[i][2], rate_8psk[i][3]);
            }

            q = 4.0;
            printf("16APSK, pilots off\n");
            for (i = 0; i < 6; i++)
            {
                rate = calc(symbol_rate, q, rate_16apsk[i][0], rate_16apsk[i][1], rate_16apsk[i][2], 0.0);
                dump(rate, rate_16apsk[i][0], rate_16apsk[i][1], rate_16apsk[i][2], rate_16apsk[i][3]);
            }
            printf("16APSK, pilots on\n");
            for (i = 0; i < 6; i++)
            {
                rate = calc(symbol_rate, q, rate_16apsk[i][0], rate_16apsk[i][1], rate_16apsk[i][2], 36.0);
                dump(rate, rate_16apsk[i][0], rate_16apsk[i][1], rate_16apsk[i][2], rate_16apsk[i][3]);
            }

            q = 5.0;
            printf("32APSK, pilots off\n");
            for (i = 0; i < 5; i++)
            {
                rate = calc(symbol_rate, q, rate_32apsk[i][0], rate_32apsk[i][1], rate_32apsk[i][2], 0.0);
                dump(rate, rate_32apsk[i][0], rate_32apsk[i][1], rate_32apsk[i][2], rate_32apsk[i][3]);
            }
            printf("32APSK, pilots on\n");
            for (i = 0; i < 5; i++)
            {
                rate = calc(symbol_rate, q, rate_32apsk[i][0], rate_32apsk[i][1], rate_32apsk[i][2], 36.0);
                dump(rate, rate_32apsk[i][0], rate_32apsk[i][1], rate_32apsk[i][2], rate_32apsk[i][3]);
            }
        }
        else
        {
            printf("DVB-S2 short FECFRAME\n");
            q = 2.0;
            printf("QPSK, pilots off\n");
            for (i = 0; i < 10; i++)
            {
                rate = calc_short(symbol_rate, q, rate_qpsk_short[i][4], rate_qpsk_short[i][5], rate_qpsk_short[i][2], 0.0);
                dump(rate, rate_qpsk_short[i][0], rate_qpsk_short[i][1], rate_qpsk_short[i][2], rate_qpsk_short[i][3]);
            }
            printf("QPSK, pilots on\n");
            for (i = 0; i < 10; i++)
            {
                rate = calc_short(symbol_rate, q, rate_qpsk_short[i][4], rate_qpsk_short[i][5], rate_qpsk_short[i][2], 36.0);
                dump(rate, rate_qpsk_short[i][0], rate_qpsk_short[i][1], rate_qpsk_short[i][2], rate_qpsk_short[i][3]);
            }

            q = 3.0;
            printf("8PSK, pilots off\n");
            for (i = 0; i < 5; i++)
            {
                rate = calc_short(symbol_rate, q, rate_8psk_short[i][4], rate_8psk_short[i][5], rate_8psk_short[i][2], 0.0);
                dump(rate, rate_8psk_short[i][0], rate_8psk_short[i][1], rate_8psk_short[i][2], rate_8psk_short[i][3]);
            }
            printf("8PSK, pilots on\n");
            for (i = 0; i < 5; i++)
            {
                rate = calc_short(symbol_rate, q, rate_8psk_short[i][4], rate_8psk_short[i][5], rate_8psk_short[i][2], 36.0);
                dump(rate, rate_8psk_short[i][0], rate_8psk_short[i][1], rate_8psk_short[i][2], rate_8psk_short[i][3]);
            }

            q = 4.0;
            printf("16APSK, pilots off\n");
            for (i = 0; i < 5; i++)
            {
                rate = calc_short(symbol_rate, q, rate_16apsk_short[i][4], rate_16apsk_short[i][5], rate_16apsk_short[i][2], 0.0);
                dump(rate, rate_16apsk_short[i][0], rate_16apsk_short[i][1], rate_16apsk_short[i][2], rate_16apsk_short[i][3]);
            }
            printf("16APSK, pilots on\n");
            for (i = 0; i < 5; i++)
            {
                rate = calc_short(symbol_rate, q, rate_16apsk_short[i][4], rate_16apsk_short[i][5], rate_16apsk_short[i][2], 36.0);
                dump(rate, rate_16apsk_short[i][0], rate_16apsk_short[i][1], rate_16apsk_short[i][2], rate_16apsk_short[i][3]);
            }

            q = 5.0;
            printf("32APSK, pilots off\n");
            for (i = 0; i < 4; i++)
            {
                rate = calc_short(symbol_rate, q, rate_32apsk_short[i][4], rate_32apsk_short[i][5], rate_32apsk_short[i][2], 0.0);
                dump(rate, rate_32apsk_short[i][0], rate_32apsk_short[i][1], rate_32apsk_short[i][2], rate_32apsk_short[i][3]);
            }
            printf("32APSK, pilots on\n");
            for (i = 0; i < 4; i++)
            {
                rate = calc_short(symbol_rate, q, rate_32apsk_short[i][4], rate_32apsk_short[i][5], rate_32apsk_short[i][2], 36.0);
                dump(rate, rate_32apsk_short[i][0], rate_32apsk_short[i][1], rate_32apsk_short[i][2], rate_32apsk_short[i][3]);
            }
        }
    }
    else
    {
        if (short_frame == FALSE)
        {
            printf("DVB-S2X normal FECFRAME\n");
            q = 2.0;
            printf("QPSK, pilots off\n");
            for (i = 0; i < 3; i++)
            {
                rate = calc(symbol_rate, q, rate_qpskx[i][0], rate_qpskx[i][1], rate_qpskx[i][2], 0.0);
                dump(rate, rate_qpskx[i][0], rate_qpskx[i][1], rate_qpskx[i][2], rate_qpskx[i][3]);
            }
            printf("QPSK, pilots on\n");
            for (i = 0; i < 3; i++)
            {
                rate = calc(symbol_rate, q, rate_qpskx[i][0], rate_qpskx[i][1], rate_qpskx[i][2], 36.0);
                dump(rate, rate_qpskx[i][0], rate_qpskx[i][1], rate_qpskx[i][2], rate_qpskx[i][3]);
            }

            q = 3.0;
            printf("8APSK, pilots off\n");
            for (i = 0; i < 2; i++)
            {
                rate = calc(symbol_rate, q, rate_8apsk[i][0], rate_8apsk[i][1], rate_8apsk[i][2], 0.0);
                dump(rate, rate_8apsk[i][0], rate_8apsk[i][1], rate_8apsk[i][2], rate_8apsk[i][3]);
            }
            printf("8APSK, pilots on\n");
            for (i = 0; i < 2; i++)
            {
                rate = calc(symbol_rate, q, rate_8apsk[i][0], rate_8apsk[i][1], rate_8apsk[i][2], 36.0);
                dump(rate, rate_8apsk[i][0], rate_8apsk[i][1], rate_8apsk[i][2], rate_8apsk[i][3]);
            }

            q = 3.0;
            printf("8PSK, pilots off\n");
            for (i = 0; i < 3; i++)
            {
                rate = calc(symbol_rate, q, rate_8pskx[i][0], rate_8pskx[i][1], rate_8pskx[i][2], 0.0);
                dump(rate, rate_8pskx[i][0], rate_8pskx[i][1], rate_8pskx[i][2], rate_8pskx[i][3]);
            }
            printf("8PSK, pilots on\n");
            for (i = 0; i < 3; i++)
            {
                rate = calc(symbol_rate, q, rate_8pskx[i][0], rate_8pskx[i][1], rate_8pskx[i][2], 36.0);
                dump(rate, rate_8pskx[i][0], rate_8pskx[i][1], rate_8pskx[i][2], rate_8pskx[i][3]);
            }

            q = 4.0;
            printf("16APSK, pilots off\n");
            for (i = 0; i < 8; i++)
            {
                rate = calc(symbol_rate, q, rate_16apskx[i][0], rate_16apskx[i][1], rate_16apskx[i][2], 0.0);
                dump(rate, rate_16apskx[i][0], rate_16apskx[i][1], rate_16apskx[i][2], rate_16apskx[i][3]);
            }
            printf("16APSK, pilots on\n");
            for (i = 0; i < 8; i++)
            {
                rate = calc(symbol_rate, q, rate_16apskx[i][0], rate_16apskx[i][1], rate_16apskx[i][2], 36.0);
                dump(rate, rate_16apskx[i][0], rate_16apskx[i][1], rate_16apskx[i][2], rate_16apskx[i][3]);
            }

            q = 4.0;
            printf("8+8APSK, pilots off\n");
            for (i = 0; i < 5; i++)
            {
                rate = calc(symbol_rate, q, rate_8_8apsk[i][0], rate_8_8apsk[i][1], rate_8_8apsk[i][2], 0.0);
                dump(rate, rate_8_8apsk[i][0], rate_8_8apsk[i][1], rate_8_8apsk[i][2], rate_8_8apsk[i][3]);
            }
            printf("8+8APSK, pilots on\n");
            for (i = 0; i < 5; i++)
            {
                rate = calc(symbol_rate, q, rate_8_8apsk[i][0], rate_8_8apsk[i][1], rate_8_8apsk[i][2], 36.0);
                dump(rate, rate_8_8apsk[i][0], rate_8_8apsk[i][1], rate_8_8apsk[i][2], rate_8_8apsk[i][3]);
            }

            q = 5.0;
            printf("4+12+16rbAPSK, pilots off\n");
            for (i = 0; i < 1; i++)
            {
                rate = calc(symbol_rate, q, rate_32_16rbapsk[i][0], rate_32_16rbapsk[i][1], rate_32_16rbapsk[i][2], 0.0);
                dump(rate, rate_32_16rbapsk[i][0], rate_32_16rbapsk[i][1], rate_32_16rbapsk[i][2], rate_32_16rbapsk[i][3]);
            }
            printf("4+12+16rbAPSK, pilots on\n");
            for (i = 0; i < 1; i++)
            {
                rate = calc(symbol_rate, q, rate_32_16rbapsk[i][0], rate_32_16rbapsk[i][1], rate_32_16rbapsk[i][2], 36.0);
                dump(rate, rate_32_16rbapsk[i][0], rate_32_16rbapsk[i][1], rate_32_16rbapsk[i][2], rate_32_16rbapsk[i][3]);
            }

            q = 5.0;
            printf("4+8+4+16APSK, pilots off\n");
            for (i = 0; i < 3; i++)
            {
                rate = calc(symbol_rate, q, rate_32_16apsk[i][0], rate_32_16apsk[i][1], rate_32_16apsk[i][2], 0.0);
                dump(rate, rate_32_16apsk[i][0], rate_32_16apsk[i][1], rate_32_16apsk[i][2], rate_32_16apsk[i][3]);
            }
            printf("4+8+4+16APSK, pilots on\n");
            for (i = 0; i < 3; i++)
            {
                rate = calc(symbol_rate, q, rate_32_16apsk[i][0], rate_32_16apsk[i][1], rate_32_16apsk[i][2], 36.0);
                dump(rate, rate_32_16apsk[i][0], rate_32_16apsk[i][1], rate_32_16apsk[i][2], rate_32_16apsk[i][3]);
            }

            q = 6.0;
            printf("64APSK, pilots off\n");
            for (i = 0; i < 1; i++)
            {
                rate = calc(symbol_rate, q, rate_64apsk[i][0], rate_64apsk[i][1], rate_64apsk[i][2], 0.0);
                dump(rate, rate_64apsk[i][0], rate_64apsk[i][1], rate_64apsk[i][2], rate_64apsk[i][3]);
            }
            printf("64APSK, pilots on\n");
            for (i = 0; i < 1; i++)
            {
                rate = calc(symbol_rate, q, rate_64apsk[i][0], rate_64apsk[i][1], rate_64apsk[i][2], 36.0);
                dump(rate, rate_64apsk[i][0], rate_64apsk[i][1], rate_64apsk[i][2], rate_64apsk[i][3]);
            }

            q = 6.0;
            printf("4+12+20+28APSK, pilots off\n");
            for (i = 0; i < 1; i++)
            {
                rate = calc(symbol_rate, q, rate_64_28apsk[i][0], rate_64_28apsk[i][1], rate_64_28apsk[i][2], 0.0);
                dump(rate, rate_64_28apsk[i][0], rate_64_28apsk[i][1], rate_64_28apsk[i][2], rate_64_28apsk[i][3]);
            }
            printf("4+12+20+28APSK, pilots on\n");
            for (i = 0; i < 1; i++)
            {
                rate = calc(symbol_rate, q, rate_64_28apsk[i][0], rate_64_28apsk[i][1], rate_64_28apsk[i][2], 36.0);
                dump(rate, rate_64_28apsk[i][0], rate_64_28apsk[i][1], rate_64_28apsk[i][2], rate_64_28apsk[i][3]);
            }

            q = 6.0;
            printf("8+16+20+20APSK, pilots off\n");
            for (i = 0; i < 3; i++)
            {
                rate = calc(symbol_rate, q, rate_64_20apsk[i][0], rate_64_20apsk[i][1], rate_64_20apsk[i][2], 0.0);
                dump(rate, rate_64_20apsk[i][0], rate_64_20apsk[i][1], rate_64_20apsk[i][2], rate_64_20apsk[i][3]);
            }
            printf("8+16+20+20APSK, pilots on\n");
            for (i = 0; i < 3; i++)
            {
                rate = calc(symbol_rate, q, rate_64_20apsk[i][0], rate_64_20apsk[i][1], rate_64_20apsk[i][2], 36.0);
                dump(rate, rate_64_20apsk[i][0], rate_64_20apsk[i][1], rate_64_20apsk[i][2], rate_64_20apsk[i][3]);
            }

            q = 7.0;
            printf("128APSK, pilots off\n");
            for (i = 0; i < 2; i++)
            {
                rate = calc(symbol_rate, q, rate_128apsk[i][0], rate_128apsk[i][1], rate_128apsk[i][2], 0.0);
                dump(rate, rate_128apsk[i][0], rate_128apsk[i][1], rate_128apsk[i][2], rate_128apsk[i][3]);
            }
            printf("128APSK, pilots on\n");
            for (i = 0; i < 2; i++)
            {
                rate = calc(symbol_rate, q, rate_128apsk[i][0], rate_128apsk[i][1], rate_128apsk[i][2], 36.0);
                dump(rate, rate_128apsk[i][0], rate_128apsk[i][1], rate_128apsk[i][2], rate_128apsk[i][3]);
            }

            q = 8.0;
            printf("256APSK, pilots off\n");
            for (i = 0; i < 6; i++)
            {
                rate = calc(symbol_rate, q, rate_256apsk[i][0], rate_256apsk[i][1], rate_256apsk[i][2], 0.0);
                dump(rate, rate_256apsk[i][0], rate_256apsk[i][1], rate_256apsk[i][2], rate_256apsk[i][3]);
            }
            printf("256APSK, pilots on\n");
            for (i = 0; i < 6; i++)
            {
                rate = calc(symbol_rate, q, rate_256apsk[i][0], rate_256apsk[i][1], rate_256apsk[i][2], 36.0);
                dump(rate, rate_256apsk[i][0], rate_256apsk[i][1], rate_256apsk[i][2], rate_256apsk[i][3]);
            }
        }
        else
        {
            printf("DVB-S2X short FECFRAME\n");
            q = 2.0;
            printf("QPSK, pilots off\n");
            for (i = 0; i < 6; i++)
            {
                rate = calc_short(symbol_rate, q, rate_qpskx_short[i][0], rate_qpskx_short[i][1], rate_qpskx_short[i][2], 0.0);
                dump(rate, rate_qpskx_short[i][0], rate_qpskx_short[i][1], rate_qpskx_short[i][2], rate_qpskx_short[i][3]);
            }
            printf("QPSK, pilots on\n");
            for (i = 0; i < 6; i++)
            {
                rate = calc_short(symbol_rate, q, rate_qpskx_short[i][0], rate_qpskx_short[i][1], rate_qpskx_short[i][2], 36.0);
                dump(rate, rate_qpskx_short[i][0], rate_qpskx_short[i][1], rate_qpskx_short[i][2], rate_qpskx_short[i][3]);
            }

            q = 3.0;
            printf("8PSK, pilots off\n");
            for (i = 0; i < 4; i++)
            {
                rate = calc_short(symbol_rate, q, rate_8pskx_short[i][0], rate_8pskx_short[i][1], rate_8pskx_short[i][2], 0.0);
                dump(rate, rate_8pskx_short[i][0], rate_8pskx_short[i][1], rate_8pskx_short[i][2], rate_8pskx_short[i][3]);
            }
            printf("8PSK, pilots on\n");
            for (i = 0; i < 4; i++)
            {
                rate = calc_short(symbol_rate, q, rate_8pskx_short[i][0], rate_8pskx_short[i][1], rate_8pskx_short[i][2], 36.0);
                dump(rate, rate_8pskx_short[i][0], rate_8pskx_short[i][1], rate_8pskx_short[i][2], rate_8pskx_short[i][3]);
            }

            q = 4.0;
            printf("16APSK, pilots off\n");
            for (i = 0; i < 5; i++)
            {
                rate = calc_short(symbol_rate, q, rate_16apskx_short[i][0], rate_16apskx_short[i][1], rate_16apskx_short[i][2], 0.0);
                dump(rate, rate_16apskx_short[i][0], rate_16apskx_short[i][1], rate_16apskx_short[i][2], rate_16apskx_short[i][3]);
            }
            printf("16APSK, pilots on\n");
            for (i = 0; i < 5; i++)
            {
                rate = calc_short(symbol_rate, q, rate_16apskx_short[i][0], rate_16apskx_short[i][1], rate_16apskx_short[i][2], 36.0);
                dump(rate, rate_16apskx_short[i][0], rate_16apskx_short[i][1], rate_16apskx_short[i][2], rate_16apskx_short[i][3]);
            }

            q = 5.0;
            printf("4+12+16rbAPSK, pilots off\n");
            for (i = 0; i < 2; i++)
            {
                rate = calc_short(symbol_rate, q, rate_32_16rbapsk_short[i][0], rate_32_16rbapsk_short[i][1], rate_32_16rbapsk_short[i][2], 0.0);
                dump(rate, rate_32_16rbapsk_short[i][0], rate_32_16rbapsk_short[i][1], rate_32_16rbapsk_short[i][2], rate_32_16rbapsk_short[i][3]);
            }
            printf("4+12+16rbAPSK, pilots on\n");
            for (i = 0; i < 2; i++)
            {
                rate = calc_short(symbol_rate, q, rate_32_16rbapsk_short[i][0], rate_32_16rbapsk_short[i][1], rate_32_16rbapsk_short[i][2], 36.0);
                dump(rate, rate_32_16rbapsk_short[i][0], rate_32_16rbapsk_short[i][1], rate_32_16rbapsk_short[i][2], rate_32_16rbapsk_short[i][3]);
            }
        }
    }
}
brahmi152 commented 4 years ago

thanks you for your response. It complied successfully.

brahmi152 commented 4 years ago

Hi , I am using this DVB2rate.c code in vivado hls for ZC706 zynq board. Is it working?