<strong id="0toem"><dl id="0toem"></dl></strong><b id="0toem"><menuitem id="0toem"></menuitem></b>

      <b id="0toem"><menuitem id="0toem"></menuitem></b>
    1. <code id="0toem"><abbr id="0toem"></abbr></code>
      <strong id="0toem"><dl id="0toem"></dl></strong>
      <kbd id="0toem"></kbd>
              1. <code id="0toem"></code>
                <th id="0toem"><progress id="0toem"></progress></th><strong id="0toem"><form id="0toem"></form></strong>

                <th id="0toem"></th>
              2. 131 1300 0010
                其他電源
                當(dāng)前位置: 首頁(yè)>> 電源技術(shù)>>其他電源>>
              3. 導(dǎo)航欄目
              4. 逆變電源
              5. 開(kāi)關(guān)電源
              6. 電機(jī)伺服
              7. 其他電源
              8. FPGA學(xué)習(xí)系列:32. 如何實(shí)現(xiàn)二進(jìn)制轉(zhuǎn)十進(jìn)制的設(shè)計(jì)
                FPGA學(xué)習(xí)系列:32. 如何實(shí)現(xiàn)二進(jìn)制轉(zhuǎn)十進(jìn)制的設(shè)計(jì)
              9. FPGA學(xué)習(xí)系列:32. 如何實(shí)現(xiàn)二進(jìn)制轉(zhuǎn)十進(jìn)制的設(shè)計(jì)
              10.   發(fā)布日期: 2018-09-20  瀏覽次數(shù): 2,617

                設(shè)計(jì)背景:

                二進(jìn)制轉(zhuǎn)十進(jìn)制在設(shè)計(jì)應(yīng)用中十分的廣泛。尤其在AD轉(zhuǎn)化中是必須所用到的一個(gè)小知識(shí)點(diǎn),學(xué)習(xí)二進(jìn)制轉(zhuǎn)十進(jìn)制的方法顯的非常的重要。今天就和筆者來(lái)學(xué)習(xí)二進(jìn)制轉(zhuǎn)十進(jìn)制的方法,通過(guò)簡(jiǎn)單的學(xué)習(xí)來(lái)掌握這么一門知識(shí)。

                 

                設(shè)計(jì)原理:

                本次的設(shè)計(jì)主要是一個(gè)簡(jiǎn)單的二選一數(shù)據(jù)選擇器,我們的設(shè)計(jì)主

                二進(jìn)制中只有 0 和 1 兩個(gè)狀態(tài),可以表示 0、1 兩種狀態(tài)的電 子器件很多,如開(kāi)關(guān)的接通和斷開(kāi),晶體管的導(dǎo)通和截止、磁元 件的正負(fù)剩磁、電位電平的低與高等都可表示 0、1 兩個(gè)數(shù)碼。使 用二進(jìn)制,電子器件具有實(shí)現(xiàn)的可行性。

                二進(jìn)制數(shù)的運(yùn)算法則少,運(yùn)算簡(jiǎn)單,使計(jì)算機(jī)運(yùn)算器的硬件結(jié) 構(gòu)大大簡(jiǎn)化。由于二進(jìn)制 0 和 1 正好和邏輯代數(shù)的假(false)和 真(true)相對(duì)應(yīng),有邏輯代數(shù)的理論基礎(chǔ),用二進(jìn)制表示二值 邏輯很自然。電子器件中,所有的數(shù)據(jù)都是用二進(jìn)制來(lái)表示的。

                2. BCD 

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

                        3. 實(shí)現(xiàn)方法

                           1) 對(duì) 10 求余法

                         將需要轉(zhuǎn)換的數(shù)字除權(quán)然后對(duì) 10 求余得出數(shù)各個(gè) 位上的數(shù)字。8&rsquo;b1000_0000(10 進(jìn)中的 128將此數(shù) 字對(duì) 10 余,個(gè)“8“8”賦最低的 4 將 此數(shù)字(128) 10得出 12(在 FPGA 計(jì)算,自動(dòng)取整, 對(duì) 10 ,然得出位“2把“2”賦給低的 4 。將此 數(shù)字(128)除以 100,得出 1,對(duì) 10 余,然得出位“1, 把“1”賦給另外的 4 位。這樣就轉(zhuǎn)換出了 BCD 碼。

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

                        2) 大四加三法

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

                                

                架構(gòu)圖如下

                bin_data[7:0]:輸入的二進(jìn)制數(shù)據(jù)。

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

                設(shè)計(jì)代碼:

                設(shè)計(jì)模塊

                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

                測(cè)試模塊

                `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

                仿真圖:

                從仿真中可以看出本次設(shè)計(jì)的正確性,測(cè)試中我們輸出的二進(jìn)制和為8個(gè)1也就是255,轉(zhuǎn)化為10進(jìn)制后 按16進(jìn)制顯示,也就是255,通過(guò)驗(yàn)證設(shè)計(jì)正確。


              11. ·上一篇:
                ·下一篇:
              12. 其他關(guān)聯(lián)資訊
                深圳市日月辰科技有限公司
                地址:深圳市寶安區(qū)松崗鎮(zhèn)潭頭第二工業(yè)城A區(qū)27棟3樓
                電話:0755-2955 6626
                傳真:0755-2978 1585
                手機(jī):131 1300 0010
                郵箱:[email protected]

                深圳市日月辰科技有限公司 版權(quán)所有:Copyright?2010-2023 www.xydibang.com 電話:13113000010 粵ICP備2021111333號(hào)
                <strong id="0toem"><dl id="0toem"></dl></strong><b id="0toem"><menuitem id="0toem"></menuitem></b>

                    <b id="0toem"><menuitem id="0toem"></menuitem></b>
                  1. <code id="0toem"><abbr id="0toem"></abbr></code>
                    <strong id="0toem"><dl id="0toem"></dl></strong>
                    <kbd id="0toem"></kbd>
                            1. <code id="0toem"></code>
                              <th id="0toem"><progress id="0toem"></progress></th><strong id="0toem"><form id="0toem"></form></strong>

                              <th id="0toem"></th>
                            2. 亚洲免费乱伦小说网 | 免费视频色情 | 大香蕉伊人7 | 韩国无码视频 | 欧美日逼逼 |