BY Ajay Petley
注意:本文所有内容皆来源于Xilinx工程师,如需转载,请写明出处作者及赛灵思论坛链接并发邮件èï¼æªç»Xilinxåèä½æ人许å¯ï¼ç¦æ¢ç¨ä½åä¸ç¨éã
å¤é驱å¨å®ä¹ï¼
å ·æ两个ææ´å¤ä¸ªæºçç½ç»æä¿¡å·è¢«ç§°ä¸ºå¤é驱å¨åºæ¯ã
为ä½éè¦è§£å³å¤é驱å¨åºæ¯ï¼
å¤é驱å¨çåå¨å±äºè®¾è®¡é误ï¼æç»å¼å¯è½é¾ä»¥ç¡®å®ã
å æ¤ç»¼åå·¥å ·ä¼éå¯¹å ·æå¤é驱å¨çç½ç»æä¿¡å·ååºé误æè¦åãå¨ Vivado 综åå·¥å ·ä¸å°æ è®°â严éè¦å (Critical Warning)âãå¦æä¸å 以解å³ï¼é£ä¹âopt_designâä¼æ è®°âé误 (Error)âã
Vivado æ¥åå¤é驱å¨åºæ¯çæ¹å¼å¦ä¸ï¼
Vivado ä¼å¨ç»¼åé¶æ®µè¯å«å ·æå¤é驱å¨çç½ç»æä¿¡å·ã
å®ä¼é对设计ä¸å ·æå¤é驱å¨çç½ç»æ è®° Critical Warning (SYNTH 8-6859)ã
å®è¿ä¼æå°ä¸ä¸ªè¡¨ï¼å ¶ä¸å å«è®¾è®¡ä¸å¤é驱å¨ç½ç»çæ°éã
ä¾å¦ï¼
ç¤ºä¾ 1ï¼å¤é驱å¨æ ·æ¬
æ¤å¤ out1 æ¯å¨é¡ºåºå B1 å B2 ä¸é©±å¨çï¼è¿å°±å¯¼è´åºç°äºå¤é驱å¨ç¶åµã
åæ ·ï¼ç±ç»åé»è¾å/æ顺åºé»è¾é©±å¨çè¿çº¿ä¹ä¼å¯¼è´åºç°å¤é驱å¨åºæ¯ã
对äºæ»çº¿ï¼ç±å¤ä¸ªæºé©±å¨çä»»ææ¯ç¹é½ä¼å¯¼è´åºç°å¤é驱å¨åºæ¯ã
注ï¼å¯¹äºå ·æä¸åæºçä¸ç¨æ¯ç¹ï¼Vivado ä¸ä¼æ è®°å¤é驱å¨ã
ç¤ºä¾ 2ï¼å¤é驱å¨ãä¸æåå±çº§æ³¨æäºé¡¹
å ·æä¸æå¤é驱å¨çç½ç»ä¸è¢«è§ä½ä¸ºå¤é驱å¨ç¶åµã
é常ï¼ä»»æç»å®æ¶é´ç¹åªè½æåä¸æºå¤äºæ´»å¨ç¶æã
å模åä¸åå¨çä¸æ驱å¨å°è¢«æååºæ¥å¹¶åå½æé«å±çº§ã
ç¤ºä¾ 3ï¼å ¶ä¸ä¸ä¸ªé©±å¨å±äºç¨æ·å®ä¹ç常éçå¤é驱å¨åºæ¯
å¨æ¤ç¤ºä¾ä¸ï¼å ¶ä¸ä¸ä¸ªç½ç»é©±å¨ä¸ºå¸¸éã
å¨æ¤ç±»æ åµä¸ï¼è¯¥å·¥å ·ä¼éµå¾ªå¸¸é驱å¨è¿è¡è忽ç¥å¦ä¸ä¸ªé©±å¨ã
è¯¥å·¥å ·ä»ç¶ä¼ååºæ¸ æ°ç Critical Warningã
ç¤ºä¾ 4ï¼VIO/ILA æ è®°è°è¯åå¤é驱å¨æ³¨æäºé¡¹
å¨ Vivado ä¸ï¼å¦æä¸åçæ»çº¿æ¯ç¹ç±ä¸åå模å驱å¨ï¼åä¸ä¼å°å ¶è§ä¸ºç±å¤ä¸ªæºé©±å¨ãç±äºæ¯ä¸ªæ¯ç¹é½æèªå·±çä¸ç¨é©±å¨ï¼å æ¤ä¸åå¨äºç¨ã
ä½å¨æ¤ç¤ºä¾ä¸ï¼å¦æåºç¨ä»¥ä¸ä»»ä¸å±çº§éå¶æ类似éå¶ï¼Vivado å°±ä¼å°å ¶è§ä½ä¸ºå¤é驱å¨ç¶åµã
- å¨å模åä¸åºç¨âkeep_hierarchyâ
- å¨å模åä¸åºç¨âdonât_touchâå±æ§
- å¨å模åçä»»æ端å£ä¸åºç¨âmark_debugâå±æ§
- å°å模åçä»»æ端å£è¿æ¥å° ILA/VIO è°è¯æ ¸
åçæ¤ç¶åµçåå æ¯ç¨æ·æªä¸¥æ ¼éµå¾ªç¸å ³ååæ¥ä¿æå模åä¾åçè¾¹çã
å®ä¾ U1 ä» é©±å¨ out1[0]ï¼out1[1] è¿æ¥å° GNDã
å®ä¾ U2 ä» é©±å¨ out1[1]ï¼out1[0] è¿æ¥å° GNDã
ç±äº out1 çæ¯ä¸ªæ¯ç¹é½å ·æ两个驱å¨ï¼å æ¤ Vivado å°æ¤è§ä½ä¸ºå¤é驱å¨ç¶åµã
è°è¯æ¹æ³ï¼
ææ¶æ ¹æ®çæçæ¶æ¯é¾ä»¥ç¡®å®å¤é驱å¨çåç¡®å称ã
å½é©±å¨éç¨äºå·¥å ·çæçç½ç»èä¸æ¯ç¨æ·å®ä¹çç½ç»æ¶ï¼å°±ä¼åçæ¤ç±»ç¶åµã
æ¨éè¦éè¿æç´¢å ·æå¤ä¸ªé©±å¨çç½ç»æ¥æ¥æ¾å¤é驱å¨ç½ç»ç驱å¨ã
æ¨å¯ä»¥ä½¿ç¨ä»¥ä¸ Tcl å½ä»¤ï¼
get_nets -hierarchical -top_net_of_hierarchical_group -filter { DRIVER_COUNT > 1 }
并ä¸ææ¶æ好è¿è¡ opt_designï¼å 为åªè¦ç»¼åä¸åå¨å¤é驱å¨ï¼âopt_designâå°±ä¼ååº Errors æ è®°ãä½ç±äºè®¾è®¡ç»è¿è¿ä¸æ¥ä¼åï¼å¹¶ä¸å½åææåï¼DCPãè°è¯æ¨¡åï¼é½å¯ç¨ï¼å æ¤ opt ä¸çå¤é驱å¨é误å¯è½æ´ç²¾ç¡®ã
åç¯å¹ æéï¼æ¬æ并æªæ¶µçææåºæ¯ã以ä¸ååºé¨åå ¶ä»åºæ¯ï¼å°æ¥å¯æ ¹æ®éè¦è¿ä¸æ¥è¯¦ç»è®²è§£ã
é对称 3D RAMï¼å¨ TDP 3D RAM ä¸ï¼ä¸åæ¯æç模æ¿å¯è½å¯¼è´åºç°å¤é驱å¨åºæ¯ã
æ¥å£ modportï¼æ¥å£ä¸å·²å®ä¹ä¿¡å·ä½æªå°å ¶å®ä¹ä¸º modportï¼æ¤ç±»ä¿¡å·å°è¢«ä½ä¸º inout æ¥å¤çãè¿å¯è½ä¼å¯¼è´åºç°å¤é驱å¨åºæ¯ã
æ»ç»ï¼
è³æ¤ï¼ç¸ä¿¡æ¨åºè¯¥å·²ç»äºè§£äºå¯è½åçå¤é驱å¨çåç§åºæ¯ï¼å¹¶ä¸å·²æ¸ æ¥è®¤è¯å°éè¦ä¿®æ¹ RTL æè½ç»§ç»è¿è¡æµç¨ã
æ¥æºï¼èµçµæ