DSP HPI×ÜÏßÓëMPC8272×ÜÏß½Ó¿ÚµÄFPGAʵÏÖ_ͨÐŹ¤³Ì±ÏÒµÂÛÎÄ
·¢²¼Ê±¼ä£º
2015-01-26
À´Ô´£º
ÈË´ó¾¼ÃÂÛ̳
DSP HPI×ÜÏßÓëMPC8272×ÜÏß½Ó¿ÚµÄFPGAʵÏÖ_ͨÐŹ¤³Ì±ÏÒµÂÛÎÄ
ÂÛÎÄÕªÒª£ºÍ¨¹ý¶ÔTI¹«Ë¾TMS320C6421 DSP HPI½Ó¿ÚÐźźͽӿÚ×ÜÏßʱÐòµÄ·ÖÎö£¬ÒÔVHDLÓïÑÔΪ¹¤¾ß£¬Ê¹ÓÃAlteraµÄFPGAоƬEP3C40F780C8£¬Éè¼ÆÍê³ÉMPC8272×ÜÏߺÍTMS320C6421 DSP HPI×ÜÏßÖ®¼äµÄͨÐŽӿڣ¬²¢ÔÚʵ¼ÊµÄ²úÆ·Öеõ½ÔËÓ㬸ø³öÓëÕû¸ö½Ó¿ÚÉè¼ÆÏà¹ØµÄVHDLÔ´´úÂë¡£¶ÔÓÚÀàËÆµÄDSP HPI½Ó¿ÚÉè¼Æ£¬´ËÎÄÕ¾ßÓвο¼ºÍÖ¸µ¼ÒâÒå¡£
Ò»¡¢HPI¸ÅÊö
HPI(Host-Port Interface)Ö÷»ú½Ó¿Ú£¬ÊÇTI¸ßÐÔÄÜDSPÉÏÅäÖõÄÓëÖ÷»ú½øÐÐͨÐŵį¬ÄÚÍâÉ衣ͨ¹ýHPI½Ó¿Ú£¬Ö÷»ú¿ÉÒԷdz£·½±ãµØ·ÃÎÊDSPµÄËùÓеØÖ·¿Õ¼ä£¬´Ó¶øÊµÏÖ¶ÔDSPµÄ¿ØÖÆ¡£
TMS320C6421µÄHPI½Ó¿ÚÊÇÒ»¸ö16bit¿íµÄ²¢Ðж˿ڡ£Ö÷»ú(host)¶ÔCPUµØÖ·¿Õ¼äµÄ·ÃÎÊÊÇͨ¹ýEDMA¿ØÖÆÆ÷ʵÏֵġ£ HPI½Ó¿ÚµÄ·ÃÎÊÖ÷Ҫͨ¹ýÈý¸öרÓüĴæÆ÷À´ÊµÏÖ£¬ËüÃÇ·Ö±ðÊÇHPI¿ØÖƼĴæÆ÷(HPIC)¡¢HPIµØÖ·¼Ä´æÆ÷(HPIA)ºÍHPIÊý¾Ý¼Ä´æÆ÷(HPID)¡£
¶þ¡¢HPI½Ó¿ÚÐźżò½é
(1) HD[15¡Ã0](Êý¾Ý×ÜÏß)
(2) HCNTL[1¡Ã0](¿ØÖÆHPI·ÃÎÊÀàÐÍ)
ÈçǰËùÊö£¬¶ÔHPIµÄ·ÃÎÊÐèҪͨ¹ýÈý¸ö¼Ä´æÆ÷£¬¼´HPIµØÖ·¼Ä´æÆ÷(HPIA)£¬HPIÊý¾Ý¼Ä´æÆ÷(HPID)ºÍHPI¿ØÖƼĴæÆ÷(HPIC)À´ÊµÏÖ¡£HCNTL[1¡Ã0]¾ÍÊÇÓÃÓÚÑ¡ÔñÕâÈý¸ö¼Ä´æÆ÷µÄרÓÃÒý½Å¡£
HCNTL1
HCNTL0
HPI·ÃÎÊÀàÐÍ
0
0
Ö÷»ú¿É¶ÁдHPI¿ØÖƼĴæÆ÷HPIC
0
1
Ö÷»ú¿É¶ÁдHPIÊý¾Ý¼Ä´æÆ÷HPID£¬¶Á²Ù×÷»òд²Ù×÷ºóHPIA×Ô¶¯Ôö1
1
0
Ö÷»ú¿É¶ÁдHPIµØÖ·¼Ä´æÆ÷HPIA
1
1
Ö÷»ú¿É¶ÁдHPIÊý¾Ý¼Ä´æÆ÷HPID£¬¶Á²Ù×÷»òд²Ù×÷ºóHPIA²»±ä
(3) HHWIL (°ë×ÖָʾѡÔñ)
HHWILָʾµ±Ç°µÄΪµÚÒ»¸ö»òÊǵڶþ¸ö°ë×Ö´«Ê䣬µ«ÐèҪעÒâµÄÊÇ£¬Ëü²¢²»´ú±íÊÇ×î¸ßÓÐЧµÄ(most significant)»¹ÊÇ×îµÍÓÐЧµÄ(least significant)£¬¶ø¾ö¶¨µÄÒÀ¾ÝÊÇHPICÖеÄHWOBλµÄ״̬¡£¶ÔÓÚµÚÒ»¸ö°ë×Ö£¬HHWIL±ØÐë±»Çý¶¯ÎªµÍµçƽ£»¶ÔÓÚµÚ¶þ¸ö°ë×Ö£¬HHWIL±ØÐë±»Çý¶¯Îª¸ßµçƽ¡£
(4) HR/W (¶Á/д²Ù×÷ָʾ)
HR/WΪ¸ßµçƽ£¬±íʾ´ÓHPI½Ó¿Ú¶Á£»HR/WΪµÍµçƽ£¬±íʾÏòHPI½Ó¿Úд¡£
(5) HRDY (Êä³ö×¼±¸ºÃ)
(6) HCS,HDS1,HDS2(ѡͨÐźÅ)
µ±HCSÓÐЧ£¬²¢ÇÒHDS1ºÍHDS2ÖнöÓÐÒ»¸öÓÐЧʱ£¬ÄÚ²¿´¥·¢ÐźÅHSTROBEÓÐЧ¡£ÕâÈý¸öÐźŵÄ×éºÏÂß¼Æäʵ¾ÍÊÇÆ¬Ñ¡ºÍ¶Á/дÐźŹ¹³ÉµÄ×éºÏÂß¼£¬Òò´Ë£¬¿ÉÖ±½ÓÓëÖ÷»úµÄƬѡºÍ¶Á/дÐźÅÏàÁ¬¡£ÈçÏÂͼËùʾ£º
(7) HAS (µØÖ·ÊäÈëѡͨ)
ÔÚTMS320C6421 HPI½Ó¿ÚÖÐĿǰûÓÐÓã¬Á¬½Óµ½Âß¼¸ßµçƽ¡£
(8) HINT(ÏòÖ÷»úÊä³öµÄÖжÏ)
Èý¡¢HPI½Ó¿Ú¼Ä´æÆ÷¼ò½é
ÈçÉÏËùÊö£¬Ö÷»úͨ¹ýHPI½Ó¿Ú¶ÔDSPµÄ·ÃÎÊʵ¼ÊÉÏÊÇͨ¹ýÈý¸ö¼Ä´æÆ÷À´ÊµÏֵģ¬ÏÂÃæ¾ÍÕë¶ÔÕâÈý¸öרÓüĴæÆ÷½øÐнéÉÜ¡£
(1)HPI¿ØÖƼĴæÆ÷(HPIC)
HPICÖÐÿһλ¶¼ÓÐÌØ¶¨µÄ¹¦ÄÜ£¬ÔÚ¶ÔHPI½øÐзÃÎʵĹý³ÌÖÐÐèÒªÌØ±ð×¢Òâ¡£¼òÒª½éÉÜÒ»ÏÂÕâЩ¹¦ÄÜλµÄ×÷Óá£
¢ÙHWOB(°ë×Ö˳Ðòλ)
Èç¹ûHWOB=1£¬µÚÒ»¸ö°ë×ÖΪ×îµÍÓÐЧ£»Èç¹ûHWOB=0£¬µÚÒ»¸ö°ë×ÖΪ×î¸ßÓÐЧ¡£HWOB¶ÔµØÖ·ºÍÊý¾Ý¶¼Æð×÷Óã¬Èç¹û²ÉÓÃHPI16ģʽ£¬ÔÚ·ÃÎÊÊý¾Ý»òÕßµØÖ·¼Ä´æÆ÷֮ǰ£¬Ó¦¸ÃÊ×Ïȳõʼ»¯HWOBλ¡£
¢ÚDSPINT(Ö÷»ú²úÉúµÄProcessor-to-CPUÖжϣ¬ÓÃÓÚHPIÆô¶¯·½Ê½Öн«DSPÄں˴Ӹ´Î»×´Ì¬Öл½ÐÑ)
¢ÛHINT(DSP-to-HostÖжϣ¬¼´Í¨¹ýÏò´ËλдÈëÌØ¶¨ÖµÀ´²úÉú¶ÔÖ÷»úµÄÖжÏ)
(2) HPIµØÖ·¼Ä´æÆ÷(HPIA)
´æ·Å32bitÊý¾Ý£¬Ö¸Ïò½«Òª·ÃÎʵÄDSPµØÖ·¿Õ¼äÖеĵØÖ·¡£
(3) HPIÊý¾Ý¼Ä´æÆ÷(HPID)
ÔÚд²Ù×÷Öдæ·Å½«ÒªÐ´ÈëHPIAËùÖ¸ÏòµØÖ·µÄÊý¾Ý£¬ÔÚ¶Á²Ù×÷ÖÐΪHPIAËùÖ¸ÏòµØÖ·ÖеÄÊý¾Ý¡£
ËÄ¡¢HPI½Ó¿Ú¶ÁдʱÐò
¢ÅHPI½Ó¿Ú¶ÁʱÐò
¢ÆHPI½Ó¿ÚдʱÐò
Îå¡¢HPI½Ó¿ÚÓ²¼þÉè¼Æ
´ÓC6421 HPI¼Ä´æÆ÷µÄ±àÖ··½Ê½¿ÉÒÔ¿´³ö£¬Ö÷»úÐèÁ½¸ùµØÖ·ÏßѰַµ½HPI½Ó¿ÚµÄ¿ØÖƼĴæÆ÷¡¢µØÖ·¼Ä´æÆ÷ºÍÊý¾Ý¼Ä´æÆ÷£¬Òò´ËÑ¡ÔñÖ÷»úµÄµØÖ·ÏßA29¡¢A28Á¬½ÓC6421 HPIµÄHCNTL1¡¢HCNTL0¡£Ñ¡ÔñÖ÷»úµÄµØÖ·ÏßA30Á¬½Óµ½C6421 HPIµÄHHWIL£¬×÷Ϊ°ë×ÖָʾѡÔñ¡£HPIµÄѡͨÓÉHCS¡¢HDS1¡¢HDS2Èý¸ùÐźÅÏß¹²Í¬×÷Óã¬×îºóµÄHPIʹÄÜÐźÅ(STROBE)ΪHDS1Òì»òHDS2ºó£¬ÔÙÓëHCS½øÐÐÓë·ÇÔËËãµÄ½á¹û¡£HCS¡¢HDS1¡¢HDS2ÐźÅÓÉFPGA²úÉú¡£TAΪMPC8272´«Êä½áÊø±êʶ£¬HPI¿ÚHRDYÓÐЧºóFPGAÏòCPU