注:本文转自赛灵思中文社区论坛,源文链接在此。本文原作者为XILINX工程师
以下为个人译文,仅供参考,如有疏漏之处,还请不吝赐教。
本文重点聚焦:涉及多重驱动的场景、Vivado 综合工具如何处理此类场景以及如何报告此类场景。
多重驱动定义:
具有两个或更多个源的信号线 (net) 或信号 (signal) 称为多重驱动场景。
为何需要解决多重驱动场景?
多重驱动的存在属于设计错误,可能导致最终值难以确定。
因此针对具有多重驱动的信号线或信号,综合工具会发出错误或警告。在 Vivado 综合工具中将标记“严重警告 (Critical Warning)”。如果不加以解决,那么“opt_design”会标记“错误 (Error)”。
Vivado 报告多重驱动场景的方式如下:
Vivado 会在综合阶段识别具有多重驱动的信号线或信号。
针对设计中具有多重驱动的信号线,它会标记 Critical Warning (SYNTH 8-6859)。
它还会打印一个表格,其中包含设计中多重驱动信号线的数量。
例如:
示例 1:简单的多重驱动
此处 out1 是在顺序块 B1 和 B2 中驱动的,这就导致出现了多重驱动