data[0:3]与data[3:0]之间的传递关系

data[0:3]与data[3:0]之间的传递关系

module test_bit_tb(
    );
	reg clk;
	reg [0:3] data;
	wire [3:0] dout;
	wire [0:3] dout_ver;
	test_bit test_bit_u(
	.data(data),
	.clk(clk),
	.dout(dout),
	.dout_ver(dout_ver)
    );
	initial begin
		clk = 1;
	end 
	always # 5 clk = ~clk;
	
	initial begin
		data = 4'd0;
		#100;
		data = {1'b1,1'b1,1'b0,1'b0};
		#100;
		$finish;
	end 
endmodule

在原模块中,使用[0:3]的方式定义data,然后通过非阻塞赋值的方式分别赋给[3:0]定义的tmep,和[0:3] 定义的temp_ver。通过阻塞赋值的方式分别赋给[3:0]定义的dout,和[0:3]定义的dout_ver.

module test_bit_tb(

    );
	reg clk;
	reg [0:3] data;
	wire [3:0] dout;
	wire [0:3] dout_ver;
	
	test_bit test_bit_u(
	.data(data),
	.clk(clk),
	.dout(dout),
	.dout_ver(dout_ver)
    );
	
	initial begin
		clk = 1;
	end 
	always # 5 clk = ~clk;
	
	initial begin
		data = 4'd0;
		#100;
		data = {1'b1,1'b1,1'b0,1'b0};
		#100;
		$finish;
	end 
	
	
endmodule

在这里插入图片描述
在这里插入图片描述

从波形何以看出,对于[0:3]形式定义的data,data[0]表示最高位。而将data赋值给使用[3:0]形式定义的temp或者dout时,data[0]都被传递给了temp[3]和dout[3],也就是高位自动对应了。而将data传递给temp_ver或dout_ver的时候,data[0] 都被传递给了temp_ver[0] 和dout_ver[0],也遵循高位自动对应的原则。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值