FPGA¿¼ÊÔ ÏÂÔØ±¾ÎÄ

¡¶Ó²¼þÃèÊöÓïÑÔ¼°FPGAÉè¼Æ¡·¸´Ï°Òªµã£º

Ò»¡¢Ãû´Ê½âÊÍ

Éè¼Æ·½·¨£º×Ô¶¥ÏòϺÍ×Ôµ×ÏòÉÏ£¬ÒÔ×Ô¶¥ÏòÏÂΪÖ÷ÒªÉè¼Æ¡£

×ۺϣºÖ¸µÄÊǽ«½Ï¸ß¼¶³éÏó²ã´ÎµÄÉè¼ÆÃèÊö×Ô¶¯×ª»¯Îª½ÏµÍ²ã´ÎµÄÃèÊö¹ý³Ì¡£

EDA£¨Electronic Design Automation£©µç×ÓÉè¼Æ×Ô¶¯»¯£º¾ÍÊÇÒÔ¼ÆËã»úΪ¹¤×÷ƽ̨£¬ÒÔEDAÈí¼þ¹¤¾ßΪ¿ª·¢»·¾³£¬ÒÔPLDÆ÷¼þ»òÕßASICרÓü¯³Éµç·ΪĿ±êÆ÷¼þÉè¼ÆÊµÏÖµç·ϵͳµÄÒ»ÖÖ¼¼Êõ¡£

1.EDA £ºµç×ÓÉè¼Æ×Ô¶¯»¯ 2.HDL £ºÓ²¼þÃèÊöÓïÑÔ

3.SoC:ϵͳоƬ¡£°ÑÒ»¸ö¹¦ÄÜÍêÕûµÄϵͳ¼¯³ÉÔÚÒ»¸öоƬÉÏ¡£ 4.ASIC £º×¨Óü¯³Éµç· 5.PLD £º¿É±à³ÌÂß¼­Æ÷¼þ

6.CPLD £º¸´Ôӿɱà³ÌÂß¼­Æ÷¼þ 7.FPGA £º ÏÖ³¡¿É±à³ÌÃÅÕóÁÐ 8.LUT £º²éÕÒ±í

9.JTAG £ºÁªºÏ²âÊÔÐж¯×é 10.ISP £º ÔÚϵͳ±à³Ì

11£®IPºË £ºÍê³ÉijÖÖ¹¦ÄܵÄÉè¼ÆÄ£¿é

12£®Âß¼­×ÛºÏ £º ½«Éè¼ÆÕßÔÚEDAƽ̨Éϱ༭ÊäÈëµÄHDLÎı¾¡¢Ô­Àíͼ»ò״̬ͼÃèÊö£¬ÒÀ¾Ý¸ø¶¨µÄÓ²¼þ½á¹¹ºÍÔ¼Êø¿ØÖÆÌõ¼þ½øÐбàÒë¡¢ÓÅ»¯ºÍת»»£¬×îÖÕ»ñµÃÃż¶µç·ÉõÖÁ¸üµ×²ãµÄµç·ÃèÊöÍø±íÎļþµÄ¹ý³Ì¡£

13£®Éè¼ÆÊäÈë £º½«Éè¼ÆÕßËùÉè¼ÆµÄµç·ÒÔ¿ª·¢Èí¼þÒªÇóµÄijÖÖÐÎʽ±í´ï³öÀ´£¬²¢ÊäÈëµ½ÏàÓ¦Èí¼þÖеĹý³Ì¡£

14.ÏÂÔØ £º°ÑÊÊÅäºóÉú³ÉµÄ±à³ÌÎļþ×°Èëµ½PLDÆ÷¼þÖеĹý³Ì 15£®FSM: ÓÐÏÞ״̬»ú 16£®UDP£ºÓû§×Ô¶¨Òå 17£®NS£º´Î̬

18£®OL£ºÊä³öÂß¼­ ¶þ¡¢Ìî¿Õ

1.EDA¾ÍÊÇÒÔ ¼ÆËã»ú Ϊ¹¤×÷ƽ̨£¬ÒÔ EDAÈí¼þ¹¤¾ß Ϊ¿ª·¢»·¾³£¬ÒÔ PLDÆ÷¼þ»ò Õß ASICרÓü¯³Éµç· ΪĿ±êÆ÷¼þÉè¼ÆÊµÏÖµç·ϵͳµÄÒ»ÖÖ¼¼Êõ¡£

2.ÔÚÊý×Öµç·Éè¼Æ¹ý³ÌÖУ¬ ×ÛºÏ Êǽ«Èí¼þת»¯ÎªÓ²¼þµç·µÄ¹Ø¼ü²½Ö裬ÊÇÎÄ×ÖÃèÊöÓëÓ²¼þʵÏÖµÄÒ»×ùÇÅÁº¡£

3.ͨ³££¬½«¶ÔCPLDµÄÏÂÔØ³ÆÎª ±à³Ì £¬¶ÔFPGAÖеÄSRAM½øÐÐÖ±½ÓÏÂÔØµÄ·½Ê½³Æ ÅäÖà ¡£ 4.·ÂÕæÊ±ÊÇ·ñ¿¼ÂÇÓ²¼þÑÓʱ·ÖÀ࣬¿É·ÖΪ ¹¦ÄÜ ·ÂÕæºÍ ʱÐò ·ÂÕæ¡£ 5.IPºËÖ÷Òª°üÀ¨ Ó²ºË ¡¢ ¹ÌºË ºÍ ÈíºË ¡£

6.µ±Ç°×îÁ÷ÐеIJ¢ÇÒ³ÉΪIEEE±ê×¼µÄÓ²¼þÃèÊöÓïÑÔ°üÀ¨ Verilog HDL ºÍ VHDL ¡£ 7£®µ±Ç°EDAÉè¼ÆÖÐÆÕ±é²ÉÓõķ½·¨ÊÇ£º ×Ô¶¥ÏòÏ ¡£

8.PLD°´ÕÕ±à³Ì¹¤Òպͱà³ÌÔª¼þ¿ÉÒÔ·ÖΪ ²ÉÓÃÈÛË¿£¨Fuse) ¡¢ ²ÉÓ÷´ÈÛË¿£¨Antifuse) ¡¢ ²ÉÓÃ×ÏÍâÏß²Á³ö¡¢µã±à³Ì·½Ê½µÄÆ÷¼þ ¡¢ EEPROMÐÍ ¡¢ ÉÁËÙ´æ´¢Æ÷£¨Flash£©ÐÍ ºÍ ²É

Óþ²Ì¬´æ´¢Æ÷£¨SRAM£©»ú¹¹µÄÆ÷¼þ

9£®¼òµ¥PLD°üÀ¨ PROM ¡¢ PLA ¡¢ PAL ºÍ GAL ËÄÀà¡£

10£®PLD°´²»Í¬µÄÄÚ²¿½á¹¹¿É·ÖΪ»ùÓÚ ³Ë»ýÏî ½á¹¹µÄPLDÆ÷¼þºÍ»ùÓÚ ²éÕÒ±í ½á¹¹µÄPLDÆ÷¼þ£¬Ç°ÕߵĵäÐÍ´ú±íÊÇ CPLD £¬ºóÕߵĵäÐÍ´úÊÇ SRAM ¡£ 11£®PLDµÄ¿ª·¢Öг£ÓõIJâÊÔ¼¼ÊõÊÇ£º ±ß½çɨÃè²âÊÔ ¼¼Êõ¡£

12£®FPGAÆ÷¼þÖ÷ÒªÓÐÁ½ÀàÅäÖ÷½Ê½£º Ö÷¶¯ÅäÖÃģʽ ºÍ ±»¶¯ÅäÖÃģʽ ¡£ 13£®CycloneÆ÷¼þÖ§³ÖµÄÅäÖ÷½Ê½ÓÐ JTAGģʽ ¡¢ PSģʽ ºÍ ASģʽ ¡£ 14£®Ð´³öÏÂͼËùʾF0ºÍF1µÄ±í´ïʽ£ºF0=

A1?A0?A1?A0 £¬F1=

A1?A0?A1?A0 ¡£

1.verilog³ÌÐò¶¼ÊÇÓÉ Ä£¿é¹¹³ÉµÄ£¬Ã¿¸överilog³ÌÐò°üÀ¨4¸öÖ÷ÒªµÄ²¿·Ö£¬·Ö±ðÊÇ Ä£¿éÉùÃ÷ ¡¢ ¶Ë¿Ú¶¨Òå ¡¢ ÐźÅÀàÐÍÉùÃ÷ ¡¢ Âß¼­¹¦ÄÜÃèÊö ¡£

2. ¶Ë¿ÚÊÇÄ£¿éÓëÍâ½çÁ¬½ÓºÍͨÐŵÄÐźÅÏߣ¬ÓÐÈýÖÖÀàÐÍ£¬·Ö±ðÊÇ ÊäÈë¶Ë¿Ú ¡¢ Êä³ö¶Ë¿Ú ¡¢ ÊäÈë/Êä³ö¶Ë¿Ú ¡£

3. always¹ý³ÌÓï¾ä¼È¿ÉÒÔÓÃÀ´ÃèÊö ʱÐò µç·£¬Ò²¿ÉÒÔÃèÊö ×éºÏ µç·¡£

4. always¹ý³Ì¿éÁбíÖеÄÃô¸ÐÐźŵıí´ï·½Ê½ÓжàÖÖ£º Óà or Á¬½ÓËùÓеÄÃô¸ÐÐźš¢¿ÉÒÔÓÃÀ´Çø·Ö»òÁ¬½ÓËùÓеÄÃô¸ÐÐÅºÅºÍ Ãô¸ÐÐźűí´ïʽ ¡£

5. µ÷ÓÃÔª¼þµÄ¸ñʽÊÇ£º< ÃÅÔª¼þ¹Ø¼ü×Ö >< Àý»¯ÃÅÔª¼þÃû >£¨ ÊäÈë ¶Ë¿ÚÁÐ±í£¬ Êä³ö ¶Ë¿ÚÁÐ±í£© ¡£

6.ÓÃverilogÃèÊöµç·ÐèҪעÒâµÄÊÇ£º´æÅ̵ÄÎļþÃûÓë VerilogÄ£¿éÃû Ò»Ö£¬ÎļþÃûµÄºó׺ÊÇ .v ¡£

1. Verilog ³ÌÐòÓÉ ¸÷ÖÖ·ûºÅÁ÷ ¹¹³É£¬·ûºÅ°üÀ¨ ¿Õ°×·û ¡¢ ²Ù×÷·û ¡¢ Êý×Ö ¡¢ ×Ö·û´® ¡¢ ×¢ÊÍ ¡¢ ±êʾ·û ¡¢ ¹Ø¼ü×Ö ¡£

2.VerilogÖеıêʶ·û¿ÉÒÔÊÇÈÎÒâÒ»×é ×Öĸ ¡¢ Êý×Ö ÒÔ¼°·ûºÅ ¡° ¡ç¡± ºÍ ¡°-¡± µÄ×éºÏ£¬µ«±êʶ·ûµÄµÚÒ»¸ö×Ö·û±ØÐëÊÇ ×Öĸ »òÕß ¡°-¡± ¡£

3. VerilogÖеij£Á¿Ö÷ÒªÓÐÈçÏÂ3ÖÖÀàÐÍ£º ÕûÊý ¡¢ ʵÊý ¡¢ ×Ö·û´® ¡£ 4.ÔÚÕûÊýµÄÊéд¹æÔòÀ x£¨»òz£©ÔÚ¶þ½øÖÆÖдú±í 1 λx£¨»òz£©£¬Ôڰ˽øÖÆÖдú±í 3 λx£¨»òz£©£¬ÔÚÊ®Áù½øÖÆÖдú±í 4 λx£¨»òz£©£¬Ëü´ú±íµÄ¿í¶ÈÈ¡¾öÓÚ ½øÖÆ ¡£ 5. ÔÚ Î»¿í ºÍ ¡¯ Ö®¼ä£¬ÒÔ¼° ½øÖÆ ºÍ ÊýÖµ Ö®¼äÔÊÐí³öÏÖ¿Õ¸ñ£¬³ý´ËÖ®Íâ²»ÔÊÐí³öÏÖ¿Õ¸ñ¡£

6. µ±Î»¿íÓë½øÖÆÈ±Ê¡Ê±±íʾµÄÊÇ Ê® ½øÖÆÊý¡£

7. Èç¹û¶¨ÒåµÄλ¿í±Èʵ¼ÊµÄλÊý³¤£¬Í¨³£ÔÚÆä ×ó±ß ²¹Áã¡£µ«Èç¹ûÊý×î×ó±ßһλΪx£¨»òz£©£¬ÄÇô¾ÍÏàÓ¦µØÔÚ×ó±ß²¹ x£¨»òz£© ¡£Èç¹û¶¨ÒåµÄλ¿í±Èʵ¼ÊµÄλÊýС£¬ ×ó±ßµÄλ½Øµô ¡£

8. ʵÊýµÄ±íʾ·½·¨ÓÐ Ê®½øÖƱíʾ·¨ ºÍ ¿ÆÑ§¼ÆÊý·¨ £¬ÊµÊýת»»ÎªÕûÊýµÄ·½·¨ÊÇ ËÄÉáÎåÈë ¡£

9.VerilogÓÐËÄÖÖ»ù±¾µÄÂß¼­×´Ì¬£¬·Ö±ðÊÇ 0 ¡¢ 1 ¡¢ X»òx ¡¢ Z»òz ¡£ 10. ÏòÁ¿µÄ¶¨ÒåÐÎʽΪ£º ÀàÐÍ[MSB:LSB] ÏòÁ¿Ãû ¡£A=mybyte[6]ÊǶÔÏòÁ¿A½øÐÐÁË Î»¸³Öµ £¬B=mybyte[5:2]ÊǶÔÏòÁ¿B½øÐÐÁË Óò¸³Öµ ¡£ÓÃÕâÁ½ÖÖÐÎʽ¸³ÖµµÄʱºòÓ¦µ±×¢ÒâӦʹµÈºÅ×óÓÒÁ½¶ËµÄ¿í¶È ÒªÒ»Ö ¡£

11. ´æ´¢Æ÷ÓÉÒ»×é¼Ä´æÆ÷¹¹³ÉµÄÕóÁУ¬ ÓÃverilog¶¨Òå´æ´¢Æ÷ʱ£¬Ð趨Òå´æ´¢Æ÷µÄ ÈÝÁ¿ ºÍ ×Ö³¤ £¬Ç°Õß±íʾ ´æ´¢Æ÷µÄ´æ´¢µ¥ÔªÊý £¬ºóÕßÔò±íʾ ÿ¸öµ¥ÔªµÄÊý¾Ý¿í¶È ¡£

1£®Verilog HDLÖ§³ÖÈýÖÖÃèÊö·½Ê½À´Éè¼Æµç·£¬·Ö±ðÊÇ ½á¹¹ÃèÊö ¡¢ ÐÐΪÃèÊö ºÍ Êý¾ÝÁ÷ÃèÊö ¡£

2£®Èý̬ÃÅÔª¼þµÄµ÷ÓøñʽΪ£º ¹Ø¼ü×Ö ÃÅÔª¼þÃû £¨ Êä³ö £¬ ÊäÈë £¬ ʹÄÜ¿ØÖÆ¶Ë £©¡£

1£®¸ù¾ÝÊä³öÐźŵIJ»Í¬£¬×´Ì¬»ú¿ÉÒÔ·ÖΪ Ã×ÀïÐÍ ºÍ Ħ¶ûÐÍ £¬Ç°ÕßµÄÊä³öÊÇ µ±Ç°×´Ì¬ ºÍ µ±Ç°ÊäÈë µÄº¯Êý£¬ºóÕßµÄÊä³öÊÇ ÊäÈë µÄº¯Êý¡£

2£®ÔÚ״̬»úµÄÉè¼ÆÖÐÖ÷Òª°üº¬Èý¸ö¶ÔÏóΪ£º ÏÖ̬ ¡¢ ´Î̬ ºÍ Êä³öÂß¼­ ¡£ 3£®ÔÚ״̬»úµÄÉè¼ÆÖУ¬³£ÓõÄ״̬±àÂ뷽ʽÓР˳Ðò±àÂë ¡¢ ¸ñÀ×±àÂë ¡¢ºÍ Ô¼º²Ñ·±àÂë ¡£ Èý¡¢µ¥Ñ¡

1£®ÏÂÁбêʶ·ûÄÄЩÊǺϷ¨µÄ£¿£¨ B £©

A£®$ time B£®_date C£®8sum D£®mux# 2£®ÏÂÁÐÄÄЩÕûÊýµÄÊéдÊǺϷ¨µÄ£¿£¨ B D £©

A£®¡äda30 B£®¡äo721 C£®4¡äd-4 D£®8¡äb1100_1101_0011 3£®Èç¹ûÍøÏßÐͱäÁ¿ËµÃ÷ºóδ¸³Öµ£¬ÄÇôÆäȱʡֵΪ£¨ D £©¡£ A£®0 B£®1 C£®x D£®z 4£®¶ÔÓÚ¶¨Òåreg [7:0] mema [255:0]£¬ÕýÈ·µÄ¸³ÖµÎª£¨ A £©¡£

A£®mema[5]=10 B£®mema=8¡äd0 C£®1¡äb1 D£®mema[5][3:0]=4¡äd1 5£®¶ÔÓÚ¡°a=4¡äb11001£¬b=4¡äbx110¡±£¬Ñ¡³öÕýÈ·µÄÔËËã½á¹û£¨ BC £©¡£ A£®a&b=0 B£®a&&b=1 C£®b&a=4¡äbx000 D£®b&&a=4¡äbx000 6£®ÒÑÖª¡°a=1¡äb1,b=3¡äb001¡±£¬ÄÇô{a£¬b}=£¨ C £©¡£ A£®4¡äb0011 B£®3¡äb001 C£®4¡äb1001 D£®3¡äb101 7£®ÔÚverilogÓïÑÔÖУ¬a=4¡äb1011£¬ÄÇô&a=£¨ D £©¡£ A£®4¡äb1011 B£®4¡äb1111 C£®1¡äb1 D£®1¡äb0

8¡¢°´²Ù×÷·ûËù´øµÄ²Ù×÷Êý£¬²Ù×÷·û·ÖÀàÖв»º¬µÄÀàÐÍÊÇ£¨ D £© A. µ¥Ä¿ B. ˫Ŀ C. ÈýÄ¿

D. ¶àÄ¿

1¡¢ÒÔ϶ÔinitialÓï¾äµÄ˵·¨ÖУ¬´íÎóµÄÊÇ___b___

A. ÓÐÃô¸ÐÐźŠB. ÑØÊ±¼äÖá¿ÉÖØ¸´Ö´ÐÐ C. ¿ÉÓÃÓÚÃèÊö¼¤ÀøÐźŠD. ¿ÉÓÃÓڶԼĴæÆ÷Öµ 2.ÒÔÏÂÓï¾äÖв»¿É±»×ۺϵÄÓï¾äÊÇ c A¡¢if-else B¡¢always C¡¢initial D¡¢assign 3¡¢ÔÚÏÂÁйØÁª·½Ê½Öв»ÊôÓÚÔª¼þÀý»¯Óï¾äµÄÊÇ C A¡¢Î»ÖùØÁª B¡¢¶Ë¿ÚÃû¹ØÁª C¡¢»ìºÏ¹ØÁª D¡¢Ö¸¶¨¹ØÁª

4£®Ê±¼ä³ß¶È¶¨ÒåΪ£àtimescale 10ns/100ps£¬Ñ¡ÔñÕýÈ·´ð°¸£¨ c £©¡£

A£®Ê±¼ä¾«¶ÈΪ10ns B£®Ê±¼äµ¥Î»Îª100ps C£®Ê±¼ä¾«¶ÈΪ100ps D£®Ê±¼ä¾«¶È²»È·¶¨ 5£®ÔÚverilogÖж¨ÒåÁ˺êÃû¨Fdefine sum a+b+c£¬ÏÂÃæºêÃûÒýÓÃÕýÈ·µÄÊÇ£¨ B £©¡£ A£®out=sum+d B£®out=¡äsum+d C£®out=¨Fsum+d D£®¶¼ÕýÈ·

6£®ÔÚÏÂÁгÌÐòÖУ¬always¹ý³ÌÓï¾äÃèÊöÁËÒ»¸ö´øÒì²½NresetºÍNsetÊäÈë¶ËµÄÉÏÉýÑØ´¥·¢Æ÷£¬´ÓÑ¡ÏîÖÐÕÒ³öÀ¨ºÅÄÚÓ¦¸ÃÌîÈëµÄÕýÈ·´ð°¸¡£ always @ ( c ) if (!Nreset) Q<=0; else if (!Nset) Q<=1; else Q<=D;

A£®posedge clk or negedge Nreset B£®posedge clk or negedge Nset

C£®posedge clk or negedge Nreset or negedge Nset D£®negedge Nreset or negedge Nset 7£®ÏÂÁÐÓï¾äÖУ¬²»ÊôÓÚ²¢ÐÐÓï¾äµÄÊÇ£¨ b £©¡£

A£®·Ç×èÈû¸³ÖµÓï¾ä B£® assignÓï¾ä C£®ÊµÀýÔª¼þµ÷ÓÃÓï¾ä D£®caseÓï¾ä 8£®ÔÚverilogÖУ¬ÏÂÁÐÄǸöÓï¾ä²»ÊÇ·ÖÖ§Óï¾ä£¨ £©¡£ A£®if-else B£®case C£®casez D£®repeat 9.ÏÂÁÐÃô¸ÐÐźŵıíʾÊôÓÚ±ßÑØÃô¸ÐÐ͵ÄÊÇ£¨ a £©

A£®always@(posedge clk or posedge clr) B£®always@(A or B) C£®always@(posedge clk or clr) D.always @ (*) 10.ÒÔϲ»ÊôÓÚforÑ­»·Óï¾äµÄÊÇ£¨ b £© A.for B.assign C.while D.repeat

1.ÔÚVerilog³ÌÐòÖпÉÒÔͨ¹ýÄÄЩ·½Ê½ÃèÊöµç·µÄ½á¹¹£¿£¨ ABCD £©

A£®Ãż¶½á¹¹ÃèÊö B£®¾§Ìå¹Ü¼¶½á¹¹ÃèÊö C£®UDP D£®²»Í¬Ä£¿é¼äµÄµ÷Óà 2£®ÏÂÁÐÄÄЩVerilogµÄ»ù±¾Ãż¶Ôª¼þÊǶàÊäÈëÃÅ£¨ABC£©

A. nand B. nor C. and D. not

3£®Õë¶ÔVerilog HDLÓïÑÔÖеÄcaseÓï¾ä˵·¨²»ÕýÈ·µÄÊÇ£¨B £© A£®caseÓï¾ä±í´ïʽµÄȡֵ¿ÉÒÔ³¬³öÓï¾äÏÂÃæÁгöµÄÖµµÄ·¶Î§£» B£®Óï¾ä¸÷·ÖÖ§±í´ïʽÔÊÐíͬʱÂú×ãcase±í´ïʽµÄÖµ£» C£®Ìõ¼þÓï¾äÖеÄÑ¡ÔñÖµÐèÒªÍêÕû¸²¸Ç±í´ïʽµÄȡֵ·¶Î§£»