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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓƵ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
FPGAÈëÃÅÖ®ÎÒ¼û
 
  2944  次浏览      27
 2018-2-9 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcnblogs£¬½²½âÁËFPGAÊǸÉʲôµÄ£¬½á¹¹¼°Ïà¹Ø²¼¾Ö£¬µÈµÈ¡£

1.дÔÚÇ°Ãæ

ºÜÔç¾ÍÏëдÕâôƪ¶ÌÎÄ£¬ºÍ´ó¼Ò½»Á÷ѧϰµÄЩÐí¾­ÑéºÍÐĵᣵ«Ò»Ö±Óи÷ÖÖ¸ÉÈÅ£¬ÖÂʹһÍÏÔÙÍÏ£¬ÕâÕó×Ó¸ÏÉÏÃ×¹úÀйýÊ¥µ®£¬ÔÛҲæÀï͵ÏУ¬¸Ï½ô°ÑÕâƪ¶ÌÎÄÂëµô¡£¡£ºÙºÙ¡£

2.ΪʲôҪд

ȺÀïʱ³£ÓÐÐÂÈ˳ÊÖÜÆÚÐÔµÄÎÊÖîÈ磬¡°ÎÒ¸ÃÈçºÎѧHDL£¿¡±£¬¡°·Ç×èÈûºÍ×èÈûÓÐɶÇø±ð£¿¡±Ö®ÀàµÄÎÊÌâ¡£ÔÚ´Ë£¬±ÊÕß³¶Á½¾ä×Ô¼ºµÄѧϰÌå»á£¬¶ÔÕâЩÎÊÌâÒ»²¢ÓèÒԻشð¡£

3.English required

Ó¢ÎÄ×ÊÁϲ»Ò»¶¨ÄÜÅàÑø³öÓÅÐãµÄFPGA¹¤³Ìʦ£¬µ«¾Ü¾øÓ¢ÎÄ×ÊÁϵŤ³ÌʦÖÁ¶àÊǸöºÏ¸ñµÄ¹¤³Ìʦ¡£

ÈçͼËùʾ£¬×ÝÖá´ú±í×ÛºÏˮƽ£¬ºáÖá´ú±íʱ¼ä£¬ÀíÂÛ¾ö¶¨ÁËÓɾ­Ñé´ø¶¯µÄˮƽÌáÉýµÄÉÏÏÞ¡£¶øÈç¹ûÄܾ­³£²Î¿¼Ó¢ÎÄ×ÊÁÏ£¬ÉÏÏÞ¿ÉÒÔÊʵ±Ìá¸ß£¬ÈçͼÖеÄÐéÏß¡£

ÔÚÒ»¿ªÊ¼±ãÇ¿µ÷Ó¢ÎĵÄÖØÒªÐÔÊÇÒòΪѧϰFPGAµÚÒ»ÊÖµÄ×ÊÁÏÊÇ´óÁ¿µÄ¹Ù·½×ÊÁÏ£¬Èçtutorial£¬user guide£¬cock book£¬handbook£¬application note£¬white paperµÈ¡£

¶ÁÕß²»ÄÜÖ¸ÍûÓÀÔ¶²Î¿¼·­ÒëµÄ¶þÊÖ×ÊÁÏ°É£¬ºÎ¿öºÜ¶à»¹¶¼ÑÏÖØÍѽÚÐÐÒµ·¢Õ¹ÏÖ×´¡£

4.FPGA²»Êǵ¥Æ¬»ú

¹ØÓÚÕâµã£¬ºÜ¶àÈË·´¸´Ç¿µ÷£¬µ«Òź¶µÄÊÇ£¬°ÑFPGAµ±µ¥Æ¬»úÍæµÄÈËÈÔÇ°¸°ºó¼Ì¡£±ÊÕß×ÁÄ¥×ÅÓпÉÄÜÊÇÈëÃÅ·½·¨ÓÐÎó¡£

»ØÏëÒ»ÏÂÎÒÃÇÊÇզѧµ¥Æ¬»úµÄ£¿ÂòÒ»±¾½Ì²Ä£¬Á˽âÒ»ÏÂIO¿ÚºÍ¿ØÖÆ×Ö£¬È»ºó¿ªÊ¼»­Á÷³Ìͼ£¬ÓÃC±à³Ì£¬×ö¸÷ÖÖ¾­µäʵÑé¡£

¶øµ±×ªµ½FPGAʱ£¬ºÜ×ÔÈ»µÄ»á½è¼ø¡°µ¥Æ¬»úģʽ¡±£¬ÂòÒ»±¾HDLµÄÊ飬·¢ÏÖVerilogºÍC³¤»¹Í¦Ïñ£¬ºÜÇáËɵĿÐÍêHDL£¬È»ºó¾Í¿ªÊ¼¡°±à³ÌÐò¡±¡£´ý±àÍêºó£¬Ò»µã°´Å¥£¬Ò»¿ÚÆø´Ó×ÛºÏ×öµ½PAR£¨ISEºÍQuartusII¶¼ÄÜÒ»¸ö°´Å¥ÅÜÕû¸öflow£©£¬È»ºó·ÂÕæ¡£·ÂÕæOK£¿½Ô´ó»¶Ï²¡£²»OK£¿¸Äcode¡£Õ¦¸Ä£¿²»Çå³þ¡£

Õâ¸ö¹ý³ÌÖÐ×î´óµÄÎÊÌâÔÚÓÚ°ÑFPGA×î´óµÄÓ²¼þ±¾É«µ±³ÉºÚºÐ´¦Àí£ººÚºÐµÄÊäÈëÊÇcode£¬Êä³öÊÇ·ÂÕæ¡£

µ±°ÑºÚºÐƯ°×³É°×ºÐ£¬´óÖÂÖªµÀÕâºÐ×ÓÀïÓÐЩɶ£¬¸ÉÁËЩɶ£¬ÄÇÔÚ±ÊÕß¿´À´²ÅËãÊÇÈëÃÅÁË¡£Æ¯°×·ÛÊÇɶͬ־ÃÇÓ¦¸Ã²Âµ½ÁË£ºFPGAµÄ½á¹¹¡£

ÍƼöÔĶÁ£º

a) ²ÉÓÃCycloneÓëCyclone-IIϵÁÐÆ÷¼þ½øÐÐÉè¼Æ.pdf

b) altera: Cyclone II Device Handbook.volume1

c) xilinx: ug380~ug389(spartan6)

5.HDL²»ÊÇC£¬½á¹¹¾ö¶¨HDL

ÉÏÃæ˵µ½FPGAµÄ½á¹¹ÊÇƯ°×·Û£¬Õâ½Ú³Ð½ÓÉÏÎļÌÐø£º

ʱÐòÂß¼­µÄÃô¸ÐÁбíΪɶֻÄÜÓÐʱÖӺ͸´Î»£¿ÈçÏ£º

always@£¨posedge clk or negedge rst_n£©

¶ø²»ÄÜÔÙ¼Ó¸öʹÄÜ£º

always@£¨posedge clk or negedge rst_n or posedge CE£©

Ò²²»ÄÜË«ÑØ´¥·¢£º

always@£¨posedge clk or negedge clk£©

Ò²²»ÄÜÑØ´¥·¢ + µçƽ´¥·¢£º

always@£¨posedge clk or gated_logic£©

ÕâÒ»Çо¿¾¹ÊÇΪɶÄØ¡£¡£

ÎÞËû£¬½á¹¹Èç´Ë¡£ÏÂͼÊÇcycloneIIµÄÒ»¸ö»ù±¾µ¥ÔªLE£¨logic element£©£º

ÓÒϽÇÄǸö¼Ä´æÆ÷¿´µ½ÁË°É£¬µ¥ÑØ´¥·¢£¬Òì²½¸´Î»£¬Í¬²½Ê¹ÄÜ¡£Ëùν½á¹¹¾ö¶¨HDLÒ²¡£

˳±ãÔÙ¿´Ò»Ï¼ĴæÆ÷µÄ¸´Î»¶ËÓиöСԲȦ£¬±íʾµÍµçƽ¸´Î»£¬ËùÒÔÎÒÃÇÕâÑùд£º

always@£¨posedge clk or negedge rst_n£©

Ôٽظöspartan3EµÄ£º

¿´³öµãÃûÌÃÁË°É¡£xilinxµÄ¼Ä´æÆ÷ÊǸߵçƽ¸´Î»£¬ËùÒÔÈç¹ûÄãÊÇxilinxÓû§£¬ÄǾÍÒªÕâÑùд£º

always@£¨posedge clk or posedge rst_n£©

ÔÙÀ´ËµÒ»¸ö¾­µäµÄÄ£ÐÍ£ºFSM¡£ÎªÊ²Ã´FSMÍƼöʹÓÃone-hot±àÂ룿Èç¹û¶ÁÕßÓÐÐËȤ£¬¿ÉÒÔ×öÒ»¸öʵÑ飬»á·¢ÏÖone-hotµÄ½âÂëµç·һ°ã¶¼ÊÇСÓÚ4ÊäÈ룬Ҳ¾ÍÊÇÄÜÓÃÒ»¸ö4ÊäÈëLUT¸ã¶¨¡£¼ÙÉèFPGAÖеÄLUTÊÇ100ÊäÈ룬ÄǼ´Ê¹½âÂëµç·ÔÙ¸´ÔÓµãÒ²ÄÜholdסÁ˲»ÊÇ¡£

ÍƼöÔĶÁ£º

a) Éè¼ÆÓëÑéÖ¤£ºVerilog HDL¡£

b) Verilog HDL ³ÌÐòÉè¼ÆÓëÓ¦Óà Íõΰ±à

c) Clifford E. CummingsµÄÂÛÎÄ£¬http://www.sunburst-design.com/papers/

d) ´óÌƵçÐÅFPGACPLDÊý×Öµç·Éè¼Æ¾­Ñé·ÖÏí

6.ÕÆÎÕÖ÷¶¯È¨

ÓÉÓÚ×ÛºÏÆ÷µÄËã·¨ÏÞÖÆ£¬Ö»Óе±ÎÒÃǵÄHDLÂú×ãÒ»¶¨µÄcoding style£¬²ÅÄÜÓ³Éä³öÎÒÃÇÏëÒªµÄ¶«Î÷£¬±ÈÈçÇ°Ãæ˵µÄ¶Ô¼Ä´æÆ÷µÄ½¨Ä£¶ÔÃô¸ÐÁбíµÄÏÞÖƺÍÒªÇ󡣶øÓÐЩ¸´ÔÓÔª¼þÒªÇóµÄcoding styleÔò¸ü¸´ÔÓ£¬±ÈÈçmemory¡¢³Ë·¨Æ÷¡£

Õâʱ¸üºÃµÄÑ¡ÔñÊÇÖ±½Óµ÷ÓÃÈí¼þÌṩµÄ¸÷ÖÖmodule£¬alteraʹÓÃmegawizard£¬xilinxʹÓÃcore generator¡£ÕâÑù²»µ«Ö±½Ó¸æËß×ÛºÏÆ÷ÎÒÏëÒªµÄÊÇʲô£¬°Ñ½âÊÍȨÕÆÎÕÔÚÉè¼ÆÈËÔ±×Ô¼ºÊÖÀ¶øÇÒÓÉÓÚÕâЩmoduleÒ»°ã¶¼ÊǾ­¹ýÓÅ»¯£¨»ùÓÚÆ÷¼þ£©ºóµÄÍø±í£¬ÐÔÄÜÉÏ»á±È×Ô¼ºÐ´µÄ¸üºÃ£¬¸üÁé»î¡£

µ±È»µ÷ÓÃmoduleÒ²Òâζ×ÅÔÚ²»Í¬vendorÖ®¼äת»»½«³ÉΪһ¸ö¶îÍâµÄÎÊÌâ¡£ËùÒÔÓÐЩÉè¼ÆΪÁ˼æÈݸ÷¼ÒµÄ²úÆ·¶ø¹ÊÒⲻʹÓÃmodule¡£

µ½ÕâÀïΪֹ£¬¾­³£ÊÇÐÂÈËÖ¹²½µÄµØ·½£¬¼´ËùÓеľ«Á¦ºÍÊÓÒ°¶¼·ÅÔÚÊý×ÖÇ°¶Ë¡£Òª³ÉΪ¸ßÊÖ£¬ºó¶ËµÄÄÚÈݾßÓÐһƱ·ñ¾öȨ¡£

7.×ۺϣ¨synthesis£©ÓëÓ³É䣨mapping£©

ÓÉÓÚsynplifyÁ®ÆÄÀÏÒÓ£¬Íâ¼ÓÁ½¼Òvendor£¬alteraÓÐÁË×Ô¼ºµÄQis£¬xilinxÓÐÁË×Ô¼ºµÄXST£¬Ê¹µÃÕû¸öÉè¼ÆÁ÷³Ì¶¼ÒѾ­¸ß¶È¼¯³É»¯¡£¼¯³É»¯´øÀ´ÁË·½±ã£¬Ïà¶ÔµÄÒ²ÈÝÒ×ʹ¸ÕÈëÃŵÄÈË·¸ÔΡ£Ôڴ˱ÊÕß²»¶à×ö½âÊÍ£¬Ö±½ÓÉÏͼ±È½Ï£¬ÏàÐÅÄÜ˵Ã÷ÎÊÌâ¡£

***************************************************

module training(clk, rst_n, ce, ina, inb, outa);

input clk;

input rst_n;

input ce;

input ina;

input inb;

output outa;

reg ina_reg1;

reg ina_reg2;

reg ina_reg3;

reg inb_reg1;

reg inb_reg2;

reg inb_reg3;

reg outa;

always@(posedge clk)

begin

ina_reg1 <= ina ;

ina_reg2 <= ina_reg1 ;

ina_reg3 <= ina_reg2 ;

inb_reg1 <= inb ;

inb_reg2 <= inb_reg1 ;

inb_reg3 <= inb_reg2 ;

outa <= ina_reg3 & inb_reg3;

end

endmodule

***************************************************

ÔÚalteraÖÐ×ۺϺó£º

Ó³Éäºó£º

¶øͬÑùµÄcodeÔÚxilinxÖÐ×ۺϺó£º

Ó³Éäºó£º

¿ÉÒÔ¿´³öÁ½¼Òvendor×ۺϵĽá¹ûÊÇÒ»ÑùµÄ£¬Õâʱ»¹Ã»¶ÔÓ¦µ½¾ßÌåµÄFPGAµ×²ãÉÏ£¬Ö»ÊÇRTL¼¶µÄÍø±í¡£

µ«Ó³Éäºó¾ÍÃ÷ÏÔ²»Í¬ÁË£¬alteraʹÓõÄÊǶà¸ö³£¹æµÄ¼Ä´æÆ÷£¬¶øxilinxʹÓõÄÊÇSRL16ÒÆλ¼Ä´æÆ÷£¨µ±È»²»ÊÇ˵xilinx¾Í¸üºÃ£¬Ö»ÊÇÕâ¸öÌØÁиüÀûÓÚxilinxÌØÐԵķ¢»Ó¶øÒÑ£©£»²¢ÇÒ³öÏÖÁËbufferºÍLUT£¬ËµÃ÷Ó³ÉäºóµÄÍø±íÒѾ­¶ÔÓ¦µ½FPGAµÄµ×²ã½á¹¹ÉÏÁË£¬Õâʱ²ÅÕæÕý¾ßÓÐFPGAÌØÉ«¡£

´ÓÓ³É俪ʼ±ã½øÈëÁË·ÇÐÂÈË£¨²»Ò»¶¨ÊǸßÊÖ£¬µ«Ò»¶¨²»ÊǸÕÈëÃŵģ©µÄרÊôÁìÓò£¬¼´Êý×Öºó¶Ë¡£

ÍƼöÔĶÁ£º

a) Âß¼­×ÛºÏÆ÷µÄ¹ÊÊÂ

8.²¼¾Ö²¼Ïߣ¨place & route£¬PAR£©

Ç°¼¸ÌìÓÐÈËÎʱÊÕߣºÓÃchip planner¿´²¼¾Ö²¼ÏߺóµÄÍø±í£¬ÎªÉ¶ÓÐЩÂß¼­·ÅµÃºÜ½ü£¬ÓÐЩ·ÅµÄÔ¶¡£

Ò»°ãÀ´ËµÕâ¸öÎÊÌâûÓбê×¼½â£¬ÒòΪPAR¾ßÓÐÒ»¶¨Ëæ»úÐÔ£¨seed£¬effort levelµÈ¶¼»áÓ°Ï죬ÉõÖÁHDLÖеÄÒ»¸öСС¸Ä¶¯¶¼»áÓ°Ï죩¡£µ±È»Ò²ÓÐһЩ³£¼ûµÄÔ­Òò£¬±ÈÈ磺

ÉÏͼµÄ¼Ä´æÆ÷¾Í´¦ÓÚ×óÓÒΪÄÑ£¬ÀïÍâ²»ÊÇÈ˵ľÀ½á״̬¡£¡£

ÍƼöÔĶÁ£º

a) 2011.2.25_ÔöÁ¿±àÒë by foreveryoung

9.ʱÐò

»¹ÓÐÈË»¹ÎÊÁ˱ÊÕßÒ»¸öÎÊÌ⣬IOʱÐò²»Ì«ÀíÏ룬ÔõôÓÅ»¯£¿±ÊÕߵĻشðÊÇÊ×ÏÈÏÈ×öIOµÄregister packing¡£¶øÄÜÕâô×öµÄ»ù´¡ÊÇIOBÖÐÓÐÒ»¸ö¼Ä´æÆ÷רߺÔð´¦ÀíÕâÖÖÇé¿öµÄ¡£»¹ÊÇÄǾ仰£¬Èç¹ûÁ˽âFPGAµÄ½á¹¹£¬ÕâЩÎÊÌ⽫²»ÔÙÊÇÎÊÌâ¡£

˵µ½Ê±Ðò£¬µ±È»ÒªËµ¾²Ì¬Ê±Ðò·ÖÎö£¨static timing analysis£¬STA£©¡£²»ÊÇËùÓÐʱÐòÎÊÌⶼÐèÒª×öʱÐòÔ¼Êø²ÅÄܽâ¾ö£¬µ«ÊDz»Á˽âʱÐò·ÖÎöµÄ»ù´¡ÖªÊ¶£¬ºÜ¶àÒªÇóµÄcoding styleÊÇÎÞÍêÃÀ½âÊÍͨµÄ¡£

±ÈÈ磬¶¼ÔÚ˵ÉÙÓÃif-else£¬¶øÒªÓÃcase£¬ÎªÉ¶£¿´ðÔ»£¬ÒòΪÂß¼­²ã¼¶ÉÙ¡£ÄÇΪɶÂß¼­²ã¼¶ÉÙ¸üºÃ£¿

ÓÖ±ÈÈ磬¹ØÓÚÒì²½¸´Î»£¬´ó¶¼´¦Àí³ÉÒì²½¸´Î»Í¬²½ÊÍ·Å£¬ÄÇôΪʲôÕâÖֽṹÄÜÓÐЧ½â¾öÑÇÎÊÌâµÄÎÊÌ⣿

ÔÙ±ÈÈ磬ÓÐЩ³õѧÕß²»Ï°¹ßʹÓÃPLL£¬¶øϲ»¶ÓüĴæÆ÷¼ÆÊý·ÖƵ»òÕßÃÅ¿ØÐźÅ×÷ΪʱÖÓ£¬¼´Í¨³£Ëù˵µÄripple clockºÍgated clock¡£ÎªÊ²Ã´ÔÚFPGAÉè¼ÆÖв»ÍƼöÕâÁ½ÀàʱÖÓ£¿

Èç¹ûÓÐʱÐò·ÖÎöµÄ»ù´¡£¬ÕâЩÎÊÌâÄܵõ½ºÜÖ±¹ÛµÄÀí½âºÍÌå»á¡£

µÚ°ËµãºÍµÚ¾ÅµãÖ»ÊǸæË߸ÕÈëÃŵÄÐÂÈË£¬ÓÐÕâô¸ö¶«Î÷£¬µÈÈëÃÅÁËÒÔºó±íÍüÁËÓÐÕâô¸öÁìÓòÐèÒª¹¥¿Ë¡£

ÍƼöÔĶÁ£º

a) ͨÏòFPGA֮·---ÆßÌìÍæתAltera֮ʱÐòƪV1.0

b) ʱÐòÓÅ»¯ÊµÑ鲿·Ö V1.0 by foreveryoung

9.¹ã¸æ

ÒÔÏÂÊÇÎÒ×öµÄһЩ±Ê¼Ç¡£

a) 2011.2.25_ÔöÁ¿±àÒë by foreveryoung

b) Netlist Viewer by foreveryoung

c) ͨÏòFPGA֮·---ÆßÌìÍæתAlteraÖ®»ù´¡ÆªV1.0

d) ͨÏòFPGA֮·---ÆßÌìÍæתAltera֮ʱÐòƪV1.0

e) ͨÏòFPGA֮·---ÆßÌìÍæתAlteraÖ®Ñé֤ƪV1.0

f) ״̬»úÉè¼Æ by foreveryoung V2.0

ºó¼Ç£º

ÉÏÎÄÌá³öÁ˺ܶàΪʲô£¬±ÊÕßûÓÐÖ±½Ó¸ø³ö´ð°¸£¬Áô¸ø¶ÁÕß×Ô¼ºÌ½Ë÷ÁË¡£Èç¹ûÏë¾ÍÕâЩÎÊÌâ½øÐнøÒ»²½½»Á÷£¬Çë¼ÓȺ£º91968656¡£µ±È»£¬³ýÈ¥ÒòÏà¹ØÀíÂÛ²»×ãµ¼ÖµÄÎÊÌ⣬ºÜ¶àʱºòµ±ÓÐÒÉÎÊʱ£¬Ê×ÏÈÒò×öµÄÊÇ×Ô¼º³¢ÊÔ£¬È»ºóͨ¹ý¹Û²ìRTL viewer»òtechnology map viewer£¬·ÂÕæµÈÊÖ¶ÎÑéÖ¤¡£Ëùν´óµ¨¼ÙÉ裬СÐÄÇóÖ¤¡£

ºÃÁË£¬±ÊÕßÔ­»¹Ï볶һÏÂÓÅ»¯£¬µ«×ªÄîÒ»Ï룬ÒѾ­³¶Á˾ŵ㣬¾ÅÄË´óÊý£¬±ã×÷°Õ¡£¶øÇÒÒ»´Î³¶Ì«¶àÈÝÒ×ÈÃÈ˲úÉúÆ£¾ë¸Ð¡£¹Ê±¾Îĵ½´ËΪֹ¡£Ï´ÎÓлú»áÔÙ²¹³ä¡£

 

   
2944 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

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

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

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