集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: lcytms

跟李凡老师学FPGA之D03:使用tcl脚本(数码管)、二进制转BCD(20160425课堂笔记)

[复制链接]
 楼主| lcytms 发表于 2017-3-29 21:56:57 | 显示全部楼层
1147       
        如何把一个对应的数转成对应的BCD码呢?
        有很多种算法,在C语言里面也经常讨论它。
        C语言里面讨论的是一种4比特的移位法。
        现在硬件里面我向大家介绍一种比较新的称之为3比特的移位法。
        如果我们有一个binary的6:0。
        举个例子,7个1,我们把它如何变成BCD码呢?
        比较新的3比特的移位法是这样的。
        先准备一个移位寄存器。
        这个移位寄存器的宽度是二进制的宽度加上BCD的宽度。
        BCD的宽度是多少呢?
        我们知道,一个BCD位是4个比特,然后binary的6:0,最大是127,BCD位是11:0。
       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-3-29 21:58:59 | 显示全部楼层
1148       
        如果是7:0,最大是256,仍然是百位十位个位。
        对应的仍然是11:0。
        准备移位寄存器,移位寄存器的宽度是BCD的宽度,加上binary的宽度。
        在这张表上,binary的宽度是7位,加上BCD的宽度,就是一个19比特。
        然后左移一位做一次大四加三的调整,在每个BCD码上做一个大四加三。       
1149       
        (对照表格讲解大四加三算法)       
1150       
        (对照表格讲解大四加三算法)       
1151       
        这里面有移位,有算法,有大四加三,有行为,有数据流,还有到了顶层还有结构化,如何实现呢?
        看到这种算法,很多人就会想到,一定要用时钟了,有时钟才有移位嘛。
        但是我们知道BCD是做什么用的呢?
        就像我们现在看到的,是做显示用的。
        显示的速度是很慢很慢的,需不需要时钟呢?
        有时钟加上去,当然也能做出来。
        但是一般而言,这个模块,我们写的BCD的一个converter的模块,就应该是一个组合逻辑。
        组合逻辑没有时钟,能不能写呢?
        我们下午来看。
        上午先到这。       
(午休)
 楼主| lcytms 发表于 2017-3-29 22:06:29 | 显示全部楼层
1340       
        我再叙述一下这张表格。
1341       
        (对照表格讲解大四加三算法)                
1342       
        我们来看看怎么来实现它,而且我们是组合逻辑。
        实际上只要按照层次化的思想,是可以迎刃而解的,首先我们可以把它的顶层,我们把每一行的动作看成是一个顶层的作为。
        顶层的动作有多少次呢?
        二进制有多少位,就有多少次动作,做了7次。
        然后调整做了几次呢?
        调了6次,做了7次。       
1343       
        如果是7:0的,就是多出了一位,移动了8次,调整了7次,记住,调整的次数是移动次数减一。
        这样的话,我们可以把顶层看作8个例化的模块构成的,每一行是一个动作,行与行之间的交界面是它的接口。
        交界面是什么呢?
        就是20个进,20个出。
        20个输入,20个输出。
       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-3-29 22:08:04 | 显示全部楼层
1344       
        左移一位,在BCD码上做大四加三。
        我们把修正做成例化。       
1345       
        来做一下这个代码。
        同学跟着我一起做。
        下午的练习我们要在这个基础上,把它修改为24位的。       
1346       
        我们同样用自上而下的方法来做。
        新建一个verilog。
        另存为bin2bcd_8bit.v。       
1347       
        设置为顶层。
        搭建框架。
       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-3-29 22:09:46 | 显示全部楼层
1348       
        编写bin2bcd_bit8.v模块的代码。
       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-3-29 22:10:46 | 显示全部楼层
本帖最后由 lcytms 于 2017-3-29 22:14 编辑

1349       
        Ctrl+S、Ctrl+K。
        做框架检查。
        先把bcd_modify的框架准备好。
        20进,20出。       
1350       
        搭建框架。
       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-3-29 22:11:29 | 显示全部楼层
本帖最后由 lcytms 于 2017-3-29 22:17 编辑

1351       
        搭建框架。
        Ctrl+S、Ctrl+K。
        做框架检查。
       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-3-29 22:11:59 | 显示全部楼层
本帖最后由 lcytms 于 2017-3-29 22:18 编辑

1352       
        现在可以做装配了。
       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-3-29 22:12:31 | 显示全部楼层
本帖最后由 lcytms 于 2017-3-29 22:19 编辑

1353       
        例化7次。
       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-3-29 22:20:05 | 显示全部楼层
1354       
        声明中间信号。
       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-24 03:22 , Processed in 0.070227 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表