Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
FPGAÉè¼ÆÏ¸½ÚºÍʵÏÖ£¨³õѧÕߣ©
 
  16489  次浏览      42
 2019-1-29
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcsdn£¬ÎÄÕÂÖ÷Òª½éÉÜÁËFPGAÊÇʲô£¬FPGAÉè¼ÆÁ÷³ÌÒÔ¼°×î³£¼ûµÄFPGA¼Ü¹¹×é³ÉµÈÏà¹ØÖªÊ¶¡£

Ëæ×ÅFPGAµÄÖÆÔ칤ÒÕ½ø²½ºÍ¼ÆËãÐèÇóµÄ·¢Õ¹£¬Ò»Ð©×ÊÔ´·á¸»¡¢ÐÔÄÜÇ¿´óµÄFPGA±»ÓÃÔÚÔ½À´Ô½¶àµÄǶÈëʽ´¦ÀíÁìÓò¡£Ïà¶ÔÓÚGPU£¬FPGAµÄ´¦ÀíËÙ¶ÈÔÚÏàͬµÄÇé¿öÏ£¬Æä¹¦ºÄ¸üµÍ£¬Ìå»ý¸üС£¬¼ÆËãÃܶȸü´ó£¬¼Û¸ñ¸ü¼ÓÄܱ»ÆÕͨµÄÉÌÒµ¡¢¹¤Òµ³¡ºÏÓ¦Óá£ÔÚ»úÆ÷È˺͹¤Òµ¼ì²âµÈÐèÒª¸ßËÙ²¢ÐеÄÊÓ¾õ´¦ÀíϵͳÁÚÓò£¬FPGA¾ßÓй㷺µÄÓ¦ÓÃǰ¾°¡£

FPGA£¨ÏÖ³¡¿É±à³ÌÃÅÕóÁУ©ÊÇÒ»ÖÖ¼¯³Éµç·£¬ÓÉÓÚÆä¾ßÓÐÖØÅäÖÃÐÔÄÜ£¬¿ª·¢ÈËÔ±¿ÉÒÔ×ÔÐнøÐÐÉè¼ÆÖÆÔ죬°´ÕÕ¹¦ÄÜÐèÇ󣬽«Ó²¼þµç·½øÐд£¬Òò´ËÏÖ³¡¿É±à³Ì¡£FPGA³£Ê¹ÓÃVHDL»òÕßVerilog HDLÓ²¼þÃèÊöÓïÑÔ½øÐеç·Éè¼Æ£¬Ò²¿ÉÒÔÓõç·ͼÉè¼Æ¡£FPGAÊÇ»ùÓÚLUT½á¹¹£¬°üº¬Ò»×é¿É±à³ÌÂß¼­¿é£¬ÒÔ¼°¿ÉÖØ¹¹»¥Á¬µÄ²ã´Î½á¹¹£¬¾ÍÏñ¿ÉÒÔÔÚ²»Í¬ÅäÖÃÖл¥Á¬µÄÐí¶àÂß¼­ÃÅÒ»Ñù¡£Âß¼­¿é¿ÉÒÔ±»ÅäÖÃΪִÐи´ÔÓ×éºÏ¹¦ÄÜ£¬»òÕßÊǼòµ¥µÄÂß¼­ÃÅ£¬ÈçANDÃźÍXORÃÅ[26]¡£ÔÚFPGAÖУ¬Âß¼­¿é»¹°üÀ¨´æ´¢Ôª¼þ¡£´ó¶àÊýFPGAµÄÅäÖÃÈÝÒ×¶ªÊ§£¬ÐèÒªÔÚÿ´ÎÉϵçµÄʱºò£¬ÖØÐÂÔØÈ룬¶øÅäÖÃÊý¾Ý°üº¬ÔÚ¶Ôϵͳ±à³ÌµÄÅäÖÃÎļþÖÐ[27][28]¡£

¿É±à³ÌÂß¼­Æ÷¼þ´óÖ·ÖΪÁ½ÖÖ£¬Ò»ÖÖÊÇÊä³ö£¨¡°»ò¡±ÃÅ£©ÕóÁб»¹Ì¶¨Á¬½Ó´úÌæ£¬Ã¿Ò»¸ö»òÃŶ¼ÓÐÒ»¸ö¹Ì¶¨ÊýÁ¿µÄÓëÃÅÓëÖ®Á¬½Ó£¬Õâ¾ÍÊǿɱà³ÌÕóÁÐÂß¼­£¨PAL£©£¬Èçͼ4.1×ó²àËùʾ¡£ÕâÖֽṹ¶¼ÓÉEEPROMºÍFlash¹¤ÒÕÖÆÔ죬¸Ã¼¼ÊõʹÆ÷¼þÄܱ»²Á³ý£¬²¢½øÐмòµ¥µÄÔÙ±à³Ì¶ø¸Ä±äÂß¼­¹¦ÄÜ¡£ÁíÒ»ÖÖÊǹ̶¨Æä¡°Ó롱µÄ²¿·Ö²¢ÇÒʹÓá°»ò¡±²¿·Ö³ÉΪ¿É±à³Ì£¬Èçͼ4.1ÓÒ²àËùʾ¡£ÕâÖֽṹÓÐЧµÄ²úÉúÁ˿ɱà³ÌÖ»¶Á´æ´¢Æ÷£¨PROM£©ºÍ²éÕÒ±í£¨LUT£©¡£FPGA¾ÍÊÇ»ùÓÚ²éÕÒ±í½á¹¹¡£

ÍêÕûµÄFPGAÉè¼ÆÁ÷³Ì°üÀ¨Éè¼ÆÊäÈ룬×ۺϣ¬×ª»»£¬Ó³É䣬²¼¾Ö²¼Ïߣ¬Éú³ÉÅäÖÃÎļþÒÔ¼°ÏÂÔØºÍµ÷ÊԵȲ½Öè[29]¡£FPGAµÄÉè¼ÆÒ»Ö±°éËæ×Å·ÂÕæ£¬°üÀ¨ÐÐΪºÍ¹¦ÄÜ·ÂÕæ£¬Ãż¶·ÂÕæ£¬Ê±Ðò·ÂÕæ£¬ÏµÍ³ÄÚ²¿ÑéÖ¤µÈ¡£Èçͼ4.3¸ø³öµÄÉè¼ÆÁ÷³Ìͼ¡£

×î³£¼ûµÄFPGA¼Ü¹¹ÓÉһϵÁеÄÓÃÀ´ÊµÏÖÓ¦ÓóÌÐòµÄ¿ÉÅäÖÃÂß¼­¿é£¨LAB£©£¬I/Oº¸Å̺Í·ÓÉͨµÀ×é³É¡£ I/Oº¸ÅÌ¿ÉÒÔÊÊÓ¦ÓÚÕóÁÐ ¿í¶È¡£Âß¼­¿é Óɼ¸¸ö µ¥Ôª×é³É£¬µäÐÍ ÊÇ4ÊäÈëLUT£¬Èçͼ4.2Ëùʾ¡£FPGAÄÚ²¿ ¶àÊÇͬ²½µç·£¬ÐèÒªÒ»¸öÈ«¾ÖʱÖÓÐźţ¬Çý¶¯Õû¸öFPGAÉϵÄÐźÅͬ²½ºÍ²Ù×÷µÄʱÐò¡£Ò»¸ö¸´ÔÓµÄÉè¼Æ°üº¬¶à¸öʱÖÓ£¬Òò´ËÐèÒªÄÚ²¿È«¾ÖʱÖÓͨ¹ý²»Í¬ÆµÂʺÍÏàλµÄ±ä»»£¬²úÉúµ¥¶ÀµÄʱÖÓÓò¡£Õâ½èÖúÓÚPLLºÍ£¨»ò£©DLLʵÏÖ¡£

Éè¼ÆÊäÈë°üÀ¨Ê¹ÓÃÓ²¼þÃèÊöÓïÑÔºÍÔ­ÀíͼÊäÈëÁ½ÖÖÐÎʽ¡£HDLÓïÑÔÊÊÓÃÓÚ×Ô¶¥ÏòϵÄÉè¼Æ£¬Ö§³ÖÄ£¿é»¯±à³Ì£¬²»ËæÐ¾Æ¬µÄ¹¤ÒÕ²¼¾Ö±ä»¯¶ø±ä»¯£¬³ÌÐòµÄ¸´ÓÃÐԺͿÉÒÆÖ²ÐԽϺ᣶øÔ­ÀíͼÊäÈëÔÚEDAÈí¼þÉÏ»æÖÆÌض¨¹¦Äܵĵç·ͼʵÏÖ£¬ÔÚ¶¥²ãÉè¼Æ¡¢ÊÖ¹¤ÓÅ»¯µç··½ÃæÓнÚÊ¡×ÊÔ´¡¢Í¼ÐνçÃæÇ¿µÄÌØµã¡£

¹¦ÄÜ·ÂÕæ£¬¶ÔËùÉè¼Æµç·½øÐÐÂß¼­¹¦ÄܵIJâÊÔºÍÄ£Äâ¡£²»ÒÀÀµÆ÷¼þµÄ¾ßÌåÌØÐÔ£¬Êdzõ²½Éè¼Æ×îºÃµÄÑéÖ¤ÊֶΡ£Ö÷ÒªÓвâÊÔÎļþÊäÈëºÍ¼¤Àø²¨ÐÎÎļþÊäÈëÁ½ÖÖ£¬Ò»°ã²ÉÓõÄÊDzâÊÔÎļþÊäÈ루Test Bench£©¡£²âÊÔÎļþÊÇÓÃÓ²¼þÃèÊöÓïÑÔ±àд²âÊÔ³ÌÐò£¬É趨ºÃÊäÈëÐźţ¬²¢ÇÒ´Óij¸ö½ø³Ì»òÎı¾ÎļþÖжÁÈ¡ËùÐèµÄÊäÈëÊý¾Ý£¬½«Êý¾Ý´«Èë´ý²âÊÔµÄÄ£¿é£¬²¢ÇÒ½«×îºóµÄ½á¹ûºÍÔ¤ÆÚµÄÊý¾Ý½øÐбȽÏÀ´È·¶¨Éè¼ÆµÄ¹¦ÄÜÊÇ·ñÕýÈ·[30]¡£Í¨¹ý¹¦ÄÜ·ÂÕæ£¬µ÷ÕûʱÐòºÍÐźŵÄÑÓ³Ù£¬Õâ¶ÔÓÚÕû¸öÉè¼ÆµÄÐźÅͬ²½ºÜÓбØÒª¡£

×ۺϣ¬¶ÔÖ¸¶¨µÄµç·ʵÏÖ¹¦ÄܺͲúÉúʵÏֵ緵ÄÔ¼ÊøÎļþ£¬ÆäÖ÷Òª»úÖÆÊǽ«HDLÓïÑԵľßÌ幦ÄܵÄÉè¼ÆÊäÈë·­Òëת»»ÎªÓë¡¢»ò¡¢·ÇÃÅÒÔ¼°²éÕÒ±í£¬´¥·¢Æ÷µÈ»ù±¾Âß¼­µ¥Ôª×é³ÉµÄÂß¼­Á¬½Ó£¬È»ºó½øÐÐËÙ¶È¡¢Ãæ»ýµÄÓÅ»¯£¬Êä³öÍø±íÎļþ£¬¹©²¼¾Ö²¼ÏßʹÓÃ[31]¡£

Ó³Éä²¼¾Ö²¼Ïߣ¬½«×ۺϽ׶βúÉúµÄÂß¼­Íø±íÎļþÊÊÅäµ½FPGAµÄ¾ßÌåµç·ÖС£²¼¾ÖÖ¸µÄÊǽ«Âß¼­Íø±íÖеÄÓ²¼þÔ­Óï»òµ×²ãµ¥ÔªÊÊÅäµ½FPGA¹ÌÓÐÓ²¼þ½á¹¹ÉÏ£¬²¼ÏßÖ¸µÄÊǸù¾Ý²¼¾ÖµÄÍØÆË½á¹¹£¬½«ËùÐèÒªµÄÂß¼­¿éÕýÈ·ºÏÀíµÄÁ¬½Ó£¬´î½¨¾ßÓÐÌØ¶¨¹¦ÄܵÄÄ£¿éµç·¡£

ʱÐò·ÂÕæºÍÄÚ²¿ÏµÍ³ÑéÖ¤£¬³ÆÎªºó·ÂÕæ£¬ÊǾßÌåÔÚFPGAÖÐʵÏÖʱºò£¬°üº¬µç·ÓëÂß¼­ÃŵÄÑÓ³Ù£¬ÒÔ¼°²¼¾Ö²¼ÏßµÄÑÓ³Ù£¬ÕâÊÇÓëFPGAʵ¼ÊÖ´Ðй¦ÄܵÄÇé¿öϽøÐбȽϣ¬Èç¹ûºó·ÂÕæÓÐÎÊÌ⣬¾ÍÐèÒª·µ»ØÉè¼ÆÊäÈë£¬ÖØÐ¹滮£¬ÕâÒ»²½Ò²È·¶¨ÁËÄÚ²¿ÏµÍ³ÊÇ·ñºÏÀí£¬ÑéÖ¤Éè¼ÆÕýÈ·ÐÔ£¬È·±£FPGAÉè¼ÆÎȶ¨¿É¿¿¡£

ÅäÖúÍÏÂÔØ£¬½«ÕýÈ·µÄFPGAÉè¼Æ£¬ËùÉú³ÉµÄÅäÖÃÎļþ£¬Ò»°ãÊÇBitÎļþת»»ÎªMCSÎļþ£¬ÔÚ¾­¹ýÍâΧµç·£¬ÀûÓÃJTAGÏÂÔØµ½FPGAµÄÍâΧÅäÖõç·ÉÏ£¬Ê¹µÃFPGAÉϵçºóÄܽøÐÐÅäÖá£

ÔÚ±¾¿ÎÌâµÄÉè¼ÆÖУ¬×ñÑ­ÉÏÊö¿ª·¢Á÷³Ì£¬¶Ôÿһ²½¶¼½øÐкÏÀí׼ȷµÄÉè¼ÆºÍ·ÂÕæ¡£¸ù¾Ý¸ßËÙÏà»ú²É¼¯¿¨µÄÇý¶¯µç·ºÍÅäÖÃÎļþ£¬ÎÒÃÇÑ¡ÔñVHDLÓïÑÔ½øÐÐÊäÈ룬ÔÚXilinxµÄ×ÛºÏÉè¼ÆÆ½Ì¨ISE14.7ÉϽøÐÐÉè¼Æ£¬´îÔØMentor GraphicsµÄModelSim SE 10.1c·ÂÕæ¹¤¾ß¶ÔÉè¼Æµç·½øÐÐʱÐòºÍÉè¼Æ·ÂÕæ£¬Êý¾Ý¶Ô±È£¬Í¨¹ý ¸ü¸Ä£¬×îºó µ½FPGA ÉÏ¡£

FPGAµÄÑ¡ÐÍ£¬¸ù¾ÝËùÉè¼Æ¹¦ÄÜËùÐèµÄÊý¾Ý´æ´¢ÈÝÁ¿£¬Âß¼­µ¥ÔªµÄÊýÁ¿£¬ÔÚÓ¦Óó¡¾°µÄʵ¼Ê¹¦ºÄ£¬ÒÔ¼°FPGAµÄI/OÊýÁ¿ÊÇ·ñÂú×ãÒªÇó½øÐÐÑ¡Ôñ¡£ÖøÃûµÄFPGAÉú²ú³§¼ÒÊÇÃÀ¹úµÄXilinx¹«Ë¾ºÍAltera¹«Ë¾¡£ÔÚº½¿Õº½Ì죬×Ô¶¯¼ÝÊ»£¬Ïû·Ñµç×ÓºÍÄÜÔ´²úÒµÖУ¬¾ù¾ßÓи÷Àà²úÆ·£¬ÄÜÂú×㲻ͬÐÔÄÜÐèÇó¡£XilinxÉú²úµÄSpartanϵÁкÍVirtexϵÁÐÓ¦ÓýÏΪ¹ã·º£¬Ç°ÕßÂú×ãµÍ³É±¾Éè¼Æ£¬ºóÕßÕë¶ÔÓÚ¸ßÐÔÄÜÉè¼Æ¡£±¾¿ÎÌâÑ¡ÔñµÄÊÇSpartan3ϵÁеÄxc3s5000-4fg900оƬ£¬²ÉÓõÄ900ÇòFBGA·â×°¼¼Êõ£¬90nmÖÆÔ칤ÒÕ£¬ÏµÍ³Ãż¶ÊýÁ¿ÓÐ5M£¬¿ÉÓõÄÂß¼­µ¥Ôª66560¸ö£¬4ÊäÈë²éÕÒ±í66560£¬¿ÉÅäÖÃÂß¼­¿é8320¸ö£¬·Ö²¼Ê½RAMÓÐ520K£¬¿éRAMÓÐ1872K£¬×¨Óó˷¨Æ÷104¸ö£¬Êý×ÖʱÖÓ¹ÜÀíÆ÷4¸ö£¬×î´ó¿ÉÓÃÒý½Å784¸ö[32]¡£¿¼Âǵ½´¦ÀíµÄͼÏñÊÇ512¡Á512´óС£¬ÐèÒª»º´æµÄÊý¾ÝÓÐ5ÐУ¬ÒÔ¼°²¢ÐпØÖÆÐźţ¬ÔÚ´¦Àí¹ý³ÌÖÐËùÏûºÄµÄ´æ´¢Æ÷ÈÝÁ¿ºÍ³Ë·¨Æ÷×ÊÔ´£¬¶øSpartan3ƬÉÏRAM-18KÓÐ104¸ö£¬ËùÌṩµÄ³Ë·¨Æ÷Ϊ18λ˫ÊäÈë¶þ½øÖƳ˷¨Æ÷£¬»º´æÈÝÁ¿×ã¹»£¬ÌṩËãÊõ²Ù×÷µÄÂß¼­µ¥Ôª·á¸»£¬ÍêÈ«Âú×ãͼÏñ´¦Àí¹ý³ÌÖеļÆËã×ÊÔ´ÒªÇó£¬Òò´Ë²ÉÓñ¾¿îоƬ¡£

FPGAµÄÉè¼ÆÖУ¬Ê±ÖÓϵͳµÄÉè¼Æ¼«ÆäÖØÒª£¬Í¨³£Ê±ÖÓÐźŻáʹÓÃBUFGÍøÂç¼õÉÙ´«ÊäÑÓ³Ù£¬Ìá¸ßϵͳÐÔÄܲ¢ÔöǿϵͳµÄÎȶ¨ÐÔ¡£

ÔÚʵ¼ÊʹÓÃÖУ¬¾­³£»áÓöµ½ÐèÒª½«Ä³¸öBUFGÉϵÄʱÖÓÐźÅͨ¹ýFPGAµÄÆÕͨIOÊä³ö¡£Èç¹ûÖ±½Ó´ÓBUFGÉÏÁ¬½Óµ½OBUFÉÏ£¬ÔÚ±àÒëÆ÷mapµÄ¹ý³ÌÖоͻá³öÏÖ´íÎ󣬲¢Ìáʾ¹æ±Ü´íÎóµÄ·½·¨£¬¾ÍÊÇÔÚÔ¼ÊøÎļþÖмÓÉÏÒ»ÌõÔ¼Êø£¬ÈñàÒëÆ÷ºöÂÔʱÐòÔ¼ÊøµÄÒªÇó£¬Ö±½Óͨ¹ýÆÕͨÂß¼­×ÊÔ´Á¬½Ó¡£ËäÈ»Õâ¸öÔ¼ÊøÄܹæ±ÜÕâ¸ö´íÎ󣬵«ÖмäµÄʱÐò½«ÎÞ·¨ÆÀ¹À£¬Òò´Ë¿ÉÄܻᵼÖ´íÎóµÄ·¢Éú¡£

Xilinx Spartan6¶ÔÓÚÕâÖÖÓ¦Óøø³öµÄ½â¾ö·½°¸ÊÇͨ¹ýODDR2À´Á¬½Ó£¬Ã¿¸öIO¶¼ÓÐODDR2×ÊÔ´,ÕâЩ×ÊÔ´¿ÉÒÔÁ¬½Óµ½BUFGÍøÂçÉÏ¡£

ʹÓþÙÀý:

ODDR2#(
.DDR_ALIGNMENT("NONE"),// Sets output alignment to "NONE", "C0" or "C1"
.INIT(1'b0),// Sets initial state of the Q outputto 1'b0 or 1'b1
.SRTYPE("SYNC")// Specifies "SYNC" or "ASYNC" set/reset
) ODDR2_inst (
.Q(ÐèÒªÊä³öµÄʱÖÓÐźÅÁ¬Ïß),// 1-bit DDR output data
.C0(BUFGÉϵÄʱÖÓÐźÅ),// 1-bit clock input
.C1(BUFGÉϵÄʱÖÓÐźŵÄ180¶È·´ÏàÐźÅ),// 1-bit clock input
.CE(1'b1), // 1-bit clock enable input
.D0(1'b1), // 1-bit data input (associatedwith C0)
.D1(1'b0), // 1-bit data input (associatedwith C1)
.R(1'b0),// 1-bit reset input
.S(1'b0)// 1-bit set input);

¼ÆËãÆ÷Ô­Àíͼ£º

²¨ÌØÂÊÉèÖãº

´®¿ÚÉèÖãº

ÎÊÌâËùÔÚ£º

ϵͳÉè¼Æ£º

ΪÁ˸üºÃµÄ¹Û²ìʱÖÓÑØÓëµØÖ·¡¢Êý¾Ý±ä»¯µÄ¹ý³Ì£¬È«±àÒëºó½øÐÐʱÐò·ÂÕæ¡£¶ÁÊý¾Ýʱ£¬¿ÉÒÔ¿´³öµÚÒ»¸ö¼ýͷʱÖÓÉÏÉýÑØ²Éµ½µØÖ·0£»µÚ¶þ¸öʱÖÓÉÏÉýÑØ¿ªÊ¼¸³Öµ£¬µ«ÊÇÓÉÓÚÂß¼­ÑÓ³Ù£¨ºì¿ò£©ºó²Å¿ªÊ¼¸³Öµ£»Òò´ËµÚÈý¸öʱÖÓÉÏÉýÑØµÄÊý¾Ý²ÅÊÇÎȶ¨µÄ¡£

FIFOÕâÒ»Õ£º

 
   
16489 ´Îä¯ÀÀ       42
 
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
 
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
 
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤