如圖所示,先看原理。1110_1010對應(yīng)的十進制是3位,所以bcd碼有12位。先12位bcd全部取0,然后二進制碼左移一位,從個位開始判斷是否大于4,不大于4繼續(xù)左移。大于4就加3(0011),然后再左移一位,然后再進行判斷,直至所有二進制碼全部左移完。
框圖如下
這里輸入的二進制碼是20位,對應(yīng)十進制是6位,bcd碼也就是24位。?輸出是個位,十位直到十萬位總共6個輸出。
下面是波形圖,data_shift是暫時存放輸入的data和24位bcd碼,合計44位。shift_flag一個周期內(nèi)低電平進行判斷運算,高電平進行移位運算,一個周期處理一位數(shù)據(jù)。這里22位一個周期的原因是最頭0是賦初值,1-20是對應(yīng)20位數(shù)據(jù)。21是末尾取值。
文章來源:http://www.zghlxwxcb.cn/news/detail-516594.html
?下面是verilog代碼文章來源地址http://www.zghlxwxcb.cn/news/detail-516594.html
module bcd_8421
(
input wire sys_clk ,
input wire sys_rst_n ,
input wire [19:0] data
到了這里,關(guān)于FPGA自學(xué)之路12(二進制轉(zhuǎn)換8421bcd碼)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!