µÚ¶þÕ FPGA ¹¤×÷ÔÀí
ͼ2.7 b?2ʱIIRÂ˲¨Æ÷µÄ³å¼¤ÏìÓ¦
fsfs?¡£´ÓͼÔÚͼ2.5ÖУ¬¸ù¾ÝÕýÏÒÐÅºÅÆµÆ×ÌØÐÔ£¬Êä³öÐÅºÅµÄÆµÂÊΪ0.25?282.7ÖУ¬¿ÉÒÔÇå³þµØ¿´³öÀ´£¬ÕâʱµÄÊä³öÐźÅÊÇÒ»¸öÕýÏÒ²¨¡£
2.2.2 »ùÓÚ²é±í·¨£¨LUT£©µÄDDS
Ò»¸öµäÐ͵ĻùÓÚ²é±í·¨£¨LUT£©µÄDDSϵͳºËÐIJ¿·ÖÓÉÏàλÀÛ¼ÓÆ÷ºÍ²¨Ðδ洢Æ÷Á½²¿·Ö¹¹³É[15]¡£»ùÓÚ²é±í·¨£¨LUT£©µÄDDSÓ²¼þ½á¹¹Èçͼ2.8Ëùʾ¡£ÔÚͼ2.8ÖУ¬ÏàλÀÛ¼ÓÆ÷µÄλ¿íΪ n bit£¬²½½øÖµÎªK£¬²¨Ðδ洢Æ÷µÄÉî¶ÈNΪ2n£¬¿í¶ÈΪL bit¡£LUTÖÐÒÀÏàλ˳Ðò´æ´¢Ò»¸öÖÜÆÚµÄ²¨ÐÎÊý¾Ý¡£
n n L ͼ2.8 »ùÓÚDDSÓ²¼þ½á¹¹
¼Ù¶¨ÏàλÀÛ¼ÓÆ÷µÄλ¿íΪ4bit£¬ÄÇôLUTÉî¶ÈNΪ16£¬´ËʱÆäÄÚ²¿Ëù´æÊý¾ÝÈç±í2.1Ëùʾ¡£ÕâÖÖ¶ÔÓ¦¹ØÏµÍêÕûµØÌåÏÖÔÚͼ2.9ÖС£
ÏàλÀÛ¼ÓÆ÷ ²¨Ðδ洢Æ÷ - 13 -
µÚ¶þÕ FPGA ¹¤×÷ÔÀí
±í2.1 ÏàλÀÛ¼ÓÆ÷λ¿íΪ4bitʱLUT´æ´¢µÄÊý¾Ý µØÖ· 0000 0001 0011 ? 1111
Êý¾Ý sin(0) sin(2¦Ð/16) sin(2¦Ð¡¤2/16) ? sin(2¦Ð¡¤15/16)
ͼ2.9 ÏàλÀÛ¼ÓÆ÷λ¿íΪ4bitʱLUTµØÖ·Óë´æ´¢Êý¾ÝµÄ¶ÔÓ¦¹ØÏµ
ÀûÓÃMatlab¿ÉÉú³ÉËùÐè´æ´¢µÄÊý¾Ý¡£Ê×Ïȸù¾ÝLUTµÄ¿í¶ÈLÈ·¶¨Á¿»¯Òò×Ó£¬È»ºó¸ù¾ÝLUTµÄÉî¶È²úÉúÒ»¸öÖÜÆÚµÄ²¨ÐÎÊý¾Ý£¬×îºóͨ¹ýfloorº¯ÊýÍê³É¸¡µãµ½¶¨µãÊý¾ÝµÄת»»¡£
ÏàλÀÛ¼ÓÆ÷µÄ²½½øÖµK¾ö¶¨ÁËDDSµÄÊä³öƵÂÊ¡£KÓëLUTµÄÉî¶ÈN¡¢Êä³öƵÂÊ fd ¡¢³éÑùƵÂÊ fs Âú×ãʽ(2.8)ËùʾµÄ¹ØÏµÊ½¡£
fsfd?K? (2-8a)
NK?fdfsN (2-8b)
ÓÉʽ(2-8)¿ÉÖª£¬fs / N ¼´ÎªÆµÂÊ·Ö±æÂÊ¡£¸ù¾Ý³éÑù¶¨Àí£¬¿ÉÒԵóö£¬Êä³öƵÂʵÄ×î´óֵΪ fs / 2 ¡£KÓֿɳÆÎªÆµÂÊ¿ØÖÆ×Ö£¬¸Ä±äK¼´¿É¸Ä±äÊä³öƵÂÊ£¬Èçͼ2.10Ëùʾ¡£
- 14 -
µÚ¶þÕ FPGA ¹¤×÷ÔÀí
ÔÚͼ2.10ÖУ¬×ó°ë²¿·Ö¶ÔÓ¦µÄƵÂÊ¿ØÖÆ×ÖСÓÚÓҰ벿·Ö¶ÔÓ¦µÄƵÂÊ¿ØÖÆ×Ö£¬´Ó¶øµ¼ÖÂÓҰ벿·ÖÏàλÀÛ¼ÓÆ÷Êä³ö²¨ÐνÏΪ¡°¶¸ÇÍ¡±(бÂÊ´ó)£¬LUTÊä³öƵÂʸߡ£ÕâÊÇÒòΪKÔö´ó£¬Ê¹µÃϵͳ¿ÉÒÔÔڽ϶Ìʱ¼äÄÚ¶ÁÍêLUTÖеÄËùÓÐÊý¾Ý(Ò»¸öÖÜÆÚµÄ²¨ÐÎ)¡£
ÏàλÀÛ¼ÓÆ÷Êä³ö²¨ÐÎ ÏàλÀÛ¼ÓÆ÷Êä³ö²¨ÐÎ
LUTÊä³ö²¨ÐÎ LUTÊä³ö²¨ÐÎ
ͼ2.10 ƵÂÊ¿ØÖÆ×ÖK¶ÔÏàλÀÛ¼ÓÆ÷ºÍLUTÊä³ö²¨ÐεÄÓ°Ïì
¸ù¾Ýʽ(2-8)£¬ÔÚLUTÉî¶ÈNΪ256ÇÒ²ÉÑùƵÂÊ fs Ϊ100MHzµÄÇé¿öÏ£¬ÈôÒªÇóÊä³öƵÂÊ fd Ϊ25MHz£¬ÔòƵÂÊ¿ØÖÆ×ÖKΪ64¡£ÓÉÓÚLUTµÄµØÖ·Î»¿íΪ8bit(ÕâÈ¡¾öÓÚLUTµÄÉî¶È)£¬ÄÇô²ÉÓÃ8bit±íʾÕûÐÍÊý¾Ý64ÊÇûÓÐÎÊÌâµÄ¡£µ«ÊÇ£¬Èç¹ûÒªÇóÊä³öƵÂÊΪ24MHz£¬Ôò´ËʱƵÂÊ¿ØÖÆ×ÖKΪ61.44£¬¶ø8bitÖ»¿ÉÓÃÀ´±íʾÊý¾ÝµÄÕûÊý²¿·Ö£¬Èç¹ûÒÔ61½üËÆ£¬ÄÇôÊä³öƵÂʾͱäΪ23.8MHzÁË£¬ÏÔÈ»ÕâÔì³ÉÁËÎó²î¡£Îª´Ë£¬¿É½«ÆµÂÊ¿ØÖÆ×ÖKµÄλ¿íÀ©´ó£¬Ê¹ÆäÓÉÁ½²¿·Ö¼´ÕûÊý²¿·ÖºÍСÊý²¿·Ö¹¹³É¡£ÕâÑùÐγɵÄϸ»¯ÏàλÀÛ¼ÓÆ÷Èçͼ2.11Ëùʾ¡£
n+b D
K n+b n µØÖ·
+
ͼ2.11 ϸ»¯µÄÏàλÀÛ¼ÓÆ÷
ÔÚͼ2.11ÖУ¬ÏàλÀÛ¼ÓÆ÷µÄ²½½øÖµKµÄλ¿íΪ(n+b)bit£¬ÓÉn bitÕûÊý²¿·ÖºÍ b bit
- 15 -
µÚ¶þÕ FPGA ¹¤×÷ÔÀí
СÊý²¿·Ö¹¹³É£¬Êä³öѡȡÆäÖеĸßn bit²¿·Ö¼´ÕûÊý²¿·Ö×÷ΪLUTµÄµØÖ·¡£ÈÔÒÔǰÊöΪÀý£¬¼Ù¶¨´ËʱÏàλÀÛ¼ÓÆ÷µÄ²½½øÖµÎ»¿íΪ12bit£¬ÆäÖУ¬ÕûÊý²¿·ÖΪ8bit£¬Ð¡Êý²¿·ÖΪ4bit£¬´Ó¶ø£¬61.44¿ÉÓÉ61.4375½üËÆ±íʾ£¬Êä³öƵÂʼ´±äΪ23.99902MHz£¬Îó²îÓÐÁËÃ÷ÏԵļõС¡£Ï¸»¯ºóµÄDDSÕûÌå½á¹¹Èçͼ2.12Ëùʾ¡£
K n+b ÏàλÀÛ¼ÓÆ÷ n LUT L
ͼ2.12 ϸ»¯ºóµÄDDSÕûÌå½á¹¹
ÔÚ´ó¶àÊýÓ¦Óó¡ºÏ£¬ÐèÒªÊä³öÕý½»µÄÕý¡¢ÓàÏÒÐźţ¬´Ëʱ¿É²ÉÓÃÒ»¸öË«¶Ë¿ÚROM´æ´¢Èçͼ2.9ËùʾµÄÕýÏÒÊý¾Ý£¬Íâ¼ÓÁ½¸ö¾ßÓв»Í¬ÆðʼµØÖ·µÄÏàλÀÛ¼ÓÆ÷¹²Í¬Íê³É´ËÐèÇó£¬Èçͼ2.13Ëùʾ¡£
µØÖ· sin
ÏàλÀÛ¼ÓÆ÷ £ÛÆðʼµØÖ·¡úsin(¦Ð/2)£Ý ÏàλÀÛ¼ÓÆ÷ £ÛÆðʼµØÖ·¡úsin(0)£Ý LUT µØÖ· cos
ͼ2.13 ²úÉúÕý½»µÄÕý¡¢ÓàÏÒÐźŵÄDDSÕûÌå½á¹¹
Óëͼ2.8Ïà±È£¬Í¼2.13ÖеÄÏàλÀÛ¼ÓÆ÷µÄÆðʼµØÖ·ÓÐËù±ä»¯¡£µÚÒ»¸öÏàλÀÛ¼ÓÆ÷µÄÆðʼµØÖ·±£³Ö²»±äÈÔΪ0£¬¶øµÚ¶þ¸öÏàλÀÛ¼ÓÆ÷µÄÆðʼµØÖ·ÔòÖ¸ÏòÁËsin(¦Ð/2)Ëù¶ÔÓ¦µÄµØÖ·¿Õ¼ä£¬ÆäÄ¿µÄÕýÊÇΪÁ˱£Ö¤Êä³öÓëÕýÏÒÏàÕý½»µÄÓàÏÒÐźš£Í¼2.13ÖÐË«¶Ë¿ÚµÄROMÊÇÖ¸Ò»¸ö´æ´¢¿Õ¼äÁ½¸ö¶ÁµØÖ·¡£ÏÔÈ»£¬´Ë·½°¸Ê¹µÃÕûÌå½á¹¹½ô´Õ£¬ÓÐЧµØ½ÚÊ¡ÁË´æ´¢¿Õ¼ä¡£µ±È»£¬»¹¿ÉÀûÓÃÕýÏÒÐźŵĶԳÆÐÔ½øÒ»²½Ëõ¼õ´æ´¢¿Õ¼ä¡£
±í2.2 Èý¸öÒªËØ¶ÔDDSÐÔÄܼ°Õ¼ÓÃFPGA×ÊÔ´µÄÓ°Ïì ²Î Êý ÏàλÀÛ¼ÓÆ÷ÕûÊý²¿·Ö×Ö³¤n ÏàλÀÛ¼ÓÆ÷СÊý²¿·Ö×Ö³¤b LUTµÄ¿í¶ÈL
¶ÔÐÔÄܵÄÓ°Ïì nÔ½´óƵÂÊ·Ö±æÂÊÔ½¸ß£¬Êä³öƵÂÊÔ½¾«È· bÔ½´óÒâζ×Ų½½øÖµ¿ÉÒÔ¸ü¾«È·µØ±íʾ LÔ½´óÒâζ×ÅÊä³öÐźŷù¶È¸ü¾«È· ¶Ô×ÊÔ´µÄÓ°Ïì nÔ½´óÒâζןü´óµÄLUT£¬ÐèÒªÕ¼Óøü¶àµÄ´æ´¢×ÊÔ´ bÔ½´óÒâζ×ÅÐèÒªÉè¼Æ¸ü¸´ÔÓµÄÏàλÀÛ¼ÓÆ÷ LÔ½´óÒâζ×ÅÐèÒª¸ü´óµÄ´æ´¢¿Õ¼ä - 16 -