FPGA之二进制转BCD

一、二进制转BCD的由来

电脑中的数据是以二进制来存储的,而人类习惯的是用十进制来表示数据,所以为了人与电脑之间更好的理解与沟通,所以就有了它的存在。

二、原理

用四位的二进制来表示十进制值,就是二进制转BCD,如10位的二进制最大可以表示4位的十进制数值,所以可以用16的BCD码值来表示这4位十进制数值。

三、代码

(1)顶层

module bin2bcd # (parameter WIDTH_BIN = 10, WIDTH_BCD = 16)(

	input		wire	[WIDTH_BIN - 1:0]	bin,

	output	wire	[WIDTH_BCD - 1:0]	bcd
);

	wire		[WIDTH_BIN + WIDTH_BCD - 1:0]	temp [WIDTH_BIN:0];
	
	genvar		i;
	
	assign temp[0]	= bin;
	
	generate
		for (i = 0; i < WIDTH_BIN - 1; i = i + 1)
			begin : s_a
				shift_adjust # (.WIDTH_BIN(WIDTH_BIN), .WIDTH_BCD(WIDTH_BCD)) shift_adjust_inst(

					.idata					(temp[i]),

					.odata					(temp[i+1])
				);
			end
	endgenerate

	assign temp[WIDTH_BIN] = temp[WIDTH_BIN - 1] << 1;
	
	assign bcd = temp[WIDT
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值