FPGA圖案--數字表示(代碼+波形)

在數字邏輯系統,僅僅存在高低。所以用它只代表一個整數數字。并且有3代表性的種類。這是:原碼表示(符號加絕對值值)、反碼表示(加-minus標志)而補碼(符號加補)。這三個在FPGA中都有著廣泛的應用。以下分別討論。

1、原碼表示法

原碼表示法是機器數的一種簡單的表示法。採用符號位級聯絕對值的方法表示數字。其最高位為符號位,用0表示正數,1表示負數;其余部分為絕對數值部分。原碼一般用二進制形式表示。

比如,X1 = +1010110,X2 = -1001010,則其原碼分別為:01010110和11001010

原碼表示數的范圍與二進制位數有關。當用8位二進制來表示小數原碼時,其表示范圍:最大值為0.1111111,其真值約為10進制中的0.99;最小值為1.1111111。其真值約為十進制的-0.99。

當用8位二進制來表示整數原碼時。其表示范圍:最大值為01111111。其真值為十進制的127;最小值為11111111。其真值為十進制的-127。

在原碼表示法中。對0有兩種表示形式,分別記為+0和-0,以8比特數據為例,其對應的表示為:+0=00000000、-0=10000000。

2、反碼表示法

反碼可由原碼得到。

假設數字是正數,則其反碼與原碼一樣。假設數字是負數,則其反碼是對它的原碼(符號位除外)各位取反而得到的。

比如:X1 = +1010110, X2=-1001010,則其對應的反碼為01010110、10110101。

3、補碼表示法

補碼表示法師實際中應用最廣泛的數字表示法。其表示規則例如以下:若是正數。補碼、反碼和原碼的表示是一樣的。若是負數,補碼、反碼和原碼的表示都不一樣。

由反碼與原碼之間的關鍵,負數的補碼等于其反碼在最低位加1。

4、各類表示方法小結

原碼的長處就是乘除運算方便。不論正負數,乘除運算都一樣,并以符號位決定結果的正負號;若做加法則須要推斷兩數符號是否同樣。若作減法,還須要推斷兩數絕對值的大小,以使大數減小數。

補碼的長處是。加法運算方便,不論數的正負都可直接相加。而符號位相同參加運算。

例:給出各類碼字表示法的基本加法運算實例,并說明各自特點

(1)首先給出原碼的運算演示樣例。當中()d代表十進制數。

首先給出一個原碼的減法計算實例,完畢“1 + (-1)= 0“”的操作。

(1)d + (-1)d = (0)d

假設讀者直接利用原碼來完畢上式運算,會發現用符號位的原碼進行在加減運算的時候就會出現故障。將數據以8比特的表示形式為例,

(00000001)原 + (10000001)原 = (10000001)原 = (-2)d

計算結果是不對的,問題在于兩點:首先。負數的符號位直接改變了計算結果符號;其次,絕對值部分計算也不對。

這說明原碼無法直接完畢正數和負數的加法。

(2)既然,原碼不能完畢正、負數相加。那么反碼形式能夠完畢此操作嗎?仍然以”1 + (-1) = 0“ 為例,其對應的反碼表達式例如以下:

(00000000)反 + (11111110)反 = (11111111)反 = (-0)d

則發現問題出如今+0和-0上。由于實際的計算中的零沒有正負之分的。但上式標明了反碼完畢正、負數相加后。其絕對值部分是正確的。因此能正確完畢正、負數相加的表達形式必然包括反碼的特性。

(3)最后給出補碼的相關特性說明,負數的補碼就是對反碼加1,而正數不變。

以8比特數據為例。通過(-128)d取代了(-10)d。所以其表示范圍為【-128,127】。從直觀上。補碼消除了(+0)和(-0)。而且具備反碼特點,那么到底其能完畢正、負加法運算嗎?答案是肯定的,以下給出詳細實例,所看到的

(00000001)補 + (11111111)補 = (00000000)補 = (0)d

基于以上討論,能夠得到一個基本結論:僅僅有補碼才干正確完畢正負加法運算,并將減法運算轉化為加法運算,從而簡化運算規則。

但對于乘法操作。則以原碼形式計算是最方便的。以下有實例。


演示1:原碼進行乘法運算 -2 * 2 = -4

module mul(input clk,input rstn,input [7:0] a,input [7:0] b,output [14:0] q_mul,output reg [8:0] q_add,output reg[7:0] ra,output reg[7:0] rb);reg [13:0] rmul;always @(posedge clk or negedge rstn)if(!rstn)beginq_add <= 0;ra <= 0;rb <= 0;rmul <= 0;endelse begin//q_mul <= a*b;if(a[7]==1)ra = {a[7],~a[6:0] + 1};elsera = a;if(b[7]==1)rb = {b[7],~b[6:0] + 1};elserb = b;rmul <= ra[6:0]*rb[6:0];q_add <= {a[7],a} + {b[7],b};endassign q_mul = {a[7]^b[7],rmul};endmodule

演示2:通過reg signed實現

module signedMul(input clk,input rstn,input [7:0] a,input [7:0] b,output [15:0] q);reg signed[7:0] ra;reg signed[7:0] rb;always @(posedge clk or negedge rstn) beginif(~rstn) beginra <= 0;rb <= 0;endelse beginra <= a;rb <= b;endendassign q = ra * rb;endmodule



























版權聲明:本文博主原創文章,博客,未經同意不得轉載。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/287535.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/287535.shtml
英文地址,請注明出處:http://en.pswp.cn/news/287535.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

WPF效果第一百八十四篇之網頁視頻保存

一年一度的小學入學采集開始了;我一朋友很是頭大,他說頭都大了好幾圈了;既要準備各種入學材料又要聽線上專人視頻直播講解;然而在直播結束后,他發現自己仍是一臉疑惑;雖說直播有回訪吧,但是他那蝸牛網速簡直了;這時他場外找我,讓我看能不能給他自己下載一份;1、畢竟第一次,直接…

【遙感數字圖像處理】基礎知識:第一章 緒論

第一章 緒 論 ◆ 課程學習要求 主要教學內容&#xff1a;遙感數字圖像處理的概念和基礎知識&#xff0c;遙感數字圖像的幾何處理&#xff0c;遙感圖像的輻射校正&#xff0c;遙感數字圖像的增強處理&#xff0c;遙感圖像的計算機分類&#xff0c;遙感數字圖像的分析方法&…

Android之Canvas的drawRoundRect()

1 問題 Canvas的drawRoundRect()函數怎么用 public void drawRoundRect(RectF rect, float rx, float ry, Paint paint) 功能:該方法用于在畫布上繪制圓角矩形,通過指定RectF對象以及圓角半徑來實現。float rx:生成圓角的橢圓的X軸半徑 float ry:生成圓角的橢圓的Y軸半徑…

201671010128 2017-10-08《Java程序設計》之Lambda與內部類

一、基本概念 Java Lambda 表達式是 Java 8 引入的一個新的功能&#xff0c;主要用途是提供一個函數化的語法來簡化編碼。Lambda表達式本質上是一個匿名方法。Java Lambda 表達式以函數式接口為應用基。內部類(inner class)是定義在另一個類內部的類。二、幾點注意 使用內部類的…

自定義Git

在安裝Git一節中&#xff0c;我們已經配置了user.name和user.email&#xff0c;實際上&#xff0c;Git還有很多可配置項。 比如&#xff0c;讓Git顯示顏色&#xff0c;會讓命令輸出看起來更醒目&#xff1a; $ git config --global color.ui true這樣&#xff0c;Git會適當地顯…

java抽象方法實例_Java的抽象方法和抽象類實例詳解

本文實例講述了Java的抽象方法和抽象類。分享給大家供大家參考&#xff0c;具體如下&#xff1a;一 點睛抽象方法是只有方法簽名&#xff0c;沒有方法實現的方法。抽象方法和抽象類必須使用abstract修飾符來定義&#xff0c;有抽象方法的類只能被定義為抽象類&#xff0c;抽象類…

[python opencv 計算機視覺零基礎到實戰] 九、模糊

一、學習目標 了解什么是卷積了解模糊的使用方法與應用 如有錯誤歡迎指出~ 二、了解模糊的應用 上一篇:[python opencv 計算機視覺零基礎到實戰] 八、ROI泛洪填充 2.1 了解卷積是什么 在本節中&#xff0c;卷積我們不過多的進行深入講解&#xff0c;我本人對卷積也只是稍…

windows update更新失敗 安全模式進不去

今天一同事的電腦遇到問題了&#xff0c;提示“windows update更新失敗”。最后一次正確配置不行&#xff0c; 安全模式進不去。解決方法&#xff1a;強制關機開機后F8啟動修復模式&#xff08;系統盤或者pe進入也可以&#xff09;&#xff0c;系統還原&#xff0c;找最后的還原…

windbg的時間旅行實現對 C# 程序的終極調試!

一&#xff1a;什么是時間旅行 簡而言之就是把程序的執行流拍成vlog&#xff0c;這樣就可以對 vlog 快進或者倒退&#xff0c;還可以分享給別人做進一步的分析&#xff0c;是不是想都不敢想。很開心的是 windbg preview 版本中已經實現了&#xff0c;叫做 時間旅行調試 TTD&…

【神經網絡】神經網絡結構在命名實體識別(NER)中的應用

命名實體識別&#xff08;Named Entity Recognition&#xff0c;NER&#xff09;就是從一段自然語言文本中找出相關實體&#xff0c;并標注出其位置以及類型&#xff0c;如下圖。它是NLP領域中一些復雜任務&#xff08;例如關系抽取&#xff0c;信息檢索等&#xff09;的基礎。…

centos安裝禪道的步驟

1、下載 XAMPP 套件&#xff1a; https://sourceforge.net/projects/xampp/files/XAMPP%20Linux/stats/timeline 下載的文件是 xampp-linux-x64-7.0.6-0-installer.run 2、 執行 ./xampp-linux-x64-7.0.6-0-installer.run 3、 啟動 /opt/lampp/lampp start 4、 下載禪道 ZenTa…

[python opencv 計算機視覺零基礎到實戰] 十、圖片效果毛玻璃

一、學習目標 了解高斯模糊的使用方法了解毛玻璃的圖片效果添加了解如何自己做一個噪聲圖片 上一篇:[python opencv 計算機視覺零基礎到實戰] 九、模糊 如有錯誤歡迎指出~ 二、了解模糊與美顏 2.1 使用高斯模糊降噪 由于很多小伙伴反應拋開原理或理論講解使用用法對于初學…

Android之自定義View實現帶4圓角或者2圓角的效果

1 問題 實現任意view經過自定義帶4圓角或者2圓角的效果 2 原理 1) 實現view 4圓角 我們只需要把左邊的圖嵌入到右邊里面去,最終顯示左邊的圖就行。 2) 實現view上2圓角 我們只需要把左邊的圖嵌入到右邊里面去,最終顯示左邊的圖就行。 安卓源碼里面有這樣的類 package and…

java trim()函數_Java - split()函數和trim()函數的使用方法

split()函數和trim()函數的使用方法本文地址: http://blog.csdn.net/caroline_wendy/article/details/24465141詳細參考Java API: http://docs.oracle.com/javase/6/docs/api/java/lang/String.htmlsplit()函數是依據參數如",", "-", " "等, 切割…

分布式服務器集群架構方案思考

0x01.大型網站演化 簡單說&#xff0c;分布式是以縮短單個任務的執行時間來提升效率的&#xff0c;而集群則是通過提高單位時間內執行的任務數來提升效率。 集群主要分為&#xff1a;高可用集群(High Availability Cluster)&#xff0c;負載均衡集群(Load Balance Cluster&…

交互式 .Net 容器版

1背景介紹 在之前的文章 - 交互式 .Net 中已經介紹了什么是 交互式 .Net&#xff0c;文中是通過 Visual Studio Code 插件的方式實現 交互式 .Net 的。現在&#xff0c;我們將使用容器的方式實現 交互式 .Net。2鏡像構建 1. DockerfileFROM mcr.microsoft.com/dotn…

Java 集合練習——3

創建Map集合&#xff0c;創建Emp對象&#xff0c;并將創建的Emp對象添加到集合中&#xff0c;并將id為005的對象從集合中移除 創建Emp類&#xff1a; package jihe;public class Emp {private String id;public String getId() {return id;}public void setId(String id) {this…

[python opencv 計算機視覺零基礎到實戰] 十一找到圖片中指定內容

一、學習目標 了解圖片內容定位方法matchTemplate使用了解minMaxLoc方法使用 上一篇《[python opencv 計算機視覺零基礎到實戰] 十、圖片效果毛玻璃》 如有錯誤歡迎指出~ 二、了解從一張圖片中找到指定內容的方法 2.1 使用matchTemplate函數對圖片中的指定內容進行查找 有…