介紹
浮點運算器(英文:floating point unit,簡稱FPU)是計算機系統(tǒng)的一部分,它是專門用來進行浮點數(shù)運算的(CPU中也叫ALU)。
現(xiàn)在很多高端處理器都有自己的FPU,用來做一些特殊的運算,雖然早期的單片機是沒有FPU的,但是經過十幾年的發(fā)展,現(xiàn)在的單片機都有屬于自己的FPU,雖然其功能不是特別強大,但是最夠其單芯片應用環(huán)境下的運算使用。
目前簡單的FPU的運算有加減乘除和開方。復雜些還可以計算超越函數(shù),例如指數(shù)函數(shù)或者三角函數(shù),盡管對大多數(shù)現(xiàn)在的處理器,這些功能都由軟件的函數(shù)庫完成。
接下來介紹一些FPU項目。
?
https://github.com/dawsonjon/fpu
?
https://opencores.org/projects/fpu100
這是GitHub上排名比較靠前的FPU開源項目,下面是他的介紹:
Verilog 中可合成的 IEEE 754 浮點庫。每個算術模塊接受兩個 32 位數(shù)據(jù)流 a 和 b,并輸出一個數(shù)據(jù)流 z。
碼流接口在下面手冊中有描述:
?
https://github.com/dawsonjon/fpu
提供的運算:
提供除法器、乘法器和加法器
提供 float_to_int 和 int_to_float
支持非正規(guī)數(shù)
區(qū)域優(yōu)化
超過 100,000,000 個測試向量(每個函數(shù))
二
?
https://opencores.org/projects/fpu
這是OpenCores上的開源項目:
描述
這是一個單精度浮點單元。它完全符合 IEEE 754 標準。它目前可以執(zhí)行加/減、乘/除 操作,以及整數(shù)到浮點數(shù)和浮點數(shù)到整數(shù)的轉換。它支持四種舍入模式:舍入到最近的偶數(shù)、舍入到零、舍入到+INF和舍入到-INF。
現(xiàn)在還有一個單獨的 FP 比較單元。它位于 fpu/fcmp 目錄中。
兼容性
FPU 100% 符合 IEEE 754。已經跑了超過 1400 萬測試向量,使用 John R. Hauser 的 SoftFloat 庫生成,可在以下網址找到:http ://www.jhauser.us/arithmetic/SoftFloat.html 。
性能
單周期執(zhí)行
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器件實現(xiàn)的雙精度FPU,使用了FPGA內部的DSP資源。
七
?
https://github.com/GSejas/Dise-o-ASIC-FPGA-FPU
這也是Xilinx器件實現(xiàn)的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開發(fā)板上運行的性能:
總結
今天只介紹了幾個FPU的項目,在SoC盛行的時代,有助于集成到你的系統(tǒng)里,同時一些運算的Verilog代碼也是值得參考的。運算和數(shù)字電路設計,這里推薦一個名為《Computer Arithmetic - Algorithms and Hardware Designs》的PDF,關于這些運算的理論知識都可以在這里學到。
審核編輯:劉清
-
處理器
+關注
關注
68文章
19824瀏覽量
233705 -
單片機
+關注
關注
6064文章
44932瀏覽量
647495 -
乘法器
+關注
關注
9文章
211瀏覽量
37846 -
FPU
+關注
關注
0文章
45瀏覽量
21711 -
浮點運算器
+關注
關注
0文章
4瀏覽量
5807
原文標題:優(yōu)秀的 Verilog/FPGA開源項目介紹(十九)- 浮點運算器(FPU)
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
基于FPGA的實時互相關運算器
求一種在FPGA上實現(xiàn)單精度浮點加法運算的方法
FPU settings浮點運算單元設置
運算器,運算器的作用和原理是什么?
基于FPGA高精度浮點運算器的FFT設計與仿真

利用FPGA技術能更方便靈活設計出浮點運算器

浮點運算單元FPU能給電機控制帶來什么?

stm32F407 打開 FPU(浮點運算處理器)

如何提高單片機的運算效率之FPU

評論