FPGA³]p¡X¡X±q¹q¸ô¨ì¨t²Î ( ²Åé ¦r) |
§@ªÌ¡G½²z®x¡B³¯¥¡B´Å¼é¡B§d¿A¶¯ | Ãþ§O¡G1. -> ¹q¤l¤uµ{ -> FPGA |
ĶªÌ¡G |
¥Xª©ªÀ¡G²MµØ¤j¾Ç¥Xª©ªÀ | 3dWoo®Ñ¸¹¡G 39747 ¸ß°Ý®ÑÄy½Ð»¡¥X¦¹®Ñ¸¹¡I¡i¯Ê®Ñ¡j NT°â»ù¡G 295 ¤¸ |
¥Xª©¤é¡G9/19/2014 |
¶¼Æ¡G340 |
¥úºÐ¼Æ¡G0 |
|
¯¸ªø±ÀÂË¡G |
¦L¨ê¡G¶Â¥Õ¦L¨ê | »y¨t¡G ( ²Åé ª© ) |
|
¥[¤JÁʪ«¨® ¢x¥[¨ì§Úªº³Ì·R (½Ð¥ýµn¤J·|û) |
ISBN¡G9787302372110 |
§@ªÌ§Ç¡@|¡@ĶªÌ§Ç¡@|¡@«e¨¥¡@|¡@¤º®e²¤¶¡@|¡@¥Ø¿ý¡@|¡@§Ç |
(²Åé®Ñ¤W©Òz¤§¤U¸ü³sµ²¯Ó®É¶O¥\, ®¤¤£¾A¥Î¦b¥xÆW, YŪªÌ»Ýn½Ð¦Û¦æ¹Á¸Õ, ®¤¤£«OÃÒ) |
§@ªÌ§Ç¡G |
ĶªÌ§Ç¡G |
«e¨¥¡G²{³õ¥i½sµ{ÅÞ¿è°}¦C¡]Field Programmable Gate Array¡AFPGA¡^¾¹¥ó¼sªxÀ³¥Î¤_¨T¨®¹q¤l¡B¦h´CÅé¼s¼½¡Bpºâ¾÷©M¦sÀx¡B®ø¶O¹q¤l¡B¤u·~¡BÂåÀø¡Bx¨Æ¡B¯èªÅ¯è¤Ñ¡B³q«H¡B´ú¶qµ¥»â°ì¡CFPGA¬J¼sªx¨Ï¥Î¦b³q«H°ò¯¸¡B¤j«¬¸ô¥Ñ¾¹µ¥°ªºÝºôµ¸³]³Æ¤¤¡A¤]¨Ï¥Î¦bÅã¥Ü¾¹(¹qµø)¡B§ë¼v»öµ¥¤é±`®a¥Î¹q¾¹¨½¡AFPGA¤w¸g±q³Ì¦ªº¥uÀ³¥Î¤_»²§U¥\¯à©M½¦¦XÅÞ¿è¡]³s±µ¦UºØ¥\¯à¶ô¥H¤Î¶°¦¨¹q¸ôªºÅÞ¿è¹q¸ô¡^ªºÂ²³æ¾¹¥ó¡Aµo®i¨ì²{¤µ¦¨¬°²³¦h²£«~ªº®Ö¤ß¾¹¥ó¡C¨Ï¥ÎFPGA¾¹¥ó¡A¥i¥H¨Ï¶}µo®É¶¡ÁYµu1/2¡ã1/3¡A¦]¦¹FPGA¦¨¬°¹ê²{¡§¤Ö¶q¦h«~ºØ¡¨©M¡§²£«~©P´Áµu¡¨¥«³õ¤¤¤£¥i¯Ê¤Öªº¾¹¥ó¤§¤@¡C °w¹ïFPGA¾¹¥óªº¨Ï¥Î©M¶}µoÂ÷¤£¶}EDA¤u¨ãªº¤ä«ù¡A¦]¦¹¡A¤@¯ëFPGA¾¹¥ó¼t°Ó¤]·|´£¨Ñ¬ÛÀ³ªºEDA¶}µo¤u¨ã¡A¤ñ¦pAltera¤½¥qªºQuartus ¢º/Qsys¶}µo¥»O¡BXilinx¤½¥qªºISE/Vivado¶}µo¥»O¡C¨ä¥L¤½¥q¾¹¥ó³£¦³¦Û¤vªº¶}µo¤u¨ã¡A¦ý¶}µo¬yµ{°ò¥»«O«ù¤@P¡C¼ô±x³o¨Ç¤u¨ã¹ïFPGAªº¶}µoµLºÃ¬O°ò¦©M«nªº¡A¦]¦¹¥»®Ñªºµ²§À³¡¤À¥Dn°¼«¤_³q¹L¤@¨Ç¹êÅç¨ÓÅý¤j®a¤F¸Ñ©M¼ô±xQuartus»PVivado¤u¨ãªº¨Ï¥Î¡C ¤@¯ë¦Ó¨¥¡A¨Ï¥ÎFPGA¦³¨âÓ¼h¦¸¡G ¹q¸ô¯Å©M¨t²Î¯Å¡C²³æ¨Ó»¡¡A¹q¸ô¯Å°¼«¤_¦bFPGA¤W¹ê²{¬Y¨Ç¥\¯à¹q¸ô¡A©ÎªÌ¹ê²{«H¸¹³B²zºâªk¡A¦pFFT¡BCORDIC¡BOFDM¡A©ÎªÌ¹ê²{³q«H¨t²Î¤¤³¡¤À³q«H¨óij¡A¦p°ò¯¸»P®gÀWÂл\³]³Æ¤¤¥Î±o³Ì¼sªxªº³q¥Î¤½²³µL½u±µ¤f¨óij¡]CPRI¡^¡C¨t²Î¯Å³o¨½¥Dn¬O«üFPGA¤¤¨Ï¥ÎCPU¡A¦pNios ¢º¡BMicroBlaze¡BARM¡BPowerPCµ¥³n®Ö¡Bµw®Ö¡Aºc¦¨¤@Ó¤ñ¸û¤jªºSoC¨t²Î¡A¦b¦¹°ò¦¤W¥i¥H¶i¤@¨B¶i¦æ³n¥óÀ³¥Î¶}µo¡C ¦]¦¹¡A¥»®Ñªº½s¼g¤]¥Dn¿í±q³oÓ«ä¸ô¡A¨t²Î´yz¤F±q¹q¸ô¨ì¨t²ÎªºFPGA³]p¤èªk¡B¬yµ{¡B§Þ¥©¥H¤Î¤u¨ã¨Ï¥Î¡C ²Ä1³¹Â²n¤¶²Ð¤FFPGA³]p·§½×¡C ²Ä2³¹¹ïµw¥ó´yz»y¨¥Verilog HDL¶i¦æ¤F²³æ¤¶²Ð¡C ²Ä3³¹¹ï¨Ï¥ÎVerilog HDL¹ï¥]¬A¥[ªk¾¹¦b¤ºªº°ò¦¹q¸ô³]p¶i¦æ¤F·§z¡C ²Ä4³¹¥Dn¤¶²Ð¤FÅÞ¿èºî¦Xªº·§©À¥H¤ÎSynplify¡BDC¤u¨ã¡C ²Ä5³¹¥Dn¤¶²Ð¤F´ú¸Õ¥»Oªº¼¶¼g¥H¤Î¦æ¬°¯Å¥é¯u¤u¨ãModelSimªº¨Ï¥Î¡C ²Ä6³¹´yz¤F¦b³q«H½Õ¨î¤¤¨Ï¥Î¸û¦hªºCORDICºâªk¡C ²Ä7³¹¹ïµL½u³q«H¨t²Î¤¤ªºCPRIµ¥¨óij¶i¦æ¤FÄÄz¡A¦}¸Ôz¤F¨äFPGA¹ê²{¡C ²Ä8³¹´yz¤F³q«H¨t²Îª½©ñ¯¸¤¤¼Æ¦r±µ¤f¹q¸ô³¡¤ÀªºFPGA³]p¡C ²Ä9³¹³q¹L¤@Ó¹q¾÷±±¨î¹ê¨Ò¨Ó´yzFPGA¨t²Î¯Åªº³]p¹Lµ{¡A¥HNios ¢º¬°®Ö¤ß³B²z
¾¹¨Ó·f«Ø¤@ÓSoC¨t²Î¡C ¥Ñ¤_FPGA¾¹¥óªº¼sªxÀ³¥Î¡A¹ï¤_FPGA¾¹¥ó²Õ¦¨ªº¨t²Îªº´ú¸Õ»P»{ÃÒ¤]¦¨¤F«D±`«nªº¤@Ó½ÒÃD¡A¬G²Ä10³¹¤¶²Ð¤F¯èªÅ¯è¤Ñ»â°ìªº¤@Óµw¥ó¨t²Î³]p¼Ð·ÇDOúQ254¡A°¼«¤¶²Ð¨ä¾AÀ³¤_FPGA¾¹¥óªº¬yµ{»P·Ç«h¡C ¬°¤F«K¤_ŪªÌ¹ê½î¾Þ§@¡A²Ä11³¹µ¹¥X¤FÂ×´IªºFPGA³]p¹êÅç¡A¥]¬A°ò¦¹êÅç©M°ò¤_Qsys¡BSOPCªººî¦X¹êÅç¡A¦p£gClinux¦bNios ¢º¤Wªº²¾´Ó¡F ÁÙ¯S§O¤¶²Ð¤FVivado HLS¤u¨ãªº¨Ï¥Î¡CHLS§@¬°¤@ºØ¥Ø«e°Ó·~¤Æªº°ª¼h¦¸ºî¦X¤u¨ã¡A¹ï¨t²Î¯Å³]p¤Hû¤Îºâªk³]p¤Hû³£¨ã¦³«D±`¤jªº§l¤Þ¤O¡C®Ñ¤¤µ¹¥Xªº·½¥N½X³£¸g¹L¤F¹ê»Ú¶µ¥ØªºÀËÅç¡AŪªÌ¥i¦b²MµØ¤j¾Ç¥Xª©ªÀºô¯¸¤U¸ü¬ÛÃöªº·½¥N½X¡C ¥»®Ñ¥i§@¬°¹q¤l¡B³q«H¡B¦Û°Ê¤Æ¡Bpºâ¾÷¬ì¾Ç»P§Þ³Nµ¥¬ÛÃö±M·~ªº°ª¦~¯Å¥»¬ì¥Í¤Î¬ã¨s¥Íªº±Ð¾Ç¥Î®Ñ¡A¤]¥i§@¬°±q¨ÆFPGA³]p¤u§@ªº¤uµ{®vªº°Ñ¦Ò¹Ï®Ñ¡C ¦b½s¼g¥»®Ñªº¹Lµ{¤¤¡A¤Þ¥Î¤F¤j¶q°Ñ¦Ò¤åÄm¡A¹ï¦¹ªí¥Ü·PÁ¡C®Ñ¤¤¤£¤Ö¸ê®Æ¨Ó¦ÛAltera©MXilinx¤½¥q¡AAltera¤j¾Çp¹ºt³d¤H³¯½Ã¤¤³Õ¤h©MXilinx¤j¾Çp¹ºt³d¤HÁ³ͦ~³Õ¤h§¡¬°¥»®Ñªº½s¼g´£¨Ñ¤F¤j¶q¸ê®Æ»PÀ°§U¡A¹ï¨â¦ìP¥HÁ·N¡C·PÁ²MµØ¤j¾Ç¥Xª©ªÀªº¤u§@¤Hû¬°¥»®Ñ¶¶§Q¥Xª©©Ò¥I¥Xªº¨¯¶Ô³Ò°Ê¡C¥»¬ì¥Í±iÂ@²±¹ïVivado HLS¹êÅç¶i¦æ¤FÅçÃÒ¡A¬ã¨s¥Í§õÀR¶é¡BªL¨ô³Ó¬°¥»®Ñ´£¨Ñ¤F¬ÛÃö¨ó§U¡AÁ§Ӥ~¡BªL¿P¤ª¦P¾Ç¹ï¥»®Ñ¥ç¦³°^Äm¡A¤@¦}ªí¥Ü·PÁ¡C ¥Ñ¤_§@ªÌ¤ô¥¦³¡A®Ñ¤¤Ãø§K·|¦³¯Äº|¤§³B¡A·q½Ð±M®a©MŪªÌ§åµû«ü¥¿¡A¦³¿³½ìªºÅªªÌ¥iµo°e¶l¥ó¨ìliux@tup.tsinghua.edu.cn¡C ½²z®x 2014¦~5¤ë |
¤º®e²¤¶¡G¥»®Ñ´yz¤F±q¹q¸ô¨ì¨t²ÎªºFPGA³]p¤èªk¡B¬yµ{¡B§Þ¥©¥H¤Î¤u¨ã¨Ï¥Î¡A¤º®e²[»\¤FFPGA³]p¬yµ{¡Bµw¥ó´yz»y¨¥Verilog HDL¡B°ò¦¹q¸ô³]p¡BÅÞ¿èºî¦X¡BSynplify»PDC¤u¨ã¨Ï¥Î¡B´ú¸Õ¥»Oªº¼¶¼g¥H¤ÎModelSimªº¨Ï¥Î¡F ¦}¹ïCORDICºâªk¡BCPRI¨óij¤Î¼Æ¦rª½©ñ¯¸ªºFPGA¹ê²{¶i¦æ¤FÄÄz¡F ÀH¦Z³q¹L¤@Ó¹q¾÷±±¨î¹ê¨Ò¨Ó´yzFPGA¨t²Î¯Åªº³]p¹Lµ{¡F ±µµÛ¤¶²Ð¤FDOúQ254¼Ð·Ç¦bFPGA³]p¤¤ªºÀ³¥Î¡C¬°¤F«K¤_ŪªÌ¹ê½î¾Þ§@¡A®Ñ¤¤µ¹¥X¤FÂ×´IªºFPGA³]p¹êÅç¡A¥]¬A°ò¦¹êÅç©M°ò¤_Qsys¡BSOPCªººî¦X¹êÅç¡A¦P®É¤¶²Ð¤FVivado HLS¤u¨ãªº¨Ï¥Î¡C¥»®Ñ¹ê¨ÒÂ×´I¡A¥B¶Kªñ¹ê»Ú¶}µo¡A®Ñ¤¤µ¹¥Xªº·½¥N½X³£¸g¹L¤F¹ê»Ú¶µ¥ØªºÀËÅç¡AŪªÌ¥i¦b²MµØ¤j¾Ç¥Xª©ªÀºô¯¸¤U¸ü¬ÛÃöªº·½¥N½X¡C ¥»®Ñ¥i§@¬°¹q¤l¡B³q«H¡B¦Û°Ê¤Æ¡Bpºâ¾÷¬ì¾Ç»P§Þ³Nµ¥¬ÛÃö±M·~ªº°ª¦~¯Å¥»¬ì¥Í¤Î¬ã¨s¥Íªº±Ð¾Ç¥Î®Ñ¡A¤]¥i§@¬°±q¨ÆFPGA³]p¤u§@ªº¤uµ{®vªº°Ñ¦Ò¹Ï®Ñ¡C |
¥Ø¿ý¡G²Ä1³¹FPGA³]p·§½×
1.1FPGAªä¤ùµ²ºc»P¯SÂI
1.2FPGA¤u§@ì²z
1.3FPGA¥Dn¾¹¥ó
1.3.1Xilinx
1.3.2Altera
1.4FPGA³]p¬yµ{
1.5FPGA¶}µo¤u¨ã
1.6FPGAÀ³¥Î
²Ä2³¹µw¥ó´yz»y¨¥Verilog HDL
2.1Verilog HDLªº°ò¥»³WS
2.1.1¼ÐÃѲÅ
2.1.2Âà¸q¼ÐÃѲÅ
2.1.3ªÅ¥Õ²Å
2.1.4ª`ÄÀ
2.2¼Æ¾ÚÃþ«¬
2.2.1ÅÞ¿èÈ
2.2.2½uºô
2.2.3±H¦s¾¹
2.2.4¼Æ¦rªºªí¥Ü
2.2.5¦V¶q
2.2.6¼Æ²Õ
2.2.7°Ñ¼Æ
2.2.8¦r²Å¦ê
2.3¹Bºâ²Å
2.4¼Ò¶ô
2.4.1¼Ò¶ôªº°ò¥»·§©À
2.4.2¼Ò¶ôªº¨Ò¤Æ
2.4.3¼Ò¶ôªº´ú¸Õ
2.5¹Lµ{»y¥y
2.5.1¨âÓ¹Lµ{
2.5.2±H¦s¾¹Åܶqªº¹Lµ{½áÈ
2.5.3½uºôÅܶqªº³sÄò½áÈ
2.5.4®É§Ç±±¨î
2.5.5¶¶§Ç¥N½X¶ô»P¦}¦æ¥N½X¶ô
2.6±ø¥ó»y¥y
2.7¥ô°È©M¨ç¼Æ
2.8¨t²Î¥ô°È
2.9½sĶ«ü¥O
2.10ªý¶ë½áÈ»P«Dªý¶ë
FPGA³]p¡X¡X±q¹q¸ô¨ì¨t²Î
²Ä3³¹FPGA°ò¦¹q¸ô³]p
3.1²Õ¦X¹q¸ô
3.2®É§Ç¹q¸ô
3.3¼Æ¾Ú³q¸ô
3.3.1¥[ªk¾¹°ò¦²z½×
3.3.2±`¥Î¼Æ¾Ú³q¸ô³]p
²Ä4³¹ÅÞ¿èºî¦X
4.1ÅÞ¿èºî¦X¥Øªº
4.2Design Compilerºî¦X
4.2.1·Ç³ÆDesign Compiler±Ò°Ê¸}¥»¤å¥ó
4.2.2¬ù§ô¤å¥ó
4.2.3³ø§i¤ÀªR
4.2.4Àu¤Æªº°Ñ¼Æ¿ï¾Ü
4.2.5ºî¦Xµ²ªG
4.3Synplifyªººî¦X³]p
4.4HDLªº¥iºî¦X©Ê³]p
4.4.1ª¬ºA¾÷³]p
4.4.2¹ê¨Ò¤Æ¸ê·½
4.4.3ºî¦X¿ï¶µ
²Ä5³¹Testbench»PModelSim¥é¯u
5.1Testbench¹ê¨Ò
5.1.1²£¥Í®ÉÄÁ«H¸¹
5.1.2´£¨Ñ¿EÀy«H¸¹
5.1.3Åã¥Üµ²ªG
5.1.4Verilog HDL Testbench¹ê¨Ò
5.1.5¦Û°ÊÅçÃÒ
5.1.6¦Û§ÚÀˬdTestbench
5.1.7½s¼gTestbenchªº·Ç«h
5.2¥é¯u¤u¨ãModelSim
²Ä6³¹CORDICºâªk¤Î³q«H½Õ¨î§Þ³N
6.1CORDICºâªk
6.2FPGA¹ê²{
6.3°ò¤_CORDICºâªkªº³q«H½Õ¨î§Þ³N
6.4ISE¤¤CORDIC IP®Öªº¨Ï¥Î
²Ä7³¹FPGA³q«H¨óij³]p
7.1CPRI¨óij
7.1.1¨óijS³ò
7.1.2´Vµ²ºc
7.1.3CPRI¦bFPGA¤¤¹ê²{
7.2IR¨óij²¤¶
7.2.1Ir±µ¤fª«²z¼h
7.2.2Ir¨óij¶Ç¿é´V®É§Çµ²ºc
7.2.3C&M³q¹D
7.2.4ª«²z¼h±±¨î¦r©w¸q
7.2.5Ir¨óij¤¤ªº®É©µ´ú¶q
7.2.6FPGA¹ê²{Ir¨óij
²Ä8³¹¼Æ¦rª½©ñ¯¸ªºFPGA³]p
8.1ª½©ñ¯¸FPGA¨t²Î³]p
8.2¼Æ¾Ú±µ¤f
8.2.1ADC±µ¤f
8.2.2DAC±µ¤f
8.2.3SPI±µ¤f
8.3«H¸¹³B²z³¡¤À
8.3.1¼Æ¾Úªº©â¨ú©M¤º´¡
8.3.2«H¸¹ªº¤WÅÜÀW©M¤UÅÜÀW
²Ä9³¹¥ÃºÏ¦P¨B¹q¾÷¥Ú¶q±±¨î¨t²ÎªºFPGA¹ê²{
9.1¥ÃºÏ¦P¨B¹q¾÷¥Ú¶q±±¨î¨t²Î²¤¶
9.2¨t²Îµw¥ó¥»O
9.3³n¥ó¶}µo¥»O
9.4FPGA¤ù¤W¹q¸ô³]p
9.5¹êÅçÅçÃÒ
²Ä10³¹¥i¾a©Ê³]p¡X¡XDOúQ254
10.1DOúQ254
10.2FPGA»PDOúQ254
10.2.1DOúQ254°ò¥»±¡ªp
10.2.2DOúQ254µw¥óªº¥Í©R©P´Á
10.2.3³W¹º
10.2.4µw¥ó¦w¥þ©Êµû»ù
10.2.5µw¥ó³]p¬yµ{
10.2.6¤ä«ù¬yµ{
10.2.7¤åÀÉ©M²Õ´
10.3DOúQ254¼Ð·Ç©M¬ü°êÁp¨¹¯èªÅ§½
10.4DOúQ254¶µ¥ØªºFPGA¤u¨ã¬yµ{
10.5FPGA³]pªº¤u¨ã¬yµ{
10.6µ²½×
²Ä11³¹FPGA³]p¹êÅç
11.1¹êÅç¤@¡G LED¿O±±¨î
11.2¹êÅç¤G¡G °ò¤_IP®Ö³]pªº¼Æ½XºÞÅã¥Ü
11.3¹êÅç¤T¡G °ò¤_Verilog HDL³]pªº¼Æ½XºÞÅã¥Ü
11.4¹êÅç¥|¡G °ò¤_DSP Builder³]pªºclark§¤¼ÐÅÜ´«¼Ò¶ô
11.5¹êÅ礡G ¤À§O°ò¤_SOPC Builder©MQsys¤u¨ã±±¨îLED¿O
11.5.1¹êÅ示®e
11.5.2SOPC Builder¤u¨ã³]p¬yµ{
11.5.3Qsys¤u¨ã³]p¬yµ{
11.5.4¹êÅç¤pµ²
11.6¹êÅ礻¡G °ò¤_Nios ¢º©w®É¤¤Â_±±¨îLED°{Ã{
11.7¹êÅç¤C¡G Nios ¢º»PLabVIEWªº¦ê¤f³q«H
11.8¹êÅç¤K¡G µ{§Ç¿N¼g
11.9¹êÅç¤E¡G DE2¤Wªº£gClinux²¾´Ó
11.9.1¥ô°Èn¨D
11.9.2Nios ¢ºµw¥ó©w¨î
11.9.3³»¼h¤å¥ó
11.9.4½sĶ¨t²Î
11.9.5¤º®Öµ²ºc
11.9.6¤å¥ó®æ¦¡
11.9.7¶iµ{½Õ«×
11.9.8¤å¥ó¨t²Î
11.9.9²¾´Ó¼h¦¸»P¥N½Xµ²ºc
11.9.10·½½XÀò¨ú
11.9.11¤º®Ö°Åµô©M½sĶ
11.9.12¬M¹³¥Í¦¨
11.9.13Ãè¹³¤U¸ü
11.9.14²×ºÝ½Õ¸Õ
11.9.15°õ¦æTCP/IPºôµ¸©R¥O
11.10¹êÅç¤Q¡G VGAµøÀWÅã¥Ü¨t²ÎªºSOPC³]p
11.10.1Nios ¢ºªºµw¥ó¶}µo
11.10.2¥Í¦¨Nios ¢ºµw¥ó¨t²Î
11.10.3¨t²Îªº³n¥ó³]p
11.10.4VGAµøÀWÅã¥Ü¨t²ÎªºNios ¢º IDE½Õ¸Õ
11.11¹êÅç¤Q¤@¡G Vivado HLS³]p¬yµ{¹êÅç
°Ñ¦Ò¤åÄm |
§Ç¡G |