FPGA Verilog字符串转数字,以及数字转字符串的方法
发布日期:2021-06-29 10:17:15
浏览次数:3
分类:技术文章
本文共 717 字,大约阅读时间需要 2 分钟。
在单片机C语言中,我们经常用/10,%10这样的方法将数字转换为字符串,反过来字符串转数字就用乘法:*10。
1829除以10,商182余9,得到个位数9。 182再除以10,商18余2,得到十位数2。 18除以10,商1余8,得到千位数1和百位数8。 但是这种方法并不适合于FPGA。因为乘法器和除法器都比较庞大,如果用在for循环里面,最后编译出来的电路会非常复杂,搞不好会把整个fpga的资源全部用完。 实际上,根本就不需要乘除法,我们只用加减法和移位就能搞定。 数字本质上就是二进制码,字符串本质上就是BCD码。 例如数字18是:00010010 而字符串"18"的十六进制形式是0x31 0x38 把左边的3去掉,剩下的就是1和8,合起来就是BCD码 0001 1000 我们要把字符串转换成数字,就是要将BCD码转换成二进制码(binary,也叫BIN码)。 把数字转换成字符串,就是把二进制码转换成BCD码,然后每个数位前面添上3(0011)就可以了 BIN和BCD之间的互相转换有专门的算法。 BIN转BCD:由加法和8次左移位组成 https://my.eng.utah.edu/~nmcdonal/Tutorials/BCDTutorial/BCDConversion.html BCD转BIN:反过来,由减法和8次右移位组成 https://embeddedthoughts.com/2016/06/01/bcd-to-binary-conversion-on-an-fpga/ 由于算法非常简单,我们可以在FPGA中用组合逻辑来实现,单个时钟周期就可以直接得出结果。 不需要乘法器和除法器。不需要多个时钟周期。转载地址:https://blog.csdn.net/ZLK1214/article/details/109684041 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月15日 10时35分54秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
蓝牙使用usb DFU更新程序和psr
2019-04-29
USB更新CSR蓝牙程序
2019-04-29
CSR BC5 ROM开发步骤说明
2019-04-29
BC57F68与CSR8645区别对比
2019-04-29
“蓝牙是个金矿,将掀起新一轮技术淘金热!
2019-04-29
Nordic推出蓝牙智能协议堆栈“S130 SoftDevice”
2019-04-29
Nordic Semiconductor ASA推出nRF51物联网软件开发套件
2019-04-29
XE7
2019-04-29
raspberry 2b 启动信息
2019-04-29
win7下树莓派安装使用win10
2019-04-29
raspberry 树莓派 360/百度(RT2870 MT7601) WIFI驱动
2019-04-29
raspberrrypi 常用软件大全
2019-04-29
树莓派raspberry使用手机做为显示设备
2019-04-29
visual studio 2015 下载地址
2019-04-29
BLE蓝牙4.0串口调试助手
2019-04-29
PHP库收集
2019-04-29
七牛 PHP 文件管理
2019-04-29
汽车OBD产品
2019-04-29
短网址dwz.cn批量注册
2019-04-29