ÔÚQuartusIIÖÐÉú³É IFFT µÄ·ÂÕ沨ÐÎÎļþ(ifft.vwf),Áí´æΪ ifft.tbl£¬²¢É¾³ýÆäÓàÐźţ¬½ö±£Áô I&Q(ÊäÈëÊý¾Ý£¬24bit)£»
ÔÚUltraEditÖдò¿ªifftt.tbl¡¢datain.dat,ÓÃdatain.dat ÖеÄËæ»úÊý´úÌæifft.tbl ÖÐµÄ I&Q Êý¾Ý£¬±£´æifft.tbl£»
ÔÚQuartusIIÖдò¿ª ifft.tbl£¬½«I&Q¸´ÖƵ½ ifft.vwf ÖУ¬¿ªÊ¼ÔËÐзÂÕ棻
¡¤½«·ÂÕæ½á¹ûÁí´æΪdataout.tbl,ÓÃMatlab¶ÁÈ¡ÓëÔÊý¾ÝÔÚMatlabϵÄIFFT±ä»»½á¹û½øÐбȽϷÖÎö¡£
¸ø³öÒ»×éËæ»úÊý¾ÝÊäÈ룬¾¹ýFPGAÖеÄIFFTÄ£¿é±ä»»µÃµ½Ê±Óò·ù¶ÈÈçͼ6(ʵ²¿)¡¢Í¼7(Ð鲿)Ëùʾ¡£
¶ø½«Í¬ÑùµÄËæ»úÊý¾¹ýMATLAB±ä»»£¬µÃµ½µÄʱÓò·ù¶ÈÈçͼ8(ʵ²¿)¡¢Í¼9(Ð鲿)Ëùʾ¡£
ʵ¼Ê²âÁ¿Óë·ÂÕæ¼ÆËãµÄ·½²î·ÖÎöÈçͼ10(ʵ²¿)¡¢Í¼11(Ð鲿)Ëùʾ¡£Á½Õß½á¹û»ù±¾Ò»Ö¡£
OFDMÖеÄFFTÄ£¿éÉè¼Æ¼°ÆäFPGAʵÏÖ
2008-02-28 ǶÈëʽÔÚÏß ÊÕ²Ø | ´òÓ¡
Õý½»Æµ·Ö¸´ÓÃ(OFDM)ÊÇÒ»ÖÖ¶àÔز¨µ÷ÖƼ¼Êõ£¬¿ÉÒÔÓÐЧµØ¶Ô¿¹ÆµÂÊÑ¡ÔñÐÔË¥ÂäºÍÕ´ø¸ÉÈÅ£¬²¢ÇÒÓнϸߵÄƵÆ×ÀûÓÃÂÊ¡£
OFDM¼¼ÊõÒѾ³É¹¦µØÓ¦ÓÃÓڷǶԳÆÊý×ÖÓû§»·Â·(ADSL)¡¢Êý×ÖÒôƵ¹ã²¥(DAB)¡¢¸ßÇåÎú¶ÈµçÊÓ(HDTV)¡¢µçÁ¦ÏßÔز¨Í¨ÐÅ(PLC)¡¢ÎÞÏß¾ÖÓò Íø(WLAN)µÈϵͳÖС£µäÐ͵ÄOFDM»ù´øÊÕ·¢»úÈçͼ1Ëùʾ£¬ÆäÖеĶàÔز¨µ÷ÖÆ/½âµ÷ÓÉIFFT/FFTÀ´ÊµÏÖ¡£
¶ÔÓÚFFT´¦ÀíÆ÷µÄʵÏÖ£¬ ĿǰͨÓõķ½·¨ÊDzÉÓÃDSP¡¢×¨ÓÃFFT´¦ÀíоƬºÍFPGA¡£ÓÃDSPʵÏÖFFTµÄ´¦ÀíËٶȽÏÂý£¬²»ÄÜÂú×ãijЩ¸ßËÙÐźÅʵ
ʱ´¦ÀíµÄÒªÇó£»×¨ÓõÄFFT´¦Àí оƬËäÈ»ËٶȽϿ죬µ«ÍâΧµç·Ïà¶Ô¸´ÔÓ£¬²»Ò×À©Õ¹£¬ÇÒ¼Û¸ñ°º¹ó¡£ÐÂÒ»´úFPGA×ÊÔ´·á¸»£¬Ò×ÓÚ×éÖ¯Á÷Ë®ºÍ²¢ÐеĽṹ£¬ÓÃÆäʵÏÖFFT£¬²»½ö¿ÉÒÔÌá¸ß´¦ÀíËÙ ¶È£¬¶øÇÒ¾ßÓÐÁé»îÐԸߣ¬¿ª·¢·ÑÓõ͵ÄÌص㡣
1 Éè¼ÆÓëʵÏÖ
±¾Éè¼ÆΪ128µãFFT£¬²ÉÓüòµ¥ÊµÓõĻù2ʱ¼ä³éÈ¡(DIT)Ëã·¨¡£¸ÃÄ£¿éµÄFFT´¦Àí¹²Ðè3¸ö¹ý³Ì£¬¼´ÍⲿÊý¾Ýµ¹ÐòÊäÈë¹ý³Ì£¬FFTÖмäÔËËã¹ý³Ì (128µãµÄFFTÔËËã¿É·Ö½â³É7¼¶ÔËË㣬ÿ¼¶64¸ö»ù2µûÐÎÔËËã)ºÍÔËËã½á¹ûÕýÐòÊä³ö¹ý³Ì¡£Õû¸öFFTÄ£¿éÄÚ²¿½á¹¹¼òͼÈçͼ2Ëùʾ¡£¸ÃFFTÄ£¿éÖ÷Òª°ü À¨µûÐÎÔËËãµ¥Ôª¡¢¿ØÖƵ¥ÔªºÍ´æ´¢µ¥Ôª(ROMºÍË«¿ÚRAM)¡£
1.1 µûÐÎÔËËãµ¥Ôª
»ù2ʱ¼ä³éÈ¡µûÐÎÔËËãÐźÅÁ÷ͼÈçͼ3Ëùʾ¡£
ÓÉÉÏÊö¹«Ê½¿ÉÒÔ¿´³ö£¬Ò»¸ö»ù2µûÐÎÔËËãÒª½øÐÐ1´Î¸´³Ë¡¢2´Î¸´¼Ó¡£ÈôÔÚÒ»¸öʱÖÓÖÜÆÚÄÚÍê³É¸´³Ë£¬ÔòÐèÒª4¸öʵÊý³Ë·¨Æ÷ºÍ2¸öʵÊý¼Ó·¨Æ÷¡£ÒòΪһ¸öµûÐÎÔËËã ÐèҪȡÁ½¸öÊäÈëÊý¾Ý£¬¶øÖ»´æÔÚ1´Î¸´³Ë£¬ËùÒÔ¿ÉÒÔÓÃ2¸öʱÖÓÖÜÆÚÀ´Íê³É1´Î¸´³Ë£¬¼´¿ÉÒÔ¶ÔʵÊý³Ë·¨Æ÷½øÐи´Ó㬴Ӷø¼õÉٳ˷¨Æ÷µÄÊýĿͬʱ²»½µµÍ´¦ÀíËٶȡ£
¸Ä½øºóµÄ»ù2µûÐÎÔËËãµ¥Ôª³ä·ÖÀûÓÃÁËFPGAƬÄڵļĴæÆ÷£¬²ÉÓÃÁ÷Ë®ºÍ²¢ÐеĽṹ½«¸´³ËËùÐèµÄ4¸öʵÊý³Ë·¨Æ÷¼õÉÙµ½2¸ö£¬ÆäÂß¼½á¹¹Èçͼ4¡£´ÓÖпÉÒÔ¿´ ³ö£¬µûÐÎÔËËãµ¥ÔªÖ÷ÒªÓɼĴæÆ÷¡¢Ñ¡ÔñÆ÷¡¢³Ë·¨Æ÷ºÍ¼Ó·¨Æ÷¹¹³É¡£×ó±ß3¸öÑ¡ÔñÆ÷ÓÃÀ´Ñ¡Ôñ×ö³Ë·¨µÄÊý¾Ý£¬ÓÒ±ß2¸öÑ¡ÔñÆ÷ÓÃÀ´Ñ¡Ôñ¼Ó·¨Æ÷µÄ¼Ó¼õ¹¦ÄÜ¡£
¸ÃµûÐÎÔËËãµ¥ÔªÖеĸ´³ËÔËËãÊÇ2¸ö8±ÈÌصĸ´ÊýÏà³ËµÃµ½15±ÈÌصĸ´Êý¡£ÒòΪÊäÈëÊý¾ÝºÍÐýתÒò×ÓµÄ8±ÈÌØÊý¾Ýʵ¼ÊÉϱíÕ÷µÄÊÇÄ£Öµ²»´óÓÚ¡°1¡±µÄ¸´Ð¡Êý£¬Ëù ÒÔ¸´³ËÔËËãµÄÊä³ö½á¹ûÓÃ15±ÈÌرíʾ²¢²»»á²úÉúÒç³ö¡£2¸ö15±ÈÌصÄÊý¾Ý½øÐи´¼ÓÔËËãµÃµ½16±ÈÌصĽá¹û¡£Îª±ãÓÚÏÂÒ»¼¶ÔËË㣬½«¸´¼ÓÔËËãÊä³öµÄ16±ÈÌØÊý ¾Ý½ØµôµÍ8λ(²ÉÓö¨µãËÄÉáÎåÈ˵ķ½·¨ÒÔ¼õСÎó²î)¡£128µãFFTµÄ7¼¶ÔËËãÖÐÿһ¼¶µÄÊý¾Ý¶¼Ï൱ÓÚÏÈ×óÒÆÁË7λ(ÐýתÒò×Ó
µÄģֵΪ128)£¬¶øºóÓÖ½Ø µôÁ˵Í8룬ËùÒÔÿһ¼¶¶¼Ï൱ÓÚ×öÁ˳ý2ÔËË㣬¹Ê´Ë128µãFFTÊä³ö½á¹ûÊÇÀíÂÛÖµµÄ(1/2)7¡£ 1.2 ¿ØÖƵ¥Ôª
¿ØÖƵ¥ÔªÊÇÕû¸öFFTÄ£¿éµÄºËÐÄ¡£Ö÷ÒªÓÐÒÔÏÂÁ½¸ö¹¦ÄÜ£º 1)Ìṩ¸÷¸öÄ£¿éµÄÔËËãʹÄÜ¡£
µ±¼ì²âµ½ÊäÈë¿ÚµÄFFT_startÐźźó£¬Á¢¼´¿ªÊ¼½ÓÊÕÊý¾Ý£¬²¢·´Ðò´æ´¢µ½RAMÖС£ÔÚ128¸öʱÖÓÖÜÆÚÖ®ºó£¬Æô¶¯¸÷¼¶µÄµûÐÎÔËË㣬²¢Í¬Ê±²úÉúRAMµÄ ¶ÁдʹÄÜÐźš£ÔÚµÚ7¼¶ÔËËã½áÊøʱ£¬ÌṩÊý¾ÝÊä³öµÄ±êÖ¾FFT_done£¬²¢¿ØÖÆRAM ͬ²½ÕýÐòÊä³öÊý¾Ý¡£
2)²úÉú¸÷¼¶ÔËËãËùÐèµÄµØÖ·
²úÉúFFTÊäÈëµÄµ¹ÐòµØÖ·ºÍÊä³öµÄÕýÐòµØÖ·(ÕýÐòºÍµ¹Ðò¾ùÓÃͬ²½¼ÆÊýÆ÷ʵÏÖ£¬ÕýÐòΪµ±Ç°¼ÆÊýÆ÷µÄÊä³ö£¬µ¹ÐòΪµ±Ç°¼ÆÊýÆ÷µÄ¸ßλÓëµÍλµÄ¶ÔӦλȫ²¿¶Ôµ÷ºóµÄ Êä³ö)£»¸÷¼¶ÔËËãµÄµØÖ·(°´ÕÕ¼ÆÊýÆ÷µÄÊä³ö£¬¸ù¾Ý¸÷¼¶µûÐÎÔËËãµÄ¹æÂɲúÉú¡£ÏȲúÉúµûÐÎÔËËãµÚÒ»¸öÊý¾ÝµÄRAMµØÖ·£¬ÔÙ²úÉúµÚ¶þ¸öÊý¾ÝµÄRAMµØÖ·£»ÔÚ²úÉú ÒÔÉÏÁ½¸öÈ¡ÊýµØÖ·µÄͬʱ£¬²úÉúËù¶ÔÓ¦µÄÐýתÒò×ÓµÄROMÈ¡ÊýµØÖ·)¡£
1.3 ´æ´¢µ¥Ôª
¸ÃFFTÄ£¿éÖеĴ洢µ¥Ôª(ROMºÍË«¿ÚRAM)ÓÉXilinx ISE 6.2iµÄCORE Generator¹¤¾ß¸ù¾ÝFPGAµÄÐͺÅÉú³É¡£
±¾FFTÉè¼ÆÖÐÓÐ2¸öROM·Ö±ðÓÃÀ´´æ´¢ÐýתÒò×Ó£¬²¢ÒÔ²¹ÂëµÄÐÎʽ½«ËüÃÇ°´ÕÕ*.mif¸ñʽÎļþÊä³ö¡£Óù¤¾ßÀý»¯ROM£¬½«*.mifÎļþдÈë¸÷×ÔµÄROM³õʼ»¯ÎļþÖУ¬Íê³É¶ÔROMµÄ³õʼ»¯¡£
ͨ³£µÄFFTÉè¼Æ²ÉÓõÄÊÇÓÐ2¿é(°´Êµ¡¢Ð鲿·Ö¿ªËãÊÇ4¿é)RAMµÄ¡°Æ¹ÅÒ¡±Ê½½á¹¹£¬¶øÔÚ´¦ÀíËÙ¶ÈÒªÇó²»Ì«¸ßµÄÇé¿öÏ£¬¿ÉÒÔ²ÉÓÃ1¿é(°´Êµ¡¢Ð鲿·Ö¿ªËãÊÇ 2¿é)RAMÀ´Íê³É£¬½ø¶ø½ÚÊ¡RAM×ÊÔ´£¬±ãÓÚÒÔºóµÄASIC¿ª·¢¡£ÔÚ´ËFFTÄ£¿éµÄÉè¼ÆÖУ¬ÓÐ2¸ö·Ö±ðÓÃÀ´´æ´¢Êý¾Ýʵ²¿ºÍÐ鲿µÄË«¿ÚRAM(¶Ë¿ÚaÖ» д£¬¶Ë¿ÚbÖ»¶Á)¡£RAMµÄÁ½¶Ë¿Ú¿ÉÒÔÔÚ¶ÁдµØÖ·²»Í¬µÄÇé¿öÏÂͬʱ¹¤×÷£¬¼´ÔÚͨ¹ý¶Ë¿Úb´ÓRAMÖжÁÈ¡µûÐÎÔËËãÊý¾ÝµÄͬʱ£¬Ò²ÔÚͨ¹ý¶Ë¿ÚaÍùRAM ÖÐдÈëÉϼ¸´ÎµûÐÎÔËËãµÄ½á¹û¡£
2 ·ÂÕæÓë·ÖÎö
²ÉÓÃVerilog HDL¶ÔËùÉè¼ÆµÄFFTÄ£¿é½øÐÐRTLÃèÊö¡£FFT´¦ÀíµãÊýΪ128£¬ÊäÈëÊä³öÓÃ8±ÈÌز¹Âë±íʾ¡£²ÉÓÃMoldSim SE 5.8a¶ÔÕû¸öÉè¼Æ½øÐй¦ÄÜ·ÂÕ棬²ÉÓÃSynplify Pro 7.3.3½øÐÐ×ۺϣ»Ê¹ÓÃXilinxµÄISE 6.2i¹¤¾ßÅäÖñÈÌØÁ÷ÏÂÔØ£»FPGAÑ¡ÓÃXilinx Spartan IIϵÁÐÖеÄxc2s200pq208-5¡£ÓÃMoldSim½øÐзÂÕæµÄ¾Ö²¿Ê±ÐòÈçͼ5Ëùʾ¡£
½«MATLABµÄ¼ÆËã½á¹ûÓëFPGAµÄ·ÂÕæ½á¹û½øÐжԱȣ¬Èçͼ6Ëùʾ¡£¿É¼ûÁ½×é½á¹ûÄܽϺõØÎǺϣ¬´Ó¶øÑéÖ¤ÁËËùÉè¼ÆµÄFFTÄ£¿éµÄÕýÈ·ÐÔ¡£
Õû¸öFFTÄ£¿éÔÚSpartan IIµÄxc2s200pq208-5ÉϹ²ÓÃÈ¥Âß¼µ¥Ôª(LUTs)393£¬Õ¼×Ü×ÊÔ´µÄ8£¥£¬ÕâÑù¾ÍΪOFDMϵͳÆäËûÄ£¿éµÄÉè¼Æ½ÚÊ¡ÁË´óÁ¿×ÊÔ´¡£
128µãFFTÐèÒªÍê³ÉµûÐÎÔËËã (128/2)¡Álog2128=448´Î£¬Ã¿¸öµûÐÎÔËËãÐèÒª2¸öʱÖÓÖÜÆÚ£¬µûÐÎÔËËãÐèÒª7¸öʱÖÓÖÜÆÚµÄÑÓʱ£¬ÊÕ·¢ÍⲿÊý¾ÝÐèÒª128¡Á2=256¸öʱÖÓ ÖÜÆÚ£¬ËùÒÔÕû¸öFFTÔËËã¹²ÐèҪʱÖÓÖÜÆÚ448¡Á2+7+256=1159¸ö£¬ÔÚ´¦ÀíËÙ¶ÈÉÏ´ïµ½ÁËÔ¤ÆÚµÄÄ¿±ê¡£ 3 ½áÂÛ
±¾ÎÄÖÐÉè¼ÆµÄFFTÄ£¿é²ÉÓûù2ʱ¼ä³éÈ¡Ëã·¨£¬ÓÃverilog HDL¶ÔÆä½øÐÐÁËRTLÃèÊö£¬ÓÃMoldSimºÍSynplify¹¤¾ß½øÐÐÁË·ÂÕæºÍ×ۺϣ¬²¢ÔÚXilinx Spartan II FPGAÖнøÐÐÁËÑéÖ¤¡£
´ËÍ⣬FFTÔËËã½á¹ûµÄ¾«¶ÈÓëÊäÈëÊý¾ÝµÄλÊý¼°ÔËËã¹ý³ÌÖеÄλÊýÓйء£ÔÚ¶¨µã¼ÆËãÖУ¬´æ´¢Æ÷Êý¾ÝµÄλÊýÔ½´ó£¬ÔËË㾫¶ÈÔ½¸ß£¬Ê¹ÓõĴ洢µ¥ÔªºÍÂß¼µ¥ÔªÒ²Ô½¶à¡£ÔÚOFDMϵͳµÄʵ¼ÊÓ¦ÓÃÖУ¬¿ÉÒÔ¸ù¾Ýʵ¼ÊÇé¿öÕÛÖÔÑ¡ÔñFFTÄ£¿éµÄ¾«¶ÈºÍ×ÊÔ´¡£
±¾ÎÄËùÉè¼ÆµÄFFTÄ£¿éµÄÊäÈë¡¢Êä³öºÍÐýתÒò×ÓΪ8±ÈÌØÊý¾Ý£¬²ÉÓÃÁË1¿é(°´Êµ¡¢Ð鲿·Ö¿ªËãÊÇ2¿é)Ë«¿ÚRAMºÍ»ù2µ¥µûÐÎÁ÷Ë®ÔËËãµÄ½á¹¹£¬´ïµ½ÁËijЩOFDMϵͳ¶ÔFFTÄ£¿éµÄ¾«¶ÈºÍ×ÊÔ´µÄÒªÇó£¬ÎªOFDMϵͳµÄASICµÄ¿ª·¢ÌṩÁ˺ܺõÄÒÀ¾Ý¡£
°æȨÉêÃ÷
±¾ÎIJ¿·ÖÄÚÈÝ£¬°üÀ¨ÎÄ×Ö¡¢Í¼Æ¬¡¢ÒÔ¼°Éè¼ÆµÈÔÚÍøÉÏËѼ¯ÕûÀí¡£°æȨΪÅ˺êÁÁ¸öÈËËùÓÐ
This article includes some parts, including text, pictures, and design. Copyright is Pan Hongliang's personal ownership.
Óû§¿É½«±¾ÎĵÄÄÚÈÝ»ò·þÎñÓÃÓÚ¸öÈËѧϰ¡¢Ñо¿»òÐÀÉÍ£¬ÒÔ¼°ÆäËû·ÇÉÌÒµÐÔ»ò·ÇÓ¯ÀûÐÔÓÃ;£¬µ«Í¬Ê±Ó¦×ñÊØÖø×÷Ȩ·¨¼°ÆäËûÏà¹Ø·¨ÂɵĹ涨£¬²»µÃÇÖ·¸±¾ÍøÕ¾¼°Ïà¹ØȨÀûÈ˵ĺϷ¨È¨Àû¡£³ý´ËÒÔÍ⣬½«±¾ÎÄÈκÎÄÚÈÝ»ò·þÎñÓÃÓÚÆäËûÓÃ;ʱ£¬ÐëÕ÷µÃ±¾È˼°Ïà¹ØȨÀûÈ˵ÄÊéÃæÐí¿É£¬²¢Ö§¸¶±¨³ê¡£
Users may use the contents or services of this article for personal study, research or appreciation, and other non-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.
FPGAOFDMϵͳÉè¼Æ·½°¸ÓëʵÏÖ



