11.6FIFO错误,报错与规范复盘(always)

报错与错误

循环显示

停止时,不应该让读地址回到0

因为所谓队列为空,只是逻辑上为空,实际上并不是空,实际上依然存着之前存的数据

如果让读地址回到0,就会导致显示为不空,即读写地址不一致,然后再读一遍到写的地址,读完之后回到0,再读一遍的循环

结束时就是要让读地址和写地址重合,这样就没问题了

报错1

[DRC MDRV-1] Multiple Driver Nets: Net nolabel_line17/dual_port_RAM/UNCONN_OUT[1] has multiple drivers: nolabel_line17/dual_port_RAM/show_OBUF[6]_inst_i_2/O, and nolabel_line17/dual_port_RAM/rdata_reg[1]/Q.

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

原因就是data这个数据,在双端口RAM里赋值过一次了,但在显示的过程中,根据复位信号又赋值了一次,就会导致在多个文件里多次对同一个变量赋值,从而报这个错

解决方法就是去掉在显示部分里的赋值,只保留在RAM里的就行

赋值规范:


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

阻塞与非阻塞赋值的使用原则:


原则1:时序电路建模时,用非阻塞赋值。
原则2:锁存器电路建模时,用非阻塞赋值。
原则3:用always块描述组合逻辑时,采用阻塞赋值。
原则4:在同一个块中描述时序逻辑和组合逻辑的混合逻辑时,用非阻塞赋值。
原则5:同一个always块中只能全用阻塞赋值或者全用非阻塞赋值。
原则6:不能在多个always块中对同一个变量进行赋值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: DRC mdrv-1是Vivado中的一个设计规则检查错误,通常表示设计中存在多个驱动器驱动同一个信号的情况。这可能会导致电路中的冲突和不确定性,需要进行修复。可以通过检查设计中的信号连接和逻辑来解决此问题。 ### 回答2: Vivado是一款Xilinx公司提供的综合性综合器和工程设计软件,用于开发FPGA、SoC和片上系统。但在使用Vivado进行设计时,有时会遇到一些错误提示,比如[drc mdrv-1]。 [drc mdrv-1]是Vivado的设计限制检查器(Design Rule Checker)报告的一种错误类型。该错误通常表明,设计存在时序性问题。简单地来说,就是设计中有些信号或时钟的路径不符合计时约束条件,从而导致设计时序上的不正确性。 为了解决[drc mdrv-1]错误,首先需要检查设计计时约束文件(.xdc文件)的正确性。计时约束文件指定了时序分析工具应该如何分析设计的计时要求,以进行适当的优化和瓶颈分析。如果计时约束文件中的命令或时序规范有误,会导致[drc mdrv-1]错误。 其次,需要检查设计的布局(placement)和布线(routing),确保信号和时钟的路径满足计时约束。可以通过使用Vivado的布局分析工具(Floorplanner)和布线分析工具(Routing)寻找违反约束的路径。 最后,如果仍然无法解决[drc mdrv-1]错误,可能需要调整设计中的时序要求或使用更高级的设计技巧,例如流水线和寄存器插入。 总之,设计中出现[drc mdrv-1]错误通常与时序问题有关,需要从计时约束、设计布局和设计实现等多个方面进行排查,以确保设计符合计时要求。 ### 回答3: Vivado是Xilinx公司的一款设计工具,用于FPGA开发和设计。在Vivado中,DRC(Design Rule Check)是设计规则检查的意思,是在设计过程中自动运行的一项检查,主要用于检查设计中不符合指定规则的设计元素。在Vivado中,[DRC MDRV-1]是指在验证设计时,出现了一个由多个驱动器驱动的信号,这些驱动器可能会导致电路的负载问题。驱动器驱动的信号,也就是输出的信号,如果过多地被驱动,则会导致电路的负载问题,比如电路的延时会增加,从而影响电路的性能。 在检查到[DRC MDRV-1]这个问题时,我们需要对设计进行优化,以避免出现负载问题。一种可能的解决方法是采用级联的方式进行信号输出,以减小驱动器的数量。同时,也需要注意信号的传输时间,避免在过长时间内多次驱动同一个信号。更一般的,要合理设计电路,避免电路负载过度,提高电路的性能和稳定性。 总之,在Vivado中,[DRC MDRV-1]的出现提示着我们在设计电路时需要更细心,更谨慎,更注重电路的质量和性能。通过优化設計,我们可以避免这样的问题并确保电路的稳定性,让我们能够更好地完成FPGA设计任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值