|
|||||
| 二进制转BCD 【verilog code】 | |||||
作者:nfmao 文章来源:本站原创 点击数: 更新时间:2010-1-10 ![]() |
|||||
|
二进制转BCD 【verilog code】
在上一篇中我讲了IEEE STD 754 浮点数的手算方法及相应的验证python原代码。本篇中介绍用verilog code 将上篇例子中的38414.4 整数部分二进制转换成BCD码,以方便其他如七段显示用。
Modelsim仿真结果示例图
原代码中将功能模块与测试模块写在同一个文件中,原代码在本文篇尾。最后测试一个测试数据为38414 从图中可以看出,c_q5=0011, c_q4=1000,c_q3=0100,c_q2=0001, c_q1=0100。 而在内存中38414应为 0000_1001_0110_0000_1110. 这些二进制码会被从MSB到LSB依次从c_in1 输入,模块进行判断从c_q中输出,而进位则是为c_out输出。
input tens units result 0 0 0 0 1 0 2 2 2 0 4 4 3 0 6 6 4 0 8 8 5 1 0 10 6 1 2 12 7 1 4 14 8 1 6 16 9 1 8 18
上面的示例是模块的精髓所在。在将二进制码一位位的输入时,寄存器也在不断的左移,这就说明数据在不断的加倍,如果数据在0-4里面就没有进位,而数据在5-9中,加倍就会进位。
[原代码]
[参考] [1] http://www.doulos.com/knowhow/vhdl_designers_guide/models/binary_bcd/ [2] http://www.engr.udayton.edu/faculty/jloomis/ece314/notes/devices/binary_to_BCD/bin_to_BCD.html |
|||||
| 文章录入:nfmao 责任编辑:iclayout | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 浮点数二进制转换 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |