集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2198|回复: 2

Verilog HDL 的always语句

[复制链接]
afei6969 发表于 2021-3-19 16:27:01 | 显示全部楼层 |阅读模式
always语句在仿真过程中是不断重复执行的。
其声明格式如下:
always <时序控制> <语句>
always语句由于其不断重复执行的特性,只有和一定的时序控制结合在一起才有用。如果一个always
语句没有时序控制,则这个always语句将会发成一个仿真死锁。见下例:
[例1]:always areg = ~areg;
这个always语句将会生成一个0延迟的无限循环跳变过程,这时会发生仿真死锁。如果加上时序控制,
则这个always语句将变为一条非常有用的描述语句。见下例:
[例2]:always #half_period areg = ~areg;
这个例子生成了一个周期为:period(=2*half_period) 的无限延续的信号波形,常用这种方法来描
述时钟信号,作为激励信号来测试所设计的电路。
[例3]:reg[7:0] counter;
reg tick;
always @(posedge areg)
begin
tick = ~tick;
counter = counter + 1;
end
这个例子中,每当areg信号的上升沿出现时把tick信号反相,并且把counter增加1。这种时间控制是
always语句最常用的。
always 的时间控制可以是沿触发也可以是电平触发的,可以单个信号也可以多个信号,中间需要用
关键字 or 连接,如:
always @(posedge clock or posedge reset) //由两个沿触发的always块
begin
……
end

always @( a or b or c ) //由多个电平触发的always块
begin
……
end
沿触发的always块常常描述时序逻辑,如果符合可综合风格要求可用综合工具自动转换为表示时序逻
辑的寄存器组和门级逻辑,而电平触发的always块常常用来描述组合逻辑和带锁存器的组合逻辑,如
果符合可综合风格要求可转换为表示组合逻辑的门级逻辑或带锁存器的组合逻辑。一个模块中可以有
多个always块,它们都是并行运行的。
zhangyukun 发表于 2021-3-19 18:04:06 | 显示全部楼层
Verilog HDL 的always语句
zxopenfq 发表于 2021-6-4 15:29:57 | 显示全部楼层
666666666666666666666666
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-23 19:24 , Processed in 0.057187 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表