September 14, 2016
作者:dengshuai_super
出处:http://blog.csdn.net/dengshuai_super/article/details/52541402
声明:转载请注明作者及出处。
BCD码编码器(Binary-BCD Converter)_逐步移位法
逐步左移,当BCD0移成11时等于3<4,不用作调整;
当BCD0移成111时等于7>4,加3等于10,对应的二进制为1010;
再次移位后,BCD1为1,BCD0为0101等于5>4,加3后等于8对应的二进制为1000;
再次移位,BCD1=11,BCD0=0001,bin=11,因为BCD1和BCD0都<4,因此不用操作;
再次移位,BCD1=110,BCD0=0011,bin=1,因为BCD1=6>4,加3后等于9,对应二进制为1001,此时BCD1=1001,BCD0=0011,bin=1;
最后一次移位:BCD2=1,BCD1=0010,BCD0=0111。
module binary_to_bcd (
clk_i,
ce_i,
rst_i,
start_i,
dat_binary_i,
dat_bcd_o,
done_o
);
parameter BITS_IN_PP = 16; // # of bits of binary input
parameter BCD_DIGITS_OUT_PP = 5; // # of digits of BCD output
parameter BIT_COUNT_WIDTH_PP = 4; // Width of bit counter
// I/O declarations
input clk_i; // clock signal
input ce_i; // clock enable input
input rst_i; // synchronous reset
input start_