UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Visitor blks303
Visitor
19,143 Views
Registered: ‎01-19-2009

OFDM modulator

Jump to solution

Hi everyone!
I'm new to FPGA so be patient please.


I,m trying to implement an OFDM modulator applicable to many standards, for example DVB-T, WiMAX and Wifi.

I used the Core generator to generate an IFFT pipelined with configurable transform length and one channel.
For the 2k mode of the dvb-t standard I need a 2048 IFFT.
But just before IFFT and after TPS and pilots insertion I have 1704 sub-carriers.
If I understood well, I should associate those 1704 sub carriers from N=172 to N=1876 inputs of the IFFT and put zeros to the rest.
Do you have any idea how can I do that?

Also I would like to ask you about some the parameters of the core generator since I can't find any information in the DVB standard paper.
should I choose scaled or Unscaled in scaling options?
What about the rounding modes?

 

thank you in advance.

0 Kudos
1 Solution

Accepted Solutions
Voyager
Voyager
20,837 Views
Registered: ‎05-09-2008

Re: OFDM modulator

Jump to solution

Hi blks303,

 

> So you are suggesting me using a simple Dual port RAM, writing to port A and reading from the port B right ?

 

Yes, what could be simpler ?

 

> Should I also implement a counterthat counts from zero to 1704, for addressing port A ?

 

Yes, 0-1704 for data, 1705-2047 to write "Zero Data".

 

> why should i use the XK_INDEX and not the XN_INDEX ?  I don't really understand what are those outputs doing...

 

Sorry, sorry I was wrong, use XN_INDEX for address read of data input from Dual Port RAM plus offset DC (2K = 852).

 

> At the end i have to write only 1704 cells but i must read 2048! should i use different clocks for writing and reading ?

 

IFFT block generate address from 0 to 2047 for reading from Dual Port RAM.

 

> I want a streaming  but i don't understand why the RAM size has to be 2xIFFTsize...

 

I you want write to Dual Port RAM at the same time to read, split RAM in 2 bank. First Bank IFFT read and Second Bank you write, later Second Bank IFFT read and First Bank you write. Other ideas ?

 

> what do you mean by "add MSB switch for change bank" ?

 

MSB change First/Sencod Bank of RAM.

 

> I apologize if I'm asking a lot but is seems you know a lot about this..

 

No problem. Maybe someone more talented, could do less indifferent and perhaps help.

 

Kappa.

 

 

 

 

19 Replies
Voyager
Voyager
19,123 Views
Registered: ‎05-09-2008

Re: OFDM modulator

Jump to solution

Hi blks303,

 

>  Do you have any idea how can I do that ?

 

Yes. Write TPS and pilots insertion of 1704 sub-carriers in a Dual Port RAM. Address write on port A is [0 - 1704] and fill [1705 - 2047] with zero or reset Dula Port RAM before to init write. Create an address generator from output "xkindex" of IFFT and add an offset. For 2K ofset is "852". Apply this address generator to port B. If you want a streaming, use a Dual Port RAM of "IFFT size x 2" and add MSB switch for change bank.

 

 > should I choose scaled or Unscaled in scaling options ?

 

I use a  "Scaled" version.

 

> What about the rounding modes ?

 

 I use a "Convergent rounding"

 

Kappa.

 

0 Kudos
Visitor imranqureshi
Visitor
19,111 Views
Registered: ‎01-21-2009

Re: OFDM modulator

Jump to solution

Hi;

 

i am also trying to implement OFDM on FPGA. recently i implement generic M-QAM mapper block and now forward to IFFT block.

i am using  System Generator to analyse my results now i am little bit confused in using IFFT streaming IP core.

Tell me from where to start to impliment IFFT 64 point.And how can i use verilog IP core.

 

regards,

imran 

0 Kudos
Voyager
Voyager
19,108 Views
Registered: ‎05-09-2008

Re: OFDM modulator

Jump to solution

I'am start from here:

 

OFDM Reference Design

 

Download archive and open. On directory  "..\OFDM_ReferenceDesign_vxx_x_public\pcores\ofdm_txrx_mimo_plbw_v1_07_k\mdlsrc" you find a complete project with IFFT 64 point.

 

Kappa.

0 Kudos
Visitor blks303
Visitor
19,105 Views
Registered: ‎01-19-2009

Re: OFDM modulator

Jump to solution

Hi Kappa, thanks for your answer.


So you are suggesting me using a simple Dual port RAM, writing to port A and reading from the port B right?

Should I also implement a counterthat counts from zero to 1704, for addressing port A ?


why should i use the XK_INDEX and not the XN_INDEX ?  I don't really understand what are those outputs doing...


At the end i have to write only 1704 cells but i must read 2048! should i use different clocks for writing and reading?


I want a streaming  but i don't understand why the RAM size has to be 2xIFFTsize...
what do you mean by "add MSB switch for change bank" ??

I apologize if I'm asking a lot but is seems you know a lot about this..

 

0 Kudos
Voyager
Voyager
20,838 Views
Registered: ‎05-09-2008

Re: OFDM modulator

Jump to solution

Hi blks303,

 

> So you are suggesting me using a simple Dual port RAM, writing to port A and reading from the port B right ?

 

Yes, what could be simpler ?

 

> Should I also implement a counterthat counts from zero to 1704, for addressing port A ?

 

Yes, 0-1704 for data, 1705-2047 to write "Zero Data".

 

> why should i use the XK_INDEX and not the XN_INDEX ?  I don't really understand what are those outputs doing...

 

Sorry, sorry I was wrong, use XN_INDEX for address read of data input from Dual Port RAM plus offset DC (2K = 852).

 

> At the end i have to write only 1704 cells but i must read 2048! should i use different clocks for writing and reading ?

 

IFFT block generate address from 0 to 2047 for reading from Dual Port RAM.

 

> I want a streaming  but i don't understand why the RAM size has to be 2xIFFTsize...

 

I you want write to Dual Port RAM at the same time to read, split RAM in 2 bank. First Bank IFFT read and Second Bank you write, later Second Bank IFFT read and First Bank you write. Other ideas ?

 

> what do you mean by "add MSB switch for change bank" ?

 

MSB change First/Sencod Bank of RAM.

 

> I apologize if I'm asking a lot but is seems you know a lot about this..

 

No problem. Maybe someone more talented, could do less indifferent and perhaps help.

 

Kappa.

 

 

 

 

Visitor imranqureshi
Visitor
19,086 Views
Registered: ‎01-21-2009

Re: OFDM modulator

Jump to solution

Hi Kapa,

 

Oops! yes i am already using that as a reference from WARP that you sugges me,THanks alot.

In this Generic QAM mapper is little bit confusing.they use 9 port MUX and ground some ports i dont know why, i remove that

and my system running well.

Actually i want to extract only OFDM tx from their design but its too complex.The comlexity is in input data plz guide me.

 

Regards

Imran 

 

 

 

 

 

 

 

 

0 Kudos
Visitor blks303
Visitor
19,035 Views
Registered: ‎01-19-2009

Re: OFDM modulator

Jump to solution

Hi all!!

 

Thanks a lot Kappa for your useful advices. I can say that it's very clear for me now.

There are two more things I would like to ask if that's not a problem.

 First: lets say that in every CLK rise I can write and read one cell of the memory one sub currier,
from the the TPS & Pilots insertion block are arriving 1704 sub curriers to the memory and are leaving 2048. So I need 1704 CLK rises
to write all the data given by TPS & P. Block and 2048 to pass all the data from the memory to IFFT.
Now, if I'm using the same clock frequency to read and write, the moment I'm filling the memory with zeros I must disable the the TPS & P. Otherwise
two things can happen
a) loosing data by disabling the WE signal of the memory and ignoring 344 sub curriers or,
b) after tree times of zero padding I'll exceed the point of reading by jumping 344 cells every 1704 cells, and that will cause data loose again.

what I'm trying to say is that I can't work in streaming, every time I have to fill the memory with zeros I must disable all the system before the memory block
otherwise I'll loose data.

Is what I'm saying right? If yes, what should I do?



And second: any idea for implementing the TPS and pilots insertion block?

 

 

 Thank you

0 Kudos
Visitor imranqureshi
Visitor
19,034 Views
Registered: ‎01-21-2009

Re: OFDM modulator

Jump to solution

Hi ,

Plz tell me that which tool shuld i use to implement OFDM,system generator or verilog rogramming to

effitiantly run on FPGA?

If i use system generator, can i run only OFDM tx on Spartan 3E?

 

0 Kudos
Visitor blks303
Visitor
19,032 Views
Registered: ‎01-19-2009

Re: OFDM modulator

Jump to solution

Hi Imran.

 

What I'm doing to implement the OFDM is implementing some single blocks by using the Core Generator of the Xilinx ISE 10.1.

I don't know anything about system generator because I think wants a license for using it and I haven't any. So I'll tell you what I did.

 

I used the core generator to Implement an IFFT core which is contain the cyclic prefix insertion too.

Then, like Kappa suggests me, I used the same tool to implement a RAM memory for filling the IFFT core and some ROM for the Mappers.

Now I must implement the TPS and pilots insertion block and then I must put them together my self by programming in VHDL.

 

You could do the same in Verilog I guess..

If you don't know how to use the Core Generator you should take a look of the Xilinx ISE help topics

 

 

 

0 Kudos
Visitor imranqureshi
Visitor
17,618 Views
Registered: ‎01-21-2009

Re: OFDM modulator

Jump to solution

Hi Blks303,

 

Thanks for you kind guidance.I am going the same way building blocks one by one. Now i am successful in M-QAM mapper block 

and now proceed to IFFT as my reply to Kappa abow.Now i am studying IFFT core datasheet.

Actually i am new in using ISE core generator but beside i use system generator that quite simpler to me.But confusion is that is it effitient?

Before that I implement an OFDM MODEM using LabVIEW, interface it with NI signel generator for wireless Transmittion and NI signel analyser for reception.I got first position in  Final Year project competition.

 

Now i want to make a stand alone embedded system, OFDM MODEM on FPGA very complex for me and a lot of work i have to do.

Is there any CBT's of ISE to learn like Linx CBT's?

    

0 Kudos
Visitor blks303
Visitor
17,587 Views
Registered: ‎01-19-2009

Re: OFDM modulator

Jump to solution

Hi Imran,

 

If you mean Computer Based Training for the Xilinx ISE software, I'm really sorry but I don't know anything about that. I did everything by reading the Help Topics.

maybe you should try search on the Xilinx website.

Otherwise, if it's really complicated to you I could explain you somehow the way I did it..

But consider that I'm a beginner to all this.

 

you are not going to implement the pilot insertion block? It's between the Mapper and the IFFT.

0 Kudos
Visitor imranqureshi
Visitor
17,582 Views
Registered: ‎01-21-2009

Re: OFDM modulator

Jump to solution

Hi blks303;

 

Thanks for your reply i was waiting...........

Ok, plz tell me, how can i use IFFT IP core? if u have any brief  PDF that explain how to use IP cores,example or link plz reply me?

 

Redgards

Imran

0 Kudos
Visitor blks303
Visitor
17,557 Views
Registered: ‎01-19-2009

Re: OFDM modulator

Jump to solution

Hi Imran.

 

try here

http://www.xilinx.com/itp/xilinx9/help/iseguide/mergedProjects/coregen/coregen.htm

 

sorry no PDF

 

I sent you also a message two days ago read it and reply me

0 Kudos
Visitor suyoto
Visitor
16,930 Views
Registered: ‎10-10-2008

how too remove cyclic prefix on receiver

Jump to solution

hi... every one

 

I try to simulate OFDM design, i use FFT v.5, with cyclic prefix insertion, but i don't know how to remove that cyclic prefix  before prosessed to the FFT (in receiver).

i also confuse about port cpv and rfs, how too use the port?

 

 

thanks in advanced,

suyoto
0 Kudos
Visitor blks303
Visitor
16,909 Views
Registered: ‎01-19-2009

Re: how too remove cyclic prefix on receiver

Jump to solution

Hi suyoto.

 

rfs: once the rfs signal is '1' you can make high the input signal start and the loading phase will start automatically.

cpv: this output signal is '1' when cyclic prefix data is presented on the output.  Otherwise, if normal data is presented on the output the dv signal is '1'.

what kind of architecture are you using??

 

I don't know about the receiver but I guess you shouldn't insert in the FFT the first x samples of every symbol. 

x is the length of the c.p. You chose to add on the transmitter part.  

0 Kudos
Visitor suyoto
Visitor
16,902 Views
Registered: ‎10-10-2008

Re: how too remove cyclic prefix on receiver

Jump to solution

Hi blks303,

 

I try to simulating the example on demo sysgen -> sysgenStreamedFFT example, but i try too add cyclic prefix port on FFT part(example i use 32), but i don't know about too remove on IFFT part,

 

thanks in advanced

 

suyoto.

 

 

0 Kudos
Highlighted
Visitor ecuador
Visitor
16,650 Views
Registered: ‎03-15-2009

Re: OFDM modulator

Jump to solution

i have a question, if you could help me with your design.. i'm making a modem ofdm according to 802.16d but i'm having problems with some blocks. ex fft i cant configure it the right way.. in the modulator side

 

could somebody help me with this about the way of configuring the ifft or somebody upload a file?

0 Kudos
Newbie jagsparo
Newbie
13,068 Views
Registered: ‎04-14-2010

Re: OFDM modulator

Jump to solution
can u breif  about the implementation part we hav designed simple coding w/o using cores
0 Kudos
Observer nafees
Observer
12,682 Views
Registered: ‎05-20-2010

Re: OFDM modulator

Jump to solution

hi every one

i m designing a ofdm transceiver on system generator.

i m new in use of system generator and facing a few problems.

1st of all i want to know how to convert serial data into parrallel data.

second problem is in use of fft/ifft block in system generator.

i divided my data into 52 subcarriers and i m having a 64 point fft block which accept one input (both real and imaginary part), while i m having 52 inputs + 12 zeros carriers, how can i give these 64 inputs to a single block having only one input port. what i have to do with the data before giving it to fft block.

 

i need your help in this regard.

 

thankx in advance

 

nafees

0 Kudos