Versal FPGA中最新的DSP原語DSP58,它在最新的DSP48版本上已經有了許多改進,主要是從27x18有符號乘法器和48位后加法器增加到了27x24和58位。但除此之外,DSP58還有兩種額外的操作模式,分別稱為DSPCPLX和DSPFP32。本文將重點介紹其中的DSPFP32,它是一個硬化的浮點加法器和乘法器。
DSPFP32包括一個單精度浮點加法器和乘法器。它們可以獨立使用,也可以組合為乘累加操作。
下圖展示了DSPFP32的內部架構:
DSPFP32在某種程度上類似于DSP58,真正的區別,除了使用單精度浮點數而不是定點數之外,還有兩個輸出FPA和FPM,而不僅僅是后加法器P端口,以及沒有預加法器。這個圖展示了FP32加法器和乘法器獨立使用,顏色高亮表示實現805MHz最大可能速度所需的最小流水線數量。你基本上在每個DSP58中得到一個延遲為2的FP32加法器和一個延遲為3的乘法器。加法器的兩個輸入操作數的符號可以選擇性地反轉,這些操作數有多種選擇,包括ZERO、C、D和PCIN輸入,以及FPA輸出本身,可以用來構建累加器。
PCIN/PCOUT級聯鏈允許你級聯多個DSPFP32加法器,構建超過兩項的求和。如果你使用fabric routing將FPA輸出外部連接到B輸入,你可以在5個時鐘周期的延遲下計算類似FPM=A*(C+D)的東西。 第二張圖顯示了FP32乘法器和加法器內部連接為MAC,因此可以在4個時鐘周期的延遲下計算FPA=C+AB或FPA=FPA+AB。C和FPOPMODE輸入路徑中的可選額外流水線寄存器可用于補償乘法器路徑的額外延遲,以便整個MAC對所有數據輸入的總延遲為4個時鐘周期。
雖然這些圖中沒有顯示,但FPA和FPM都可以路由到PCOUT端口,因此使用P級聯輸出從相鄰的DSP借用一個乘法器,你也可以在四個時鐘周期的延遲內計算FPA=C+A1B1+A2B2,因此可以用4個DSPFP32和沒有其他fabric資源構建一個完整的復數乘法器加一個復數加法器。
在早期的FPGA系列中,浮點設計總是可能的,Xilinx多年來一直提供基于fabric的軟浮點IP,但硬化的DSPFP32現在提供了使用單個DSP58原語和幾乎沒有fabric資源的選項,具有更低的延遲(3-4個時鐘周期而不是8-11個),更低的功耗和高達805MHz的時鐘速度,在最快的兩個速度等級中。
審核編輯:劉清
-
FPGA
+關注
關注
1630文章
21796瀏覽量
606012 -
寄存器
+關注
關注
31文章
5363瀏覽量
121166 -
加法器
+關注
關注
6文章
183瀏覽量
30233 -
FPM
+關注
關注
0文章
5瀏覽量
1315
原文標題:Versal FPGA中的浮點計算單元
文章出處:【微信號:傅里葉的貓,微信公眾號:傅里葉的貓】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論