FPGA ´ð±çÂÛÎÄ - ͼÎÄ

µÚ¶þÕ FPGA ¹¤×÷Ô­Àí

ͨ³£ÔÚÆ÷¼þÖÐÒÔÌØÊâÐÐÁÐÄ£¿éµÄÐÎʽ½øÐÐÅÅÁС£´æ´¢Æ÷Ä£¿é¾ÍÊÇÌØÊâµÄרÓÃÄ£¿é£¬¿ÉÒÔÅäÖÃΪ²»Í¬ÀàÐ͵Ĵ洢Æ÷¡£

FPGA´æ´¢Æ÷Ä£¿é¿ÉÒÔÅäÖóɵ¥¶Ë¿Ú»òÕßË«¶Ë¿ÚRAM£¬»òÕ߿ɱà³ÌROM£¬»¹¿ÉÒÔÓÃ×öÒÆÎ»¼Ä´æÆ÷»òÕßFIFO»º³å£¬ÒÔÌæ´úLABÂß¼­¡£ÓÉÓÚFPGA´æ´¢Æ÷Ä£¿éºÍÆ÷¼þÖÐµÄÆäËû½á¹¹Ò»Ñù¿ÉÒÔ½øÐбà³Ì£¬Òò´Ë£¬ÉϵçʱÄܹ»ÒÔÈÎÒâ´æ´¢Æ÷ÄÚÈÝ¶ÔÆä½øÐгõʼ»¯¡£¿ÉÒÔ³õʼ»¯ÎªÈÎÒâ´æ´¢Æ÷ģʽ£¬²¢½øÐвâÊÔ£¬ËùÒÔ£¬Õâ¶ÔÉè¼Æµ÷ÊԷdz£ÓÐÓá£

5. ǶÈëʽ³Ë·¨Æ÷

ÏÖ´úFPGAÆ÷¼þÖÐÁíÒ»ÀàרÓÃ×ÊÔ´Ä£¿éÊÇǶÈëʽ³Ë·¨Æ÷¡£Ç¶Èëʽ³Ë·¨Æ÷ÊǸßÐÔÄÜÂß¼­Ä£¿é£¬Äܹ»Íê³É³Ë·¨¡¢¼Ó·¨ºÍÀÛ¼Ó²Ù×÷¡£ËüÃÇ¿ÉÒÔÌæ´úLUTÂß¼­À´Ìá¸ßÉè¼ÆÖеÄËãÊõÐÔÄÜ¡£

Õâ¶ÔDSPÉè¼Æ·Ç³£ÓÐÓá£ÕâЩI/O½á¹¹Ö§³Ö¸ßËÙЭÒ飬´«ËÍËÙÂʴﵽÿÃë°ÙÕ×λÉõÖÁǧÕ×λ¡£½Ï¸ßµÄ´«ËÍËÙÂÊÒ»°ãÓÃÓÚͨÐźÍÍøÂçÉ豸ÖС£

6. ʱÖÓ

ËùÓÐFPGAÆ÷¼þ¶¼º¬ÓÐרÓÃʱÖÓÊäÈëÒý½Å¡£ÕâЩÒý½Å½ÓÊÕʱÖÓÐźţ¬Ö±½ÓÁ¬½ÓÖÁоƬÖÐµÄÆäËûʱÖÓ¿ØÖƽṹ¡£ÆäËûÒý½Å¿ÉÒÔÓÃ×öʱÖÓÒý½Å£¬µ«ÐźÅÐèҪͨ¹ýÆäËûÂß¼­½á¹¹¡£µ±²»ÓÃ×öʱÖÓʱ£¬Ê±ÖÓÊäÈëÒý½Å¿ÉÒÔÓÃ×ö±ê×¼I/O¡£Ê±ÖÓÊäÈëÒý½ÅÒ»°ãÀ¡ÈëÆ÷¼þÖеÄËøÏà»·PLL¡£

2.1.3 FPGAµÄÉè¼ÆÁ÷³Ì

FPGAÉè¼Æ·½·¨¿ÉÒÔ×ܽáΪһ¸ö¼òµ¥µÄÉè¼ÆÁ÷³Ì£¬AlteraµÄQuartus¢òÈí¼þÊÇÈ«¼¯³É¿ª·¢¹¤¾ß£¬Íêȫ֧³ÖÕâÒ»Éè¼ÆÁ÷³Ì¡£¾ßÌå²½ÖèÈçÏ¡£

(1)½øÐÐÔ´ÎļþµÄ±à¼­ºÍ±àÒë¡£Ê×ÏÈÐèÒª½«Éè¼ÆË¼Â·ÓÃÎı¾·½Ê½»òͼÐη½Ê½±í´ï³öÀ´£¬½øÐÐÅÅ´í±àÒ룬Ϊ½øÒ»²½µÄÂß¼­×ÛºÏ×ö×¼±¸¡£³£ÓõÄÔ´³ÌÐòÊäÈ뷽ʽÓÐÔ­ÀíͼÊäÈ뷽ʽºÍÎı¾ÊäÈ뷽ʽ¡£

(2)½øÐÐÂß¼­×ۺϺÍÓÅ»¯¡£½«Ô´Îļþ¾­¹ýһϵÁеIJÙ×÷£¬·Ö½â³ÉһϵÁеÄÂß¼­µç·¼°¶ÔÓ¦µÄ¹ØÏµ£¬×îÖÕ»ñµÃÃż¶µç·ÉõÖÁ¸üµ×²ãµÄµç·ÃèÊöÎļþ£¬¼´Éú³ÉÓëFPGA»ù±¾½á¹¹Ïà¶ÔÓ¦µÄÍø±íÎļþ¡£

(3)½øÐÐÄ¿±êÆ÷¼þµÄ²¼Ïß/ÊÊÅä¡£ÔÚÑ¡ÓõÄÄ¿±êÆ÷¼þÖн¨Á¢ÆðÓëÍø±íÎļþ·ûºÏµÄ»ù±¾Âß¼­µç·µÄ¶ÔÓ¦¹ØÏµ¡£

(4)Ä¿±êÆ÷¼þµÄ±à³ÌÏÂÔØ¡£Èç¹û±àÒë¡¢×ۺϡ¢²¼Ïß/ÊÊÅäºÍÐÐΪ·ÂÕæ¡¢¹¦ÄÜ·ÂÕæ¡¢Ê±Ðò·ÂÕæµÈ¹ý³Ì¶¼Ã»Óз¢ÏÖÎÊÌ⣬¼´Âú×ãÔ­Éè¼ÆµÄÒªÇó£¬Ôò¿ÉÒÔ½«²¼Ïß/ÊÊÅäÆ÷²úÉúµÄÅäÖÃ/ÏÂÔØÎļþÏÂÔØµçÀÂÔØÈëÄ¿±êоƬÖС£

- 9 -

µÚ¶þÕ FPGA ¹¤×÷Ô­Àí

(5)Ó²¼þ·ÂÕæ£¯Ó²¼þ²âÊÔ¡£½«ÏÂÔØºÃ³ÌÐòµÄFPGA·ÅÔÚ¿ª·¢°åÉϽøÐвâÊÔ£¬ÒÔÑéÖ¤Éè¼Æ¡£

ÍêÕûµÄFPGAÉè¼ÆÁ÷³ÌÈçͼ2.4Ëùʾ[12][13]¡£

ͼ2.4 ÍêÕûµÄFPGAÉè¼ÆÁ÷³Ì

- 10 -

µÚ¶þÕ FPGA ¹¤×÷Ô­Àí

2.2 FPGAʵÏÖDDSµÄ·½·¨

Ŀǰ£¬ÓÃFPGAÀ´ÊµÏÖDDSÓÐÁ½ÖÖ·½·¨[14]£º»ùÓÚIIRÂ˲¨Æ÷µÄʵÏÖ·½·¨¡¢»ùÓÚ²éÕÒ±í(LUT)µÄʵÏÖ·½·¨¡£ÆäÖУ¬²ÉÓÃLUTµÄ·½·¨½ÏΪͨÓã¬ÔÚFPGAÉè¼ÆÖÐÊǽÏΪÖ÷Á÷µÄʵÏÖ;¾¶£¬ÕâÔµÓÚFPGAоƬÖж¼»áÓзḻµÄLUT×ÊÔ´¡£

2.2.1 »ùÓÚIIRÂ˲¨Æ÷µÄDDS

ÀûÓÃIIRÂ˲¨Æ÷²úÉúÕýÏÒ²¨Èçͼ2.5Ëùʾ£¬Í¼ÖÐIIRÂ˲¨Æ÷ÊÇÒ»¸öÈ«¼«µãÂ˲¨Æ÷¡£

ͼ2.5 ÀûÓÃIIRÂ˲¨Æ÷²úÉúÕýÏÒ²¨

¸ÃÂ˲¨Æ÷Êä³öÓëÊäÈëÖ®¼äµÄ¹ØÏµ¿É±íʾΪ£º

y(n)?x(n)?by(n?1)?y(n?2) £¨2-1£©

ÔÚzÓò¿É±íʾΪ£º

Y(z)?X(z)?bz?1Y(z)?z?2Y(z) £¨2-2£©

´Ó¶øÆä´«µÝº¯Êý¿É±íʾΪ£º

Y(z)111H(z)????X(z)1?bz?1?z?2(1?p1z?1)(1?p2z?1)1?(p1?p2)?p1p2z?2£¨2-3£©

ÉÏʽÖУ¬p1ºÍp2ÊǸÃÂ˲¨Æ÷µÄ¼«µã£¬ÇÒÂú×ãb?p1?p2£¬p1p2?1 ¡£¾­¹ý¼ÆË㣬¿ÉÒÔÖªµÀ£º

p1,2?b?b2?4b?j4?b2?22 £¨2-4£©

ÒòΪbÊÇʵÊý£¬ËùÒÔp1ºÍp2ÊǸ´¹²éÉÏʽ¿ÉÒÔ±äΪ£º

- 11 -

µÚ¶þÕ FPGA ¹¤×÷Ô­Àí

p1,2?e

?jarctan4?b2b £¨2-5£©

ÏÔÈ»£¬Á½¸ö¼«µã¶¼ÊÇ1£¬¶øÇÒ±ØÈ»ÂäÔÚµ¥Î»Ô°ÉÏ¡£´ÓƵÂʽǶÈÀ´ÃèÊö¼«µãÊÇ£º

?jp1,2?e2?ffs £¨2-6£©

¶Ô±Èʽ£¨2-5£©ºÍʽ£¨2-6£©£¬¿ÉÒԵóö£º

2?f4?b2?arctan £¨2-7£© fsbÉÏÃæ¶þʽÖУ¬fsÊdzéÑùƵÂÊ¡£

4?b2?? £¬Òò´Ëb?2 ¡£¼ÙÉè f = fs / 8 ,´úÈëʽ£¨2-7£©ÖУ¬¿ÉÒԵóöarctanb4´Ëʱ£¬Í¼2.5¶ÔÓ¦µÄIIRÂ˲¨Æ÷µÄ·ù¶ÈƵÆ×Èçͼ2.6Ëùʾ£¬ËüµÄ³å¼¤ÏìÓ¦Èçͼ2.7

Ëùʾ¡£

ͼ2.6 b?2ʱIIRÂ˲¨Æ÷µÄ·ù¶ÈƵÆ×

- 12 -

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)