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

原则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

最近更新

  1. TCP协议是安全的吗?

    2024-01-05 14:14:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-05 14:14:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-05 14:14:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-05 14:14:03       18 阅读

热门阅读

  1. 【.NET Core】记录(Record)详解

    2024-01-05 14:14:03       29 阅读
  2. Android.bp 常用模块类型

    2024-01-05 14:14:03       30 阅读
  3. redis的springboot配置

    2024-01-05 14:14:03       39 阅读
  4. ROS发布消息与接受消息的机制

    2024-01-05 14:14:03       38 阅读
  5. ROS订阅和发布的点云保存为.pcd文件

    2024-01-05 14:14:03       39 阅读
  6. C++类成员的访问控制

    2024-01-05 14:14:03       37 阅读
  7. Ubuntu22.04无法启动EasyConnect的问题

    2024-01-05 14:14:03       33 阅读