FPGA知识-时序组合逻辑

FPGA知识-时序组合逻辑

组合逻辑

FPGA中,输出是由输入信号实时的状态决定的,也就是说,当我们的输入信号发生改变,输出信号立马就发生改变,这种逻辑就被称之为组合逻辑,这种很容易理解,我们可以带着代码看:

assign a = b;	//对于这种,就是属于组合逻辑,a的状态完全有此时的b决定,当b改变的瞬间,a也随之改变。
always @(*)	begin
	a <= b;	//很多人可能刚刚开始学习FPGA的时候,认为这种always块是属于时序逻辑,不,这种也属于组合逻辑,因为决定a的值的因素是b的同时,always块也是由b驱动,当b变化时,驱动always块,a也同时发生变化,所以这个也是a是实时跟随着b变化而变化,所以也属于组合逻辑。
end

此时上述逻辑图形化。
在这里插入图片描述

时序逻辑

还有种电路就是由某一种信号(这个信号可以是时钟信号,大多数情况下我们使用的是时钟信号和复位信号共同作用)驱动寄存器来锁定输入信号的值,使得输出信号不能实时跟随输入信号改变。(这儿可能没有太理解。还有就是时序逻辑可以包含组合逻辑,但是组合逻辑不能包含时序逻辑。
详细的说就是输入信号并不直接作用于输出信号,而是输入到一个寄存器,然后由时钟信号的上升沿或者下降沿(其他信号也可以,这儿以时钟信号举例)来驱动寄存器,寄存器输出值输入给输出信号。
这样多话,当时钟信号没有到来之前,寄存器已经锁定了上次时钟沿时输入的值,此时无论输入值如何改变,都不会影响到输出值。
我们接下来用代码来体现:

always @(posedge Clk)	begin	//这是一个又时钟上升沿驱动的时序逻辑
	a <= b;	//此时a的值虽然是由b决定,但是这个always块的驱动并不是b信号的变化,而是由时钟信号的上升沿驱动的,当时钟信号到来,a的值才会改变,在未到来时无论b怎么改变,a都保持原来的数值。
end

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值