FPGA快速入门04:傲娇always语句块

目录

前言

一、always语句块是什么?

二、always语句的特点

三、敏感信号条件表

总结


前言

在verilog的使用过程中,always语句块的使用是时许逻辑的起始点,本文就来和大家讨论一下always语句块及它们是如何使用的。


一、always语句块是什么?

alway是语句块又被称为过程块,在过程块中赋值的语句就是过程赋值语句,没错就是我们在assign学习中提到的与连续性赋值语句相对应的语句,我们先来看看它长嘛样?

举个例子

always @(posedge CLK)

Q = D;

原来是这屌样,so easy!

从它的格式和我们举得例子中可以看出来,这个语句只有两个部分需要我们关注:敏感信号条件表和各类的顺序语句;

首先我们所以说敏感信号条件表,从例子中我们看到是 posedge CLk ,它就是敏感信号,而 Q = D ;就是各类顺序语句,什么?你只看到一句?那是因为我善,哈哈哈只写了一句!

二、always语句的特点

1.always语句本身没有什么意义,而是和其内部封装的顺序语句构成语句块,也就是过程块,这才使得它有了底气,成为最常用的语句之一,always语句就像一层包装纸,只有它里面的东西才是它的卖点。

2.在always语句中他的赋值目标的数字类型必须是 reg 型。

3.我们说它没有意义其实也不竟然,always语句还有一个很傲娇的脾气,如果你想享用它的身体(过程赋值语句),你不满足它的条件她是不答应的,你说什么条件?都写在了敏感信号条件表中了。

三、敏感信号条件表

刚刚我们说到想要使用always封装的过程赋值语句,就必须满足敏感信号条件表中的条件,跟我来,我们来窥一窥其中的奥秘。

敏感条件有两种,一种是边沿敏感,一种是电平敏感。

格式

解释

例子

边沿敏感

(posedge 信号名)

当信号上升沿到来时满足

posedge clk

(negedge 信号名)

当信号下降沿到来时满足

negedge clk

电平敏感

(信号1,信号2,信号3)

信号列表中任一信号有变化时满足

(a,b,c)

(信号1 or 信号2 or 信号3)

(a or b or c)

做成表格是不是一目了然,只有满足条件才能使用过程块。

看来我们已经学会了,我们来挑逗一下她吧!

always @(posedge clk) 
Q = D;

当clk信号的上升沿到来时,执行Q = D;这赋值语句;不然无论你的D如何变化,Q也菩提本无树,看不见你。

这个过程块综合出来是这样的:

再来一个

 

always @(D)

Q = D;

当D有变化时(不管是由1变0还是由0变1),激活该语句块,将D的值赋给Q;否则,该语句块挂起,Q的值保持不变直到下一次赋值。

这个过程块综合出来是这样的:

再强调一下哈,过程块语句中的赋值目标必须是 reg 型的。

做几点说明:

由于always语句可以描述边沿变化,在设计时序电路中得到广泛应用。

always语句中还可以使用if、case、for循环等语句,其功能更加强。


总结

以上就是今天要讲的内容,本文介绍了什么是always语句,还有她的特点,及敏感信号条件表是什么,她是时序逻辑可开始,属于Verilog大厦非常重要的地基。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值