介紹
浮點運算器(英文:floating point unit,簡稱FPU)是計算機系統的一部分,它是專門用來進行浮點數運算的(CPU中也叫ALU)。
現在很多高端處理器都有自己的FPU,用來做一些特殊的運算,雖然早期的單片機是沒有FPU的,但是經過十幾年的發展,現在的單片機都有屬于自己的FPU,雖然其功能不是特別強大,但是最夠其單芯片應用環境下的運算使用。
目前簡單的FPU的運算有加減乘除和開方。復雜些還可以計算超越函數,例如指數函數或者三角函數,盡管對大多數現在的處理器,這些功能都由軟件的函數庫完成。
接下來介紹一些FPU項目。
?
https://github.com/dawsonjon/fpu
?
https://opencores.org/projects/fpu100
這是GitHub上排名比較靠前的FPU開源項目,下面是他的介紹:
Verilog 中可合成的 IEEE 754 浮點庫。每個算術模塊接受兩個 32 位數據流 a 和 b,并輸出一個數據流 z。
碼流接口在下面手冊中有描述:
?
https://github.com/dawsonjon/fpu
提供的運算:
提供除法器、乘法器和加法器
提供 float_to_int 和 int_to_float
支持非正規數
區域優化
超過 100,000,000 個測試向量(每個函數)
二
?
https://opencores.org/projects/fpu
這是OpenCores上的開源項目:
描述
這是一個單精度浮點單元。它完全符合 IEEE 754 標準。它目前可以執行加/減、乘/除 操作,以及整數到浮點數和浮點數到整數的轉換。它支持四種舍入模式:舍入到最近的偶數、舍入到零、舍入到+INF和舍入到-INF。
現在還有一個單獨的 FP 比較單元。它位于 fpu/fcmp 目錄中。
兼容性
FPU 100% 符合 IEEE 754。已經跑了超過 1400 萬測試向量,使用 John R. Hauser 的 SoftFloat 庫生成,可在以下網址找到:http ://www.jhauser.us/arithmetic/SoftFloat.html 。
性能
單周期執行
4 階段流水線
三
?
https://github.com/danshanley/FPU
這也是符合IEEE 754的FPU項目,相關的測試腳本也很完善。
四
?
https://github.com/pulp-platform/fpu
這是專門為pulp-platform(基于RISC-V的SoC平臺)制作的FPU,是經過流片驗證的。
關于pulp-platform的介紹請查看《RISC-V項目介紹》及下方的官方網址:
?
https://pulp-platform.org//
五
?
https://github.com/cnrv/CNRV-FPU
?
https://github.com/jm2000/RISCV-FPU
這也是專門為RISC-V定制的FPU項目。
六
?
https://github.com/freecores/double_fpu
這是Xilinx器件實現的雙精度FPU,使用了FPGA內部的DSP資源。
七
?
https://github.com/GSejas/Dise-o-ASIC-FPGA-FPU
這也是Xilinx器件實現的FPU,既可以在Xilinx FPGA上使用,也可以作為ASIC設計一部分。
八
?
https://github.com/SeanZarzycki/openSPARC-FPU
這個從標題就能看出來,這是專門為openSPARC這一CPU設計的FPU。
openSPARC的項目地址:https://www.oracle.com/servers/technologies/opensparc-overview.html
也是開源的CPU。
九
?
https://github.com/YutaPic/FPU
這也是在Xilinx FPGA上驗證的FPU,下面是在KCU105開發板上運行的性能:
總結
今天只介紹了幾個FPU的項目,在SoC盛行的時代,有助于集成到你的系統里,同時一些運算的Verilog代碼也是值得參考的。運算和數字電路設計,這里推薦一個名為《Computer Arithmetic - Algorithms and Hardware Designs》的PDF,關于這些運算的理論知識都可以在這里學到。
審核編輯:劉清
-
處理器
+關注
關注
68文章
19178瀏覽量
229200 -
單片機
+關注
關注
6032文章
44525瀏覽量
633260 -
乘法器
+關注
關注
8文章
205瀏覽量
36984 -
FPU
+關注
關注
0文章
42瀏覽量
21300 -
浮點運算器
+關注
關注
0文章
4瀏覽量
5739
原文標題:優秀的 Verilog/FPGA開源項目介紹(十九)- 浮點運算器(FPU)
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論