FPGA(五)---BCD计数器

本文介绍了BCD码的概念,即将十进制数转换为十六进制的二进制表示。接着展示了FPGA中实现四位和八位BCD计数器的代码,并指出在级联两个九时可能出现的问题,即计数会从9跳到16,导致计数与十六进制一致而非十进制。
摘要由CSDN通过智能技术生成

一、BCD码

BCD码就是将十进制中的数,转换为十六进制,都用二进制进行表示。
例如:153 转换为十六进制是99 --> 1001 1001
68 转换为十六进制是45 -->0100 0101

二、代码

模块一:四位计数器

module BCD_counter(cin,clk,rst_n,cout,q);
	input cin,clk,rst_n;
	
	output reg cout;
	output [3:0]q;
	
	reg [3:0]cnt;  //定义计数器,reg类型才能进行计数
	
	always@(posedge clk, negedge rst_n) //进行计数器加
	if(rst_n == 1'b0)
		cnt <= 4'd0;
	else if(cin == 1'b1)begin
		if(cnt == 4'd9)
			cnt <= 4'd0;
		else 
			cnt <= cnt + 4'd1;
		end
	else
		cnt <= cnt;

	always@(posedge clk, negedge rst_n)//得到计数器输出
	if(rst_n == 1'b0)
		cout <= 1'b0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值