µ±³¡¿É±àÃÅÕóÁÐFPGA£¨Field Programmable GateArray£©¹éÊôÓÚASICÉÌÆ·£¬¸ù¾ÝÈí¼þ±à³Ì¶Ô×ÜÌåÄ¿±êÔªÆ÷¼þµÄ¹¹ÔìºÍ¹¤×÷·½Ê½¿ªÕ¹ÖØÐ¹¹½¨£¬ÄÜËæÊ±ËæµØ¶ÔÉè¼Æ·½°¸¿ªÕ¹µ÷½Ú£¬¾ß±¸´¦ÀíËٶȸߡ¢¹¹ÔìÁé±ã¡¢¿ª·¢Éè¼ÆÖÜÆÚʱ¼ä¶Ì¡¢Ñ¸ËÙÎȶ¨ÐÔ¸ßÌØÐÔ£¬Êý×ÖÉè¼ÆÖ®ÖÐѸËÙ·¢Õ¹Ç÷ÊÆ¡£
ÎÄÖÐÏêϸ½éÉÜÁËÒ»ÖÖÔËÓÃFPGAÍê³ÉDC¡«100 MHzµÄÈ«×Ô¶¯×ª»»²âÁ¿·¶Î§Êý¾ÝµÈ¾«ÃÜ¶ÈÆµÂʼƵÄÍê³É·½Ê½£¬²¢µÃ³öÍê³É±àÂ롣ȫ²¿²Ù×÷ϵͳÔÚÑÐÖÆ¿ª·¢µÄCPLD/FPGAÊÔÑ鿪·¢Éè¼ÆÏµÍ³Èí¼þÉϵ÷½Ú¸ù¾Ý¡£
1 µÈ¾«ÃÜ¶È²âÆµ»ù±¾ÔÀí
¹¤×÷ƵÂʵľ«È·²âÁ¿·½Ê½¹Ø¼ü·Ö³É2ÖÖ·½Ê½£º
£¨1£©Á¢¼´²âÁ¿·½·¨£¬¼´ÔÚÒ»¶¨µÄË®ÀûÕ¢ÃÅ•r¼äÄÚ¾«È·²âÁ¿±»²âѶºÅµÄµ¥Âö³åÊýÁ¿¡£
£¨2£©µÈÐ§Ìæ´ú·¨·¨£¬±ÈÈçÖÜÆÚʱ¼ä²âƵ·¨¡¢V-Fת»»·¨µÈ¡£ ¼ä½ÓÐÔ²âÆµ·¨½ö¿ÉÓþ«È·²âÁ¿µÍƵÂÊÊý¾ÝÐźš£
¸ù¾Ý´«Í³Ê½²âƵ»ù±¾ÔÀíµÄƵÂʼƵIJâÁ¿¾«¶È½«Ëæ±»²âÊý¾ÝÐźŹ¤×÷ƵÂʵĽµµÍ¶ø¼õÉÙ£¬ÔÚºÃÓÃÖÐÓкܴóµÄ¾ÖÏÞ£¬¶øµÈ¾«ÃÜ¶ÈÆµÂʼƲ»½ö¾ß±¸½Ï¸ßµÄ²âÁ¿¾«¶È£¬²¢ÇÒÔÚÈ«²¿¹¤×÷ƵÂʵØÇøÄÜά³ÖÔÈËÙÔ˶¯µÄ¼ì²â¾«Ãܶȡ£
±¾Éè¼Æ·½°¸¹¤×÷ƵÂʲâÁ¿·¨µÄ¹Ø¼ü¾«È·²âÁ¿²Ù×Ý¿ò¼ÜͼÈçÏÂͼ1ËùÏÔʾ¡£Í¼1ÖÐÔ¤Éè×Ô¶¯ÃÅÊý¾ÝÐźÅGATEÊÇÓɵ¥Æ¬»úÉè¼Æ´«³ö£¬GATEµÄ•r¼ä×Ü¿í¶Ô²âƵ¾«ÃܶÈΣº¦½ÏÉÙ£¬¿ÉÒÔÔںܴóµÄ·¶³ëÄÚÌôÑ¡£¬Ö»ÐèFPGAÖÐ32 b¼ÆÊýÔÚ¼Æ100 MÊý¾ÝÐźŲ»ÍâÒç¶¼¿ÉÒÔ£¬ÒÀ¾Ý»ù´¡ÀíÂÛ²âËãGATEµÄ•r¼ä×Ü¿íTc¿ÉÒÔ³¬¹ý42.94 s£¬¿ÉÊÇÒòΪµ¥Æ¬»úÉè¼ÆµÄÊý¾Ý´¦Àí·½·¨¹¤×÷ÄÜÁ¦ÏÞ¶¨£¬¾ßÌåµÄ•r¼ä×Ü¿í½ÏÉÙ£¬Ò»°ã¿ÉÔÚ10¡«0.1 s¼äÌôÑ¡£¬¼´ÔÚ¸ßÆµÂʶÎʱ£¬Ë®ÀûÕ¢ÃÅ•r¼ä½Ï¶Ì;µÍƵÂÊʱˮÀûÕ¢ÃÅ•r¼ä½Ï³¤¡£ÄÇÑùË®ÀûÕ¢ÃÅ•r¼ä×Ü¿íTc¸ù¾Ý±»²â¹¤×÷ƵÂʵijߴçÈ«×Ô¶¯µ÷½Ú²âƵ£¬½ø¶øÍê³É²âÁ¿·¶Î§µÄÈ«×Ô¶¯±ä»»£¬À©ÕÅÁË²âÆµµÄ·Ö¶ÈÖµ·¶³ë;Íê³ÉÁËÈ«·¶³ëµÈ¾«ÃܶȾ«È·²âÁ¿£¬½µµÍÁËµÍÆµÂʾ«È·²âÁ¿µÄÆ«²î¡£
ͼ1ÖÐBZ_CounterºÍDC_CounterÊÇ2¸ö¿É¿ØÐÔµÄ32 b¿ìËÙ¼ÆÊý£¨100 MHz£©£¬BZ_ENAºÍDC_ENA·Ö±ðÊÇËýÃǵļÇÊýÈÝÐíÊý¾ÝÐźŶˣ¬¸ßµçƽºÏÀí¡£±ê×¼¹¤×÷ƵÂÊÊý¾ÝÐźŴÓBZ_CounterµÄÖÓ±í¼üÈë¶ËBZ_CLK¼üÈ룬ÉèÆäËÙÂÊΪFb;±»²âÊý¾ÝÐÅºÅ¾Ç°Ãæ±ä´ó¡¢ÏÞ·ùºÍÕûÐÎÃÀÈݺ󣬴ÓÓëBZ_CounterÀàËÆµÄ32 b¼ÆÊýDC_CounterµÄÖÓ±í¼üÈë¶ËDC_CLK¼üÈ룬¾«È·²âÁ¿¹¤×÷ƵÂÊΪFx¡£
¾«È·²âÁ¿Öð½¥£¬ÓÅÑ¡µ¥Æ¬»úÉè¼Æ´«³öÒ»¸öÇåÁãÊý¾ÝÐźÅCLR£¬Ê¹2¸ö32 bµÄ¼ÆÊýºÍD´¥·¢Æ÷ÔÀíÖÃ0£¬Ëæºóµ¥Æ¬»úÉè¼ÆÔÙ´«³öÈÝÐí²âƵָÁ¼´Ê¹Ô¤Éè×Ô¶¯ÃÅÊý¾ÝÐźÅGATEΪ¸ßµçƽ£¬ÕâʱD´¥·¢Æ÷ÒªÒ»Ö±Ö±µ½±»²âѶºÅµÄÉÏÉýÑØ¸ù¾Ýʱ£¬Q¶Ë²Å±»ÖÃ1£¬¼´Ê¹BZ_ENAºÍDC_ENAÓë´ËͬʱΪ1£¬½«ÔËÐмÆË㷽ʽBZ_CounterºÍDC_Counter£¬ÏµÍ³Èí¼þ½øµ½²âËãÈÝÐíÖÜÆÚʱ¼ä¡£Õâʱ£¬¼ÆÊýBZ_CounterºÍDC_Counter¸÷×Ô¶Ô±»²âÊý¾ÝÐźź͹淶¹¤×÷ƵÂÊÊý¾ÝÐźÅÓë´Ëͬʱ¼ÇÊý¡£µ±TcÃëÖ®ºó£¬Ô¤Éè×Ô¶¯ÃÅÊý¾ÝÐźű»µ¥Æ¬»úÉè¼ÆÖÃΪµÍµçƵ£¬µ«Õâʱ2¸ö32 bµÄ¼ÆÊýÒÀÈ»›]ÓÐÖÕÖ¹¼ÇÊý£¬Ò»Ö±Ö±µ½½Ó×ŶøÖÁµÄ´ý²âÊý¾ÝÐźŵÄÉÏÉýÑØÀ´ÁÙʱ£¬²Å¸ù¾ÝD´¥·¢Æ÷½«Õâ2¸ö¼ÆË㷽ʽÓë´Ëͬʱ¹Øµô¡£ÓÉͼ2Ò»ÑùµÄ²âƵ״̬ͼÓɴ˿ɼû£¬GATEµÄ¼ä¾àºÍ²úÉúµÄʱ¼ä¶Î¶¼²»¿ÉÄÜΣº¦¼ÇÊýÒ²¾ÍÄÜÊý¾ÝÐźÅÈÝÐí¼ÇÊýµÄÖÜÆÚʱ¼äÒ»Ö±ÕýºÃÏ൱ÓÚ±»²âÊý¾ÝÐźÅXCLKµÄÏêϸÖÜÆÚʱ¼ä£¬ÕâÇ¡ºÃÊDZ£Ö¤XCLKÔÚÒ»Çй¤×÷ƵÂʱê׼϶¼ÄÜά³ÖÔÈËÙÔ˶¯²âÁ¿¾«¶ÈµÄÖØÒª¡£ÓÉÓÚ£¬ÕâʱGATEµÄ×Ü¿íTc¸ü¸Ä¼°ÆäÈÎÒâµÄ·¢Éú•r¼äµ¼ÖÂµÄÆ«²î½Ï¶à½öÓбê×¼ÖÓ±íBCLKÊý¾ÝÐźŵÄÒ»¸öÖ¸ÁîÖÜÆÚ£¬ÒòΪBCLKµÄÐÅÏ¢ÊÇÓɸßÎȶ¨ÐÔµÄ100 MHz½á¾§Õðµ´Æ÷´«³öµÄ£¬Òò´ËÈκÎʱºòµÄ¿Ï¶¨Êý¾ÝÎó²î½öÓÐ1/108 s£¬ÕâÒ²ÊÇϵͳÈí¼þÔì³É¹Ø¼üµÄÆ«²î¡£
½¨ÔÚijһ´ÎÔ¤Éè×Ô¶¯ÃÅ•r¼äTcÖжԱ»²âÊý¾ÝÐźżƱêֵΪNx£¬¶Ô¹æ·¶¹¤×÷ƵÂÊÊý¾ÝÐźŵļƱêֵΪNb£¬ÔòÒÀ¾ÝË®ÀûÕ¢ÃÅ•r¼äÏàͬ£¬¿ÉµÃµ½¹«Ê½¼ÆË㣨1£©£º
2 ƵÂʼƵÄVHDLÉè¼Æ·½°¸
±¾Éè¼Æ·½°¸Ñ¡ÓÃALTERAÆóÒµµÄFPGA¼¯³ÉicEPF10K10£¬¸Ã¼¯³ÉicÒý½Å¼äµÄÑÓ³Ùʱ¼äΪ5 ns£¬¼´¹¤×÷ƵÂÊΪ200 MHz£¬ÔËÓù淶»¯µÄÓ²¼þÅäÖÃÃèÊöÓïÑÔVHDLÓбȽϷḻµÄ»ù±¾Êý¾ÝÀàÐÍ£¬ËûµÄ½á¹¹Ä£ÐÍÊDzã´Î»¯µÄ£¬ÔËÓÃÕâÖַḻ¶à²ÊµÄ»ù±¾Êý¾ÝÀàÐͺͲã´Î»¯µÄ½á¹¹Ä£ÐÍ£¬¶Ô·±ÔÓµÄÊý¾ÝϵͳÈí¼þ¿ªÕ¹Êý×ÖÂß¼²¢ÇÒÓõç×Ó¼ÆËã»úÄ£Äâ·ÂÕæ£¬²»¶ÏÍêÉÆºó¿ªÕ¹È«×Ô¶¯×ÛºÏÐÔת»¯³É·ûºÏ¹æ¶¨µÄ¡¢ÔÚµçÔ´µç·¹¹ÔìÉÏ¿ÉÍê³ÉµÄÊý×ÖÂß¼£¬ÔÙÔÚÏßÏÂÔØµ½¿É±àÂß¼ÐÔÔªÆ÷¼þÖУ¬¾Í¿ÉÒÔ½øÐÐÉè¼Æ·½°¸¡£Ï±ߵóö¸ÃƵÂʼƸù¾ÝEPF10K10µÄVHDLÐðÊöÔ´´úÂ룺
Ä£Äâ·ÂÕæ²¨ÐÍÈçÏÂͼ2ËùÏÔʾ¡£
3 ½á Óï
ÎÄÖÐÔËÓÃALTERAÆóÒµµÄFPGA¼¯³ÉicEPF10K10£¬Ó¦ÓÃVHDL¼ÆËã»úÓïÑÔÉè¼Æ·½°¸µÈ¾«ÃÜ¶ÈÆµÂʼƣ¬µÃ³ö¹Ø¼ü³ÌÐòÁ÷³Ì£¬Í¨¹ýISPEXPERÄ£Äâ·ÂÕæºó£¬ÈÏÖ¤Éè¼Æ·½°¸ÊÇ»ñµÃ³É¹¦µÄ£¬×öµ½Ô¤ÆÚ³É¹û¡£
ºÍ´«Í³»¯µÄƵÂʼƶԱȣ¬FPGAµÄƵÂʼƼòµ¥»¯ÁËÏß·°åµÄÉè¼Æ·½°¸£¬ÌáÉýÁËϵͳ¿ª·¢µÄÍê³ÉÐÔºÍÎȶ¨ÐÔ£¬²âƵ·¶³ë×öµ½100 MHz£¬Íê³ÉÁËÊý¾ÝϵͳÈí¼þÓ²¼þÅäÖõÄAPP»¯£¬ÕâÒ²ÊÇÊý¾ÝÊý×ÖÂß¼µÄз¢Õ¹Ç÷ÊÆ¡£
¸ÃÎÄÕÂÄÚÈÝÌá¸ßÉ¢²¥Ð¼¼ÊõÓ¦ÓÃÐÂÎÅ×ÊѶ£¬ºÜÓпÉÄÜÓÐת½Ø/ÒýÈëÖ®×´¿ö£¬ÈôÓÐÇÖȨÐÐΪÇëÁªÂçɾµô¡£