À×»ð

¡¾¼¼Êõ·ÖÏí¡¿FPGAÔÓ¼ÇÖ®»ù´¡Æª¶þ¼°Demo°¸Àý

·¢²¼Ê±¼ä2021-01-19

·ÖÏí

ǰÑÔ


±¾ÎĽÓÐøÉÏһƪ¡¶FPGAÔӼǻù´¡Æª¡·£¬¼ÌÐøÎª´ó¼Ò·ÖÏíIPÀý»¯ºÍ¼¸¸ö»ùÓÚFPGAоƬʵÏÖµÄDemo¹¤³Ì¡£


IPÀý»¯


IP¼´ÊÇÒ»¸ö·â×°ºÃµÄÄ£¿é£¬¼¯³ÉÔÚÏàÓ¦µÄ¿ª·¢»·¾³ÀïÃæ£¬ÒÔ°²Â·µÄTDÈí¼þΪÀý£¬²»Í¬ÏµÁеÄоƬ¼¯³ÉÁ˲»Í¬µÄIPÄ£¿é£¬¿ÉÒÔͨ¹ýÈí¼þÀý»¯µ÷Óá£


ÒÔÏÂÊǰ²Â·TD4.6.5¼¯³ÉµÄEF3L40CG332BµÄÏà¹ØIP¡£



1.1 PLL&RAM


ÒÔÀý»¯PLLºÍRAMΪÀý£¬ÊµÏÖÁ½¸öÒ첽˫¿Ú RAM¡£


¶ÁдʱÖÓ¶¼ÉèÖà 100Mhz£¬ Á½¸ö RAM Ϊ RAMA ºÍRAMB£¬ Éî¶ÈΪ 1024£¬Î»¿íΪ 8bit£¬Ð´ÈëÊý¾ÝΪ 8bit£¬100Mhz ³ÖÐøÊý¾ÝÁ÷£¬ µ± RAMA±»Ð´Èë 1024 ×Ö½ÚÊý¾ÝºóÇл»µ½Ð´ RAMB£¬ RAMB ±»Ð´Èë 1024 ×Ö½ÚºóÇл» RAMA¡£ÒÔ´ËÑ­»·ÀàÍÆ¡£


µ± RAMA ±»Ð´Èë 1024 ×Ö½Úʱ£¬ ¸ø¶ÁʱÐòÌṩһ¸öÆô¶¯ÐźŶÁÈ¡ RAMA µÄÊý¾Ý£¬ ¶ÁÈ¡Íê RAMA µÄ 1024 ×Ö½ÚÊý¾Ýʱ£¬ Çл»¶Á RAMB ÒÔ´ËÀàÍÆ¡£


Õâ¸ö¹¤³ÌµÄ¹¤³Ì½á¹¹ÈçÏÂͼ£º



Ê×ÏÈEF3L40CG332B_DEV¿ª·¢°åÌṩÁË25MhzµÄ¾§ÕñʱÖÓÊäÈëµ½EF3L40CG332BµÄʱÖӹܽš£



ÏëÒªµÃµ½100MhzµÄ¶ÁдËÙÂÊ£¬ÐèÒªÏÈÓÃPLLµÃµ½±¶ÆµÊ±ÖÓ¡£



ÔÚtoolsĿ¼Ïµã»÷IP Generator½øÈëIP coreÒ³Ãæ£¬²¢Ñ¡ÔñPLL£¬ÊäÈëʱÖÓÌîÈë°å×Ó¾§Õñ25Mhz¡£



Êä³öʱÖÓÌîÈëËùÐèÒªµÄ100Mhz£¬²¢´ÓC0Êä³ö¡£



ÉèÖÃÍê³Éºó£¬Éú³ÉµÄmoduleÉùÃ÷ÈçÏ£¨ÍêÕûÄ£¿é¿É²Î¿¼´úÂ룩



ÔÙÉú³ÉramµÄIPÄ£¿é


ÔÚIP coreÖÐÑ¡ÔñRAM



Memory typeÑ¡Ôñ¼òµ¥Ë«¿Úram£¬memory sizeÉèÖÃλ¿í8bitÉî¶È1024


ÉèÖÃÍê³Éºó£¬Éú³ÉµÄmoduleÉùÃ÷ÈçÏ£¨ÍêÕûÄ£¿é¿É²Î¿¼´úÂ룩



È»ºó±àд¶¥²ãÎļþ²¢ÇÒÔÚ¶¥²ãÀý»¯PLLºÍRAMA¡¢RAMB¡£


¶¥²ãÎļþÖÐÖ÷ÒªÊǶÔramµÄÊäÈë¿Ú½øÐÐʱÐò²Ù×÷£¬°üÀ¨ramA¡¢ramBµÄ¶ÁµØÖ·£¬Ð´µØÖ·¡¢Ê¹ÄÜÐźźÍÊäÈëÊä³öÊý¾Ý£¬Ïêϸ´úÂë±Ê¼ÇÖв»ÔÙ׸Êö£¬¿ÉÒÔÖ±½Ó²Î¿¼´úÂë¡£


¿É×ÛºÏÄ£¿é±àдÍê³Éºó£¬±àд·Âտģ¿é²¢Ê¹Ó÷ÂÕæÈí¼þ½øÐзÂÕæ¡£


ÓÉÓÚ±¾´Î¹¤³ÌʹÓõ½Á˰²Â·µÄIP¿â£¬Òò´ËÒ²ÐèÒªÔÚmodelsimÖÐÌí¼ÓÏàÓ¦µÄ°²Â··ÂÕæ¿â£¬Ìí¼Ó·½·¨ÈçÏ£º


Ê×ÏÈÔÚmodelsimµÄ°²×°Ä¿Â¼ÏÂÃæ±à¼­modelsimµÄ³õʼ»¯Îļþmodelsim.ini£¬ÓÒ¼üÊôÐԺ󣬽«ËüµÄÖ»¶ÁÊôÐÔÈ¡Ïû£¬È»ºóÓÃÎı¾Îļþ£¨±¾¹¤³ÌʹÓõÄÊÇnotepad++£©±à¼­¡£



ÔÚmodelsim.iniµÄ[library]ÁбíÏÂÌí¼Ó°²Â·µÄ·ÂÕæ¿âÎļþĿ¼£¬°²Â·ËùÓеķÂÕæ¿âÎļþ¶¼ÔÚ°²Â·µÄ±àÒëÈí¼þTD°²×°Ä¿Â¼ÏµÄsimÎļþ¼ÐÖУ¬´Ë´¦½«ÆäËùÓеĿâÎļþ¶¼¸´ÖƽøÁËmodelsimµÄÎļþ¼ÐÀÈô²»¸´ÖÆ£¬Ò²¿ÉÖ±½ÓÊäÈ밲·Îļþ¼ÐµÄ·¾¶¡£



±£´æºóÍ˳ö£¬´ò¿ªmodelsim²¢´´½¨¹¤³Ì£¬±àÒëͨ¹ýºó£¬½øÈë·ÂÕæ²½Ö裬ÔÚsimulate״̬À¸ÏÂÑ¡Ôñstart simulate£¬ÈçÏÂͼ£º



Ñ¡Ôñºó½øÈëµ½ÈçÏÂÒ³Ãæ£º



Ñ¡Ôñ·ÂÕæµÄ¶¥²ã²¢ÇҹرÕÓÅ»¯Ñ¡Ïî¡£


ͬһ¸ö´°¿Ú´ò¿ªlibrariesÒ³Ãæ²¢ÔÚsearch librariesÀ¸ÓÒ²àÑ¡Ôñadd£¬ÏÂÀ­ÁбíÑ¡Ôñ¶ÔÓ¦µÄef3µÄ¿âÎļþ¡£



ÉèÖÃÍê³Éºóµã»÷OK½øÈë·ÂÕæ¼´¿É¡£


±¾´ÎʵÑéÖÐÓö¼ûÎÊÌâºÍµ÷ÊÔÈçÏ£º


01



¸Õ¿ªÊ¼pllûÓÐÊä³öÐźÅ£¬Òò´Ë´ò¿ªÁËpll²é¿´²¨Ðη¢ÏÖpll²¨ÐÎÈçÏ£º



·¢ÏÖÊÇÖÃλÁËresetÐźŵ¼ÖµÄ£¬²é¿´´úÂë·¢ÏÖÈçÏ£º



¸´Î»ÐźÅÖ±½ÓÁ¬½Óµ½ÁËpllµÄÖÃλÐźÅ£¬ÓÉÓÚ¸´Î»ÐźÅÊÇµÍµçÆ½ÓÐЧ¶øÖÃλÐźÅÊÇ¸ßµçÆ½ÓÐЧ£¬Òò´Ëµ¼ÖÂÁËpllÒ»Ö±´¦ÓÚ¸´Î»µÄÇé¿ö¡£¸ü¸Äºó£¬Ö±½Ó½«pll¸´Î»ÐźÅÖÃ0£¬´úÂëºÍ·ÂÕæ½á¹ûÕý³££¬ÈçÏÂËùʾ£º



02


PLLÎÊÌâ½â¾öºó£¬¹Û²âÊý¾ÝÕûÌå¶ÁдÇé¿ö¡£



³õ²½¹Û²â¿ÉÒÔ·¢ÏÖ£¬rama¶ÁʹÄÜÐźÅֻת±äÁËÒ»´Î£¬¶ørambµÄ¶ÁʹÄÜʼÖÕδÄÜÌø±ä£¬·µ»Ø´úÂë²é¿´·¢ÏÖ£º



Âß¼­ÅжÏʱ佫ramaµÄдʹÄÜÐźÅÖÃ1µÄÌõ¼þд³öÀ´¡£


rambµÄдʹÄÜͬÀí£º



Ð޸ĺ󣬴úÂëÈçÏ£º



²¨ÐηÂÕæÈçÏ£º



´Ö¿´»ù±¾·ûºÏrama¡¢ramb½»Ìæ¶ÁдµÄ¹¦ÄÜ£¬¹Û²ârama¡¢rambʱÐò½»ÌæÏ¸½Ú¡£



ÔÚramaºÍrambдʹÄÜÐźÅת»»Ê±£¬·¢ÏÖ¿ÕÁËÒ»ÅÄ£¬Ôٲ鿴´úÂ룬·¢ÏÖrama¡¢rambдʹÄÜÔÚÌõ¼þÅжÏʱ£¬Ê¹ÓõÄÅжÏÂß¼­ÊDz»Ò»ÑùµÄ£¬µ¼ÖÂramb_wrenµÄÖÃλ»áÔÚrama_wrenÖÃλºóµÄÏÂÒ»ÅĽøÐС£



Òò´Ë¸ü¸Äramb_wrenµÄÅжÏÌõ¼þ£¬Ê¹Ö®Óërama_wrenµÄÒ»Ñù£¬¶¼ÒÔдµØÖ·ÎªÌõ¼þÅжÏÔÙ·ÂÕæ¡£



¿É¹Û²âµ½£¬Ê±ÐòÕý³£¡£



quick start & GPIO Demo


±¾´ÎdemoʵÏÖ¹¦ÄÜÈçÏ£ºFPGA¿ØÖÆLED D1ÉÁ˸£¬MCU¿ØÖÆLED D2³£ÁÁ¡£


2.1 keil¹¤³Ì»·¾³´´½¨


´´½¨Îļþ¼ÐĿ¼ÈçÏ£º


ͼ1


ÆäÖа弶֧³Ö°üÖ±½ÓÓÉÔ­³§Ìṩ¡£


ÏÈ´´½¨keil¹¤³Ì£¬´ò¿ªkeil£¬´´½¨¹¤³Ì£¬±£´æÔÚ¶ÔÓ¦µÄMCU¡úprojectĿ¼Ï¡£



Æ÷¼þÑ¡ÔñARM cortex M3Æ÷¼þ¡£



¹¤³Ì½¨ºÃºó£¬Ìí¼Ó±ØÒªµÄBSP°üÖеÄÎļþÈçÏ£¬´´½¨ºÃºóµÄ¹¤³ÌĿ¼Èç×óÀ¸£º



ÆäÖУ¬startup×éϵÄÎļþ·Ö±ðÀ´×ÔMCU\ELF2_BSP\Device\ELF2\SourceºÍMCU\ELF2_BSP\Device\ELF2\Source\ARMĿ¼Ï£»lib×éµÄÎļþÀ´×ÔMCU\ELF2_BSP\Driver£»log×éÎļþ±£´æÔÚMCU\ELF2_BSP\DebugºÍMCU\ELF2_BSP\Debug\RTTĿ¼Ï¡£


н¨main.cÎļþ²¢±£´æÔÚͼ1ËùʾµÄ×ÜÎļþĿ¼ä¯ÀÀµÄMCU¨¤srcÎļþ¼Ðϲ¢Ìí¼Ómain.cµ½¹¤³Ìmain×éÖС£



ÏÂÃæÉèÖÃһЩ¹¤³ÌµÄ»·¾³£¬´ò¿ªoptions for target¶Ô»°¿ò¡£



Çл»µ½userÀ¸£¬ÉèÖÃÈçϲÎÊý£¬ÕâЩ²ÎÊý»áÓ°ÏìÊä³ökeil¹¤³ÌµÄ*.asm ºÍ*.bin Îļþ£¬À×»ðÊ×Ò³ÐèҪͨ¹ýÌí¼ÓÕâÁ½ÌõÖ¸ÁîµÃµ½binÎļþ²¢×îÖÕÌṩ¸øFPGA¡£



Ìí¼ÓµÄÓï¾ä·Ö±ðÈçÏ£º


fromelf -c -v -a --output=@P.asm Objects\%L

fromelf --bin --output=@P.bin Objects\%L


ÔÙÇл»µ½C/C++À¸£¬ÉèÖÃÍ·Îļþ·¾¶ÈçÏ£º



Ò²¿ÉÒÔÖ±½ÓÌí¼ÓÈçÏÂĿ¼


..\ELF2_BSP;..\ELF2_BSP\CMSIS\Core\Include;..\ELF2_BSP\Debug;..\ELF2_BSP\Debug\RTT;..\ELF2_BSP\Driver;..\ELF2_BSP\Driver\regmap;..\ELF2_BSP\Device\ELF2\Include;..\ELF2_BSP\Device\ELF2\Source\ARM


ÆäÓàÉèÖÃÈçÏÂͼ£º



Ìí¼Ó·ÖÉ¢¼ÓÔØÎļþelf2_example.sct£¨elf2_example.sctÎļþ¾ßÌå´úÂë¿É²Î¿¼¹¤³Ì£©



»·¾³ÉèÖÃÍê±Ïºó¿ÉÒÔ¿ªÊ¼±àд¹¤³Ì´úÂë¡£


2.2 C´úÂë±à¼­


ÔÚmainº¯ÊýÖбàд¶ÔGPIOµÄ²Ù×÷¡£



ÏȶÔGPIO³õʼ»¯½á¹¹Ì帳ֵ£¬ÔÙµ÷ÓÃGPIO³õʼ»¯º¯Êý£¬HAL_GPIO_WritePinº¯Êý¶ÔÏàÓ¦µÄGPIO½øÐиߵ͸³Öµ¡£


±¾´ÎʹÓÃC´úÂë¶ÔGPIO1_0µÄ²Ù×÷ÊÇÖõÍ£¬GPIO1_0¾ßÌ庬Òå»áÔÚÏÂÒ»½Ú£¨1.3£©½øÐÐ˵Ã÷¡£


2.3 TD¹¤³Ì´´½¨ºÍ´úÂë±à¼­


´ò¿ªTD4.6.5»òÆäËû°æ±¾´´½¨ÐµĹ¤³Ì¡£



±£´æÔÚ×ÜĿ¼µÄFPGA¡úprojectĿ¼Ï£¬²¢Ñ¡Ôñ¶ÔÓ¦µÄÆ÷¼þÀàÐÍ¡£



Ìí¼Ó»òÕ߱༭ԴÎļþ£¬±¾´Î¹¤³ÌÄ£¿éÉùÃ÷ÈçÏ£º



ÆäÖÐhw_ledÊÇÓÉFPGAÂß¼­¿ØÖƵÄled£¬sw_ledÊÇÓÉMCU´úÂë¿ØÖÆµÄled£¨¼´1.2ÖеÄgpio1_0£©¡£hw_ledµÄ¿ØÖÆ´úÂëÈçÏ£¬sw_ledµÄ¿ØÖÆ´úÂëÏê¼û1.2£º



È»ºóÀý»¯MCUºÍPLL£¬PLLÀý»¯Ö÷ÒªµÃµ½ÊäÈëµ½MCUµÄϵͳʱÖÓ£¬Àý»¯¹ý³ÌÂÔ£¬ÕâÀïÌùÉÏÔÚ¶¥²ãÖе÷ÓõĽá¹û£º



Êä³öµÄ200MµÄʱÖÓ½Óµ½MCUµÄϵͳʱÖÓ¡£


Àý»¯MCU½çÃæÈçÏ£º



ÈçͼËùʾ£¬MCUÖ§³Ö×î´ó 32 ¸öGPIO£¬ÆäÖеÍ16룬¼´GPIO_L0~GPIO_L15ÊÇÖ±½ÓÁ¬½ÓÖÁpadµÄ£»¶øGPIOH0~GPIOH15ÔòÊÇͨ¹ýFPGAÁ¬½ÓÖÁÍⲿ£¬Òò´Ë£¬µ±Ê¹ÓÃÕâ16¸öGPIOµÄʱºò£¬ÐèÒªÔÚFPGA¹¤³ÌµÄ¹Ü½ÌÔ¼ÊøÎļþÖÐÖ¸¶¨¾ßÌåÁ¬½ÓÖÁÄĸö½Å¡£


ÔÚÀý»¯MCUʱ£¬Ê¹Óõ½Äĸö½Å¾Í¿ÉÒÔ´ò¿ª¶ÔÓ¦µÄ¿ª¹Ø£¬ÀýÈç±¾ÀýÖУ¬´ò¿ªÁËL0¡¢L1ºÍH0£¬PPM_CLK£¬ÆäÖÐPPM_CLKÊÇFPGA Fabric ÊäÈëʱÖÓ£¬Á¬½ÓÖÁFPGAµÄPLLÊä³öclk200£»L0¡¢L1Á¬½ÓÖÁPAD£¬¹Û²ìÔ­Àíͼ¡£



GPIO0ºÍGPIO1Á¬½ÓµÄÊǵ÷ÊÔ¿Ú£»×îºóH0Á¬½ÓÖÁFPGA ÖÐsw_led²¢Í¨¹ý¹Ü½ÅÔ¼ÊøÁ¬½ÓÖÁLED D2¡£


¹¤³ÌµÄ¹Ü½ÌÔ¼ÊøÎļþÈçÏ£º



²é¿ª·¢°åÔ­Àíͼ£¬D2Á¬½ÓÖÁFPGAµÄ16½Å£¬ÇÒ´ÓÔ­Àíͼ¿É¹Û²ì£¬keil¹¤³ÌÖжԸÃGPIOµÄ²Ù×÷ÊÇÖõͣ¬¾ßÌåÏÔʾÊÇD2³£ÁÁ¡£



ÉèÖÃÍê±Ïºó£¬Íê³É½á¹ûÉùÃ÷ÈçÏ£º



²¢ÔÚ¶¥²ãÖе÷Óãº



2.4 ÏÂÔØ


KeilºÍTDµÄ¹¤³Ì¶¼´´½¨±àдÍê³Éºó£¬±àÒ빤³Ì¡£ÆäÖУ¬keilÉú³ÉµÄ¹¤³ÌbinÎļþÐèÒªÓëTD¹ØÁª²¢Í¨¹ýTDÏÂÔØÖÁоƬ»ò¿ª·¢°åÖС£


¹ØÁªµÄ²½ÖèÈçÏ£º


ÔÚHDL2Bit FlowÀ¸ÓÒ¼üÑ¡Ôñproperties¡£



ÔÚgenerate bitstreamµÄµÚÁùÏîinstruct ramÖÐÑ¡Ôñkeil¹¤³ÌÉú³ÉµÄbinÎļþµÄĿ¼£¨´Ëʱkeil¹¤³ÌÒѾ­±àÒëͨ¹ý£©£¬²¢±£´æ¡£



±£´æºó£¬Ë«»÷generate bitstream±àÒëTD¹¤³Ì£¬¼ÙÈçÔÚÑ¡Ôñ·¾¶Ç°ÒѾ­±àÒë¹ýTD¹¤³ÌÁË£¬ÐèÒªÓÒ¼üÑ¡ÔñrerunÖØÐ±àÒ루עÒ⣺¼ÙÈçÐÞ¸ÄÁËkeilµÄCÎļþ¶øTDµÄHDLÎļþûÓб仯£¬½¨ÒéÒ²rerunºóÔÙ½«ÎļþÏÂÔØÖÁ¿ª·¢°å£©



ÏÂÔØ£º



°å×ÓÏÖÏóÈçͼ£º


D1³ÖÐøÉÁ˸£¬D2³£ÁÁ£º



FPGA´®¿ÚͨÐÅ


±¾Demo°¸Àý»ùÓÚ°²Â·µÄEF2M45LG48_MINI_DEV2¿ª·¢°å£¬Í¨¹ý²âÊÔ°åµÄuart¿ÚºÍPC»úµÄuart¿ÚÁ¬½ÓÀ´ÐγÉÒ»¸ö±Õ»·»ØÂ·£¬¼´PC»ú·¢ËÍÊý¾ÝÖÁFPGA²âÊ԰壬FPGA½ÓÊÕ²¢·µ»ØÏàͬµÄÊý¾Ý¡£ÊµÑé½á¹ûͨ¹ýPC»úµÄ´®¿Úµ÷ÊÔÖúÊÖµ÷ÊԲ鿴¡£


3.1 UARTЭÒé


UART ÊÇÒ»ÖÖͨÓô®ÐÐÊý¾Ý×ÜÏߣ¬ÓÃÓÚÒ첽ͨÐÅ£¬½«Êý¾ÝÔÚ´®ÐÐͨÐźͲ¢ÐÐͨÐżäµÄ´«Êäת»»¡£Í¨Ë׵Ľ²¾ÍÊǰѶà±ÈÌØµÄÊý¾Ýת»¯Îªµ¥±ÈÌØµÄÊý¾Ý£¨tx¶Ë£©£¬»òÕ߰ѵ¥±ÈÌØµÄÊý¾Ýת»¯Îª¶à±ÈÌØµÄÊý¾Ý£¨rx¶Ë£©¡£¹¤×÷Ô­ÀíÊǽ«Êý¾ÝµÄÿ¸ö bit һλ½ÓһλµØ´«Êä¡£


rx£¬½ÓÊÕ¶Ë£¬Î»¿íΪ 1 ±ÈÌØ£¬ pc »úͨ¹ý´®¿ÚÍù FPGA ·¢ 8 ±ÈÌØÊý¾Ýʱ£¬FPGA ͨ¹ý´®¿ÚÏß rx һλһλµØ½ÓÊÕ£¬´Ó×îµÍλµ½×î¸ßλÒÀ´Î½ÓÊÕ£¬×îºóÔÚ FPGA ÀïÃæÎ»Æ´½Ó³É8 ±ÈÌØÊý¾Ý¡£


tx£¬·¢ËͶË£¬Î»¿íΪ 1 ±ÈÌØ£¬ FPGA ͨ¹ý´®¿ÚÍù pc »ú·¢ 8 ±ÈÌØÊý¾Ýʱ£¬ FPGA °Ñ 8 ±ÈÌØÊý¾Ýͨ¹ý tx ÏßһλһλµÄ´«¸ø pc »ú£¬´Ó×îµÍλµ½×î¸ßλÒÀ´Î·¢ËÍ£¬×îºóÉÏλ»úͨ¹ý´®¿ÚÖúÊÖ°ÑÕâһλһλµÄÊý¾Ýλƴ½Ó³É 8 ±ÈÌØÊý¾Ý¡£


×¢Òâµã£º


1¡¢´®ÐÐÊý¾ÝµÄ·¢ËͺͽÓÊÕ¶¼ÊÇ´ÓµÍλµ½¸ßλ¡£


2¡¢ÔÚ²»·¢ËÍ»òÕß²»½ÓÊÕÊý¾ÝµÄÇé¿öÏ£¬ rx ºÍ tx ´¦ÓÚ¿ÕÏÐ״̬£¬´Ëʱ rx ºÍ tx Ïß¶¼±£³Ö¡¾¸ßµçƽ¡¿£¬Èç¹ûÓÐÊý¾Ý´«µÝ£¬Ê×ÏÈ»áÓÐÒ»¸öÆðʼλ0£¬È»ºóÊÇ 8 ±ÈÌØµÄÊý¾Ý룬½Ó×ÅÓÐ 1 ±ÈÌØµÄֹͣλ(¸ßµçƽ)£¬Èç¹ûֹͣλÒÔºó²»ÔÙ·¢Êý¾Ý£¬½«½øÈë¿ÕÏÐ״̬£¬·ñÔòÓÖ½«Êý¾ÝÏßÀ­µÍ(½øÈëÆðʼλ״̬)¡£


3¡¢²¨ÌØÂʼÆË㣺uart´«ÊäÓв»Í¬µÄ²¨ÌØÂÊ£¬Ê¹ÓÃHDLÓïÑÔÃèÊöʱ£¬Í¨³£Ê¹ÓüÆÊýÆ÷À´ÊµÏÖ²»Í¬²¨ÌØÂʵÄÊý¾Ý´«²¥¡£¼ÆÊýÆ÷µÄ¼ÆÊýÖµÓë¾ßÌå²¨ÌØÂÊÓйØ£¬ÒÔ³£¼ûµÄ115200ΪÀý£¬¼ÙÉèϵͳʱÖÓÊÇ25Mhz£¬Ôò´«Êä1bitËùÐèÒªµÄʱÖÓÖÜÆÚΪ25 * 1000 *1000 /115200 = 217¸ö£¬Òò´Ë¼ÆÊýÆ÷¼ÆÊýÖµ¼´216£¨´Ó0¿ªÊ¼¼ÆÊý£©¡£


3.2 Ä£¿é×Ü¿ò¼Ü


Ä£¿éµÄ×ÜÌå¿ò¼ÜÈçÏ£º



top²ã³ýÁËʱÖӺ͸´Î»ÐźŵÄÊäÈ룬»¹ÓÐÊäÈëÐźÅrxºÍÊä³öÐźÅtx£¬·Ö±ðÀ´×ÔPC»úºÍÊä³öµ½PC»ú£¬Ðγɱջ·¡£×ÓÄ£¿éÖУ¬RxÐźÅÔÙ×÷Ϊuart_rxÄ£¿éµÄÊäÈ룬¾­¹ýuart_rxÄ£¿éµÄ´¦Àí£¬×ª»»³É°Ëλ²¢ÐÐÊý¾Ýo_dataÊä³ö£»¶ÔÓÚuart_txÄ£¿é£¬Ö÷Òª½«ÊäÈëµÄi_data²¢ÐÐÐźÅת»»³É´®ÐÐÊý¾ÝÔÙÊä³öµ½PC»ú¡£


3.3 ´úÂëʵÏÖ


1. Rx¶Ë



2.Tx¶Ë



3.4 ¶¥²ã



3.5 ·ÂÕæ



±¾´Î·ÂÕæÊ¹Óõ½ÁËtaskÓï¾ä£¬taskÓï¾äͨ³£ÔÚµ±·ÂÕæÊ±ÐèÒª¸øÊäÈë±äÁ¿Ìض¨µÄÊäÈëֵʱʹÓã¬ÀýÈç±¾´Î·ÂÕæ¶Ôrx¶Ë½øÐи³Öµ¡£


3.6 ·ÂÕæ½á¹û¼°ÎÊÌâÅŲé


Rx¶Ë£º


ÕûÌ岨ÐÎÈçͼ£º



²é¿´Ï¸½ÚÈçÏ£º



µ±rx=1ʱ£¬Êä³öµÄo_data²¢ÐÐÊý¾ÝÔÚo_flag = 1£¨¼´±íʾ´«Êä½áÊø£©Ê±Ò²Îª1£¬½á¹ûÕý³£¡£


Tx¶Ë£º


ÕûÌ岨ÐÎÈçÏ£º



ÉÏͼºÜÃ÷ÏÔ¿ÉÒÔ¿´³ötx¶Ë´«ÊäÓÐÎÊÌ⣬µ±tx·¢ËÍÆðʼ루¼´À­µÍ£©ºó£¬Ã»Óн«Êý¾ÝÊä³ö¡£¹Û²âÆäËûÐźŲ¨ÐΣ¬»ù±¾Õý³£¡£¿É¼ûÎÊÌâ´ó¸ÅÂʳöÏÖÔÚtx¸³Öµ²¿·Ö£¬Ò»¿ªÊ¼ÒÔΪÊÇ·¢ËÍÊý¾ÝλµÄÌõ¼þÅжÏÓÐÎÊÌ⣬¼ì²é´úÂ룬Êý¾Ý´«ÊäʱµÄÅжÏÌõ¼þÈçÏ£º



²é¿´²¨Ðη¢ÏÖ¸ÃÌõ¼þ¿ÉÒÔ±»Âú×ã¡£



ºóÀ´²é¿´ÆðʼλµÄ·¢ËÍÌõ¼þʱ·¢ÏÖÁË´íÎó£º



Æðʼλ·¢ËÍÒªÓëtx_enͬ²½¡£¼ÙÉèÌõ¼þʹÓÃtx_enÅжϣ¬Ôò»á±Ètx_enÂýÒ»ÅÄ¡£


ÁíÍ⣬²»ÄÜʹÓÃtx_en == 1'b1×÷Ϊ·¢ËÍÆðʼλµÄÅжÏÌõ¼þ£¬ÒòΪtx_en ÔÚÊý¾Ý·¢ËÍʱһֱΪ1£¬ÕâÑùtx¶Ë»áºãΪ0£¬Ð޸ĺó´úÂëÈçÏ£º



Ôٹ۲첨ÐÎÕý³£¡£



3.7 Éϰå×îÖÕЧ¹û


´úÂëÏÂÔØ½ø¿ª·¢°åºó£¬ÔÚ´®¿Úµ÷ÊÔÖúÊÖÖпÉÒÔÕý³£ÊÕ·¢Êý¾Ý£¬ÈçÏ£º



µã»÷·´À¡ÄúµÄÐèÇó£¬ÖúÁ¦À×»ðÊ×Ò³´òÔì¸üÓÅÖʵÄFPGA²úÆ·£¡

¶©ÔÄÐÅÏ¢
a1_icon02.svg
download.jpg
a1_icon03.svg
a1_icon01.svg
Frame.svg

¶©ÔÄ

µØÇø

§h

ÎÒÒÑ×ÐϸÔĶÁ²¢Í¬ÒâÒþ˽ÉùÃ÷

¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿