驯顺多重驱动

本文详细介绍了Vivado中多重驱动的定义、示例、调试方法和注意事项,强调了多重驱动可能导致的设计错误和综合工具的响应。通过具体的例子,解释了如何识别和处理多重驱动问题,包括常量驱动、三态驱动和子模块层级的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:本文转自赛灵思中文社区论坛,源文链接在此。本文原作者为XILINX工程师

以下为个人译文,仅供参考,如有疏漏之处,还请不吝赐教。

本文重点聚焦:涉及多重驱动的场景、Vivado 综合工具如何处理此类场景以及如何报告此类场景。

多重驱动定义:

具有两个或更多个源的信号线 (net) 或信号 (signal) 称为多重驱动场景。

为何需要解决多重驱动场景?

多重驱动的存在属于设计错误,可能导致最终值难以确定。

因此针对具有多重驱动的信号线或信号,综合工具会发出错误或警告。在 Vivado 综合工具中将标记“严重警告 (Critical Warning)”。如果不加以解决,那么“opt_design”会标记“错误 (Error)”。

Vivado 报告多重驱动场景的方式如下:

Vivado 会在综合阶段识别具有多重驱动的信号线或信号。

针对设计中具有多重驱动的信号线,它会标记 Critical Warning (SYNTH 8-6859)。

它还会打印一个表格,其中包含设计中多重驱动信号线的数量。

例如:

示例 1:简单的多重驱动

此处 out1 是在顺序块 B1 和 B2 中驱动的,这就导致出现了多重驱动状况。

同样,由组合逻辑和/或顺序逻辑驱动的连线也会导致出现多重驱动场景。

对于总线,由多个源驱动的任意比特都会导致出现多重驱动场景。

注:对于具有不同源的专用比特,Vivado 不会标记多重驱动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值