04.阻塞赋值和非阻塞赋值

1.阻塞赋值

阻塞赋值的赋值号是用"="表示,对应的电路结构往往与触发沿没有关系,只与输入电平的变化有关系.它的操作结构可以认为是只有一个步骤的操作,即计算赋号右边的语句并更新赋值号左边的语句,此时不允许有来自任何其他verilog语句的干扰,直到现行的赋值完成,才允许下一条的赋值语句的执行.

串行块(begin-end)中,各条阻塞 赋值语句将以它们在顺序块排列次序依次执行.

a = 1 ,b = 	2,c = 3,
begina  = b+1;b  = a+2;c  = a-1;
end
//a=3,b=5,c=2

2.非阻塞赋值

非阻塞赋值的赋值号用"<="表示,对应的电路结构往往与触发沿有关,只有在触发沿的时刻才能进行非阻塞赋值.

它的操作可以看做为两个步骤的过程:在赋值开始时刻计算赋值号右边的语句.在赋值结束时刻,更新赋值号左边语句

在计算非阻塞语句赋值号右边的语句和更新赋值号左边的语句期间,允许其他的verilog语句同时进行操作.

非阻塞操作只能用于对寄存器类型变量进行赋值,因此只能用于"initial"和"always"块中,不允许用于连续赋值"assign".

a = 1 ,b = 	2,c = 3,
begina < = b+1;b < = a+2;c < = a-1;
end
//只有end语句结束之后,才会将右边计算出来的结果赋值给左边语句
//a=3,b=3,c=0

3.阻塞赋值和非阻塞的建议规范

官方建议:在写组合逻辑的的时候使用阻塞赋值,在编写时序逻辑的时候使用非阻塞赋值

其他建议:

  • 编写时序逻辑时要采用非阻塞赋值的方式

  • 使用always语句块来编写组合逻辑时,要使用阻塞赋值的方式,这时候要注意敏感列表要使用电平触发的方式

  • 在一个always语句块中,不要即使用阻塞赋值又使用非阻塞赋值,这样会造成不可预测的后果

  • 锁存器不推荐使用,但如果非要使用,一定要采用非阻塞赋值的方式,因为采用非阻塞赋值实现时序逻辑,进而实现锁存器是最安全的

  • 一个always语句块只对一个变量进行赋值,这样方便后期的维护和修改.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/872407.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

释放Conda通道束缚:启用自由通道恢复的终极指南

释放Conda通道束缚&#xff1a;启用自由通道恢复的终极指南 在Conda的生态中&#xff0c;通道&#xff08;channels&#xff09;是包来源的路径&#xff0c;而自由通道&#xff08;free channel&#xff09;通常指的是非限制性的包源&#xff0c;可以提供更多的包选择。有时&a…

《昇思25天学习打卡营第23天|onereal》

第23天学习内容简介&#xff1a; ----------------------------------------------------------------------------- 本案例基于MindNLP和ChatGLM-6B实现一个聊天应用。 1 环境配置 配置网络线路 2 代码开发 下载权重大约需要10分钟 ------------------------------- 运…

大模型技术对学校有什么作用?

大模型技术对学校有多方面的作用&#xff0c;可以在教学、管理、决策等多个领域带来显著的改进。以下是大模型技术对学校的主要作用&#xff1a; 1. 个性化教学&#xff1a;大模型技术可以帮助教师分析学生的学习行为和历史成绩&#xff0c;从而定制个性化的教学计划和资源。这…

告别自动激活:掌握如何在Conda中禁用Base环境

告别自动激活&#xff1a;掌握如何在Conda中禁用Base环境 引言 在Python开发的世界中&#xff0c;环境管理是一个不可或缺的部分。Conda是一个强大的包管理器和环境管理器&#xff0c;它允许开发者为不同的项目创建隔离的环境&#xff0c;从而避免依赖冲突。默认情况下&#…

maven项目容器化运行之1-基于1Panel软件将docker镜像构建能力分享给局域网

一.背景 公司主机管理组的兄弟安装了1Panel(社区版v1.10.10-lts)&#xff0c;期望我们开发的小项目都通过docker来部署。我第一步要配置的就是怎么将docker镜像构建能力共享的问题&#xff0c;因为我本机是windows&#xff0c;不想再去折腾安装docker环境。 二.设置过程 个人…

ES6 对象的新增方法(十四)

1. Object.assign(target, …sources) 特性&#xff1a;将一个或多个源对象的所有可枚举属性复制到目标对象。 用法&#xff1a;用于对象属性的合并。 const obj1 { a: 1, b: 2 }; const obj2 { b: 3, c: 4 }; Object.assign(obj1, obj2);console.log(obj1); // 输出&#…

Linux桌面环境手动编译安装librime、librime-lua以及ibus-rime,提升中文输入法体验

Linux上的输入法有很多&#xff0c;大体都使用了Fcitx或者iBus作为输入法的引擎。相当于有了一个很不错的“地基”&#xff0c;你可以在这个“地基”上盖上自己的“小别墅”。而rime输入法&#xff0c;就是一个“毛坯别墅”&#xff0c;你可以在rime的基础上&#xff0c;再装修…

网络安全-网络安全及其防护措施4

16.网络故障排除 网络故障排除的定义和作用 网络故障排除是检测、诊断和解决网络问题的过程。通过系统的方法&#xff0c;确保网络的稳定性和可用性&#xff0c;减少故障对业务的影响。有效的网络故障排除可以减少停机时间&#xff0c;提高网络的可靠性和性能&#xff0c;确保…

HCNA ICMP:因特网控制消息协议

ICMP&#xff1a;因特网控制消息协议 前言 Internet控制报文协议ICMP是网络层的一个重要协议。ICMP协议用来在网络设备间传递各种差错和控制信息&#xff0c;他对于手机各种网络信息、诊断和排除各种网络故障有至关重要的作用。使用基于ICMP的应用时&#xff0c;需要对ICMP的工…

Apollo docker-compose

来源 https://www.apolloconfig.com/#/zh/deployment/quick-start-docker 路径 /usr/apollo Sql 自己复制 Vim docker-compose.yml #如果安装过了 记得删除mysql 历史文件 rm -r /var/lib/mysql version: 2.1services:apollo-quick-start:image: nobodyiam/apollo-quick…

AWS CDN新增用户ip 地区 城市 响应头

1.需要自定义cdn缓存策略 这里的策略也是先复制之前的cdn策略哈 最后复制完了 全部新增这两条标头key CloudFront-Viewer-Country CloudFront-Viewer-City 2.然后新增cdn函数&#xff0c;应用你写的这个函数 function handler(event) {var request event.request;var respon…

【grpc】内容回顾

建议先看官网了解概念&#xff0c;点击跳转到官网 proto约束文件介绍 命令 message关键字 相当于golang里的结构体 字段规则 repeated:代表切片等可重复类型 options&#xff1a;其他默认是options 消息号 message中每个字段必须有一个唯一标识号 服务定义 rpc 服务函…

python 语法学习 day9

一.编程题错题反思 1.删除列表中的奇数(易错题) num input().split() flag 0 for i in range(len(num)): num[i] int(num[i]) for i in range(len(num)): if flag ! 0: i - flag if num[i] % 2 ! 0: num.remove(num[i]) flag 1 pr…

PySide(PyQt),csv文件的显示

1、正常显示csv文件 import sys import csv from PySide6.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QWidgetclass CSVTableWidgetDemo(QMainWindow):def __init__(self):super().__init__()# 创建显示控件self.widget QWidget(self)sel…

在SpringCloud中实现服务监控与告警的业务指标监控

在Spring Cloud中&#xff0c;可以使用一些工具和框架来实现服务监控与告警的业务指标监控。本文将介绍一种常用的方案&#xff0c;使用Prometheus和Grafana来实现监控指标的采集和展示&#xff0c;并结合Alertmanager实现告警功能。 Prometheus简介 Prometheus是一款开源的监控…

动手学深度学习——3.多层感知机

1.线性模型 线性模型可能出错 例如&#xff0c;线性意味着单调假设&#xff1a; 任何特征的增大都会导致模型输出的增大&#xff08;如果对应的权重为正&#xff09;&#xff0c; 或者导致模型输出的减小&#xff08;如果对应的权重为负&#xff09;。 有时这是有道理的。 例…

ENSP防火墙NAT智能选举综合实验

实验目的及其拓扑图&#xff1a; 创建我的拓扑&#xff1a; 新建修改配置fw1上的nat策略和安全策略&#xff1a; pc2ping1.1.1.1测试结果&#xff1a; 服务器映射配置&#xff1a; 配置对应安全策略&#xff1a; 配置fw2&#xff0c;子公司的NAT策略&#xff1a; 配置全局选路路…

代码随想三刷图论篇2

代码随想三刷图论篇2 104. 建造最大岛屿题目代码 110. 字符串接龙题目代码 105. 有向图的完全可达性题目代码 106. 岛屿的周长题目代码 104. 建造最大岛屿 题目 链接 代码 import java.util.*; class Main{public static void main(String[] args){Scanner sc new Scanner…

安全运营概述

安全运营概述 概述安全运营的工作对内安全运营工作对外安全运营工作品牌建设 概述 安全是一个过程&#xff0c;安全是靠运营出来的&#xff0c;公司会不断的有新业务的变更&#xff0c;新产品的发布&#xff0c;新版本的升级&#xff0c;技术架构的升级&#xff0c;底层系统的…

Commons-Collections篇-CC6链分析

前言 我们前两篇已经分析过URLDNS链和CC1链&#xff0c;我们这次分析的链就是基于前两条链之上的CC6链 CC6链的使用对于版本来说没有CC1限制那么大&#xff0c;只需要commons collections 小于等于3.2.1&#xff0c;都存在这个漏洞 0.环境安装 可以接着使用我们之前分析CC1链…