ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2026/7/3 6:16:21ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£
ÁúÔ´ÆÚ¿¯Íø http://www.qikan.com.cn
»ùÓÚFPGAµÄFIRÊý×ÖÂ˲¨Æ÷Éè¼ÆÓëʵÏÖ
×÷Õߣºµ¥Îľü ÖÜÑ©´¿ ÀîÎÄ»ª
À´Ô´£º¡¶ÏÖ´úµç×Ó¼¼Êõ¡·2013ÄêµÚ14ÆÚ
ÕªÒª£º ¼òÒª½éÉÜÁËFIRÊý×ÖÂ˲¨Æ÷µÄ½á¹¹ÌصãºÍ»ù±¾ÔÀí£¬Ìá³ö»ùÓÚFPGAºÍDSP BuilderµÄFIRÊý×ÖÂ˲¨Æ÷µÄ»ù±¾Éè¼ÆÁ÷³ÌºÍʵÏÖ·½°¸¡£ÔÚMatlab/Simulink»·¾³Ï£¬²ÉÓÃDSP BuilderÄ£¿é´î½¨FIRÄ£ÐÍ£¬¸ù¾ÝFDATool¹¤¾ß¶ÔFIRÂ˲¨Æ÷½øÐÐÁËÉè¼Æ£¬È»ºó½øÐÐϵͳ¼¶·ÂÕæºÍModelSim¹¦ÄÜ·ÂÕæ£¬Æä·ÂÕæ½á¹û±íÃ÷ÆäÊý×ÖÂ˲¨Æ÷µÄÂ˲¨Ð§¹ûÁ¼ºÃ¡£Í¨¹ý
SignalCompiler°ÑÄ£ÐÍת»»³ÉVHDLÓïÑÔ¼ÓÈëµ½FPGAµÄÓ²¼þÉè¼ÆÖУ¬´ÓQuartus¢òÈí¼þÖеÄÐéÄâÂß¼·ÖÎö¹¤¾ßSignalTap¢òÖеõ½Êý×ÖÂ˲¨Æ÷ʵʱµÄ½á¹û²¨ÐÎͼ£¬½á¹û·ûºÏÔ¤ÆÚ¡£ ¹Ø¼ü´Ê£º FPGA£» DSP Builder£» FIRÊý×ÖÂ˲¨Æ÷£» ModelSim¹¦ÄÜ·ÂÕæ
ÖÐͼ·ÖÀàºÅ£º TN911?34 ÎÄÏ×±êʶÂ룺 A ÎÄÕ±àºÅ£º 1004?373X£¨2013£©14?0123?04 Design and implementation of FIR digital filter based on FPGA SHAN Wen?jun£¬ ZHOU Xue?chun£¬ LI Wen?hua £¨China Flight Test Establishment£¬ Xi¡¯an 710089£¬ China£©
Abstract£º The structure feature and the basic principle of FIR digital filter is introduced briefly. The basic design process and implementation scheme of the FIR digital filter based on FPGA and DSP Builder is proposed in this paper. FIR model is structured with DSP Builder module in the Matlab/Simulink environment. The FIR digital filter is designed according to the FDATool. The system level simulation and ModelSim function simulation were completed. The simulation results show that the filter has excellent effect. The model is converted to VHDL language through
SingalCompiler and added to FPGA hardware design. The real?time waveform graph of the FIR digital filter was received by the virtual logic analysis tool SignalTap¢ò in Quartus¢ò. The results conform to the expected requirement.
Keywords£º FPGA£» DSP Builder£» FIR digital filter£» ModelSim function simulation ÔÚÐÅÏ¢ÐźŴ¦Àí¹ý³ÌÖУ¬Êý×ÖÂ˲¨Æ÷ÊÇÐźŴ¦ÀíÖÐʹÓÃ×î¹ã·ºµÄÒ»ÖÖ·½·¨¡£Í¨¹ýÂ˲¨ÔËË㣬½«Ò»×éÊäÈëÊý¾ÝÐòÁÐת±äΪÁíÒ»×éÊä³öÊý¾ÝÐòÁУ¬´Ó¶øÊµÏÖʱÓò»òƵÓòÖÐÐźÅÊôÐԵĸıä[1]¡£³£ÓõÄÊý×ÖÂ˲¨Æ÷¿É·ÖΪÓÐÏÞÂö³åÏìÓ¦£¨FIR£©Â˲¨Æ÷ºÍÎÞÏÞÂö³åÏìÓ¦£¨IIR£©Â˲¨Æ÷Á½ÖÖ¡£ÆäÖУ¬FIRÊý×ÖÂ˲¨Æ÷¾ßÓÐÑϸñµÄÏßÐÔÏàλ[2]£¬¶øÇҷǵݹé½á¹¹Ò²±£Ö¤ÁËÔËËãµÄÎȶ¨ÐÔ¡£ÔÚʵʱÐÔÒªÇó±È½Ï¸ßµÄÓ¦Óó¡ºÏ£¬²ÉÓÿɱà³ÌоƬFPGA¼ÓÒÔʵÏÖ£¬Ïà±ÈÓÚDSPоƬ»òרÓÃоƬµÄʵÏÖ·½·¨£¬¾ßÓиßËÙ¡¢¸ß¾«¶È¡¢¸ßÁé»îÐÔµÄÓŵã[3]¡£±¾ÎÄÔÚ²ÉÈ¡ÁËÒ»ÖÖ»ùÓÚFPGAºÍDSP BuilderµÄ·½·¨Éè¼ÆFIRÊý×ÖÂ˲¨Æ÷ʱ£¬²ÉÓÃÁ˲ã´Î»¯¡¢Ä£¿é»¯µÄÉè¼ÆË¼Ï룬×ñÑDSP
ÁúÔ´ÆÚ¿¯Íø http://www.qikan.com.cn
BuilderµÄÉè¼Æ¿ª·¢Á÷³Ì£¬ÔÚMatlab/SimulinkÖн¨Á¢Ä£ÐͲ¢½øÐÐϵͳ¼¶·ÂÕæ£¬ÔÙ½øÐÐVerilogÓïÑÔת»»£¬ModelSim·ÂÕæÑéÖ¤ÎÞÎóºóʵÏÖÁËFIRÊý×ÖÂ˲¨Æ÷µÄʵʱ²âÊÔ¡£ 1 FIRÊý×ÖÂ˲¨Æ÷µÄ»ù±¾ÔÀí¼°½á¹¹
¶ÔÓÚÒ»¸öFIRÂ˲¨Æ÷ϵͳ£¬ËüµÄ³å»÷ÏìÓ¦×ÜÊÇÓÐÏÞ³¤µÄ£¬Æäϵͳº¯Êý¿ÉÒÔ¼ÇΪ£º £¨1£©
¸ÃÊýѧ±í´ïʽ¿ÉÓòî·Ö·½³ÌÀ´±íʾ£º £¨2£©
ʽÖУºÊÇÊäÈë²ÉÑùÐòÁУ»ÊÇÂ˲¨Æ÷ϵÊý£»ÊÇÂ˲¨Æ÷½×Êý£»±íʾÂ˲¨Æ÷µÄÊä³öÐòÁС£ ͼ1Ϊ½×FIRÊý×ÖÂ˲¨Æ÷µÄ½á¹¹¿òͼ¡£ 2 FIRÊý×ÖÂ˲¨Æ÷µÄÉè¼ÆÁ÷³Ì
¸ÃÉè¼ÆÁ÷³ÌÖ÷񻃾¼°µ½Matlab/Simulink¡¢DSP BuilderºÍQuartus ¢òµÈ¹¤¾ßÈí¼þµÄ¿ª·¢Éè¼Æ¡£Õû¸öÉè¼ÆÁ÷³Ì£¬°üÀ¨´ÓϵͳÃèÊöÖ±ÖÁÓ²¼þʵÏÖ£¬¿ÉÒÔÔÚÒ»¸öÍêÕûµÄÉè¼Æ»·¾³ÖÐÍê³É[4]£¬Èçͼ2Ëùʾ¡£
ͼ1 FIRÊý×ÖÂ˲¨Æ÷µÄ½á¹¹¿òͼ
ͼ2 DSP BuilderÉè¼ÆÁ÷³Ìͼ
£¨1£©Matlab/SimulinkÖÐÉè¼ÆÊäÈ룬¼´ÔÚMatlabµÄSimulink»·¾³Öн¨Á¢Ò»¸öÀ©Õ¹ÃûΪmdlµÄÄ£ÐÍÎļþ£¬ÓÃͼÐη½Ê½µ÷ÓÃAltera DSP BuilderºÍÆäËûSimulink¿âÖеÄͼÐÎÄ£¿é£¨Block£©£¬¹¹³Éϵͳ¼¶»òËã·¨¼¶Éè¼Æ¿òͼ£¨»ò³ÆSimulinkÉè¼ÆÄ£ÐÍ£©¡£
£¨2£©ÀûÓÃSimulinkµÄͼÐλ¯·ÂÕæ¡¢·ÖÎö¹¦ÄÜ£¬·ÖÎö´ËÉè¼ÆÄ£Ð͵ÄÕýÈ·ÐÔ£¬Íê³ÉÄ£ÐÍ·ÂÕæ£¬Ò²½Ðϵͳ¼¶·ÂÕæ¡£
£¨3£©DSP BuilderÉè¼ÆÊµÏֵĹؼüÒ»²½£¬Í¨¹ýSignalCompiler°ÑSimulinkµÄÄ£ÐÍÎļþת»¯³ÉͨÓõÄÓ²¼þÃèÊöÓïÑÔVerilogÎļþ¡£
ÁúÔ´ÆÚ¿¯Íø http://www.qikan.com.cn
£¨4£©×ª»»ºÃµÄVerilogÔ´´úÂëÓÃModelSimÈí¼þ½øÐй¦ÄÜ·ÂÕæ£¬ÑéÖ¤VerilogÎļþµÄÕýÈ·ÐÔ¡£½ÓÏÂÀ´µÄ¼¸¸ö²½ÖèÊǶÔÒÔÉÏÉè¼Æ²úÉúµÄVerilogµÄRTL´úÂëºÍ·ÂÕæÎļþÔÚQuartus ¢ò¹¤¾ßÈí¼þÖнøÐÐ×ۺϡ¢±àÒëÊÊÅ䣬Éú³ÉÀ©Õ¹ÃûΪ.sofµÄÎļþ¼ÓÔØµ½FPGAÓ²¼þϵͳÖС£ 3 FIRÊý×ÖÂ˲¨Æ÷µÄÏêϸÉè¼Æ
3.1 FIRÊý×ÖÂ˲¨Æ÷Ä£¿éÉè¼ÆÓëϵͳ¼¶·ÂÕæ
¸ù¾ÝFIRÊý×ÖÂ˲¨Æ÷µÄÔÀí£¬ÔÚSimulink»·¾³Ï´16½×µÄFIRÊý×ÖÂ˲¨Æ÷½á¹¹£¬Èçͼ3Ëùʾ¡£
ÔÚÄ£Ð͵Ĵ¹ý³ÌÖУ¬Ê¹ÓÃÁËÁ½¸ö8λµÄShift TapsÒÆÎ»¼Ä´æÆ÷Ä£¿é¶ÔÊäÈëÐźŽøÐзֽ⣬Ȼºó¸ù¾ÝÊý×ÖÂ˲¨Æ÷µÄÔÀí½øÐÐËã·¨¼ÆËã¡£
ͼ3 FIRÊý×ÖÂ˲¨Æ÷µÄSimulink½á¹¹Í¼
Ä£ÐʹºÃÖ®ºó£¬ÐèҪȷ¶¨16½×FIRÊý×ÖÂ˲¨Æ÷µÄϵÊý£¬ÔÚÕâʹÓÃMatlabÖеÄFDAToolÂ˲¨Æ÷Éè¼Æ¹¤¾ßÀ´È·¶¨¡£È·¶¨ºÃÂ˲¨Æ÷µÄÖ¸±ê£º £¨1£©Éè¼ÆÒ»¸ö16½×µÄFIR Â˲¨Æ÷£» £¨2£©µÍͨÂ˲¨Æ÷£»
£¨3£©²ÉÑùƵÂÊfsΪ16 384 Hz£¬½ØÆµµãƵÂÊfsΪ533 Hz£» £¨4£©ÊäÈëÐòÁÐλ¿íΪ16λ¡£
ÔÚÉè¼ÆÂ˲¨Æ÷½çÃæÖУ¬Èçͼ4Ëùʾ£¬½øÐÐÏÂÁÐÑ¡Ôñ£º £¨1£©Â˲¨Æ÷ÀàÐÍ£¨Filter Type£©ÎªµÍͨ£¨Lowpass£©£»
£¨2£©Éè¼Æ·½·¨£¨Design Method£©ÎªFIR£¬²ÉÓô°¿Ú·¨£¨Window£©£»
£¨3£©Â˲¨Æ÷½×Êý£¨Filter Order£©¶¨ÖÆÎª15£¨ÉèÖÃΪ15½×¶ø²»ÊÇ16½×£¬ÊÇÓÉÓÚÉè¼ÆµÄ16½×FIRÂ˲¨Æ÷µÄ³£ÏµÊýÏ£»
£¨4£©Â˲¨Æ÷´°¿ÚÀàÐÍΪKaiser£¬BetaΪ0.5¡£
ËùÓеÄÑ¡ÏîÈ·¶¨ºÃºó£¬ÔÚFDAToolÂ˲¨Æ÷Éè¼Æ½çÃæÖеã»÷¡°Design Filter¡±£¬Matlab¾Í»á¼ÆËãÂ˲¨Æ÷ϵÊý²¢×÷Ïà¹Ø·ÖÎö¡£Í¼5ËùʾΪÂ˲¨Æ÷µÄ·ùƵÏìÓ¦£¬Í¼6ËùʾΪÂ˲¨Æ÷µÄ½×Ô¾ÏìÓ¦¡£