99久久久久国产-99久久久久国产精品免费-99久久久久久久-99久久久免费精品免费-99久久免费费视频在线观看

131 1300 0010
其他電源
當前位置: 首頁>> 電源技術>>其他電源>>
  • 導航欄目
  • 逆變電源
  • 開關電源
  • 電機伺服
  • 其他電源
  • FPGA學習系列:32. 如何實現二進制轉十進制的設計
    FPGA學習系列:32. 如何實現二進制轉十進制的設計
  • FPGA學習系列:32. 如何實現二進制轉十進制的設計
  •   發布日期: 2018-09-20  瀏覽次數: 2,242

    設計背景:

    二進制轉十進制在設計應用中十分的廣泛。尤其在AD轉化中是必須所用到的一個小知識點,學習二進制轉十進制的方法顯的非常的重要。今天就和筆者來學習二進制轉十進制的方法,通過簡單的學習來掌握這么一門知識。

     

    設計原理:

    本次的設計主要是一個簡單的二選一數據選擇器,我們的設計主

    二進制中只有 0 和 1 兩個狀態,可以表示 0、1 兩種狀態的電 子器件很多,如開關的接通和斷開,晶體管的導通和截止、磁元 件的正負剩磁、電位電平的低與高等都可表示 0、1 兩個數碼。使 用二進制,電子器件具有實現的可行性。

    二進制數的運算法則少,運算簡單,使計算機運算器的硬件結 構大大簡化。由于二進制 0 和 1 正好和邏輯代數的假(false)和 真(true)相對應,有邏輯代數的理論基礎,用二進制表示二值 邏輯很自然。電子器件中,所有的數據都是用二進制來表示的。

    2. BCD 

    BCD 碼(Binary-Coded Decimal)亦稱二進碼十進數或二-十進制代碼。用 4 位二進制數來表示 1 位十進制數中的 0~9  10 個 數碼。BCD 碼是一種二進制的數字編碼形式,用二進制編碼的十 進制代碼。BCD 碼這種編碼形式利用了四個位元來儲存一個十進 制的數碼,使二進制和十進制之間的轉換得以快捷的進行。

            3. 實現方法

               1)  10 求余法

             將需要換的字除然后對 10 求余得出數各個 位上的字。8’b1000_0000(10 中的 128將此數 字對 10 余,“8“8”賦最低的 4 將 此數字(128) 10得出 12(在 FPGA 計算,自取整, 對 10 ,然得出位“2把“2”賦給低的 4 。將此 數字(128)除以 100,得出 1,對 10 余,然得出位“1, 把“1”賦給另外的 4 位。這樣就轉換出了 BCD 碼。

            這類方法中,利用了大量的除法和求余,占用了大量的邏輯資 源。但是,實現比較簡單,如果芯片的邏輯資源足夠的話,可以 采取使用這種方法。

            2) 大四加三法

    進行移位,然后進行判斷。如果大于四,則加三。最后得出們想要的 BCD (下是按轉換 7 講解的

                    

    架構圖如下

    bin_data[7:0]:輸入的二進制數據。

    bin_data[11:0]:輸出的BCD碼(輸入的二進制數據為8位,最大 為8’b1111_1111(255),每四位二進制表示一個BCD碼,故而12位)。

    設計代碼:

    設計模塊

    module bin_to_bcd(bin, bcd);

    input [7:0] bin;

    output [11:0] bcd;

    wire [19:0] shift_reg [5:0];

    assign shift_reg[5] = {9'b0,bin,3'b0};

    bcd_modify u1(.bcd_in(shift_reg[5]), .bcd_out(shift_reg[4]));

    bcd_modify u2(.bcd_in(shift_reg[4]), .bcd_out(shift_reg[3]));

    bcd_modify u3(.bcd_in(shift_reg[3]), .bcd_out(shift_reg[2]));

    bcd_modify u4(.bcd_in(shift_reg[2]), .bcd_out(shift_reg[1]));

    bcd_modify u5(.bcd_in(shift_reg[1]), .bcd_out(shift_reg[0]));

    assign bcd = shift_reg[0][19:8];

    endmodule

    module bcd_modify(bcd_in, bcd_out);

    input [19:0] bcd_in;

    output [19:0] bcd_out;

    wire [19:0] bcd_reg;

    bcd_sigle_modify u1(.bcd_in(bcd_in[19:16]), .bcd_out(bcd_reg[19:16]));

    bcd_sigle_modify u2(.bcd_in(bcd_in[15:12]), .bcd_out(bcd_reg[15:12]));

    bcd_sigle_modify u3(.bcd_in(bcd_in[11:8]), .bcd_out(bcd_reg[11:8]));

    assign bcd_reg[7:0] = bcd_in[7:0];

    assign bcd_out = {bcd_reg[18:0],1'b0};

    endmodule

    module bcd_sigle_modify(bcd_in, bcd_out);

    input [3:0] bcd_in;

    output reg [3:0] bcd_out;

    always @ (*)

    begin

    if (bcd_in > 4)

    bcd_out = bcd_in + 3;

    else

    bcd_out = bcd_in;

    end

    endmodule

    測試模塊

    `timescale 1ns/1ps

    module tb();

    reg [7:0] bin;

    wire [11:0] bcd;

    initial begin

    bin = 255;

    #500 bin = 20;

    #500 bin = 125;

    #500 $stop;

    end

    bin_to_bcd bin_to_bcd_dut(

    .bin(bin),

    .bcd(bcd)

    );

    endmodule

    仿真圖:

    從仿真中可以看出本次設計的正確性,測試中我們輸出的二進制和為8個1也就是255,轉化為10進制后 按16進制顯示,也就是255,通過驗證設計正確。


  • ·上一篇:
    ·下一篇:
  • 其他關聯資訊
    深圳市日月辰科技有限公司
    地址:深圳市寶安區松崗鎮潭頭第二工業城A區27棟3樓
    電話:0755-2955 6626
    傳真:0755-2978 1585
    手機:131 1300 0010
    郵箱:hu@szryc.com

    深圳市日月辰科技有限公司 版權所有:Copyright?2010-2023 www.qingjujia.cn 電話:13113000010 粵ICP備2021111333號
    主站蜘蛛池模板: 国内一级一级毛片a免费 | 亚洲人成在线免费观看 | 国产又黄又爽又色视频影视网免费 | 国产精品无码久久综合网 | 亚洲女人毛片 | 国产 日韩 欧美 综合 | 中文字幕在线播放视频 | 亚洲欧美在线一区 | 黄色三级毛片网站 | 欧美伦妇高清免费 | 好男人在线影院www 好看的一级毛片 | 久久精品久久久久久久久人 | 爱爱视频免费 | 99精品国产三级在线观看 | 成人性一级视频在线观看 | 黄色大片免费在线观看 | 五月天婷婷在线视频 | 国产99网站 | 日韩大片在线播放 | 99久久精品国产一区二区成人 | 99精品国产美女福到在线不卡 | 日本aaaa级毛片在线看 | 色婷婷六月丁香七月婷婷 | 欧美特级限制片高清 | 激情区| www.黄色网| 欧美成人影院 在线播放 | 亚洲国产成人精品青青草原100 | 香蕉视频最新网址 | 尤物视频网站在线 | 国产视频二| 午夜视频吧| 网友自拍视频精品区 | 91污污视频 | 亚洲一区二区三区播放在线 | 成人毛片一区二区三区 | 尤物视频在线观看网站 | 久久亚洲精品视频 | 色吊丝永久性观看网站大全 | 成人综合久久精品色婷婷 | 911精品国产亚洲日本美国韩国 |