当前位置: 首页 > news >正文

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块中对同一个变量进行赋值。

相关文章:

  • java 数据结构 ArrayList源码底层 LinkedList 底层源码 迭代器底层
  • npx 和 npm 区别
  • Redis之Java操作Redis的使用
  • 二十、泛型(1)
  • 高性能计算HPC存储解决方案的特点
  • 专访HuggingFace CTO:开源崛起、创业故事和AI民主化丨智源独家
  • 手撕 实现iou,nms等
  • 听听ChatGPT对IT行业的发展和就业前景的看法
  • Android Studio(列表视图ListView)
  • 排查CPU飙高与系统反应慢的问题
  • IOS浏览器不支持对element ui table的宽度设置百分比
  • C++ 基础面试题总结(一)
  • JavaEE平台技术——预备知识(Maven、Docker)
  • web防火墙的功能
  • 基于R语言piecewiseSEM结构方程模型在生态环境领域实践技术
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【刷算法】从上往下打印二叉树
  • 4个实用的微服务测试策略
  • Angular 响应式表单 基础例子
  • ES10 特性的完整指南
  • extract-text-webpack-plugin用法
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • JavaScript 基本功--面试宝典
  • js操作时间(持续更新)
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 后端_MYSQL
  • 如何编写一个可升级的智能合约
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 设计模式 开闭原则
  • 深入浅出Node.js
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 积累各种好的链接
  • ​ArcGIS Pro 如何批量删除字段
  • #前后端分离# 头条发布系统
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (11)MATLAB PCA+SVM 人脸识别
  • (MATLAB)第五章-矩阵运算
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)德国人的记事本
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转)使用VMware vSphere标准交换机设置网络连接
  • **PHP二维数组遍历时同时赋值
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .Net6使用WebSocket与前端进行通信
  • .NET开源项目介绍及资源推荐:数据持久层
  • .NET中统一的存储过程调用方法(收藏)
  • .sh 的运行
  • @SpringBootApplication 包含的三个注解及其含义
  • [2023-年度总结]凡是过往,皆为序章
  • [Android]竖直滑动选择器WheelView的实现
  • [BUUCTF 2018]Online Tool(特详解)
  • [cocos2d-x]关于CC_CALLBACK
  • [codevs 1296] 营业额统计
  • [HDU5685]Problem A