14.9-时序和组合的混合逻辑——使用非阻塞赋值

本文介绍了如何在Verilog设计中混合时序和组合逻辑,提倡在always块中使用非阻塞赋值。示例包括在一个always块内编写组合逻辑(异或)和时序逻辑,以及将两者分开在两个always块中实现。

原则4:在同一个always块中描述时序和组合逻辑混合电路时,用非阻塞赋值。

1,在一个always块中同时实现组合逻辑和时序逻辑

将简单的组合逻辑和时序逻辑写在一起很方便。
当把组合逻辑额时序逻辑写入到一个always块中时,应遵从时序逻辑建模的原则,使用非阻塞赋值。

module	nbex2(q, a, b, clk, rst_n);
output		q;
input		clk, rst_n;
input		a, b;
reg			q;

always@(posedge clk or negedge rst_n)	
	if(!rst_n)
		q	<= 1'b0;	// 时序逻辑
	else
		q	<= a ^ b;	// 异或,组合逻辑
endmodule

2,将组合和时序逻辑分别写入两个always块中

module nbex1(q, a, b, clk, rst_n);
output		q;
input		clk, rst_n;
input		a, b;
reg			q, y;

always@(a or b)
	y = a ^ b;
	
always@(posedge clk or negedge rst_n)
	if(!rst_n)
		q	<= 1'b0;
	else 
		q	<= y;
endmodule
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值