在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

FPGA學習系列:32. 如何實現二進制轉十進制的設計

電子工程師 ? 來源:未知 ? 作者:王淳 ? 2018-09-20 09:38 ? 次閱讀

設計背景:

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

設計原理:

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

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

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

2.BCD

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

3.實現方法

1)10求余法

將需要換的字除然后對10求余得出數各個 位上的字。8b1000_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,通過驗證設計正確。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 二進制
    +關注

    關注

    2

    文章

    795

    瀏覽量

    41674
  • BCD
    BCD
    +關注

    關注

    1

    文章

    88

    瀏覽量

    29766
  • 十進制
    +關注

    關注

    0

    文章

    67

    瀏覽量

    13229

原文標題:FPGA學習系列:32. 二進制轉十進制的設計

文章出處:【微信號:FPGAer_Club,微信公眾號:FPGAer俱樂部】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    bcd與十進制之間的關系

    4位二進制數來表示1位十進制數中的0~9這10個數碼,是一種二進制的數字編碼形式。 表示方法 :在BCD碼中,每一位十進制數都被編碼為4位二進制
    的頭像 發表于 12-20 17:15 ?659次閱讀

    bcd編碼的應用 bcd與二進制的區別

    BCD(Binary-Coded Decimal)編碼是一種二進制編碼形式,用于表示十進制數字。它將每個十進制數字(0-9)直接編碼為一個四位二進制數。BCD編碼的主要優點是易于閱讀和
    的頭像 發表于 12-20 17:11 ?626次閱讀

    hex格式和二進制的區別

    HEX格式和二進制在多個方面存在顯著的區別。以下是對這兩者的對比: 一、定義與表示方式 HEX格式 : HEX,全稱為Intel HEX,是一種用于存儲和傳輸數據到嵌入式系統(如單片機)的文件格式
    的頭像 發表于 11-18 15:24 ?580次閱讀

    二進制編碼器的種類及特點

    二進制編碼器是一種電子電路,用于將二進制信號轉換為其他格式,如十進制、格雷碼等。以下是一些常見的二進制編碼器種類及其特點: 優先編碼器(Priority Encoder) : 特點 :
    的頭像 發表于 11-06 09:47 ?547次閱讀

    二進制編碼器工作原理 如何選擇二進制編碼器

    二進制編碼器是一種數字電路,它將輸入的二進制代碼轉換為對應的輸出信號。在數字系統中,編碼器用于將數據從一種形式轉換為另一種形式,以便于處理和傳輸。 二進制編碼器工作原理 輸入與輸出關系 :
    的頭像 發表于 11-06 09:44 ?875次閱讀

    十進制數據十六進制字符_ASCII碼

    十進制數據十六進制字符_ASCII碼
    發表于 09-18 10:17 ?0次下載

    二進制處理中的一些技巧

    二進制十進制的處理中,有時候一些小技巧是很有用的。 1、把十進制數轉換成二進制數 (1)在MATLAB中有一個函數dec2bin,可以把正整數轉換為2
    的頭像 發表于 07-05 11:51 ?586次閱讀

    十進制和4位二進制計數器數據表

    電子發燒友網站提供《十進制和4位二進制計數器數據表.pdf》資料免費下載
    發表于 05-31 09:32 ?1次下載
    <b class='flag-5'>十進制</b>和4位<b class='flag-5'>二進制</b>計數器數據表

    雙4位十進制二進制計數器數據表

    電子發燒友網站提供《雙4位十進制二進制計數器數據表.pdf》資料免費下載
    發表于 05-13 11:12 ?0次下載
    雙4位<b class='flag-5'>十進制</b>和<b class='flag-5'>二進制</b>計數器數據表

    同步4位十進制二進制計數器數據表

    電子發燒友網站提供《同步4位十進制二進制計數器數據表.pdf》資料免費下載
    發表于 05-09 11:29 ?3次下載
    同步4位<b class='flag-5'>十進制</b>和<b class='flag-5'>二進制</b>計數器數據表

    如何實現二進制和BCD碼數據的相互轉變?

    如何實現二進制和BCD碼數據的相互轉變? 二進制碼是將十進制數字表示為二進制數和十進制數的一種表
    的頭像 發表于 02-18 14:51 ?3677次閱讀

    鴻蒙二進制數組創建

    背景 c++層數據都是二進制,需要轉換成arrayBuffer透傳到ets層給業務使用,但是鴻蒙的使用下面兩個api創建出來的二進制數組數據都是錯誤的。 接口
    的頭像 發表于 01-31 15:24 ?1283次閱讀

    二進制、八進制、十六進制在現實當中有什么意義?

    ,我們可以從數字存儲和數據傳輸的角度來看這些進制的意義。計算機內部使用的是二進制,即由0和1組成的數字系統。這是因為計算機中的所有數據都被轉化為二進制形式進行處理和存儲。人們使用十進制
    的頭像 發表于 01-16 11:14 ?5464次閱讀

    10進制轉換為二進制的算法

    十進制轉換為二進制是計算機科學中非常基礎且重要的概念之一。在理解和應用計算機科學的基礎知識時,掌握這個算法是至關重要的。 在開始講解十進制轉換為二進制的算法之前,讓我們回顧一下
    的頭像 發表于 01-15 10:32 ?3344次閱讀

    10進制轉換為二進制的算法

    10進制轉換為二進制是計算機領域中非常重要的一個問題。在計算機中,所有的數據都是以二進制形式進行存儲和處理的。因此,我們常常需要將10進制數轉換為
    的頭像 發表于 01-11 09:14 ?2417次閱讀
    主站蜘蛛池模板: 91视频毛片| 国产伦精品一区二区三区| 一级一片免费视频播放| 狠狠se| 特级毛片aaaa级毛片免费| xxx黄色片| 九色视频在线播放| 羞羞答答xxdd影院欧美| 狠狠狠狼鲁欧美综合网免费| 久久久噜噜噜久久网| 色多多a| 亚洲伊人久久网| 亚洲一区免费观看| 2021国产精品| 屁屁影院在线| 午夜影院网站| 91美女在线播放| 成人性视频网站| 黄色短视频免费观看| www.天天色| 丁香花在线电影小说观看| 影院午夜| 亚洲综合五月天婷| 综合丁香| 色3344| 欧美色视频日本片高清在线观看 | 久久精品亚洲精品国产色婷| 二十年等一人小说在线观看| 狠狠色噜噜狠狠狠狠米奇7777| 成年人一级片| 国产黄色精品| 国产高清一区二区| 天天干天天曰天天操| 午夜小视频免费观看| 国产午夜免费一区二区三区| 国产美女亚洲精品久久久综合| 免费在线看视频| 很黄网站| 亚洲欧美在线一区二区| 亚洲免费在线观看| 婷婷开心六月久久综合丁香|