32位二進位制數轉BCD碼

2021-05-26 00:54:51 字數 1332 閱讀 4978

//32位二進位制數轉bcd碼(基本思想是逢十進1)

module bin_bcd_4 (clk, a,bww,bqw,baw,bsw, bw, bq, bb, bs, bg);

input clk;

input  [31:0]a;           //二進位制輸入資料

output [3:0]bww,bqw,baw,bsw,bw, bq, bb, bs, bg;//bcd資料輸出暫存器

reg    [3:0]bww,bqw,baw,bsw,bw, bq, bb, bs, bg;

integer i;

reg  [35:0]temp;

reg  [31:0]c;

always @ (posedge clk)

begin

c=a;

temp=0;

for (i=1; i<32; i=i+1)

begin

=;//左移一位

if (temp[3:0]>4'b0100)

begin

temp[3:0]=temp[3:0]+3; // >4則加3

end

if (temp[7:4]>4'b0100)

begin

temp[7:4]=temp[7:4]+3;

end

if (temp[11:8]>4'b0100)

begin

temp[11:8]=temp[11:8]+3;

end

if (temp[15:12]>4'b0100)

begin

temp[15:12]=temp[15:12]+3;

end

if (temp[19:16]>4'b0100)

begin

temp[19:16]=temp[19:16]+3;

end

if (temp[23:20]>4'b0100)

begin

temp[23:20]=temp[23:20]+3;

end

if (temp[27:24]>4'b0100)

begin

temp[27:24]=temp[27:24]+3;

end

if (temp[31:28]>4'b0100)

begin

temp[31:28]=temp[31:28]+3;

end   

if (temp[35:32]>4'b0100)

begin

temp[35:32]=temp[35:32]+3;

end      

=;end

endendmodule

二進位製碼轉BCD碼

在微控制器裡面,如 顯示個溫度值,這時,要取乙個數的個位 十位 百位,可以用 和 求商和求餘 來解決。但是,在fpga裡面用求商和求餘將會非常消耗資源,這樣就必須用到二進位制轉bcd碼了,這裡介紹一種簡單的加3移位演算法。注 b代表二進位制,d代表十進位制,0x代表十六進製制,bcd 為bcd 碼,...

32位的二進位制數

給出乙個小於2 32的正整數。這個數可以用乙個32位的二進位制數表示 不足32位用0補足 我們稱這個二進位制數的前16位為 高位 後16位為 低位 將它的高低位交換,我們可以得到乙個新的數。試問這個新的數是多少 用十進位制表示 例如,數1314520用二進位制表示為0000 0000 0001 01...

交替位二進位制數

題目 給定乙個正整數,檢查他是否為交替位二進位制數 換句話說,就是他的二進位制數相鄰的兩個位數永不相等。示例 1 輸入 5 輸出 true 解釋 5的二進位制數是 101示例 2 輸入 7 輸出 false 解釋 7的二進位制數是 111思路 位運算得到二進位制,在運算過程中將前一位與當前位做異或 ...