0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

多重驱动是什么?为什么需要解决

汽车玩家 来源:赛灵思 作者:赛灵思 2020-03-08 17:31 次阅读

多重驱动定义:

具有两个或更多个源的网络信号被称为多重驱动场景。

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

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

因此综合工具会针对具有多重驱动的网络或信号发出错误或警告。在 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 才能继续运行流程。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Vivado
    +关注

    关注

    18

    文章

    787

    浏览量

    65090
收藏 人收藏

    评论

    相关推荐

    pcb应变测试有多重要?一文了解!

    pcb应变测试有多重要?一文了解!
    的头像 发表于 02-24 16:26 611次阅读

    选择电机驱动需要注意什么

    电机驱动器是用于控制电动机运行的设备,它可以调节电机的速度、转矩、位置等参数,以满足不同应用场景的需求。在选择和使用电机驱动器时,通常需要考虑以下四大要点: 匹配性:电机驱动器与电动机
    的头像 发表于 02-05 11:32 411次阅读

    单重中断与多重中断介绍

    单重中断与多重中断 •单重中断在CPU执行中断服务程序的过程中不能被打断。当有新的更高优先级的中断发生时,正在执行的中断服务程序不会被暂停,转而执行新的中断服务程序。 •多重中断在执行某个中断服务
    的头像 发表于 10-30 16:46 1584次阅读
    单重中断与<b class='flag-5'>多重</b>中断介绍

    单片机驱动普通直流马达(如130马达)转动为什么需要驱动电路?

    单片机驱动普通直流马达(如130马达)转动为什么需要驱动电路?驱动电路对电流电压等作了怎样的处理? 单片机驱动普通直流马达
    的头像 发表于 10-27 14:25 1247次阅读

    高功率电源应用中需要怎样的隔离驱动?为什么需要隔离驱动

    高功率电源应用中需要怎样的隔离驱动?为什么需要隔离驱动?为什么有的电机不需要隔离驱动? 在高功率
    的头像 发表于 10-23 09:30 660次阅读

    为什么需要隔离驱动?为什么有的电机不需要隔离驱动

    为什么需要隔离驱动?为什么有的电机不需要隔离驱动? 为什么需要隔离驱动? 在电气设备中,隔离是保
    的头像 发表于 10-22 15:03 890次阅读

    在高功率应用中通常需要专用驱动器来驱动最后一级的功率晶体管?

    在电源与充电桩等高功率应用中,通常需要专用驱动器来驱动最后一级的功率晶体管? 电源与充电桩等高功率应用通常需要专用驱动器来
    的头像 发表于 10-22 14:47 429次阅读

    ADG5248F/ADG5249F:用户定义的过失保护和检测,0.8 PC QINJ, 8:1/Dual 4:1多重驱动器 ADG5248F/ADG5249F:用户定义的过失保护和检测,0.8 PC QINJ, 8:1/Dual 4:1多重驱动

    电子发烧友网为你提供ADI(ADI)ADG5248F/ADG5249F:用户定义的过失保护和检测,0.8 PC QINJ, 8:1/Dual 4:1多重驱动器相关产品参数、数据手册,更有
    发表于 10-07 17:51
    ADG5248F/ADG5249F:用户定义的过失保护和检测,0.8 PC QINJ, 8:1/Dual 4:1<b class='flag-5'>多重</b><b class='flag-5'>驱动</b>器 ADG5248F/ADG5249F:用户定义的过失保护和检测,0.8 PC QINJ, 8:1/Dual 4:1<b class='flag-5'>多重</b><b class='flag-5'>驱动</b>器

    为什么单片机的I/O口需要驱动

    为什么单片机的I/O口需要驱动
    的头像 发表于 09-27 15:32 426次阅读
    为什么单片机的I/O口<b class='flag-5'>需要</b><b class='flag-5'>驱动</b>?

    一种嵌入式Linux系统多重备份与恢复机制

    提出了一种嵌入式 Linux系统多重备份与恢复机制。采用在一片NAND Flash 上划分多个系统镜像区(包括内核和文件系统),在U-Boot和系统镜像中添加多重备份与恢复机制。当运行中的镜像区域
    发表于 09-20 07:01

    【赋能IoT生态系列5之4】多重网络智控模块升级方案

    【赋能IoT生态系列5之4】多重网络智控模块升级方案
    的头像 发表于 08-14 15:48 308次阅读
    【赋能IoT生态系列5之4】<b class='flag-5'>多重</b>网络智控模块升级方案

    SIMATIC S7-1500 PLC多重背景的应用1-2

    使用多重背景实现功能:电动机的启停控制和水位A/D转换数值高于3000时,报警输出。
    发表于 08-03 09:59 611次阅读
    SIMATIC S7-1500 PLC<b class='flag-5'>多重</b>背景的应用1-2

    SIMATIC S7-1500 PLC多重背景的应用1

    使用多重背景实现功能:电动机的启停控制和水位A/D转换数值高于3000时,报警输出。
    发表于 07-31 09:47 329次阅读
    SIMATIC S7-1500 PLC<b class='flag-5'>多重</b>背景的应用1

    博途的多重背景调用

    当函数块 (FB) 调用另一个函数块时,可其实例数据存储在调用函数块的背景数据块中。这种块调用又称之为多重实例。
    的头像 发表于 06-08 15:50 2173次阅读
    博途的<b class='flag-5'>多重</b>背景调用

    xilinx vivado调用cordic IP核进行实现时报错多重驱动

    用vivado2019.2建立工程,工程中调用cordic IP核进行atan求解,功能仿真时正常且满足要求;综合时正常;实现时报错提示多重驱动。 如果经cordic计算后的输出值不用于后续的操作
    发表于 06-06 17:17