• verilog中=和<=的区别


    一般情况下使用<=,组合逻辑使用=赋值,时序逻辑使用<=赋值:

    举个例子:初始化m=1,n=2,p=3;分别执行以下语句

    1、begin

    m=n;n=p;p=m;

    end

    2、begin

    m<=n; n<=p; p<=m;

    end

    结果分别是:1、m=2,n=3,p=2;(在给p赋值时m=2已经生效)

    2、m=2,n=3,p=1;(在begin-end过程中,m=2一直无效而是在整体执行完后才生效)

    这两种赋值“=”用于阻塞式赋值;“<=”用于非阻塞式赋值中。

    阻塞赋值:阻塞赋值语句是在这句之后所有语句执行之前执行的,即后边的语句必须在这句执行完毕才能执行,所以称为阻塞,实际上就是顺序执行。

    非阻塞赋值:非阻塞赋值就是与后边相关语句同时执行,即就是并行执行。

    所以一般时序电路使用非阻塞赋值,assign语句一般使用=阻塞赋值;

    组合逻辑电路使用阻塞赋值;

    PS:仿真是initial中用=,always中用<=

  • 相关阅读:
    日志
    mysql锁
    慢查询
    auto_increment
    脚本
    服务器元数据
    复制表及表数据
    临时表
    (一)校园信息通微信小程序从前端到后台整和笔记
    OpenCart框架运行流程介绍opencart资料链接
  • 原文地址:https://www.cnblogs.com/rednodel/p/4103987.html
Copyright © 2020-2023  润新知