BCD译码的实现_移位加3算法
0赞
发表于 2017/4/18 11:14:31
阅读(1751)
本案例:明德扬首创全新FPGA设计技巧--至简设计法,教你如何一步一步去完成一个复杂电路的设计,里面很多有实用技巧,熟练运用这些技巧,有助于你写出非常优秀的FPGA设计代码。非常简洁易读,欢迎比较。
BCD译码是指将二进制数,转换成BCD格式。如当cnt_s值为10时,也就是8’b00001010,转换成个位值为4’b0000,十位值为4’b0001。这个转换过程就是BCD译码。
此处介绍二进制转BCD码的硬件实现,采用左移加3的算法,具体描述如下:(此处以8-bit 二进制码为例)
1、左移要转换的二进制码1位
2、左移之后,BCD码分别置于百位、十位、个位
3、如果移位后所在的BCD码列大于或等于5,则对该值加3
4、继续左移的过程直至全部移位完成
举例:将十六进制码0xFF转换成BCD码
本模块的信号列表如下:
信号名 |
I/O |
位宽 |
说明 |
rst_n |
I |
1 |
系统复位信号,低电平有效 |
clk |
I |
1 |
系统工作时钟50M |
din |
I |
32 |
输入要译码的数据 |
din_vld |
I |
1 |
输入数据有效指示信号 |
dout |
O |
12 |
输出的BCD数据,共12比特,每4比特一组,分别表示百、十、个位的值 |
dout_vld |
O |
1 |
输出数据有效指示信号 |