Verilog数字系统设计教程第三部分练习四

本文是Verilog数字系统设计教程的第三部分,重点讨论了阻塞赋值与非阻塞赋值在模块源代码及testbench中的应用,并通过仿真波形对比两者的区别。提出了在不同场景下选择合适赋值方式的原则,包括时序电路、锁存器建模、组合逻辑等。总结了避免混淆和错误的编程建议。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、模块源代码

1.1 程序语句:

1.2 testbench语句:

二、仿真波形

​编辑

三、思考题3

(1)仿真波形如下:

(2)仿真波形如下:

总结


前言

通过采用阻塞赋值语句和非阻塞赋值语句来对两个模块实例进行编写,对比其区别。

一、模块源代码

1.1 程序语句:

//blocking.v 阻塞赋值模块
module blocking(clk, a, b, c);
output [3:0]b, c;
input [3:0]a;
input clk;
reg [3:0]b, c;

always @(posedge clk)
	begin
		b = a;
		c = b;
		$display("blocking: a = %d, b = %d, c = %d." ,a,b,c);
	end
endmodule

//non_blocking.v 非阻塞赋值模块
module non_blocking(clk, a, b, c);
output [3:0]b, c;
input [3:0]a;
input clk;
reg [3:0]b, c;

always @(posedge clk)
	begin
		b <= a;
		c <= b;
		$display("
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值