FPGA杂记1——组合逻辑与时序逻辑的实现

组合逻辑实现的两种方法

第一种方法:

	always @(电平敏感信号列表)

首先,模块内部可以使用if、case等语句,一般建议使用阻塞赋值语句且赋值操作使用符号"="

再者,always模块中信号必须定义成 reg 类型,但这也仅仅是语法要求,在实际实现中仍然是 wire 类型

第二种方法:

	assign描述的赋值语句,但这只能是wire类型

时序逻辑的实现方法

	always @(posedge/negedge 信号) begin
			...
		end

1.时序逻辑中的always定义的 reg 型信号都被综合成 reg (寄存器),一般建议使用非阻塞赋值操作 “<=”,但是要注意并行执行的语句可能会带来的delay_cycle的问题

举个例子:

always @*
	 ...begin	
	a <= b;	end
always @*	
	...begin
	c <= a;	end

上面语句在执行的过程中一般是认为b的值赋给了a,a原来的值赋给了c,但是在验证的操作的时候就会有时间差的问题,如果上面执行的快一点那么c的值就可能是b了,在对不同的环境下执行可能也有不同的执行结果

2.敏感变量表中只要有时钟沿的变化即可,即每次触发输出变化都是时钟沿引起的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值