07 FPGA阻塞赋值与非阻塞赋值

2023-10-27

 阻塞赋值与非阻塞赋值的含义:

       在组合逻辑电路中使用阻塞赋值,其效果和c语言是一样的顺序执行,但在时序逻辑电路中常使用非阻塞赋值。非阻塞赋值最明显的就是所有语句块以及一个语句块中的不同变量都是在同步时钟控制下并行执行,这样就会出现输入与输出“延一拍”的效果,也称为“打拍”。

下面写个代码验证一下

代码段:

`timescale  1ns/1ns

module  non_blocking
(
    input   wire            sys_clk     ,  
    input   wire            sys_rst_n   ,  
    input   wire            in          ,  

    output  reg             out            
);

always@(posedge sys_clk or negedge sys_rst_n)
    if(sys_rst_n == 1'b0)
        begin
            out    <= 1'b0;
        end
    else
        begin
            out    <= in;
        end

endmodule

仿真段:

`timescale  1ns/1ns

module tb_non_blocking();

wire      out;

reg       sys_clk;
reg       sys_rst_n;
reg       in;


initial begin
    sys_clk    = 1'b1;
    sys_rst_n <= 1'b0;
    in        <= 1'b0;
    #20;
    sys_rst_n <= 1'b1;
end

//sys_clk:模拟系统时钟,每10ns电平翻转一次,周期为20ns,频率为50Mhz
always #10 sys_clk = ~sys_clk;

//key_in:产生输入随机数,模拟按键的输入情况
always #20 in <= {$random} % 2; //取模求余数,产生非负随机数0、1,每隔20ns产生一次随机数


non_blocking    non_blocking_inst
(
    .sys_clk    (sys_clk    ),  
    .sys_rst_n  (sys_rst_n  ),  
    .in         (in         ),  

    .out        (out        )   
);

endmodule

仿真波形: 

      由仿真波形图可以看出,非阻塞赋值的 out输出 确实比 输入in 慢一拍。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

07 FPGA阻塞赋值与非阻塞赋值 的相关文章

  • FPGA设计篇之流水线思想

    FPGA设计篇之流水线思想 一 写在前面 二 正文开始 2 1举个栗子 2 2 1情况一 组合逻辑 2 1 2情况二 流水线设计 2 1 4 小总结 2 2举第二个栗子 写在最后 一 写在前面 流水线 大家好 我是富土康三号流水线的张全蛋
  • 数字IC手撕代码-兆易创新笔试真题

    前言 本专栏旨在记录高频笔面试手撕代码题 以备数字前端秋招 本专栏所有文章提供原理分析 代码及波形 所有代码均经过本人验证 目录如下 1 数字IC手撕代码 分频器 任意偶数分频 2 数字IC手撕代码 分频器 任意奇数分频 3 数字IC手撕代
  • 平头哥(T-Head )开源RISCV处理器OpenC906 RTL仿真

    在过去的几年里 阿里集团平头哥陆续推出了几款RISCV处理器 有些处理器已经在产业界得到了应用 比如在某志的D1处理器中 就嵌入了平头哥的玄铁C906内核为 芯 RISCV虽然是一个开放标准 并且网络上也不乏一些开源核的RTL实现 但是商用
  • modelsim 关联 notepad++

    modelsim 控制窗口敲入 1 proc external editor filename linenumber exec I notepad notepad exe filename 2 set PrefSource altEdito
  • Verilog HDL——分频 计数

    分频 计数 module traffic Clk 50M Rst Clk30 Clk 1Hz input Clk 50M Rst output Clk30 Clk 1Hz 分频器 reg Clk 1Hz 分频器 50M分频 reg 31 0
  • 硬件基础知识

    SPI是串行外设接口 Serial Peripheral Interface 的缩写 是一种高速的 全双工 同步的通信总线 SCLK SCLK是一种有固定周期并与运行无关的信号量 CLK CLK是一种脉冲信号 TDNN 时延神经网络 它的两
  • FPGA零基础学习之Vivado-UART驱动教程

    FPGA零基础学习之Vivado UART驱动教程 本系列将带来FPGA的系统性学习 从最基本的数字电路基础开始 最详细操作步骤 最直白的言语描述 手把手的 傻瓜式 讲解 让电子 信息 通信类专业学生 初入职场小白及打算进阶提升的职业开发者
  • verilog中wire和reg类型的区别

    module counter parameter CNT MAX 25 d24 999 999 input wire sys clk input wire sys rst n output reg led out reg 24 0 cnt
  • 笔试

    文章目录 前言 40 复位电路设计 1 recovery time和removal time 2 同步复位和异步复位 3 异步复位同步释放 本文参考 往期精彩 前言 嗨 今天来学习复位电路设计相关问题 微信关注 FPGA学习者 获取更多精彩
  • 用Vscode编辑verilog代码配置

    这篇教程感觉很详细了 我这里分享一下vscode和插件的安装包链接 都是官网下载的 放心食用 用VSCode编辑verilog代码 iverilog编译 自动例化 自动补全 自动格式化等常用插件 链接 https pan baidu com
  • 最详细的Vivado安装教程

    V i v a d o 安 装
  • FPGA project : water_led

    module water led parameter MAX CNT 25 d25 000 000 input wire sys clk input wire sys rst n output wire 03 00 led signal r
  • 八、RISC-V SoC外设——GPIO接口 代码讲解

    前几篇博文中注释了RISC V的内核CPU部分 从这篇开始来介绍RISC V SoC的外设部分 另外 在最后一个章节中会上传额外添加详细注释的工程代码 完全开源 如有需要可自行下载 目录 0 RISC V SoC注解系列文章目录 1 结构
  • TestBench编写_激励产生

    TestBench编写 激励产生 TestBench编写 激励产生 基本背景 读取函数介绍 a fopen函数使用 b fread函数使用 c fclose函数使用 实际使用 TestBench编写 激励产生 基本背景 最近遇到项目中需要对
  • 【FPGA】面试问题及答案整理合集

    面试问题及答案整理合集 1 硬件描述语言和软件编程语言的区别 2 FPGA选型问题 3 建立时间和保持时间问题 3 亚稳态问题 4 竞争和冒险问题 5 乒乓操作问题 6 同步和异步逻辑电路 7 同步复位和异步复位 8 MOORE 与 MEE
  • 【DDR3 控制器设计】(3)DDR3 的写操作设计

    写在前面 本系列为 DDR3 控制器设计总结 此系列包含 DDR3 控制器相关设计 认识 MIG 初始化 读写操作 FIFO 接口等 通过此系列的学习可以加深对 DDR3 读写时序的理解以及 FIFO 接口设计等 附上汇总博客直达链接 DD
  • 【数字IC】从零开始的Verilog SPI设计

    从零开始的Verilog SPI协议设计 一 写在前面 1 1 协议标准 1 2 数字IC组件代码 1 3 设计要求 1 4 其他协议解读 1 4 1 UART协议 1 4 2 SPI协议 1 4 3 I2C协议 1 4 4 AXI协议 二
  • [从零开始学习FPGA编程-24]:进阶篇 - 基本组合电路-编码器与译码器(Verilog语言)

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 125247358 目录 前言 Veri
  • Matlab图像处理系列——图像复原之噪声模型仿真

    微信公众号上线 搜索公众号 小灰灰的FPGA 关注可获取相关源码 定期更新有关FPGA的项目以及开源项目源码 包括但不限于各类检测芯片驱动 低速接口驱动 高速接口驱动 数据信号处理 图像处理以及AXI总线等 本节目录 一 图像复原的模型 二
  • DSCA190V 57310001-PK

    DSCA190V 57310001 PK DSCA190V 57310001 PK 具有两个可编程继电器功能 并安装在坚固的 XP 外壳中 DSCA190V 57310001 PK 即可使用 只需最少的最终用户校准 DSCA190V 573

随机推荐

  • 浅谈压缩感知(二):理论基础

    主要内容 信号的稀疏表示 编码测量 采样过程 恢复算法 非线性 一 信号与图像的稀疏表示 在DSP 数字信号处理 中 有个很重要的概念 变换域 某个线性空间 一组基函数支撑起来的空间 一般而言 我们的信号都是在时域或空域中来表示 其实我们可
  • vcpkg下载不了报错

    使用powershell 添加环境变量 env HTTPS PROXY http 127 0 0 1 7890
  • 【闲谈】GPL3.0、Apache LICENSE 2.0 和 MIT LICENSE的区别

    昨天写了一下Git连接GitHub 这里涉及到了GitHub 而GitHub作为一个开源社区 又涉及到了许可证的问题 当然 国内目前大部分人还是不在乎这个的 因为在国内 这些东西有和没有 影响不大 主要就是这三大许可证GPL3 0 Apac
  • 图解通信原理与案例分析-27: 卫星通信系统及关键技术

    前言 本系列的前面文章 主要拆解的是通信网络设备部署在地面上的通信 包括有线通信与无线通信 从本章开始 通信网络的部署从地面扩展到太空 包括卫星通信 GPS定位 单向广播卫星通信 第六代移动通信6G 埃隆马斯克的星链计划 量子通信等 太空通
  • 频繁打开数据库连接是否影响性能的疑惑

    之前写了很多数据库开发方面的程序 有的时候需要连续操作数据库 就在想这么密集去操作数据库会不会大量消耗资源 因为垃圾回收机制并不是马上执行 于是 特意了解了一下情况 其实 数据库连接并不是托管资源 所以垃圾回收管不到它 另外Stream 文
  • Java实现PDF导出

    1 EasyPOI导出word 需求 使用easyPOI方式导出合同word文档 Word模板和Excel模板用法基本一致 支持的标签也是一致的 仅仅支持07版本的word也是只能生成后缀是docx的文档 poi对doc支持不好所以easy
  • mysql excel 同步数据_EXcel与MySQL之间的数据迁移

    1 将Excel中数据迁移到MySQL中 将Excel转化为CSV格式 记住保存的路径和文件名最好别出现中文 删除属性名 仅保留数据即可 之后用Sublime Text3打开 在file选项中有set file encoding to 选择
  • CompletableFuture使用(一)

    CompletableFuture是java8提供的异步任务创建 回调 编排和异常处理 创建异步任务 1 runAsync Runnable runnable 创建一个没有返回值的异步任务 接受一个Runnable接口的实现类对象 stat
  • 【人脸考勤项目】人脸检测的5种方式

    文章内容 1 人脸检测的5种方法 1 Haar cascade opencv 2 HOG Dlib 3 CNN Dlib 4 SSD 5 MTCNN 一 人脸检测的5种方法实现 1 Haar cascade opencv Haar是专门用来
  • Eclipse导入项目提示No projects are found to import解决办法

    使用Eclipse导入项目时遇到No projects are found to import提示的解决办法 这是因为导入的文件里面缺少两个文件 classpath project 在这里三种方案 1 其他项目中直接复制这两个文件 然后更改
  • R - Sonya and Hotels

    Sonya decided that having her own hotel business is the best way of earning money because she can profit and rest wherev
  • _【linux 学习】1.常见命令 - mij0lb

    目录处理命令 ls ls a 显示隐藏文件 h 人性化阅读 文件大小转为MB GB 原为数据块 l 相当于ll 长列表类型展示文件信息 d 显示目录 ls命令查询得到的文件大小部分 文件 文件大小 目录 目录文件名占用的字节数 并非目录内数
  • 在ubuntu中使用vscode进行C++调试(转载)

    0 各种代码编辑器及IDE比较 Atom sublime vscode是当前主流的三大跨平台代码编辑器 其他的还有clion kdevelop Qt vim等 1 安装vscode 3种方法 1 从Ubuntu Software安装 推荐
  • WMS:SurfaceView绘制显示

    WMS SurfaceView绘制显示 1 SurfaceView控件使用 1 1 Choreographer接受VSync信号 1 2 自定义SurfaceView 1 3 结果 2 SurfaceView获取画布并显示 2 1 Surf
  • ProtoBuf.js 使用技巧

    转 http www maxzhang com 2015 09 ProtoBuf js E4 BD BF E7 94 A8 E6 8A 80 E5 B7 A7 Protocol Buffers Protocol buffers 是一个用来序
  • Java中类名+方法名(){}理解

    public class Test02 public static void main String args Test02 test2 new Test02 test2 increment System out println test2
  • [安全开发]日志敏感信息检测-3-正则合集(手机号、邮箱、车牌号)

    前言 手机号 邮箱 车牌号 前言 从日志中提取所需信息时 建议两端加上 W用于匹配特殊字符 能减少不少误报 W 匹配非单词字符 与 A Za z0 9 等效 手机号 手机号共11位 编码格式如下 前3位 网络识别号 4至7位 地区编码 8至
  • 盲盒游戏开发方案

    盲盒游戏是一种新兴的游戏类型 其核心机制是让玩家在购买时不知道会获得哪一种物品 从而产生一种探索的乐趣 那么 如何开发一个盲盒游戏呢 以下是一些步骤和要点 一 确定游戏目标和规则 在开发盲盒游戏时 首先需要确定游戏的目标和规则 例如 游戏是
  • k8s之挂载NFS到POD中

    写在前面 在k8s之挂载本地磁盘到POD中 一文中我们看了如何将POD中的数据写到本地磁盘中 这种方式要求POD只能在指定的Node上 一旦POD更换Node 数据依然会丢失 所以本文看下如何通过将数据写到NFS中来解决这个问题 下面我们就
  • 07 FPGA阻塞赋值与非阻塞赋值

    阻塞赋值与非阻塞赋值的含义 在组合逻辑电路中使用阻塞赋值 其效果和c语言是一样的顺序执行 但在时序逻辑电路中常使用非阻塞赋值 非阻塞赋值最明显的就是所有语句块以及一个语句块中的不同变量都是在同步时钟控制下并行执行 这样就会出现输入与输出 延