Õª Òª:ΪʵÏÖ¸ßËÙ¡¢´óÈÝÁ¿µÄÊý¾Ý´æ´¢£¬Ìá³öÒ»ÖÖ»ùÓÚÓ²ÅÌUltra DMA´«ÊäģʽµÄ¸ßÐԼ۱Ƚâ¾ö·½°¸¡£Ïêϸ½éÉÜNiosǶÈëʽϵͳµÄÕûÌå¹¹¼ÜºÍ¸÷¸ö×ÓÄ£¿éµÄ¹¦ÄÜ£»Ìá³öÒ»ÖÖÔÚ²»¸Ä±ä´«ÊäƵÂÊÌõ¼þÏ£¬Í¨¹ýʹÓüĴæÏù×é¶Ô²»Í¬Ê±ÖÓÑØÊý¾Ý½øÐÐËø´æ£¬ÒÔÊý¾Ý´ø¿íµÄÀ©Õ¹Îª´ú¼Û£¬Íê³ÉIDE×ÜÏßÉϵÄË«±ßÊý¾ÝÑØËø´æÓëϵͳÄÚ²¿µÄµ¥±ßÊý¾ÝÑØËø´æÖ®¼äµÄ´«Êäģʽת»»£»¸ø³ö¾ßÌåµÄϵͳ¶Á£¯Ð´²Ù×÷µÄ¹¤×÷Á÷³ÌºÍÏà¹ØÈí¼þʵÏÖ¡£
¹Ø¼ü´Ê:Ultra DMA Nios Ó²ÅÌ
Òý
¡¡¡¡Ëæ×ÅÏû·ÑÀàµç×Ó£¬ÈçMP3¡¢3GÊÖ»ú¡¢ÊÓƵÖÕ¶ËÒÔ¼°¿í´øÎÞÏßÍøÂçµÄÆÕ¼°£¬¶Ô´óÈÝÁ¿´æ´¢É豸µÄÐèÇóÔ½À´Ô½Ç¿ÁÒ¡£´«Í³µÄSRAM¡¢SDRAMÒÔ¼°DDR SDRAMµÈ´æ´¢É豸µÄ¼Û¸ñÓëÈÝÁ¿±È£¬Ô¶Ô¶±ÈÓ²Å̸ߣ»¹â´æ´¢É豸ËäÈ»¸ü¼ÓÁ®¼Û£¬µ«ÊÇÔÚ±ãЯÐÔÉÏȴԶѷÓÚÓ²Å̽â¾ö·½°¸¡£ÏÖÔÚÓ²Å̳§ÉÌÌṩÁ˸÷ÖÖÊÊÓÃÓÚ²»Í¬ÓÃ;µÄÁ®¼Ûº£Á¿´æ´¢É豸£¬Èç1 in(Ó¢´ç)µÄ΢ӲÅÌ¿ÉÒÔÓ¦ÓÃÓÚ¸÷ÖÖСÇɵıãЯÉ豸ÖУ¬2£®5inÓ²ÅÌ¿ÉÒÔÓ¦ÓÃÓڱʼDZ¾ºÍÒƶ¯´æ´¢ÖУ¬3£®5inÓ²ÅÌ¿ÉÒÔÓ¦ÓÃÓÚ¸öÈËPCºÍ¹¤Òµ×Ô¶¯»¯Öеȵȡ£¡¡
¡¡¡¡Ä¿Ç°£¬Ó²ÅÌÖ§³ÖµÄ×îΪ¹ã·ºµÄIDE½Ó¿ÚÐÒéÖУ¬¹æ¶¨ÁËPIO¡¢DMAÒÔ¼°Ultra DMAÈýÖÖÊý¾Ý´«Êäģʽ£¬Æä´«ÊäËÙÂÊPIO<¶à×ÖDMA ¡¡¡¡Ïֽ׶εÄÉè¼ÆÑо¿Ö÷Òª¼¯ÖÐÓÚµ¥±ßÑØËø´æÊý¾ÝµÄPIOºÍDMA´«Êäģʽ¡£´ó¶àÊýÉè¼ÆÖ÷ÒªÓÃPIOģʽÍê³É¿ØÖÆÃüÁîµÄдÈëºÍ¶ÁÈ¡²Ù×÷£¬²ÉÓÃDMAÊý¾Ý´«Êäģʽ½øÐÐÖ±½ÓÄÚ´æ¶ÁÈ¡²Ù×÷£¬Ìá¸ßÊý¾Ý´«ÊäµÄËÙÂÊ¡£Èç¹ûÔÚÏàͬϵͳÖÐʹÓÃUltra DMAÊý¾Ý´«Êäģʽ£¬Ôò¿ÉÒÔÔÚ²»Ìá¸ßϵͳʱÖÓƵÂʵĻù´¡ÉÏ£¬½«ÏµÍ³Êý¾Ý´«ÊäËÙÂÊÌá¸ßl±¶£¬¼«´óµØ¸ÄÉÆÁËϵͳÐÔÄÜ£¬¶ø²»ÐèÒª¸¶³ö¸ü¶àµÄÓ²¼þ×ÊÔ´¡£Òò¶øÓ²Å̵ÄUltra DMAÊý¾Ý´«Ê䷽ʽÔÚ¹¤Òµ×Ô¶¯»¯¡¢InternetÍøÂç¡¢Ïû·ÑÀàµç×Ӻ͸÷ÖÖǶÈëʽϵͳÖеÄÐèÇó»á²»¶ÏÔö¼Ó£¬ÓÐןܺõÄÉÌҵǰ¾°¡£ 1 Niosϵͳ½éÉÜ ¡¡¡¡¸ÃÉè¼ÆÊÇÔÚAltera¹«Ë¾ÍƳöµÄNiosǶÈëʽϵͳµÄƽ̨ÉÏ£¬Éè¼Æ¿ÉÒÔͨ¹ýUltra DMAÊý¾Ý´«Ê䷽ʽ½øÐиßËÙÓ²Å̶ÁдµÄ½Ó¿ÚÄ£¿é£¬²¢¿ª·¢³öÏàÓ¦µÄIPºË¡£ 1.1 Niosϵͳ½á¹¹ ¡¡¡¡NiosǶÈëʽ´¦ÀíÆ÷ϵͳͨ³£ÓÉN1os´¦ÀíÆ÷¡¢Avalon½»»»½á¹¹×ÜÏߺ͸÷ÖÖÍâΧÉ豸(´æ´¢¡¢½Ó¿Ú¼°¹¦ÄÜÄ£¿é)µÄIPºËÈý²¿·Ö¹¹³É¡£AlteraµÄSOPC Builderϵͳ¿ª·¢¹¤¾ß¿ÉÒÔ×Ô¶¯Éú³ÉÕâЩ×é¼þÒÔ¼°Á¬½ÓËüÃǵÄ×ÜÏß¡£ ¡¡¡¡Nios´¦ÀíÆ÷ÊÇ32λ½á¹¹¿ÉÅäÖò¢°üº¬Î弶Á÷Ë®ÏßµÄͨÓÃRISC΢´¦ÀíÆ÷£¬²ÉÓøĽøµÄ¹þ·ð´æ´¢Æ÷½á¹¹£»´¦ÀíÆ÷´øÓзÖÀëµÄÊý¾ÝºÍ³ÌÐò´æ´¢Æ÷×ÜÏß¿ØÖÆ£¬¾ß±¸¸ßËÙ»º´æ¡¢Öжϴ¦Àí¹¦ÄÜ¡£Ó봫ͳ´¦ÀíÆ÷Ïà±È£¬NiosÖ¸Áîϵͳ¿Éͨ¹ý×Ô¶¨ÒåÖ¸ÁîºÍ±ê×¼´¦ÀíÆ÷Ñ¡ÏÀûÓÃÓ²¼þÀ´Ã÷ÏÔÌá¸ßϵͳÐÔÄÜ¡£ ¡¡¡¡Avalon½»»»½á¹¹×ÜÏßÊÇAltera¿ª·¢µÄÓÃÓÚNiosǶÈëʽ´¦ÀíÆ÷µÄ²ÎÊý»¯½Ó¿Ú×ÜÏߣ¬ÓÉl×éÔ¤¶¨ÒåµÄÐźÅ×é³É£¬ÓÃÕâЩÐźſÉÒÔÁ¬½Ó1¸ö»ò¶à¸öIPÄ£¿é¡£AlteraµÄS0PC Builderϵͳ¿ª·¢¹¤¾ß×Ô¶¯µØ²úÉúAvalon½»»»½á¹¹×ÜÏßÂß¼£¬ÆäʵÏÖÖ»ÐèÒª¼«ÉÙµÄFPGA×ÊÔ´£¬ÌṩÍêȫͬ²½µÄ²Ù×÷¡£ ¡¡¡¡NiosǶÈëʽ´¦ÀíÆ÷ϵͳÖеĸ÷Öִ洢ģ¿é¡¢½Ó¿ÚÄ£¿éºÍ¹¦ÄÜÄ£¿éµÈ¶¼ÔÚAlteraµÄ±ê×¼ÍâΧÉ豸¿âÖÐÒÔIPºËµÄ·½Ê½ÌṩʹÓ㬻òÊÇÓÉÓû§×ÔÐÐÉè¼ÆÌí¼Óµ½¿âÖУ¬ÒÔIPÄ£¿éµÄ·½Ê½ÔÚϵͳÖи´Óᣠ¡¡¡¡ÊµÏÖÓ²Å̸ßËÙ·ÃÎʹ¦ÄÜÄ£¿éµÄÉè¼Æ£¬Êµ¼ÊÉÏÊÇÔÚÉè¼ÆÒ»¸öÍêÕûµÄIPÄ£¿é£¬ÔÙÔÚAlteraÌṩµÄSOPC Builder¿ª·¢»·¾³µÄÉ豸¿âÖм¯³É¸ÃIPºË£¬ÒÔ´ïµ½Éè¼ÆµÄÄ¿µÄ¡£ 1.2²ÉÓÃNlosÈíºË´¦ÀíÆ÷¹¹½¨ÏµÍ³µÄÔÒò ¡¡¡¡¢ÙÓëÆäËûµÄʵÏÖ·½Ê½Ïà±ÈÓÐןüºÃµÄÐÔÄܼ۸ñ±È¡£×î³£¼ûµÄÓ²Å̶ÁÈ¡¿ØÖƺÍÊý¾Ý´«Ê䷽ʽÊÇͨ¹ýµ¥Æ¬»ú»òÊÇDSPÀ´ÊµÏֵģ¬Ê¹Óõ¥Æ¬»ú»òDSPÖеÄPIO½Ó¿Ú¿ÉÒԺܷ½±ãµØÍê³Éµ¥±ßÑØËø´æÊý¾ÝµÄÓ²ÅÌPIOºÍDMAÊý¾Ý´«Ê䷽ʽ£¬µ«ÔÚʵÏÖË«±ßÑØËø´æÊý¾ÝµÄUltra DMA´«Ê䷽ʽʱ£¬±ØÐëÔÚµ¥Æ¬»úºÍDSPоƬÍâÌí¼Ó¶îÍâµÄFPGAоƬ£¬Íê³ÉUltra DMAË«±ßÑØËø´æÊý¾Ýµ½µ¥±ßÑØËø´æÊý¾ÝµÄת»»£¬Ôö¼ÓÁËϵͳÉè¼ÆµÄ³É±¾ºÍ¸´ÔÓÐÔ¡£¶ø²ÉÓÃNiosÈíºË´¦ÀíÆ÷Íê³ÉÓëÓ²Å̵ÄUltra DMA´«Ê䷽ʽʱ£¬²»ÐèÒªÌí¼ÓÈκζîÍâµÄоƬ£¬½öʹÓÃFPGAÄÚµÄÆäËû×ÊÔ´¾Í¿ÉÒÔ·½±ãµØʵÏÖË«±ßÑص½µ¥±ßÑصÄת»»¹¤×÷¡£ ¡¡¡¡¢ÚÓ봫ͳµÄµ¥Æ¬»ú»òDSPʵÏÖ·½Ê½Ïà±È£¬NiosǶÈëʽϵͳµÄÉè¼ÆÓëʵÏÖ¸ü¼Ó¼òµ¥¡£´ÓÐÔÄÜÉÏÀ´Ëµ£¬NiosÈíºË´¦ÀíÆ÷ÓëARM¡¢IntelµÈµÄCPU´¦ÓÚͬһ¼¶±ð£¬¶¼Äܹ»Âú×ãÉè¼ÆµÄÐèÒª£¬¼´Ê¹ÊǸ´ÔÓÂ߼ϵͳµÄÉè¼ÆÒ²¿ÉÒÔÔÚһƬCyclone»òÊÇStratiXоƬÉÏʵÏÖÈ«²¿¹¦ÄÜ¡£¶øÇÒͨ¹ýʹÓÃAltera¹«Ë¾ÌṩµÄSOPC Builder¿ª·¢¹¤¾ß£¬ÔÚIP¸´ÓõĻù´¡ÉÏ¿ÉÒÔ¿ìËÙ¿ª·¢³öÍêÕûµÄϵͳ½â¾ö·½°¸¡£ ¡¡¡¡¢ÛÓ봫ͳµÄµ¥Æ¬»ú»òDSPʵÏÖ·½Ê½Ïà±È£¬NiosǶÈëʽϵͳµÄ¿ÉÀ©Õ¹ÐÔ¸üºÃ¡£µ¥Æ¬»ú»òDSPÄÚµÄ×ÊÔ´ÊÇÓ²¼þ³§É̹̻¯ÔÚоƬÄڵģ¬Óû§²»¿ÉÄÜ×ÔÐÐÌí¼Ó»òɾ¼õ£¬ÔÚÉè¼ÆʱµÄÁé»îÐÔÊܵ½Æ÷¼þ±¾ÉíµÄÏÞÖÆ£»¶øNiosÈíºË´¦ÀíÆ÷µÄËùÓÐ×ÊÔ´¶¼¿ÉÒÔÈÎÒâµØÌí¼Ó»òɾ¼õ£¬Ö»Ðè×îÖÕͨ¹ýµçÀÂÏÂÔص½FPGAоƬÄھͿɶ¨ÖƳöÕû¸öϵͳµÄ¹¦ÄÜ¡£Òò¶øÔÚ»ùÓÚNiosµÄϵͳÉè¼ÆÖУ¬Í¨¹ý¶ÔÉè¼ÆÎļþµÄÐ޸ľͿÉÒԺܷ½±ãµØ½øÐÐϵͳ¹¦ÄܵÄÀ©Õ¹¡£ 2 ϵͳµÄÓ²¼þʵÏÖ ¡¡¡¡Ó²¼þ²¿·ÖÓÉNiosǶÈëʽϵͳ¡¢NiosÓëÓ²Å̵ĽӿÚÄ£¿éºÍÆäËûÍâΧ½Ó¿Úµç·Èý²¿·Ö×é³É£¬Èçͼ1Ëùʾ¡£ÆäÖÐÉè¼ÆµÄºËÐIJ¿·ÖÊÇNiosϵͳÓëÓ²Å̽ӿÚÄ£¿éµÄIPºËÉè¼Æ£¬Ö÷ÒªÍê³ÉÊý¾Ý´«ÊäģʽµÄת»»£¬ÒÔ¼°¶ÔÓ²Å̵ĿØÖÆÓë²Ù×÷Á½²¿·ÖÈÎÎñ¡£NiosǶÈëʽ´¦ÀíÆ÷ϵͳµÄÈÎÎñÊǽøÐÐÕûÌå¿ØÖÆÓëе÷£¬²¢¶ÔÊý¾Ý½øÐд¦ÀíºÍÔݴ棻ÍâΧ½Ó¿Úµç·Ö÷ÒªÓÃÀ´À©³äϵͳµÄ¹¦ÄÜ£¬À©´óϵͳµÄÊÊÓ÷¶Î§¡£ ¡¡¡¡NiosǶÈëʽ´¦ÀíÆ÷ϵͳÓÉNiosǶÈëʽ´¦ÀíÆ÷¡¢DMA¿ØÖÆÆ÷¡¢Êý¾Ý´æ´¢ÇøSDRAM¡¢³ÌÐò´æ´¢ÇøF1ashºÍAvalon×ÜÏß¹¹³É¡£ÆäÖÐDMA¿ØÖÆÆ÷ÓÃÓÚʵÏÖÁ½¸ö´æ´¢Æ÷Ö®¼ä£¬»òÕß´æ´¢Æ÷ºÍÍâÉèÖ®¼ä£¬»òÕßÊÇÁ½¸öÍâÉèÖ®¼äµÄÖ±½ÓÊý¾Ý´«Êä¡£DMAÄ£¿éÓÃÓÚÁ¬½ÓÖ§³ÖÁ÷ģʽ´«ÊäµÄÍâÉ裬²¢ÔÊÐí¶¨³¤»ò±ä³¤µÄÊý¾Ý´«Ê䣬¶ø²»ÐèÒªCPUµÄ¸ÉÉæ¡£ÔÚUltra DMAÊý¾Ý´«ÊäµÄ¹ý³ÌÖУ¬¿ÉÒÔÒ»´ÎÐÔ´«Êä×î¶à256¸öÉÈÇøµÄÊý¾Ý£¬ËùÒÔÔÚϵͳÖÐʹÓÃDMA¿ØÖÆÆ÷¿ÉÒÔ·½±ãµØÔÚÓ²ÅÌÓëϵͳÖи÷ÖÖÖ§³ÖÁ÷´«ÊäģʽµÄÉ豸֮¼ä½¨Á¢Ö±Í¨Á¬½Ó£¬Ìá¸ßϵͳµÄÊý¾Ý´«ÊäЧÂÊ¡£ ¡¡¡¡ÍâΧ½Ó¿Úµç·Ö÷ÒªÓÃÓÚϵͳ¹¦ÄܵÄÀ©³ä£¬ÈçInternet½Ó¿Ú¿ÉÒÔʹϵͳ·½±ãµØ½ÓÈ˵½ÍøÂçÖÐÌṩÖîÈçÒôÀÖ»òÊÓƵÏÂÔØ¡¢ÐÅÏ¢¹²ÏíµÈ·þÎñ£»´®¿ÚÓÃÓÚÓë¼ÆËã»ú»òÆäËûÉ豸µÄ»¥Á¬£»VGA½Ó¿ÚÓÃÓÚÊÓƵÐźŵÄÊä³ö£¬ÔÚϵͳÍⲿÏÔʾͼÏñµÈµÈ¡£ ¡¡¡¡Ó²Å̽ӿڲ¿·ÖÖ÷ÒªÓɽӿڿØÖÆÂß¼¡¢Avalon×ÜÏß½Ó¿Ú¡¢FIFOºÍÓ²ÅÌIDE½Ó¿Ú4²¿·Ö×é³É¡£ÆäÖнӿڿØÖÆÂß¼²¿·ÖÓÃÓÚ¶ÔNios´¦ÀíÆ÷µÄÖ¸Áî½øÐÐÒëÂë²¢Ö´ÐÐÏàÓ¦µÄ²Ù×÷£¬¿ØÖÆUltra DMA´«ÊäʱµÄÎÕÊֺͿØÖÆÐźŵIJúÉú£¬Ðµ÷Êý¾Ý´«Êä¹ý³ÌÖÐIDE½Ó¿ÚµÄÓ²ÅÌÊý¾ÝËÙÂÊͬAvalon×ÜÏß½Ó¿ÚËÙÂʵÄÆ¥Åä¡£ ¡¡¡¡FIFOÓÃÓÚÊý¾ÝµÄ»º³å£¬½â¾öAvalon×ÜÏߺÍIDE½Ó¿ÚÖ®¼äµÄÊý¾ÝËÙÂʲ»Æ¥ÅäÎÊÌâ¡£ÔÚÉè¼ÆÖÐÐèÒª¶ÔÓ²ÅÌUltraDMAµÄÁùÖÖÊý¾Ý´«ÊäģʽͬʱÌṩ֧³Ö£¬¶øÆä´«ÊäËÙÂÊÈ´ÍêÈ«²»Í¬£¬±ØÐëÌí¼Ó»º³åÇøÓÃÓÚÊý¾ÝµÄÔÝ´æ¡£ ¡¡¡¡Avalon×ÜÏß½Ó¿ÚÓÃÓÚÓëNios´¦ÀíÆ÷ϵͳÏàÁ¬£¬´«ÊäNios´¦ÀíÆ÷µÄÖ¸Áî¸ø¿ØÖÆÂß¼²¿·Ö£¬ÒÔ¼°ÓëϵͳÖеÄÆäËû²¿·ÖÔÚDMA¿ØÖÆÆ÷µÄе÷ÏÂÍê³ÉÊý¾ÝµÄ´«Êä¡£ ¡¡¡¡Ó²ÅÌIDE½Ó¿Ú²¿·Ö³ýÊä³ö¿ØÖÆÐźŲ¢¶ÔÓ²ÅÌ·µ»ØµÄÐźÅ×ö³öÏìÓ¦Í⣬»¹ÒªÍê³Éµ¥±ßÑØÊý¾ÝËø´æģʽÓëË«±ßÑØÊý¾ÝËø´æģʽÏ໥ת»»µÄÈÎÎñ£¬Èçͼ2¡¢Í¼3Ëùʾ¡£ ¡¡¡¡ÓÉÓÚNiosϵͳÄÚ²¿Êý¾Ý´«Êäʱ£¬¶¼Ê¹ÓÃʱÖÓÉÏÉýÑØÀ´Ëø´æÊý¾Ý£»¶øIDE×ÜÏßÉÏ´«ÊäµÄUltra DMAÊý¾Ý£¬ÔÚClockÐźŵÄÉÏÉýÑغÍϽµÑض¼ÓÐÊý¾ÝÐèÒªËø´æ¡£Òò¶øÓ²Å̽ӿڲ¿·ÖÁ½²àµÄÊý¾Ý£¬ÔÚ´«Êäʱ¹¤×÷ģʽ¸÷²»Ïàͬ£¬ÐèÒª½øÐбØÒªµÄ»º³åºÍģʽת»»¡£ ¡¡¡¡Êý¾ÝËø´æģʽת»»Ä£¿é£¬ÓÃÓÚÔÚIDE×ÜÏßÉÏË«±ßÑØËø´æÊý¾ÝºÍϵͳÄÚ²¿µ¥±ßÑØËø´æÊý¾ÝÖ®¼ä½øÐÐËø´æģʽµÄת»»£¬ÕâÊÇϵͳÉè¼ÆµÄºËÐÄÎÊÌâÖ®Ò»¡£¾ßÌåÀ´Ëµ£¬¾ÍÊÇÔÚ¶ÁÈ¡Ó²ÅÌÊý¾ÝʱÐèÒª½«IDE×ÜÏßÉÏ´«ÊäµÄË«±ßÑØËø´æÊý¾Ýת»»ÎªÏµÍ³ÄÚ²¿Ê¹Óõĵ¥±ßÑØËø´æÊý¾Ý£»ÔÚдӲÅ̲Ù×÷ʱÍê³ÉÏà·´µÄÈÎÎñ¡£ÔÚÉè¼Æʱ²ÉÓÃÁ½×é¼Ä´æÆ÷¶Ô²»Í¬Ê±ÖÓÑصÄÐźŽøÐÐËø´æ£¬ÔÚʱÖÓƵÂʲ»±äµÄ»ù´¡ÉÏ£¬Í¨¹ýÊý¾Ý´ø¿íµÄÀ©Õ¹£¬Íê³ÉË«±ßÑص½µ¥±ßÑصÄת»»¹¦ÄÜ£»ÔÚµ¥±ßÑØÊý¾Ýµ½Ë«±ßÑØÊý¾ÝµÄת»»¹ý³ÌÖУ¬²ÉÓÃÏà·´µÄ¹¹¼Ü¡£ 3 ϵͳ¹¤×÷Á÷³Ì ¡¡¡¡ÏµÍ³ÔÚÍê³É»ùÓÚUltra DMAµÄÊý¾Ý´«ÊäģʽµÄÓ²ÅÌ·ÃÎʹ¦ÄÜʱ£¬ÐèҪʵÏÖ¶ÔÓ²ÅÌÊý¾Ýͨ¹ýUltra I)MAģʽ½øÐеĶÁ²Ù×÷ºÍд²Ù×÷¡£Æä¾ßÌåµÄ¹¤×÷Á÷³Ì¸÷²»Ïàͬ£¬Ö÷ÒªÇø±ðÔÚÓÚ£º ¡¡¡¡¢ÙNiosϵͳÄÚ²¿µÄе÷¹ý³Ì¡£×÷Ϊϵͳ´¦ÀíºËÐĵÄNios´¦ÀíÆ÷£¬±ØÐëÏòÓ²Å̽ӿÚÂß¼ºÍDMA¿ØÖÆÆ÷Öз¢ËÍÖ¸ÁʹÆä°´ÕÕÉè¼ÆÒªÇóÖ´ÐÐÏàÓ¦µÄ²Ù×÷¡£ÏòÓ²Å̽ӿÚÂß¼²¿·Ö·¢ËͶÁдӲÅ̵ÄÖ¸Áîʱ£¬ÐèÒªÊ×ÏÈÃüÁî¶Á²Ù×÷ʱʹÓÃFIFO¶ÔÓ²ÅÌÊý¾Ý½øÐлº³å£¬ÔÚд²Ù×÷ʱ½«FIFOÖеĻº³åÊý¾Ý·¢Ë͵½Ó²ÅÌÖÐÍê³ÉдÈë²Ù×÷£»ÏòDMA¿ØÖÆÆ÷²¿·Ö·¢ËÍÖ¸Áе÷½Ó¿Ú»º³åÇøFIFoºÍϵͳÄÚ´æSDRAMÖÐÊý¾ÝµÄ½»»¥¹ý³Ì£¬ÒÔÍê³É¶ÔÓ²Å̵ĶÁд²Ù×÷¡£ ¡¡¡¡¢Ú¶ÔÓ²Å̵ĶÁд·ÃÎʲÙ×÷¡£ÔÚ¶ÔÓ²Å̽øÐжÁд²Ù×÷ʱ£¬±ØÐëÏòÓ²Å̵ĽӿڼĴæÆ÷Öз¢ËÍDMA¶ÁÖ¸Áî»òдָÁÆäÖ¸ÁîÂëºÍ²Ù×÷˳ÐòÒ²²»¾¡Ïàͬ£¬Èçͼ4¡¢Í¼5Ëùʾ¡£ 4 ϵͳµÄÈí¼þʵÏÖ ¡¡¡¡ÔÚNios SDK Shell»·¾³Ï£¬Ê¹ÓôøMonitorµÄbootloader³ÌÐò£¬¿ÉÒÔÔÚ³ÌÐòDebugµÄͬʱ¼à¿ØÄÚ²¿´æ´¢Æ÷µÄ±ä»¯£¬±ãÓÚÓ²¼þÉè¼ÆµÄ¼ì²éºÍ³ÌÐòµÄµ÷ÊÔ¡£Èí¼þµÄ±àдÖ÷Òª²ÉÓÃCÓïÑÔ£¬²¿·ÖǶÈëÁË»ã±àÓïÑÔ¡£Õû¸öϵͳÈí¼þÉè¼ÆÖеÄÖصãÊÇÒÔÏÂÁ½²¿·Ö¡£ (1)NiosϵͳÄÚDMA¿ØÖÆÆ÷µÄ±à³Ì ¡¡¡¡ÔÚDMA´«Êä¹ý³ÌÖÐÐèÒªÍê³ÉµÄ²Ù×÷ÓУº¢ÙÅäÖÃDMA¿ØÖÆÆ÷£»¢ÚÈí¼þÆô¶¯DMAÍâÉ裬¿ªÊ¼DMA´«Ê䣻¢ÛDMA¿ØÖÆÆ÷µÄÖ÷É豸¶Á¶Ë¿Ú´ÓÄ¿±êµØÖ·¶ÁÈ¡Êý¾Ý£¬Ö÷É豸д¶Ë¿ÚÏòÄ¿±êµØַдÈëÊý¾Ý£»¢ÜDMA´«Êä½áÊø¡£ ¡¡¡¡ÕâÒ»¹ý³ÌÖУ¬ÐèÒªÏòDMA¿ØÖÆÆ÷µÄ¼Ä´æÆ÷ÖÐдÈë¿ØÖÆÖ¸ÁîÀ´¿ªÆôÒ»´ÎÊý¾Ý´«Êä¹ý³Ì¡£ÒªÇó³õʼ»¯µÄ¼Ä´æÆ÷ÓУºstatus¡¢readaddress¡¢wi rte¡êJddress¡¢lengthºÍcontiol¡£Ö®ºóµ÷ÓÃϵͳÌṩµÄDMA×Ó³ÌÐò¿ªÆôÒ»´ÎDMA²Ù×÷£¬Ê¹ÓõÄDMA×Ó³ÌÐòÓУºnr_dma_opy_1_tO_rarlge(ÔÚÔµØÖ·ºÍÄ¿±êµØÖ·Ö®¼ä£¬´«Êälength³¤¶ÈµÄÊý¾Ý£¬ÔµØÖ·¹Ì¶¨£¬¶øÄ¿±êµØÖ·ÔÚÿ´Î´«ÊäºóÔö¼Ó)£¬ÓÃÓÚÍê³ÉÊý¾Ý¶ÁÈ¡²Ù×÷ʱ£¬´ÓFIFO»º³åÇøÖÐÏòSDRAMÀï´«ÊäÊý¾Ý£»nr_dma_copy_range_to_l(ÔÚÔµØÖ·ºÍÄ¿±êµØÖ·Ö®¼ä£¬´«Êälengt³¤¶ÈµÄÊý¾Ý£¬Ä¿±êµØÖ·¹Ì¶¨£¬¶øÔµØÖ·ÔÚÿ´Î´«ÊäºóÔö¼Ó)£¬ÓÃÓÚÍê³ÉÊý¾Ýд²Ù×÷ʱ£¬´ÓSDRAMÀïÏòFIFOÖлº³åÊý¾Ý¡£ (2)Ó²Å̵ÄDMA¶ÁдÃüÁî ¡¡¡¡ÔÚ¶ÔÓ²Å̽øÐжÁд²Ù×÷ʱÐëÏòÓ²Å̵ļĴæÆ÷ÄÚдÈëDMA¶ÁÖ¸Áî(»òдָÁî)ºÍÏàÓ¦²ÎÊýºó²Å¿É¶ÔÓ²ÅÌÖеÄÊý¾Ý½øÐзÃÎÊ¡£ÔÚATAPI ÐÒéÖй涨ÁËREAD DMAÖ¸ÁîºÍWRITE DMAÖ¸ÁîµÄÃüÁî¸ñʽ£¬ÐèÒªÏòSectorCbunt¡¢SectorNulmber¡¢CyclindeLow¡¢CyblindelrHigh¡¢Device£¯Head¡¢Command¼Ä´æÆ÷ÖÐдÈë²ÎÊýºÍÃüÁî´úÂë¡£ÆäÖжÁÖ¸ÁîµÄ´úÂëÊÇC8h¡¢Ð´Ö¸ÁîµÄ´úÂëÊÇCAh¡£ÔÚдÈëÃüÁîºó¾Í¿ÉÒÔ¶ÔÓ²ÅÌÖеÄÊý¾Ý½øÐжÁд²Ù×÷¡£ ½á Óï ¡¡¡¡±¾ÏµÍ³Ê¹ÓÃNiosǶÈëʽϵͳÔÚµ¥Ð¾Æ¬ÄÚʵÏÖÁËÊý¾Ý´¦Àí¡¢´æ´¢·ÃÎÊ¡¢Êý¾Ýģʽת»»µÈ¶à¸ö¹¦ÄÜ¡£²ÉÓÃAltera¹«Ë¾ÌṩµÄQuartus II ºÍ SOPC Builder¿ª·¢¹¤¾ß¿ÉÒÔÔÚÍê³É½Ó¿Ú¹¦ÄÜÉè¼Æºó£¬¿ìËÙ½øÐÐϵͳµÄ¼¯³ÉÉè¼ÆºÍϵͳ·ÂÕ棬×îÖÕ¿ÉÒÔÔÚAlteraÌṩµÄ£ÃycloneϵÁÐоƬÉÏʵÏÖÕû¸öϵͳÉè¼Æ¡£¶Ô£Îios´¦ÀíÆ÷ÖØбà³Ì¿ÉÒÔÔÚ²»¸Ä±äϵͳӲ¼þ¿ò¼ÜµÄ»ù´¡ÉÏ£¬·½±ãµØÔö¼ÓϵͳµÄ¹¦Äܺʹ¦ÀíЧÂÊ£¬¶ÔϵͳµÄÉý¼¶ºÍÔÙ¿ª·¢ÓкܴóµÄ±ãÀû¡£ ×÷ÕߣºÎ÷°²µç×ӿƼ¼´óѧ ÓÚÃ÷†´ ÀîêÍ Éêæà À´Ô´£ºµ¥Æ¬»ú¼°Ç¶ÈëʽϵͳӦÓÃ