Menu Close

Verilog实现16进制到10进制(BCD)转换(2)减法计数法

在 Verilog实现16进制到10进制(BCD)转换(1)加减计数法 文章中,介绍了如果使用一个基本的算法实现16进制数据到bcd 码的转换。通过实验,我们发现这个算法比较简单,但是计算时间很长。 尤其是当输入的数据比较大的情况下, 计算需要很多个时钟周期。 本文针对上述的算法的不足, 做了一些改进,可以在比较短的时间内,快速实现16进制到bcd码的转换。

代码实体:


通过对输入的数据的大小,比较输入数据是否 >  10_0000,  1_0000,  1000, 100,  10 ,  1 等, 根据数据的大小,可以直接减去 10_0000,  1_0000,  1000, 100,  10, 1  而不必每次减一,这样就加快了算法的速度。

仿真文件如下:


 

仿真波形如下:

 

这个算法必之前的算法提高了很多,但是还是有些问题值得注意, 比如 999 的计算实践 大于 2323的计算时间 等。 所以,我们还有改进的空间。

 

Posted in FPGA, FPGA 教材教案, Verilog, 教材与教案, 文章