关于verilog中的always

更新时间:2023-05-09 07:55:06 阅读: 评论:0

关于verilog中的always
always
always语句块从仿真0时刻开始执⾏其中的⾏为语句;最后⼀条执⾏完成后,再开始执⾏其中的第⼀条语句,如此往复循环,直到整个仿真结束。因此,always语句块常⽤于对数字电路中⼀组反复执⾏的活动进⾏建模。
always 和 always@(*) 的区别
有@时,是每次执⾏语句时,必须满⾜括号内的条件才能继续执⾏语句,否则不执⾏。
always@(敏感事件列表) ⽤于描述时序逻辑;敏感事件(上升沿 podge、下降沿 negedge);或电平。
verilog规定,always@()中的是指该always块内的所有输⼊信号的变化为敏感列表,也就是仿真时只有当always@(*)块内的输⼊信号产⽣变化,该块内描述的信号才会产⽣变化。
1. 若没有@,则是⼀般在teastbench 中产⽣时钟信号,指不会满⾜特定的条件,执⾏完⼀次后⽴马继续执⾏下⼀次,⼀直重复执
⾏。always #10 CLK=~CLK;
2. 有@时,是每次执⾏语句时,必须满⾜括号内的条件才能继续执⾏语句,否则不执⾏。
3种模式
always@()语句的意思是always模块中的任何⼀个输⼊信号或电平发⽣变化时,该语句下⽅的模块将被执⾏。
1、always语句有两种触发⽅式。第⼀种是电平触发,例如always @(a or b or c),a、b、c均为变量,当其中⼀个发⽣变化时,下⽅的语句将被执⾏。
2、第⼆种是沿触发,例如always @(podge clk or negedge rstn),即当时钟处在上升沿或下降沿时,语句被执⾏。
3、⽽对于always@(),意思是以上两种触发⽅式都包含在内,任意⼀种发⽣变化都会触发该语句。
补充initial
Verilog语⾔中的两种过程:always过程和initial过程(执⾏⼀次)。
补充assign
assign ⽤于描述组合逻辑,所有的assign 和 always 块都是并⾏发⽣。

本文发布于:2023-05-09 07:55:06,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/562830.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:语句   触发   信号   才能   开始   变化   逻辑
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图