µÚ¶þÕ 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 -