verilog学习笔记1——verilog延时语句

news/2025/2/28 14:08:42/

文章目录

  • 前言
  • 一、延时语句分类
    • 1、阻塞赋值左侧延时
    • 2、阻塞赋值右侧延时
    • 3、非阻塞赋值左侧延时
    • 4、非阻塞赋值右侧延时
  • 二、比较及举例说明
    • 1、阻塞右侧延时和非阻塞右侧延时的区别
    • 2、举例


前言

2023.8.10


一、延时语句分类

1、阻塞赋值左侧延时

在10ns后,把10ns时刻的b+c值赋值给a,a拿到的是b+c的最新值

always@(*)#10 a = b + c;

2、阻塞赋值右侧延时

先把0时刻的b+c值暂存起来,在10ns后,把0时刻的b+c值赋值给a

always@(*)a = #10 b + c;
等效于
always@(*)temp = b + c;#10 a = temp;

如果0-10ns之间b、c的值发生了改变,那么不会影响a的值

3、非阻塞赋值左侧延时

在10ns后,把10ns时刻的b+c值赋值给a,a拿到的是b+c的最新值(和第一种情况相同)

always@(*)#10 a <= b + c;   //拿到的是最新值

4、非阻塞赋值右侧延时

只要b或c发生改变,引起always触发,就会把当前触发时刻的b+c赋值给a
如果b和c在0-10ns之间发生改变,改变也会体现在从改变时刻开始往后的10ns
也就是输出会随着输入变化,只是有10ns的延时

always@(*)a <= #10 b + c;

二、比较及举例说明

1、阻塞右侧延时和非阻塞右侧延时的区别

前者会忽略中间变量的改变,后者输入随输出改变

2、举例

第一个:

a = 0;
b = 0;
q = 0;
#5 a <= 1;
b <= 1;
q <= a & b;

在5ns时刻,三个非阻塞赋值并行运行,q的值为0
如果改成如下方式,则6ns时刻,q的值为1

#1 q <= a & b;

第二个:
前者会分别暂存此刻的a和b,等到5ns后再分别赋值给a和b
后者则在5ns分别给a和b赋值,会发生竞争冒险

forka = #5 b;b = #5 a;
join
fork#5 a = b;#5 b = a;
join

http://www.ppmy.cn/news/1023894.html

相关文章

技术干货 | JMeter实现参数化的4种方式

参数化释义 什么是参数化&#xff1f;从字面上去理解的话&#xff0c;就是事先准备好数据&#xff08;广义上来说&#xff0c;可以是具体的数据值&#xff0c;也可以是数据生成规则&#xff09;&#xff0c;而非在脚本中写死&#xff0c;脚本执行时从准备好的数据中取值。 参数…

力扣1137.第N个泰波那契数(动态规划)

/*** author Limg* date 2023/08/11* 泰波那契序列 Tn 定义如下&#xff1a; * T0 0, T1 1, T2 1, 且在 n > 0 的条件下 Tn3 Tn Tn1 Tn2* 给你整数 n&#xff0c;请返回第 n 个泰波那契数 Tn 的值。 */ #include<iostream> using namespace std; int tribonacci…

Java工厂模式

首先创建一个工厂全部需要用到的统一入口 public class PrintFormatFactory {/*** Description: 格式化数据** param value 值* param format 格式化类型* param setting 格式化配置* Author: 洪家洪* Date: 2023/8/9 11:01* return:**/public static Object formatValue(O…

centos7安装Docker详细步骤(无坑版教程)

一、安装前必读 在安装 Docker 之前&#xff0c;先说一下配置&#xff0c;我这里是Centos7 Linux 内核&#xff1a;官方建议 3.10 以上&#xff0c;3.8以上貌似也可。 注意&#xff1a;本文的命令使用的是 root 用户登录执行&#xff0c;不是 root 的话所有命令前面要加 sudo…

全新 – Amazon EC2 M1 Mac 实例

去年&#xff0c;在 re: Invent 2021 大会期间&#xff0c;我写了一篇博客文章&#xff0c;宣布推出 EC2 M1 Mac 实例的预览版。我知道你们当中许多人请求访问预览版&#xff0c;我们尽了最大努力&#xff0c;却无法让所有人满意。不过&#xff0c;大家现在已经无需等待了。我很…

Talk | ICCV‘23清华大学刘世隆:From Detection to Grounding-迈向更强的开集目标检测

本期为TechBeat人工智能社区第521期线上Talk&#xff01; 北京时间8月10日(周四)20:00&#xff0c;清华大学博士生—刘世隆的Talk已准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “From Detection to Grounding-迈向更强的开集目标检测”&#xff0c;他分…

java 文件/文件夹复制,添加压缩zip

复制文件夹,并压缩成zip 需求&#xff1a;创建A文件夹&#xff0c;把B文件夹复制到A文件夹。然后把A文件夹压缩成zip包 public static void main(String[] args) throws Exception {try {String A "D:\\dev\\program";String B "D:\\program";// 创建临…

Oracle Data Redaction与Data Pump

如果表定义了Redaction Policy&#xff0c;导出时数据会脱敏吗&#xff1f;本文解答这个问题。 按照Oracle文档Advanced Security Guide第13章&#xff0c;13.6.5的Tutorial&#xff0c;假设表HR.jobs定义了Redaction Policy。 假设HR用户被授予了访问目录对象的权限&#xf…