下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 利用verilog将二进制码转换为十进制BCD码 下面我自己加了注释小序: 先说一个 bear 的亲身体会,bear 在做一些 fpga 小设计时经常会用到数据显示功能,比如数字时钟,数字频率计,温度计,跑表等等,往往我们会选用led 数码管来做显示,因为它驱动起来比 lcd 液晶要简单的很多,我们知道 fpga 中寄存器在定义和储存的数据都是采用二进制的格式 ,而 fpga 输出给数码管做显示的数据必须是十进制的格式 ,之前 bear 经常会选择把一个寄存器的个位和十位分开定义 ,比如在做数字时钟时 ,就会把时,分,秒的各位和十位都分别定义成一个变量 ,无疑这种方法会增加代码的复杂度 ,所
2、以考虑需要一个专门把 二进制 的数据转换成 十进制 BCD码的模块 ,在网上有一些,但是好像都不太完整 , 所以bear花了一下午写了一个 ,亲测效果不错 ,希望对朋友们有所帮助下面开始正文。首先给出二进制码转换为十进制BCD码的几个步骤(以8bit二进制码为例): 1.将二进制码左移一位(或者乘2) 2.找到左移后的码所对应的个,十,百位。 3.判断在个位,十位和百位的码是否大于(?等于)5,如果是则该段码加3。 4.继续重复以上三步直到移位8次后停止。下面是一个例子 ,将 1111_1111 转换为 BCD码 ,如果8bit数据最终移位得到18bit 数据 ,那么个位,十位,百位分别对应1
3、29,1613,1817位。之前写的代码在转换完之后没有对count清零,所以在仿真时候需要用rst_n清零,感谢博友onlytime417的提示,经过修改之后可以对不同的输入值连续转换,而不需要rst_n的复位,下面是修改后的代码以及仿真结果,(该转换模块已经在实际项目中应用)。CODE:module bin_dec(clk,bin,rst_n,one,ten,hun,count,shift_reg );input 7:0 bin;input clk,rst_n;output 3:0 one,ten;output 3:0 count;output 1:0 hun;output 17:0shi
4、ft_reg;reg 3:0 one,ten;reg 1:0 hun;reg 3:0 count;reg 17:0shift_reg=18b;/全部位数,包括hun,ten,one,bin/ 计数部分 /always ( posedge clk or negedge rst_n )beginif( !rst_n ) count=0;else if (count=9) count=0;else count=count+1;end/ 二进制转换为十进制 /判断四种情况,1:个位和十位都大于5 2:只有一个大于5 3:都不大于5always (posedge clk or negedge rst_n
5、 )begin if (!rst_n) shift_reg=0; else if (count=0) shift_reg=10b,bin; else if ( count=5) /判断个位是否5,如果是则+3 begin if(shift_reg15:12=5) /判断十位是否5,如果是则+3 begin shift_reg15:12=shift_reg15:12+2b11; shift_reg11:8=shift_reg11:8+2b11;shift_reg=shift_reg1; /对个位和十位操作结束后,整体左移end else begin shift_reg15:12=shift_re
6、g15:12; shift_reg11:8=shift_reg11:8+2b11;/个位加3 shift_reg=shift_reg=5) /十位=5 begin shift_reg15:12=shift_reg15:12+2b11; shift_reg11:8=shift_reg11:8; shift_reg=shift_reg1;end else begin shift_reg15:12=shift_reg15:12;shift_reg11:8=shift_reg11:8;shift_reg=shift_reg1;end end end end/输出赋值/always ( posedge clk or negedge rst_n )beginif ( !rst_n ) begin one=0; ten=0; hun=0; endelse if (count=9) /此时8次移位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒店客房销售策略与市场拓展制度
- 2025年泰和县新睿人力资源服务有限公司面向社会公开招聘项目制工作人员的备考题库完整参考答案详解
- 2025年河南建筑职业技术学院招聘工作人员30人备考题库及1套参考答案详解
- 2025广东深圳市龙岗区耳鼻咽喉医院招聘8人备考题库及一套答案详解
- 2025四川省旅游投资集团有限责任公司招聘3人备考题库完整答案详解
- 2025安徽芜湖医药健康职业学院招聘11人备考题库及参考答案详解1套
- 2025天津海顺物业管理有限公司社会招聘2人备考题库及答案详解一套
- 糖尿病高血压合并慢性肾功能不全的降压策略
- 糖尿病预防中的家庭医生签约服务模式
- 糖尿病足预防的社区筛查与干预网络
- GB/T 16895.6-2014低压电气装置第5-52部分:电气设备的选择和安装布线系统
- GB/T 11018.1-2008丝包铜绕组线第1部分:丝包单线
- GA/T 765-2020人血红蛋白检测金标试剂条法
- 武汉市空调工程毕业设计说明书正文
- 麻风病防治知识课件整理
- 消防工程监理实施细则
- 安全安全应急救援预案(沟槽开挖)
- 权利的游戏双语剧本-第Ⅰ季
- 卫生部《臭氧消毒技术规范》
- 早期复极综合征的再认识
- 山西某2×150MW循环流化床空冷机组施工组织设计方案
评论
0/150
提交评论