assign和always的使用
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的使用相关推荐
- 【一语点醒梦中人】如何优雅地合并两个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 ...
- lambda在python中的用法_在python中对lambda使用.assign()方法
我在Python中运行以下代码:#Declaring these now for later use in the plots TOP_CAP_TITLE = 'Top 10 market capit ...
- OC指示符assign、atomic、nonatomic、copy、retain、strong、week的解释
在使用@property定义property时可以在@property与类型之间用括号添加一些额外的指示符,常用的指示符有assign.atomic.nonatomic.copy.retain.str ...
- strong assign属性
strong: 这要求运行时自动地保留对这个对象的引用.换而言之,ARC(Automatic Reference Counting)在运行时会一直把这个对象保留在内存里,直到它不再被任何其他对象引用. ...
- JavaScript 复制对象与Object.assign方法无法实现深复制
在JavaScript这门语言中,数据类型分为两大类:基本数据类型和复杂数据类型.基本数据类型包括Number.Boolean.String.Null.String.Symbol(ES6 新增),而复 ...
- 阿里云配置服务器报:bind: cannot assign requested address
阿里云服务器写网络程序时必须使用阿里云服务器的内网ip,不是他的公网ip,访问时是公网ip.具体可见下面这篇文章,十分感谢!!!!使得我写的小程序可以在服务器上运行,和前端小伙伴项目可以进行下去. 参 ...
- Object.assign()
定义: 用于将所有可枚举属性的值从一个或多个源对象复制到目标对象,它将返回目标对象. 语法: object.assign(target,. . .sources); target: 目标对象. sou ...
- SAP MM MRP运行后触发的PR单据里没有Assign采购组织?
SAP MM MRP运行后触发的PR单据里没有Assign采购组织? 物料690404501,MD04, MD02运行MRP后,MD04, 看PR, 采购组织为空.这个导致一个问题,当用户试图使用ME ...
- AttributeError: cannot assign module before Module.__init__() call
执行下面的语句的时候出错: class xxx(nn.Module):def __init__(self,diction_size):self.diction_size=diction_sizesel ...
- object-c语言的nonatomic,assign,copy,retain的区别
nonatomic: 非原子性访问,不加同步,多线程并发访问会提高性能.如果不加此属性,则默认是两个访问方法都为原子型事务访问. (atomic是Objc使用的 ...
最新文章
- 基于struts2,hibernate的小javaweb项目
- 一种集合“相等性”的实现
- 【推荐】如何使用好阿里云的网络安全隔离?深入分享阿里云ECS安全组实践经验...
- 国内油价今日将迎九连跌 出租车燃油费望调整
- 如果打回车来更新模板列中的TEXTBOX
- Flink SQL Client读Kafka+流计算(DDL方式+代碼嵌入DDL/SQL方式)
- leetcode474. 一和零(动态规划)
- make[1]: *** [objs/Makefile:445: objs/src/core/ngx_murmurhash.o] Error
- C语言基础--字符串
- c++ datetime mysql_转:C++操作mysql方法总结(1)
- leetcode刷题:121题stock
- Linux系统启动过程,grub重装。
- WebApi_基于token的多平台身份认证架构设计(Z)
- k-d tree学习总结
- 点击空白处隐藏指定dom元素(纯javascript方法)
- centos7使用kubeadm部署k8s集群(使用containerd做运行时)
- 金融分析与风险管理——投资组合的绩效评估
- python dynamic
- Cross-X Learning for Fine-Grained Visual Categorization
- LINUX下用户和组的操作与相关的配置文件