FPGA對定點數的處理 作業

2021-07-29 05:38:32 字數 3531 閱讀 6974

作業1

當輸入和輸出資料都是有符號數時將採用補碼加法器。當加法結果過大,會溢位迴繞。

用了9個引腳,3個邏輯單元,3個組合函式塊。

輸出c為3位,表示範圍是-4到3,。通過**結果看出,當和的結果超出範圍時,結果會溢位,迴繞到0。

實驗2 符號擴充套件和資料對齊

不同長度的2補碼資料進行運算時,先進行符號擴充套件和資料對齊,然後再進行加、減法運算。

用了36個引腳,16個邏輯單元,16個組合函式塊。

根據**結果看出,sum2和sum4的二進位制完全相同,和sum3不同。

a和c都為正數時,sum2、sum3、sum4的十進位制值相等,但當c為負數時,sum2和sum4的十進位制值相等,與sum3的值不同,sum3為a和c的絕對值相加的結果。所以,有符號數相加但位數不同時,需對位數不足的數進行位擴充套件,並且需要用符號為在高位進行擴充套件,使想家的兩數字數相同。

實驗三

乘法和加法對字長的影響,驗證2補碼整數的乘法和加法運算

用了36個引腳,38個邏輯單元,38個組合函式塊。

sum1和sum2對比:sum2運算結果正確,sum1錯誤,得出結論,兩個n位的數相加,它們的和需要n+1位才能保證結果正確。

mult1和mult2和mult3對比:mult2運算結果正確,mult1錯誤,得出結論,兩個n位的數相乘,它們的積需要2n位才能保證所有結果正確,其實,除了-8和-8的積這種特殊情況,結果只需要2n-1位。

實驗四

定點數實驗,驗證帶小數字的定點數的乘加運算

**:

module shiyaner ( 

a,b,

sum,

mult);

input [7:0] a,b;

output [8:0]

sum;

output [15:0]mult;

reg [8:0]

sum;

reg [15:0]mult;

reg [3:0]sum1;

reg [4:0]sum2;

always @ (a or b)

begin

sum1 = a[3:0]+b[3:0];

sum2 = a[7:4]+b[7:4]+ sum1[4];

sum =;

mult= a*b;

endendmodule

本**中規定,a的高四位為整數字,低四位是小數字。和的高五位是整數部分,低四位是小數部分。乘積的低8位是小數部分,高8位是整數部分。

verilog中不能直接識別小數,但小數計算有一定規律。小數加法需要對準小數點,即整數和整數相加,小數和小數相加。

乘法運算不需要對齊小數點,結果的小數字位數等於兩個乘數小數字數之和,對結果擷取時只取高位不取低位。

用了36個引腳,40個邏輯單元,40個組合函式塊。

觀察結果,a和b都為0011_0100時,化作十進位制數是3.25,a+b=6.5,化作二進位制為00110_1000,和結果一致。a*b=10.5625,化作二進位制為1010_1001,與**結果一致。

FPGA 定點數轉化為浮點數

浮點資料分為單精度和雙精度,單精度32位,雙精度64位。分為3個部分,s為最高符號位,e為指數字 又稱為階碼 m表示尾數。ieee 754標準 在此,主要介紹定點數轉化為單精度浮點型別 s最高符號位 bit31 e指數字 bit30 bit23 m尾數 bit22 bit0 示例1 0x0000 0...

定點數的表示

計算機中常用的資料表示格式有兩種,一是定點格式,二是浮點格式。所謂定點數和浮點數,是指在計算機中乙個數的小數點的位置是固定的還是浮動的 如果乙個數中小數點的位置是固定的,則為定點數 如果乙個數中小數點的位置是浮動的,則為浮點數。一般來說,定點格式可表示的數值的範圍有限,但要求的處理硬體比較簡單。而浮...

定點數的定標

通過設定小數點在資料的不同位置,就可以表示不同大小和精度的小數。以16位資料為例,q和s表示法的儲存格式為 qx x位用來表示小數部分,15 x 位用來表示整數。sx.y 其中x y 15,x位表示整數,y位表示小數。精度 1 2 x 以qx表示法為例說明 括號裡的內容為表示範圍的小數部分怎麼計算來...