assign和always的使用
2010年10月23日 星期六 20:50

assign 用于描述组合逻辑

always@(敏感事件列表) 用于描述时序逻辑

敏感事件 上升沿 posedge,下降沿 negedge,或电平

敏感事件列表中可以包含多个敏感事件,但不可以同时包括电平敏感事件和边沿敏感事件,也不可以同时包括同一个信号的上升沿和下降沿,这两个事件可以合并为一个电平敏感事件。

在新的verilog2001中“,”和“or”都可以用来分割敏感事件了,可以用“*”代表所有输入信号,这可以防止遗漏。

合法的写法:

always@ * (或always @ (*)、always)

always@ (posedge clk1,negedge clk2)

always@ (a or b)

`timescale 100ns/100ns //定义仿真基本周期为100ns

always #1 clk=~clk //#1代表一个仿真周期即100ns

所有的assign 和 always 块都是并行发生的!

并行块、顺序块将要并行执行的语句写在

fork

//语句并行执行

join

将要顺序执行的语句写在

begin

//语句顺序执行

end

并行块和顺序块都可以写在

initial 或 always@ 之后,也就是说写在块中的语句是时序逻辑的

对assign之后不能加块,实现组合逻辑只能用逐句的使用assign

组合逻辑如果不考虑门的延时的话当然可以理解为瞬时执行的,因此没有并行和顺序之分,并行和顺序是针对时序逻辑来说的。值得注意的是所有的时序块都是并行执行的。initial块只在信号进入模块后执行1次而always块是由敏感事件作为中断来触发执行的。

转自:http://blog.csdn.net/iamoyjj/archive/2008/12/08/3478321.aspx

转载于:https://www.cnblogs.com/donlxn/archive/2011/12/14/2287026.html

assign和always的使用相关推荐

  1. 【一语点醒梦中人】如何优雅地合并两个JSON对象 → Object.assign(a, b)和Object.assign({}, a, b)的区别

    var a = {a: 1}; var b = {b: 2}; var c = Object.assign(a, b);/* a对象也会改变,b不变,返回被被修改对象 */ var d = Objec ...

  2. lambda在python中的用法_在python中对lambda使用.assign()方法

    我在Python中运行以下代码:#Declaring these now for later use in the plots TOP_CAP_TITLE = 'Top 10 market capit ...

  3. OC指示符assign、atomic、nonatomic、copy、retain、strong、week的解释

    在使用@property定义property时可以在@property与类型之间用括号添加一些额外的指示符,常用的指示符有assign.atomic.nonatomic.copy.retain.str ...

  4. strong assign属性

    strong: 这要求运行时自动地保留对这个对象的引用.换而言之,ARC(Automatic Reference Counting)在运行时会一直把这个对象保留在内存里,直到它不再被任何其他对象引用. ...

  5. JavaScript 复制对象与Object.assign方法无法实现深复制

    在JavaScript这门语言中,数据类型分为两大类:基本数据类型和复杂数据类型.基本数据类型包括Number.Boolean.String.Null.String.Symbol(ES6 新增),而复 ...

  6. 阿里云配置服务器报:bind: cannot assign requested address

    阿里云服务器写网络程序时必须使用阿里云服务器的内网ip,不是他的公网ip,访问时是公网ip.具体可见下面这篇文章,十分感谢!!!!使得我写的小程序可以在服务器上运行,和前端小伙伴项目可以进行下去. 参 ...

  7. Object​.assign()

    定义: 用于将所有可枚举属性的值从一个或多个源对象复制到目标对象,它将返回目标对象. 语法: object.assign(target,. . .sources); target: 目标对象. sou ...

  8. SAP MM MRP运行后触发的PR单据里没有Assign采购组织?

    SAP MM MRP运行后触发的PR单据里没有Assign采购组织? 物料690404501,MD04, MD02运行MRP后,MD04, 看PR, 采购组织为空.这个导致一个问题,当用户试图使用ME ...

  9. AttributeError: cannot assign module before Module.__init__() call

    执行下面的语句的时候出错: class xxx(nn.Module):def __init__(self,diction_size):self.diction_size=diction_sizesel ...

  10. object-c语言的nonatomic,assign,copy,retain的区别

    nonatomic: 非原子性访问,不加同步,多线程并发访问会提高性能.如果不加此属性,则默认是两个访问方法都为原子型事务访问.                     (atomic是Objc使用的 ...

最新文章

  1. 基于struts2,hibernate的小javaweb项目
  2. 一种集合“相等性”的实现
  3. 【推荐】如何使用好阿里云的网络安全隔离?深入分享阿里云ECS安全组实践经验...
  4. 国内油价今日将迎九连跌 出租车燃油费望调整
  5. 如果打回车来更新模板列中的TEXTBOX
  6. Flink SQL Client读Kafka+流计算(DDL方式+代碼嵌入DDL/SQL方式)
  7. leetcode474. 一和零(动态规划)
  8. make[1]: *** [objs/Makefile:445: objs/src/core/ngx_murmurhash.o] Error
  9. C语言基础--字符串
  10. c++ datetime mysql_转:C++操作mysql方法总结(1)
  11. leetcode刷题:121题stock
  12. Linux系统启动过程,grub重装。
  13. WebApi_基于token的多平台身份认证架构设计(Z)
  14. k-d tree学习总结
  15. 点击空白处隐藏指定dom元素(纯javascript方法)
  16. centos7使用kubeadm部署k8s集群(使用containerd做运行时)
  17. 金融分析与风险管理——投资组合的绩效评估
  18. python dynamic
  19. Cross-X Learning for Fine-Grained Visual Categorization
  20. LINUX下用户和组的操作与相关的配置文件

热门文章

  1. 孙鑫VC视频学习笔记一
  2. 紧急通知,读者服务群大调整
  3. 如何在NEO共识节点间分配任务
  4. day1 工资条的制作
  5. zabbix 添加mysql监控(用自带模板)
  6. 开发函数计算的正确姿势 —— 使用 Fun Local 本地运行与调试
  7. 一个浏览器插件,测试xpath的工具
  8. BZOJ 2748: [HAOI2012]音量调节【二维dp,枚举】
  9. 关于selinux排错
  10. ie设置ActiveX控件不提示