»ùÓÚIP¸´ÓÃÉè¼ÆµÄ΢´¦ÀíÆ÷FSPLCSOCÄ£¿é

Ïà¹ØרÌ⣺ оƬ

1 ÒýÑÔ

ÎÄÖвÉÓÃIPºË¸´Ó÷½·¨ºÍSOC¼¼Êõ»ùÓÚAVR 8λ΢´¦ÀíÆ÷AT90S1200IP CoreÉè¼ÆרÓÃPLC΢´¦ÀíÆ÷FSPLCSOCÄ£¿é¡£

Ëæ×ÅоƬ¼¯³É³Ì¶ÈµÄ·ÉËÙÌá¸ß£¬IC²úÒµÖÐÐγÉÁËÒÔƬÉÏϵͳSOC(System-on-Chip)¼¼ÊõΪÖ÷µÄÉè¼Æ·½Ê½¡£Ò»¸öµç×Óϵͳ»ò·Öϵͳ¿ÉÒÔÍêÈ«¼¯³ÉÔÚÒ»¸öоƬÉÏ£¬Í¬Ê±ICÉè¼ÆÄÜÁ¦ºÍEDA¹¤¾ßÈ´Ïà¶ÔÂäºóÓÚ°ëµ¼Ì幤ÒÕ¼¼ÊõµÄ·¢Õ¹£¬Á½ÕßÖ®¼äÈÕÒæ¼Ó¾çµÄ²î¾àÒѾ­³ÉΪSOC¼¼Êõ·¢Õ¹¹ý³ÌÖÐÒ»¸öÍ»³öµÄÕÏ°­¡£²ÉÓûùÓÚIP¸´Óü¼Êõ½øÐÐÉè¼ÆÊǼõСÕâÒ»²î¾àΩһÓÐЧµÄ;¾¶£¬IP¸´Óü¼Êõ°üÀ¨Á½¸ö·½ÃæµÄÄÚÈÝ:IPºËÉú³ÉºÍIPºË¸´Óá£

2 IPºË¸´ÓÃ

IPºË¸´ÓÃ(IP Core Reuse)ÊÇÖ¸ÔÚ¼¯³Éµç·Éè¼Æ¹ý³ÌÖУ¬Í¨¹ý¼Ì³Ð¡¢¹²Ïí»ò¹ºÂòËùÐèµÄ֪ʶ²úȨÄÚºË(µÚÈý·½IPºË)£¬È»ºóÔÙÀûÓÃEDA¹¤¾ß½øÐÐÉè¼Æ¡¢×ۺϺÍÑéÖ¤¡£IPºËÊÇIP¸´ÓõÄÔØÌåºÍºËÐÄÄÚÈÝ£¬»ùÓÚÓ¦ÓÃÐèÇ󡢹淶ЭÒéºÍÐÐÒµ±ê×¼µÄ²»Í¬£¬IPºËµÄÄÚÈÝÒ²ÊÇǧ²îÍò±ðµÄ¡£ÔÚIC²úÒµÖУ¬IPºË±»¶¨ÒåΪÓÃÓÚASIC£¬ ASSP£¬ PLDµÈоƬÖУ¬ÇÒÔ¤Ïȶ¨ÒåºÃ¹¦ÄÜ¡¢¾­¹ýÑéÖ¤µÄ¡¢¿ÉÖظ´ÀûÓõĵç·¹¦ÄÜÄ£¿é£¬ÈçPCI½Ó¿ÚºË¡¢ADCºË£¬FIRÂ˲¨Æ÷ºË¡¢SDRAM¿ØÖÆÆ÷ºËµÈ¡£¸ù¾ÝICÉè¼Æ²ã´ÎµÄ²»Í¬¡£IPºË·ÖΪÒÔÏÂÈýÀà:ÈíIP(Soft IP)¡¢Ó²IP(Hard IP)£¬¹ÌIP (Firm IP)¡£ÎÄÖÐÖ÷ÒªÉæ¼°µ½ÈíIPºËÉè¼ÆºÍ¸´Óá£ÈíIPÊÇ¿ÉÀà±È¡¢×ۺϵÄÓ²¼þÃèÊöÓïÑÔ(HDL)Ä£ÐÍ£¬Í¨³£ÊÇ¿É×ۺϵÄRTLÄ£ÐÍ£¬°üÀ¨Âß¼­ÃèÊö¡¢Íø±íºÍ²âÊÔµÄÎĵµ(Testbench)¡£ÈíIPÉè¼ÆÖÜÆڶ̡¢Í¶ÈËÉÙ£¬Ó빤ÒÕÎ޹أ¬¿ÉÁé»îÐ޸ģ¬ÔÚÉè¼ÆÖÐÖ»Ðë¶ÔʱÐò¡¢Ãæ»ýºÍ¹¦ºÄ½øÐÐÐÞÕý£¬¿É¸´ÓÃÐÔ×î¸ß¡£»ùÓÚÈíºËµÄÉè¼Æ(Soft Core-based design)ÊÇÒ»Öַdz£ÊµÓõÄSOCÉè¼Æ·½·¨¡£Ëü½«ÏµÍ³µÄ¹¦ÄÜ»®·ÖΪ²»Í¬µÄÈíºË£¬°üÀ¨Î¢´¦ÀíÆ÷¡¢ALU¡¢ROM¡¢PC¡¢ROM¡¢I/0µÈ¡£ÓÉÓÚÈíIPºË½öÌṩÄܹ»×ۺϵÄHDLÃèÊö£¬Òò´Ë¸´ÓÃÇ°ÐèÒªÉîÈ˵ØÁ˽âHDLÎļþÃèÊöµÄRTLÄ£ÐÍ£¬²ÉÓÃÊʵ±¹¤ÒÕ¼¼ÊõµÄ±ê×¼µ¥Ôª¿â£¬ÔÙÖØнøÐÐ×ۺϡ¢²¼¾Ö²¼Ïß¡¢ºó·ÂÕæÌáÈ¡Íø±í¡¢Ñé֤ʱÐòµÈ·´¸´¹¤×÷£¬×îºó¼¯³Éµ½SOCÉè¼ÆÖУ¬Òò´ËSOCÉè¼Æ¼´Éú³ÉµÄIPºËºÍµÚÈý·½¸´ÓÃIPºË¼¯³ÉÕûºÏ¡£

3 FSPLC΢´¦ÀíÆ÷IPºËÉè¼Æ

3.1 IPÈíºËÉú³É

ÎÄÖлùÓÚAVR8λ΢´¦ÀíÆ÷·ÖÎöʵ¼ÊPLCÌÝÐÎͼ¼°ÆäÖ¸Áî±í£¬Éè¼ÆÂß¼­´¦ÀíÆ÷LP¡¢²¼¶û´¦ÀíÆ÷BP¡¢´æ´¢Æ÷λ½Ó¿ÚMBIµÈ3¸öÄ£¿éÓÃÓÚÌá¸ßPLCÖ´ÐÐËٶȣ¬ÏÂÃæÒÔÂß¼­´¦ÀíÆ÷LPµ¥ÔªÄ£¿éΪÀý£¬ÃèÊöIPÈíºËÉú³É¡£PLCÌÝÐÎͼ°üÀ¨8ÖÖ»ù±¾µç·:×ó·ÖÖ§´¥µãLBC/·Ç´¥µãLBCN£¬ÓÒ·ÖÖ§´¥µãRBC/·Ç´¥µãRBCN£¬ Ë«·ÖÖ§´¥µãDBC/·Ç´¥µãDBCN£¬²»·ÖÖ§´¥µãNBC/²»·ÖÖ§·Ç´¥µãNBCN¡£ÎÄÖиù¾ÝÕâ8ÖÖ»ù±¾µç·Éè¼ÆÒ»¸ö16xl6´¥µã¾ØÕóµç·£¬¼´Âß¼­´¦ÀíÆ÷LPµ¥Ôª£¬¾ØÕóÖи÷¸ö´¥µãÓɵç×Óµç·ģÄâPLCÌÝÐÎͼ»ù±¾µç·¡£ÔÚÈκÎÒ»¸ö´¥µãÉÏ°üÀ¨ºáÏßÊäÈë¡¢ÊúÏßÊäÈë¡¢Òý³öÊä³öÏßȦ¡£´¥µã¾ØÕóÖй²ÓÐ256¸öºáÏßÊäÈëȦ½Úµãhi£¬240¸öÊúÏßÊäÈëȦ½Úµãvi£¬256¸öÊä³öÏßȦIo¡£µ±Ò»Ðг¬¹ý16ʱ£¬×ªÏòÏÂÒ»ÐУ¬ÒԴ˹¹³É¾ØÕóµç·£¬Èçhi[i]£¬vi[i]£¬lo[i]±íʾij¸ö´¥µãµÄºáÏßÊäÈë¡¢ÊúÏßÊäÈë¡¢Êä³ö£¬ÄÇôÆäͬÐеÄÏÂÒ»¸ö´¥µãµÄºáÏßÊäÈë¡¢ÊúÏßÊäÈë¡¢Êä³ö·Ö±ðΪhi[i+ 1]¡¢vi[i+1]¡¢lo[i+1]£¬ÆäͬÁеÄÏÂÒ»¸ö´¥µãhi[i+16]¡¢vi[i+16]¡¢lo[i+16]£¬ÄÇôÊä³ö´¥µãµÄ±í´ïʽΪ

I0[i]=I0[i-1]hi[i]+vi[i-16]lo[i-16]+vi[i]lo[i+16-1]hi[ i+16] ¡£

ÒԴ˸÷¸ö´¥µã±Ë´Ë»¥ÏàÁ¬½Ó×é³É´¦ÀíÌÝÐÎͼµÄ´¥µã¾ØÕó¡£Èçͼ1Ëùʾ¡£

ͼ1 LPµ¥Ôª´¥µãµç×Óµç·ģÄâ

Âß¼­´¦ÀíÆ÷LP²ÉÓÃVerilogÃèÊö£¬½èÖúModel-Sim½øÐй¦ÄÜ·ÂÕ棬Ñé֤ģ¿é¹¦ÄܵÄÕýÈ·ÐÔ¡£LPµ¥Ôª¹¦ÄÜ·ÂÕ沨ÐÎÈçͼ2Ëùʾ¡£

ͼ2 LPµ¥Ôª¹¦ÄÜ·ÂÕ沨ÐÎ

ÑéÖ¤¹¦ÄÜÕýÈ·ºó£¬½èÖúSynosysµÄ×ۺϹ¤¾ßSynplify Pro¶ÔÄ£¿é½øÐÐ×ۺϡ£×ۺϰüÀ¨Compiling¡¢Mapping¡¢Optimization¡£×ÛºÏʱ½«¾­ModelSim¡£¹¦ÄÜ·ÂÕæÑéÖ¤µÄÔ´´úÂëµ÷ÈËSynplify Pro£¬Ö´ÐÐCompiler£¬±àÒëºó£¬´´½¨Ô¼ÊøÎļþ¡£sdc£¬±à¼­Ô¼ÊøÎļþ¶ÔÄ£¿éÌí¼ÓÔ¼ÊøÌõ¼þ£¬°üÀ¨Ê±ÖÓ¡¢Ãæ»ý¡¢ÉÈÈËÉȳö¡¢ÑÓʱµÈ£¬Ìí¼ÓÔ¼ÊøºóÖ´ÐÐ×ۺϣ¬²úÉúÍø±íÎļþ¡£EDF¡£¸ù¾Ý×ۺϺó¸ø³öµÄ¡£logÎļþ¹Û²ìConstraintÎļþÖеÄÔ¼ÊøÌõ¼þÊÇ·ñÂú×ãÐèÒª£¬ÀýÈç°´ÕÕ¸ø³öµÄ“Worst Path Information£¬ÐÞ¸ÄÔ¼ÊøÒÔÂú×ãWorst PathµÄÒªÇó¡£×ÛºÏÍê³ÉºóÔÚQuartus ¢ò4¡£0Õ¹¿ªÍø±íÎļþ£¬²¼¾Ö²¼Ïߺó±àÒëÐγɡ£sofÎļþ£¬½«´ËÎļþϼ¶µ½Alters Nios¿ª·¢°å½øÐÐÑéÖ¤£¬ÑéÖ¤ÕýÈ·ºóÔÙ½èÖúModelSim½øÐÐʱÐòÑéÖ¤¡£

3.2 AVRIPºË¸´ÓÃ

AVR8λ΢´¦ÀíÆ÷AT90S1200IPºËÓÉopencores¡£orgÌṩ¡£Õû¸ö΢´¦ÀíÆ÷IPºË°üÀ¨ALU¡¢PC¡¢SRAM¡¢IR¡¢ROM¡¢I/0£¬¿ØÖƵȔ¸öÄ£¿é£¬¿ÉÒÔ·Ö³É3¸öµ¥Ôª£»È¡Ö¸µ¥Ôª¡¢Ö´Ðе¥ÔªºÍI/0µ¥Ôª¡£Ö¸ÁîÖ´ÐÐʱ£¬È¡Ö¸µ¥Ôª¸ºÔðÈ¡³öÏÂÒ»¸öÖ¸ÁִÐе¥Ôª¸ºÔðÖ´Ðе±Ç°Ö¸Á¶øLOµ¥Ôª¸º×ʺÍÍâ½çµÄÁ¬½Ó¡£È¡Ö¸µ¥ÔªºÍÖ´Ðе¥Ôª×é³É΢´¦ÀíÆ÷µÄCPU¡£

Õû¸öAVRIPºË°üÀ¨Ðí¶à¼Ä´æÆ÷:Ö¸Áî¼Ä´æÆ÷¡¢Ö¸Á·Ý¼Ä´æÆ÷¡¢³ÌÐò¼ÆÊýÆ÷¡¢Í¨ÓüĴæÆ÷¡¢´æ´¢µØÖ·¼Ä´æÆ÷(MAR)£¬1/O¿Ú¿ØÖƼĴæÆ÷µÈ¡£Õû¸öϵͳµÄ¹¤×÷¾ÍÊÇ»ùÓÚÕâЩ¼Ä´æÆ÷Ö®¼äµÄÊý¾Ý´«Êä¡£Éè¼ÆËùÓеļĴæÆ÷ÒÔ¼°ËüÃÇÖ®¼äµÄ×éºÏÂß¼­¼°ÆäÁ¬½Ó¾ÍÊÇϵͳµÄÊý¾ÝͨµÀÉè¼Æ¡£¿ØÖÆÄ£¿é¾ö¶¨ÔõÑù½øÐмĴæÆ÷´«Óä¡£Êý¾ÝͨµÀºÍ¿ØÖƵ¥Ôª×é³ÉÁËÕû¸ö΢´¦ÀíÆ÷¡£

¶ÔÓÚAT90S12001PºË¸´Ó㬿¼Âǵ½IPºËÔÚSOCÖм¯³ÉÕûºÏ£¬Ê×ÏÈÐë³¹µ×Á˽âËù¸´Óú˵ļܹ¹ºÍÖ¸Á£¬½èÖúModelSim½øÐй¦ÄÜ·ÂÕ棬½¨Á¢Testbenchƽ̨²âÊÔ²¨ÐÎÑéÖ¤¹¦ÄܵÄÕýÈ·ÐÔ£¬Èçͼ3Ëùʾ¡£±àÒëÎÞÎóÇÒ¹¦ÄÜÕýÈ·ºó½èÖúSynplify Pro¶ÔIPºËÊδúÂë½øÐÐÂß¼­×ۺϣ¬Èç¹ûVHDL³ÌÐòÕýÈ·ÎÞÎó²¢ÇÒÆä±à³Ì·ç¸ñ·ûºÏSynplify Pro×ÛºÏÒªÇó£¬Synplify Pro½«²úÉúÒ»¸öÍø±íÎļþ(¡£EDFÎļþ)£¬ÔÙ½èÖúQuartusA4¡£0ºÍModelSim·Ö±ð½øÐÐFPGAÑéÖ¤ºÍʱÐòÑéÖ¤£¬´Ë¹ý³Ì²»¶ÏÑ­»·£¬Ö±ÖÁ¸´ÓõÄ΢´¦ÀíÆ÷IPºËûÓÐÈκδíÎó¡£

ͼ3 AVRIP¸´ÓòâÊÔƽ̨Testbench¿òͼ

×÷ÕߣºÈ½·å ÀîÈó¹â ÐìÃÀ»ª ¿µÖ¾Ó¢ À´Ô´£ºµ¥Æ¬»úÓëǶÈëʽϵͳ


΢ÐÅɨÃè·ÖÏí±¾Îĵ½ÅóÓÑȦ
ɨÂë¹Ø×¢5GͨÐŹٷ½¹«ÖÚºÅ,Ãâ·ÑÁìÈ¡ÒÔÏÂ5G¾«Æ·×ÊÁÏ
  • 1¡¢»Ø¸´¡°YD5GAI¡±Ãâ·ÑÁìÈ¡¡¶ÖйúÒƶ¯£º5GÍøÂçAIÓ¦ÓõäÐͳ¡¾°¼¼Êõ½â¾ö·½°¸°×ƤÊé¡·
  • 2¡¢»Ø¸´¡°5G6G¡±Ãâ·ÑÁìÈ¡¡¶5G_6GºÁÃײ¨²âÊÔ¼¼Êõ°×ƤÊé-2022_03-21¡·
  • 3¡¢»Ø¸´¡°YD6G¡±Ãâ·ÑÁìÈ¡¡¶ÖйúÒƶ¯£º6GÖÁ¼òÎÞÏß½ÓÈëÍø°×ƤÊé¡·
  • 4¡¢»Ø¸´¡°LTBPS¡±Ãâ·ÑÁìÈ¡¡¶¡¶ÖйúÁªÍ¨5GÖն˰×ƤÊé¡·¡·
  • 5¡¢»Ø¸´¡°ZGDX¡±Ãâ·ÑÁìÈ¡¡¶ÖйúµçÐÅ5GNTN¼¼Êõ°×ƤÊé¡·
  • 6¡¢»Ø¸´¡°TXSB¡±Ãâ·ÑÁìÈ¡¡¶Í¨ÐÅÉ豸°²×°¹¤³ÌÊ©¹¤¹¤ÒÕͼ½â¡·
  • 7¡¢»Ø¸´¡°YDSL¡±Ãâ·ÑÁìÈ¡¡¶ÖйúÒƶ¯ËãÁ¦²¢Íø°×ƤÊé¡·
  • 8¡¢»Ø¸´¡°5GX3¡±Ãâ·ÑÁìÈ¡¡¶R1623501-g605GµÄϵͳ¼Ü¹¹1¡·
  • ±¾ÖÜÈȵ㱾ÔÂÈȵã

     

      ×îÈÈͨÐÅÕÐƸ

    Òµ½ç×îÐÂ×ÊѶ


      ×îÐÂÕÐƸÐÅÏ¢

    ×îм¼ÊõÎÄÕÂ

    ×îÐÂÂÛ̳Ìù×Ó