FPGA Verilog字符串转数字,以及数字转字符串的方法 您所在的位置:网站首页 verilog浮点数转换为整数 FPGA Verilog字符串转数字,以及数字转字符串的方法

FPGA Verilog字符串转数字,以及数字转字符串的方法

2024-07-13 07:32| 来源: 网络整理| 查看: 265

在单片机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中用组合逻辑来实现,单个时钟周期就可以直接得出结果。 不需要乘法器和除法器。不需要多个时钟周期。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有