verilog中unsigned与signed加法结果的比较(带源码)

根据仿真结果可以知道,结果是完全相同的。

源代码:

module symbexam(
	//input 
	d1,
	d2,
	//output
	signed_out,
	unsigned_out
);
input	[3:0]	d1;
input 	[3:0]	d2;
output 	[4:0] 	unsigned_out;
output 	signed [4:0] 	signed_out;
//unsigned add;
assign unsigned_out = d1+d2;
//signed add;
wire signed [3:0] s_d1;
wire signed [3:0] s_d2;
assign s_d1 = d1;
assign s_d2 = d2;
assign signed_out = s_d1 + s_d2;

endmodule

测试代码:

`timescale 1ns/1ns 
module tb_symbexam();
//input
reg [3:0]d1;
reg [3:0]d2;
//output
wire signed [4:0]signed_out;
wire [4:0]unsigned_out;
//main code
initial
	begin
		d1 = 4'b0011;
		d2 = 4'b0111;
		#20
		d1 = 4'b1011;
		d2 = 4'b1111;
		#20 $stop;
	end
//symbexam instance
symbexam u0_symbexam(
	.d1(d1),
	.d2(d2),
	.signed_out(signed_out),
	.unsigned_out(unsigned_out)
);
endmodule

仿真结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值