【FPGA】【Verilog】【基础模块】“阻塞”与非阻塞”的对比

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("Blcoking : a = %d ,b = %d, c = %d." ,a,b,c);
		end
endmodule 
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("Non_Blocking: a = %d, b = %d, c = %d.",a,b,c);
 end
 endmodule 

    Testbench:

`timescale 1 ns / 100 ps 
`include "C:/*****/blocking.v"
`include "C:/*****/non_blocking.v"
//前面两个include中填入上述两个module的文件地址
module compareTop;
	wire  [3:0] b1,c1,b2,c2;
	reg	[3:0] a;
	reg 		 clk;
	
	initial 
	begin 
		clk = 0;
		forever #50 clk = ~clk;	//frequency = 10M
	end
	
	initial
	begin 
	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值