国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

FPGA系統中設計數字表示介紹

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2021-04-04 18:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

FPGA系統中有兩個基本準則非常重要,分別為:數字表示法和代數運算的實現。本博文主要介紹數字表示。

可以購買相關書籍進行研讀。

零、計數系統框架

36a05e84-8e2a-11eb-8b86-12bb97331649.jpg

一 、整數的表示

數字信號處理中需要考慮的基本要點是數字的表示,數字信號處理需要將量值用有限精度的數字表示。一方面,該表示必須足夠準確地處理數字信號處理系統中真實世界的輸入和輸出;另一方面, 該表示必須在硬件實現方面具有高效性。

二進制數的使用是任何數字系統的基礎, 當處理大型復雜的 DSP 系統時, 每秒將需要處理數十億次的乘加運算。因此, 通過減少位數來降低硬件開銷的方法將變得非常有意義。

假設有一個使用 16 位分辨率運算的 DSP 濾波應用, 因此對于一個 16 位乘 16 位并行乘法 , 硬件開銷的量級為 16 X 16 = 256 個單元。使用 16 位字長的原因是它就是 DSP處理器通常使用的字長, 鑒于習慣仍然選擇一樣的字長。在 FPGA世界中可以選擇分辨率。因此, 如果說 9 位分辨率已經足夠了, 乘法器的硬件開銷即為 9 X 9= 81 個單元。這大約是使用 16 位計算開銷的 30%。

因此正確選擇字長很重要:使用太多位浪費硬件資源, 而太少則會損失分辨率。所以, 保證選擇正確的字長的前提是掌握算法和 DSP 知識。

1.1 二進制反碼

可使用二進制反碼描述正數和負數。求一個數的反碼只需對所有的位取反。然而需要注意, 當使用反碼時, 有兩種表示數字 0 的方法, 通常來說, 用反碼并不能直接表示算術運算。

當在這種數字系統中執行二進制運算時, 將遇到奇怪的問題, 這是由于數字 0 有兩個表示版本。事實上,-0 小于+0,這是由于使用反碼表示時:-0+ 1 =+0;+0 -1=-0。

實現上述功能需要相當復雜的硬件。實際需要的是這樣一種系統, 其處理正數和負數與處理無符號數字一樣, 不需要增加硬件的復雜性。

反碼實際上從來沒有在實時 DSP 或數字系統中使用過, 但是它能夠引出標準形式的二進制補碼的概念。

1.2 二進制補碼

對于+0 和-0 來說, 更加合理的數字系統為只有一個 0 的二進制補碼。表 1.1 給出了二進制補碼的表示。

生成 0 的第 9 位可被忽略, 注意用二進制補碼可以表示- 128,但不能表示+ 128。在對正值取反時, 會發現需要用第 9 位表示負零。然而, 如果簡單地忽略這個第 9 位 , 那么這個負零與正零的表示將完全相同。

377fe202-8e2a-11eb-8b86-12bb97331649.jpg

注意在數值系統中, 每個位置上階的意義。例如對于十進制 156 來說:

37ef5cb8-8e2a-11eb-8b86-12bb97331649.png

也就是說字符串“156”代表數字 156,它是每個位置上的值與其階的乘積的和。

如表1.2 所示, 這個規則對二進制數也同樣適用。如表 1.3 所示, 對于二進制補碼整數, 如果將最左列考慮為負值, 則結果同樣適。

3861c744-8e2a-11eb-8b86-12bb97331649.jpg

二、 非整數值的表示

在數字信號處理系統中, 經常希望描述諸如正弦波的信號, 顯然需要處理非整數數值的情況。對這種非整數值要求的一種可能的解決辦法是允許正弦波幅度按比例增加并以整數形式來表示。

這種方法很常見, 但在某些情況下, 需要表示 0~1 之間的數值, 也需要表示整數之間的數值。用十進制表示小數很容易。通過引入十進制小數點來描述非整數, 并在小數點的右邊插人數字。例如:

3898a0c0-8e2a-11eb-8b86-12bb97331649.png

在式中, 字符串“10.34”代表數字 10. 34 ,即 10 的乘方的倍數的總和。

同樣地, 可以對二進制數執行同樣的運算:

38f40dfc-8e2a-11eb-8b86-12bb97331649.png

在式屮, 字符串“10.01”表示數字 2.25,即 2 的乘方的倍數的總和。

2.1 定點二進制數

定點數就是二進制小數點在固定位罝的數。二進制小數點左邊部分的位被定義為整數位, 而該點右邊部分的位被定義成小數位。舉例來說:“101.01011”有 3 個整數位, 5個小數位。如表 2.1 所示, 定點數按類似的方式處理有符號整數。

399aa0ea-8e2a-11eb-8b86-12bb97331649.png

根據表 2.1可得, 110.00111( 二進制數) = - 1.78125( 十進制數)

如表 2.2所示 , 一種非常重要的定點數字類型只有一個整數位。

例如, Motorola StarCore 和 TI C62x DSP 處理器都使用只有一個整數位的定點表示法。這種格式可能是有問題的, 因為它不能表示+ 1.0,實際上, 任何定點格式都不能表示其負數最小值的相反數。

所以在使用定點數時要多加注意。一些 DSP 處理器結構允許利用擴展位對格式進行 1 個整數位的擴展( 這些擴展位就是附加的整數位)。

39cd3f96-8e2a-11eb-8b86-12bb97331649.png

2.2 定點量化

重新考慮數字的格式:aaa. bbbb 表示 3 個整數位, 5 個小數位。可以表示- 4 和3.96785 之間的數, 數之間的步長為 0.03125。由于具有 8 位, 故具有 28 = 256 個不同的值。需要注意使用定點時的量化,將有± 1 /2LSB( 最低有效位) 的誤差。

量化就是使用有限數位來表示無限精度的數。在十進制中, 很熟悉處理給定位數的十進制小數的方法。實數可以表示為 3.14159265… , 可以量化或將其表述為帶 4 個十進制位的小數 3.1416。如果在這里使用舍人, 則誤差為:

3.14159265…- 3.1416 =- 0.00000735

如果使用截斷法( 即第 4 位小數以后的位數被扔掉) , 則誤差將變得更大, 如下:

3.14159265…- 3.1415 = 0.00009265

很明顯, 舍人是比較合適的能夠得到預期精度的方法。然而該方法也會有一些硬件開銷。盡管開銷相對較小, 但它的確不是免費的。

當乘以小數時需要處理到給定數目的位數。例如, 如果需要計算兩個十進制小數位, 則計算過程如下:

0.57 X 0.43 = 0.2451

可被舍人到 0.25,或者截斷到 0.24。結果是不同的。

一旦開始在數字信號處理系統中執行上億次的乘加運算, 就不難發現這些微小的誤差會因為累積而造成嚴重的影響。

2.3歸一化處理

使川二進制小數使得算術運算變得容易, 也易于處理字長增長。作為一個例子, 考這樣一個“ 機器”, 它有 4 位十進制數和一個具有 4 個數字位的算術單元, 范圍為-9999~+9999。兩個 4 位數相乘將導致多達 8 個有效數字。

6787 X 4198 = 28491826 --》(標定)2849.1826–》(截斷)2849

如果想把這個數送到該機器的下一級( 算術運算具有 4 位的精度 ) , 那么需要按比例減小 10000 倍, 然后截斷 。

將其歸一化到范圍-0.9999 ~+0.9999。

0.6787 X 0.4198 = 0.28491826 —》(截斷) 0.2849

現在截斷到 4 位的操作變得相當容易。當然兩種結果是嚴格一致的, 而差別僅僅在于如何執行截斷和標定。

然而對輸入執行歸一化操作, 所有的輸人值都位于-1~ + 1 的區間內。可以注意到該區間內任意兩個數的乘積同樣存在于-1 +1 的區間之內。

同樣的歸一化操作也適用于二進制, 而且大多數數字信號處理系統也使用二進制點。

下面考慮 二 進 制 補 碼 中 的 8 位 數 值。因 此 該 數 值 的 取 值 范 圍 是 10 0 0 0 0 0 0~01111111 (-128~+127)。

如果將這些數歸一化到-1~ 1 之間( 除以 128 ), 那么二進制的范圍是 1.0000000~0.1111111( -1~ 0.9921875,其中 127/128= 0.9921875 )。所以把十進制乘法中歸一化的概念用于二進制。

十進制乘法 36 X 97=3492 等價于二進制乘法 0010 0100 X 0110 0001 = 0000 1101 1010010。在二進制中,將值歸一化就是計算 0.0100100 X 0.1100001 =0.00110110100100。等價于十進制中:

0.28125 X 0.7578125=0.213134765625

注意:在 數 字 信 號 處 理 系 統 中, 在 設 計 者 的 眼 中, 二 進 制 點 是 存 在 的, 然 而 卻 沒 有 實際 的 連 接 或 連 線。這 只 是 使 得 跟 蹤 字 長 增 長, 以 及 通 過 扔 掉 小 數 位 來 截 斷 變 得 更 加 容易。當 然 如 果 更 愿 意 使 用 整 數 并 且 跟 蹤 定 標 等 , 也 可 以 這 樣 做。得 到 的 答 案 是 相 同 的 ,硬 件 開 銷 也 是 相 同 的。

2.4 小數部分截斷

二進制中, 截斷是簡單地將位去除的過程。通常使用這種強制的方法來將大的二進制字長變小, 通常需要截掉最低有效位 (LSB),該操作的影響是降低了準確度。

考慮將十進制數 7.8 9 9 2 截 斷 到 3 個 有 效 位 7.89。當然, 可以截斷最低有效位 , 其結果是損失了精度( 分辨率) , 但它仍是最初 5 位數的代表。如果截斷最高有效位 992 ( 或0.0992), 其結果將不是所希望的, 而且也失去了意義。

在二進制中, 最髙有效位截斷的概念是很少使用的, 在十進制的例子中, 最高有效位截斷通常是災難性的。然而, 在某些極少情況下, 一系列的操作將導致整個數值的范圍減小。所以移除 MSB 也是有好處的。

截斷 MSB 通常發生在要截斷的位為空的時候。當使用有符號的值時, 由于丟失了符號位, 截斷 MSB 將會帶來問題。

舍入是一種更準確的方法, 但同時也是更復雜的技術。該技術需要進行一個加法操作, 然后再直接截斷,該過程等價于十進制的四舍五人, 即通過在 7 。 8 9 上 加 0 。 0 5 然 后 再 截 斷 到 7.9 來 舍人到一個小數位。因此簡單的舍人需要一個加法操作。

2.5 一種不同的方法 Trounding

Trounding 是截斷 truncation )和 舍 人( rounding )之 間 的 一 種 折中方 法, 其 特 點如下。

① 和舍人一樣, Trcnmding 保留了 LSB 以上的信息。

② 它和舍人不同, 它不影響新的 LSB 以上的任何位。

其具體實現方法在 XtremDSP 中進行了詳細的介紹, 具體可以參看這部分相關內容。Trounding 的好處是它不需要全加器, 而且可以通過或門得到比截斷更好的性能。盡管是一個很小的優點, 但這種成本上的節省以及性能的改善還是有價值的。

三、 浮點數定義及表示

3.1 標 準 浮 點 數 表 述

浮點數可以在更大的動態范圍內提供更高的分辨率, 通常當定點數由于受其精度和動態范圍所限不能勝任時, 浮點數能提供解決方案。當然, 也在速度和復雜度方面帶來了損失 , 大多數的浮點數都遵循單精度或雙精度的 IEEE 浮點標準。標準浮點數字長由一個符號位 S,指數 e 和無符號( 小數) 的規格化尾數m構成, 其格式如下:

3a7e1d98-8e2a-11eb-8b86-12bb97331649.png

浮點數可以用下式描述:

3af09580-8e2a-11eb-8b86-12bb97331649.png

指數 e=1…2 是為∞準備的。而 e=0 是 為 0 預 備 的。表 2.3 給 出 了 IEEE 的單精度和雙精度格式的參數。

3b4711d0-8e2a-11eb-8b86-12bb97331649.png

在浮點乘法中, 尾數部分可以像定點數一樣相乘, 而把指數部分相加。浮點數減法復雜一些,因為首先將尾數歸一化, 就是將兩個數都調整到較大的指數, 然后將兩個尾數相加。對于加法和乘法混合運算來說, 最終的歸一化, 就是將結果尾數再統一乘小數1.m 形式的表達式, 這是非常必要的。

一些浮點編碼的范例 ( 單精度浮點 32 位, 注意這些運算都是基于二進制的計算)。如下:

3c1f177e-8e2a-11eb-8b86-12bb97331649.jpg

注意小數點之前的 1 沒有被編碼( 那里一直有個 1, 因而不需要顯式表示)。

3.2 浮點數的短指數表示

簡化浮點硬件的一種方法是創建一種使用短指數的數據格式。這種情況下有一個 4位的指數和一個 11 位的尾數。因此可以表示-7~ 8 的范圍內的指數。其結果在動態范圍內顯著地增加, 代價只是精度輕微降低。表 2.4 給出了定點數和短指數的比較。

3c5af69a-8e2a-11eb-8b86-12bb97331649.jpg

3.3 浮點數的應用

浮點在許多具有專用浮點單元( FPU ) 的 DSP 處理器中被廣泛使用。不在 FPGA中使用浮點的原因如下。

① 運算速度慢:FPU 是一個復雜的單元, 設計中的每個代數運算將共用該單元。

② 低效的芯片面積:使用 FPGA 實現 FPU 需要很大的硬件空間。

然而, 某些情況下 FPU 也許是必不可少的, 例如在需要一個巨大的動態范圍的應用場合, 使用浮點可能使得設計更加簡單 , 這是因為在定點設計中, 需要最好地利用可用的動態范圍, 但是在浮點設計中, 動態范圍的限制不是一個需要考慮的問題。

原文標題:基于 FPGA 的數字表示

文章出處:【微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

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

    關注

    1660

    文章

    22412

    瀏覽量

    636312
  • FPU
    FPU
    +關注

    關注

    0

    文章

    46

    瀏覽量

    22865

原文標題:基于 FPGA 的數字表示

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    下一款數字表為什么要選七位半

    七位半數字表AMC93200/AMC93200H隨著電子技術的進步,科研和生產中對數字多用表(以下簡稱數字表)的顯示位數、分辨力、測試精度和測試功能的要求不斷提高。二十多年前,隨著多斜積分技術的成熟
    的頭像 發表于 02-05 09:01 ?244次閱讀
    下一款<b class='flag-5'>數字表</b>為什么要選七位半

    探索Broadcom HDSM-201x與HDSM-203x:0.2英寸單數字表面貼裝顯示器的卓越性能

    探索Broadcom HDSM-201x與HDSM-203x:0.2英寸單數字表面貼裝顯示器的卓越性能 在電子設備的設計,顯示器是至關重要的組成部分。今天,我們將聚焦于博通(Broadcom)推出
    的頭像 發表于 12-30 15:30 ?304次閱讀

    數字IC/FPGA設計的時序優化方法

    數字IC/FPGA設計的過程,對PPA的優化是無處不在的,也是芯片設計工程師的使命所在。此節主要將介紹performance性能的優化,如何對時序路徑進行優化,提高工作時鐘頻率。
    的頭像 發表于 12-09 10:33 ?3279次閱讀
    <b class='flag-5'>數字</b>IC/<b class='flag-5'>FPGA</b>設計<b class='flag-5'>中</b>的時序優化方法

    Xilinx FPGA串行通信協議介紹

    Xilinx FPGA因其高性能和低延遲,常用于串行通信接口設計。本文深入分析了Aurora、PCI Express和Serial RapidIO這三種在Xilinx系統設計關鍵的串行通信協議。
    的頭像 發表于 11-14 15:02 ?2534次閱讀
    Xilinx <b class='flag-5'>FPGA</b>串行通信協議<b class='flag-5'>介紹</b>

    數字顯示頻率計數器功能介紹

    計數
    西安同步電子科技有限公司
    發布于 :2025年11月06日 15:58:15

    HbirdV2-SoC自帶pwm配置介紹

    1 隊伍介紹 本篇主要介紹蜂鳥HbirdV2-SoC自帶外設PWM的配置 2 PWM寄存器介紹 在芯來的e203官方手冊,外設部分對PWM進行了詳細的
    發表于 10-30 06:53

    如何利用Verilog HDL在FPGA上實現SRAM的讀寫測試

    本篇將詳細介紹如何利用Verilog HDL在FPGA上實現SRAM的讀寫測試。SRAM是一種非易失性存儲器,具有高速讀取和寫入的特點。在FPGA實現SRAM讀寫測試,包括設計SRA
    的頭像 發表于 10-22 17:21 ?4345次閱讀
    如何利用Verilog HDL在<b class='flag-5'>FPGA</b>上實現SRAM的讀寫測試

    聊聊FPGA的TDC原理

    今天我們不談高大上的物理學,只聊聊如何在 FPGA ,用一串加法器和 D 觸發器,“數清楚時間”——這就是時間數字轉換器(TDC)的魅力。
    的頭像 發表于 09-02 15:15 ?2109次閱讀
    聊聊<b class='flag-5'>FPGA</b><b class='flag-5'>中</b>的TDC原理

    基于FPGA數字識別系統設計

    在圖像處理領域,圖像識別是較為困難而關鍵的技術。這項技術被廣泛的應用到娛樂、工業、軍事等領域。本次設計數字識別系統已經在車牌識別、運動員號碼識別等多處運用。本系統包括了攝像頭讀取圖像、圖像灰度處理
    的頭像 發表于 07-16 14:28 ?1527次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>數字</b>識別<b class='flag-5'>系統</b>設計

    西門子桌面級原型驗證系統Veloce proFPGA介紹

    子,工程師可以從 proFPGA Uno 系統開始進行 IP 或子片上系統 (SoC) 的開發,然后將其重復用于完整的 SoC 和專用集成電路 (ASIC)原型設計。這只需要將 Uno
    的頭像 發表于 06-30 13:53 ?1839次閱讀

    蒸汽流量計數字化能源采集方案:數據賦能蒸汽系統能耗監測與節能降耗體系構建

    蒸汽流量計數字化能源采集方案:數據賦能蒸汽系統能耗監測與節能降耗體系構建
    的頭像 發表于 06-20 10:09 ?720次閱讀
    蒸汽流量<b class='flag-5'>計數字</b>化能源采集方案:數據賦能蒸汽<b class='flag-5'>系統</b>能耗監測與節能降耗體系構建

    電阻上的數字如何表示電阻大小?

    電阻是電子電路的重要元件,用于控制電流的流動。電阻的大小,也就是電阻值,通常通過其上的數字或顏色環來表示。了解這些表示方法對于電路設計和維修至關重要。今天昂洋科技將詳細
    的頭像 發表于 06-09 14:38 ?3445次閱讀
    電阻上的<b class='flag-5'>數字</b>如何<b class='flag-5'>表示</b>電阻大小?

    實用電子電路設計(全6本)—— 數字系統設計

    。其中包括數字電路基礎、布爾代數和數字電路的表示方法、基本的數字IC、數字電路的基本功能塊、各種數字
    發表于 05-15 15:25

    進群免費領FPGA學習資料!數字信號處理、傅里葉變換與FPGA開發等

    ~ 01、數字信號處理的FPGA實現 旨在講解前端數字信號處理算法的高效實現。首先概述了當前的FPGA技術、器件以及用于設計最先進DSP系統
    發表于 04-07 16:41

    數字電路—24、計數

    數字電路,能夠記憶輸入脈沖個數的電路稱為計數
    發表于 03-26 15:13