Ïêϸ½éÉÜ
¿Î³Ì¼ò½é
¡¡¡¡¿Î³ÌÄ¿±ê
¡¡¡¡±¾¿Î³Ì½áºÏÄ¿Ç°ÈÈÃŵÄFPGA¼¼Êõ£¬ÓɶàÄ꿪·¢¾ÑéµÄ¹¤³ÌʦÊڿΣ¬ÏµÍ³µØ½éÉÜÁËFPGAµÄ»ù±¾Éè¼Æ·½·¨¡£ÔÚѧϰFPGA/CPLD¸ÅÄîµÄ»ù´¡ÉÏ£¬Ñ§Ï°Altera¹«Ë¾ºÍXilinx¹«Ë¾Ö÷Á÷FPGA/CPLDµÄ½á¹¹ÓëÌص㡣±¾¿Î³ÌÔÚFPGAÓ¦Óÿª·¢·½ÃæÖ÷ÒªÓУº³õ¼¶ÆªÄÚÈÝ°üÀ¨VerilogHDLÓïÑÔ»ù´¡£¬Altera¹«Ë¾FPGAÉè¼Æ¹¤¾ßQuartusIIÈí¼þ×ÛÊö£¬FPGA×éºÏÂß¼Éè¼Æ¼¼ÊõµÈ£¬¸ß¼¶ÆªÄÚÈÝ°üÀ¨FPGAµÄÓ²¼þÉè¼Æ¼¼Êõ£¬»ùÓÚNiosIIµÄS0PCϵͳÉè¼Æ£¬NiosIIS0PCϵͳÉè¼ÆʵÀý£¬ÏµÍ³Ê±ÐòÂß¼Éè¼Æ¼¼ÊõÒÔ¼°»ùÓÚFPGAµÄIPºËÉè¼Æ¼¼Êõ¡£
¡¡¡¡¿Î³Ì´ó¸Ù
¡¡¡¡µÚÒ»½×¶Î£ºÖ÷Òª°ïÖúѧԱÁ˽âFPGAϵͳÉè¼ÆµÄ»ù´¡ÖªÊ¶£¬ÕÆÎÕFPGA×îСϵͳӲ¼þµç·Éè¼Æ·½·¨£¬Ñ§»á²Ù×÷QuartusIIÈí¼þÀ´Íê³ÉFPGAµÄÉè¼ÆºÍ¿ª·¢¡£
¡¡¡¡1.1¿É1.±à³ÌÂß¼Æ÷¼þ¼ò½é
¡¡¡¡2.¿É±à³ÌÂß¼Æ÷¼þµÄ·¢Õ¹ÀúÊ·
¡¡¡¡3.FPGA/CPLDµÄ»ù±¾½á¹¹
¡¡¡¡3.1FPGAµÄ»ù±¾½á¹¹
¡¡¡¡3.2CPLDµÄ»ù±¾½á¹¹
¡¡¡¡3.3FPGAºÍCPLDµÄ±È½Ï
¡¡¡¡3.4FPGA/CPLDµÄÉè¼ÆÁ÷³Ì
¡¡¡¡4.PLD/FPGAµÄ·ÖÀàºÍʹÓÃ
¡¡¡¡5.FPGA¹Ø¼üµç·µÄÉè¼Æ£¨×îСµç·Éè¼Æ£©£º
¡¡¡¡5.1FPGA¹Ü½ÅÉè¼Æ
¡¡¡¡5.2ÏÂÔØÅäÖÃÓëµ÷ÊÔ½Ó¿Úµç·Éè¼Æ
¡¡¡¡5.3¸ßËÙSDRAM´æ´¢Æ÷½Ó¿Úµç·Éè¼Æ
¡¡¡¡5.4Òì²½SRAM£¨ASRAM£©´æ´¢Æ÷½Ó¿Úµç·Éè¼Æ
¡¡¡¡5.5FLASH´æ´¢Æ÷½Ó¿Úµç·Éè¼Æ
¡¡¡¡5.6¿ª¹Ø¡¢°´¼üÓë·¢¹âLEDµç·Éè¼Æ
¡¡¡¡5.7VGA½Ó¿Úµç·Éè¼Æ
¡¡¡¡5.8PS/2Êó±ê¼°¼üÅ̽ӿڵç·Éè¼Æ
¡¡¡¡5.9RS-232´®¿Ú
¡¡¡¡5.10×Ö·ûÐÍÒº¾§ÏÔʾÆ÷½Ó¿Úµç·Éè¼Æ
¡¡¡¡5.11USB2.0½Ó¿ÚоƬCY7C68013µç·Éè¼Æ
¡¡¡¡5.12µçÔ´µç·Éè¼Æ
¡¡¡¡5.13¸´Î»µç·Éè¼Æ
¡¡¡¡5.14²¦Â뿪¹Øµç·Éè¼Æ
¡¡¡¡5.15i2c×ÜÏßµç·Éè¼Æ
¡¡¡¡5.16ʱÖÓµç·Éè¼Æ
¡¡¡¡5.17ͼÐÎÒº¾§µç·Éè¼Æ
¡¡¡¡µÚ¶þ½×¶Î£º½éÉÜÊìÁ·ÕÆÎÕÓ²¼þÃèÊöÓïÑÔ(VerilogHDL)ÊÇFPGA¹¤³ÌʦµÄ»ù±¾ÒªÇó¡£Í¨¹ý±¾½Ú¿Î³ÌµÄѧϰ£¬Ñ§Ô±¿ÉÒÔÁ˽âÄ¿Ç°×îÁ÷ÐеÄVerilogHDLÓïÑԵĻù±¾Óï·¨£¬ÕÆÎÕVerilogHDLÓïÑÔÖÐ×î³£ÓõĻù±¾Óï·¨¡£Í¨¹ý±¾½Ú¿Î³Ìѧϰ£¬Ñ§Ô±¿ÉÒÔÉè¼ÆһЩ¼òµ¥µÄFPGA³ÌÐò£¬ÕÆÎÕ×éºÏÂß¼ºÍʱÐòÂß¼µç·µÄÉè¼Æ·½·¨¡£Í¨¹ýʵսѵÁ·£¬Ñ§Ô±¿ÉÒÔ¶ÔVerilogHDLÓïÑÔÓиüÉîÈëµÄÀí½âºÍÈÏʶ¡£
¡¡¡¡2.1Ó²¼þÃèÊöÓïÑÔ¼ò½é
¡¡¡¡2.1.1VerilogHDLµÄÌصã
¡¡¡¡2.1.2VerilogHDLµÄÉè¼ÆÁ÷³Ì¼ò½é
¡¡¡¡2.2VerilogÄ£¿éµÄ»ù±¾¸ÅÄîºÍ½á¹¹
¡¡¡¡2.2.1VerilogÄ£¿éµÄ»ù±¾¸ÅÄî
¡¡¡¡2.2.2VerilogHDLÄ£¿éµÄ»ù±¾½á¹¹
¡¡¡¡2.3Êý¾ÝÀàÐͼ°Æä³£Á¿¼°±äÁ¿
¡¡¡¡2.4ÔËËã·û¼°±í´ïʽ
¡¡¡¡2.4.1ËãÊõÔËËã·û
¡¡¡¡2.4.2¹ØϵÔËËã·û
¡¡¡¡2.4.3Âß¼ÔËËã·û
¡¡¡¡2.4.4°´Î»Âß¼ÔËËã·û
¡¡¡¡2.4.5Ìõ¼þÔËËã·û
¡¡¡¡2.4.6ÒÆλÔËËã·û
¡¡¡¡2.4.7Æ´½ÓÔËËã·û
¡¡¡¡2.4.8Ëõ¼õÔËËã·û
¡¡¡¡2.5Ìõ¼þÓï¾äºÍÑ»·Óï¾ä
¡¡¡¡2.5.1Ìõ¼þÓï¾ä
¡¡¡¡2.5.2caseÓï¾ä
¡¡¡¡2.5.3whileÓï¾ä
¡¡¡¡2.5.4forÓï¾ä
¡¡¡¡2.6½á¹¹ËµÃ÷Óï¾ä
¡¡¡¡2.6.1initialÓï¾ä
¡¡¡¡2.6.2alwaysÓï¾ä
¡¡¡¡2.6.3taskºÍfunctionÓï¾ä
¡¡¡¡2.7ϵͳº¯ÊýºÍÈÎÎñ
¡¡¡¡2.7.1±ê×¼Êä³öÈÎÎñ
¡¡¡¡2.7.2·ÂÕæ¿ØÖÆÈÎÎñ
¡¡¡¡2.7.3ʱ¼ä¶ÈÁ¿ÏµÍ³º¯Êý
¡¡¡¡2.7.4Îļþ¹ÜÀíÈÎÎñ
¡¡¡¡2.8С½á
¡¡¡¡µÚÈý½×¶ÎAlteraFPGAÉè¼Æ
¡¡¡¡3.1Altera¸ßÃܶÈFPGA
¡¡¡¡3.1.1Ö÷Á÷¸ß¶ËFPGA——StratixϵÁÐ
¡¡¡¡3.1.2ÄÚǶ¸ßËÙ´®ÐÐÊÕ·¢Æ÷µÄFPGAStratixGXϵÁÐ
¡¡¡¡3.2AlteraµÄCycloneϵÁеͳɱ¾FPGA
¡¡¡¡3.2.1ÐÂÐͿɱà³Ì¼Ü¹¹
¡¡¡¡3.2.2ǶÈëʽ´æ´¢×ÊÔ´
¡¡¡¡3.2.3רÓÃÍⲿ´æ´¢½Ó¿Úµç·
¡¡¡¡3.2.4Ö§³ÖµÄ½Ó¿ÚºÍÐÒé
¡¡¡¡3.2.5ËøÏà»·µÄʵÏÖ
¡¡¡¡3.2.6I/0ÌØÐÔ
¡¡¡¡3.2.7NiosIIǶÈëʽ´¦ÀíÆ÷
¡¡¡¡3.2.8ÅäÖ÷½°¸
¡¡¡¡3.3AlteraµÄMAXIIϵÁÐCPLDÆ÷¼þ
¡¡¡¡3.4QuartusIIÈí¼þ×ÛÊö
¡¡¡¡3.4.1QuartusIIÈí¼þµÄÌص㼰֧³ÖµÄÆ÷¼þ
¡¡¡¡3.4.2QuartusIIÈí¼þµÄ¹¤¾ß¼°¹¦Äܼò½é
¡¡¡¡3.4.3QuartusIIÈí¼þµÄÓû§½çÃæ
¡¡¡¡3.5Éè¼ÆÊäÈë
¡¡¡¡3.5.1½¨Á¢¹¤³Ì
¡¡¡¡3.5.2½¨Á¢Éè¼Æ
¡¡¡¡3.6×ÛºÏ
¡¡¡¡3.7²¼¾Ö²¼Ïß
¡¡¡¡3.8·ÂÕæ
¡¡¡¡3.9±à³ÌÓëÅäÖÃ
¡¡¡¡3.10С½á
¡¡¡¡µÚËĽ׶ΣºËæ×ÅFPGAоƬµÄÐÔÄܺÍÃܶȲ»¶ÏÌá¸ß,»ùÓÚFPGA²úÆ·¿ª·¢ÕýÔÚÖð½¥³ÉÊì²¢ÇÒÔںܶàÁìÓòµÃµ½ÁËÓ¦Óᣱ¾½×¶ÎÖصãѧϰÔÚFPGA²úÆ·Éè¼ÆºËÐļ¼Êõ
¡¡¡¡4.1FPGAµÄÓ²¼þÉè¼Æ¼¼Êõ
¡¡¡¡4.2»ùÓÚNiosIIµÄS0PCϵͳÉè¼Æ
¡¡¡¡4.3NiosIIµÄS0PCϵͳµÄÉè¼ÆʵÀý
¡¡¡¡4.4ϵͳʱÐòÂß¼Éè¼Æ¼¼Êõ
¡¡¡¡4.5»ùÓÚFPGAµÄIPºËÉè¼Æ¼¼Êõ
¡¡¡¡4.6FPGAµÄÊý¾Ý²É¼¯ÏµÍ³Éè¼Æ
¡¡¡¡4.7»ùÓÚFPGAµÄÓ²¼þ»Ø··ÂÕæÆ÷Éè¼Æ
¡¡¡¡µÚÎå½×¶ÎAlterµÄIP¹¤¾ß
¡¡¡¡5.1IPµÄ¸ÅÄî
¡¡¡¡5.2Alter¿ÉÌṩµÄIP
¡¡¡¡5.3AlterIPÔÚÉè¼ÆÖеÄ×÷ÓÃ
¡¡¡¡5.4ʹÓÃAlterµÄ»ù±¾ºê¹¦ÄÜ
¡¡¡¡5.5ʹÓÃAlterµÄIPºË
¡¡¡¡µÚÁù½×¶Î£º×ܽá´ðÒÉ£¬Óɹ¤³Ìʦ´øÁìѧԱÉè¼ÆÏîÄ¿
¡¡¡¡ÖÊÁ¿±£ÕÏ£º
¡¡¡¡1.ÿ¸ö°àÌṩ³ä×ãµÄʵ¼ù²Ù×÷ºÍÎÊÌ⸨µ¼´ðÒÉʱ¼ä¡£±£Ö¤ÈËÊÖһ̨»ú¡¢1Ì×ʵÑéÆ÷²Ä£¡
¡¡¡¡2.ËùÓа༶¾ù²ÉÓÃС°àÊڿΣ¬20%ÀíÂÛ+60%ʵս+20%ÏîĿʵ¼ù¡£
¡¡¡¡3.ÔÚѧϰÆÚ¼ä¾ù»á»ñµÃÎÒ¹«Ë¾Ñз¢²¿¼¸Ê®Î»×ÊÉî¸ß¼¶¹¤³Ìʦ¡¢¹ú¼ÊÏîÄ¿¾ÀíµÈµÄ¼¼ÊõÖ§
¡¡¡¡³Ö£¬³ýÕý³£Ñ§Ï°Ê±¼äÍ⣬ÆäËûÈκÎʱ¼äѧԱ¾ù¿ÉÇ°À´½øÐжîÍâʵ¼ù¡£
¡¡¡¡4.ºÏ¸ñ°ä·¢Ö¤Ê飺ȫ¹ú¸ßм¼ÊõÈ˲š¶FPGAÉè¼Æ¡·Ö¤Êé¡£
¡¡¡¡5.ÌṩһÄêµÄµÄÃâ·Ñ¼¼ÊõÖ§³Ö·þÎñ¡£
¡¡¡¡6.ÓÅÐãѧԱ¿ÉÒÔ¼ÓÈëÐÅÓ¯´ïǶÈëʽÑз¢ÖÐÐľÍÖ°»òÕß¼æÖ°²ÎÓëÏîÄ¿Éè¼Æ¡£
ÒÔÉϾÍÊÇǶÈëʽÅàѵ¿Î³ÌµÄÈ«²¿ÄÚÈݽéÉÜ£¬ÈçÐèÁ˽â¸ü¶àµÄǶÈëʽÅàѵ°à¡¢¿Î³Ì¡¢¼Û¸ñ¡¢ÊÔÌýµÈÐÅÏ¢£¬Ò²¿ÉÒÔµã»÷½øÈë ǶÈëʽ Ïà¹ØƵµÀ£¬¶¨ÖÆרÊô¿Î³Ì£¬¿ªÊ¼ÄúµÄѧϰ֮Âá£