VIVADO综合时报错 : has multiple drivers

这篇具有很好参考价值的文章主要介绍了VIVADO综合时报错 : has multiple drivers。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

错误分析:关键词是multiple drivers。同一个变量,在不同的always 或者assign中被赋值,造成冲突。这在Verilog语言中是不被允许的。尤其是在复制一段代码之后,漏掉要修改的变量名,很容易导致这个问题。

不可综合语句——在多个always块中对同一变量赋值

原因探究:寄存器输入端是由触发器组成的,用两个always块这个寄存器进行赋值,无论其中经过了怎样的条件判断,最终结果毫无疑问是将两个相独立的触发信号连在了寄存器的CLK端上,一端口接入两信号,这显然已经不是一个符合标准的数字逻辑电路了。所以这样的语句是无法被综合成电路的。(不同软件的处理似乎不同,quartus2是直接拒绝双always赋值,而有的综合布线软件在警告之后会将两个信号连到一个双端口门上再接入寄存器,这显然会改变程序原有逻辑,画波形图一看就知道了)

赋值规范
“在描述组合逻辑的always块中使用阻塞赋值,则综合成组合逻辑的电路结构。”
“在描述时序逻辑的always块中使用时序赋值,则综合成时序逻辑的电路结构。”

阻塞与非阻塞赋值的使用原则:
原则1:时序电路建模时,用非阻塞赋值。
原则2:锁存器电路建模时,用非阻塞赋值。
原则3:用always块描述组合逻辑时,采用阻塞赋值。
原则4:在同一个块中描述时序逻辑和组合逻辑的混合逻辑时,用非阻塞赋值。
原则5:同一个always块中只能全用阻塞赋值或者全用非阻塞赋值。
原则6:不能在多个always块中对同一个变量进行赋值。文章来源地址https://www.toymoban.com/news/detail-400901.html

到了这里,关于VIVADO综合时报错 : has multiple drivers的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • xilinx FPGA 乘法器ip核(multipler)的使用(VHDL&Vivado)

    一、创建除法ip核  可以选择两个变量数相乘,也可以选择一个变量输入数据和一个常数相乘 可以选择mult(dsp资源)或者lut(fpga资源) 可以选择速度优先或者面积优先 可以自己选择输出位宽 还有时钟使能和复位功能  二、编写VHDL程序:声明和例化乘法器ip核 三、编写仿真程

    2024年02月11日
    浏览(51)
  • VIVADO 综合优化掉模块或者综合太长的原因

    1.首先,不要怀疑综合工具,大概率自己写的代码有问题。 2.直接进入正题,在综合后的原理图中模块被综合优化掉了,附图如下: 可以看到,图中的输入信号没有接到模块内部。  3.解决方法 (1)从例化入手,看例化信号有没有定义正确,例化端口正确不。 (2)从代码入

    2024年02月11日
    浏览(57)
  • vivado安装、仿真、综合与部署

    本文介绍基于windows系统的vivado安装流程,以及基本使用方法。 打开Xilinx vivado的官方网站,点击进入网站底部的“ 下载与许可 ”选项。 在“ Version ”下可以选择需要下载的版本,更早的版本可以在“ Vivado 存档 ”选项下找到。 选择需要下载的版本,并且选择windows环境下v

    2024年02月06日
    浏览(45)
  • FPGA设计入门:Vivado综合简介

    FPGA设计入门:Vivado综合简介 FPGA是一种基于可编程逻辑器件的数字电路设计技术,可以通过编程实现各种电路功能。Vivado是Xilinx公司推出的一款开发工具,可以用来对FPGA进行综合、布局、布线、生成比特流等操作。本篇文章将从Vivado综合的基本流程入手,详细介绍如何使用

    2024年02月09日
    浏览(33)
  • Vivado综合生成BRAM及与LUTRAM的区别

    使用vivado中的BRAM可以通过例化 Block Memory Generator 这一ip并进行相关的设定。 另外可以通过直接编写符合BRAM规范的代码,借助综合工具直接将其综合为BRAM。这时需要通过 (*ram_style=\\\"block\\\"*) 对 array 进行修饰。 下面给出一种看似可以综合为BRAM的示例。 上述代码虽然用 (*ram_style

    2024年02月15日
    浏览(32)
  • vivado 设置综合synthesis支持system verilog

    在用vivado综合代码时,发现utilization资源利用率很少,查了一下各个模块的LUT使用情况,发现只有.v  ,而没有.sv文件。查了下原因主要是synthesis缺少了选项。 1、design sources中右键相关source files的属性选择type为SystemVerilog  2、右键synthesis,选择setting,在More Options选项处 加上指

    2024年02月12日
    浏览(57)
  • 关于Windows vivado综合卡死的问题

    在综合一个比较简单的工程时发现,在做了些许改动之后(添加了ila),发现综合长时间卡死在第一步(running synth_design),这是相当异常的,因为之前短时间内完成综合并能生成比特流。 起初认为是ila的原因,于是尝试减少ila抓取信号的depth、减少interface数量甚至直接去掉

    2024年02月15日
    浏览(45)
  • Vivado综合属性系列之二 SRL_STYLE

    目录 一、前言 二、SRL_STYLE         2.1 移位寄存器实现方式         2.2 工程代码         2.3 参考资料         移位寄存器SRL在工程中属于使用频率较高个模块,可用于存储数据,实现串并转换; 根据数据移动方向可分为左移寄存器,右移寄存器,左移是向数据高位移动,

    2024年02月04日
    浏览(34)
  • Vivado综合属性系列之四 ROM_STYLE

    目录 一、前言 二、ROM_STYLE         ROM英文全称为Read Only Memory,只读存储器,里面主要存放固定的数据。         ROM的使用方式与RAM类似,格式样例为:(* rom_style=\\\"{distributed | block}\\\" *),但可设置的值只有distributed和block,同时也支持在约束文件XDC使用set_property设置。 2.

    2024年02月05日
    浏览(28)
  • 解决执行npm(或pnpm)时报:证书过期 certificate has expired问题

    项目执行 pnpm install 初始化时报 reason: certificate has expired 错误。 解决方案

    2024年01月23日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包