2015-09-18 36 views
1

由於固件工程師,你如何比較以下操作(可能需要的資源量)在VHDL中爲FPGA實現以下操作/功能有多難?

  • 加法/減法
  • 乘法
  • 三角函數如餘弦的計算成本
  • 平方根

對於FLOATING點32位計算。

+2

如果是VHDL/FPGA問題,則需要硬件工程師,而不是固件工程師。 –

+1

對於算術運算(+ - * /),它將很大程度上取決於您是否考慮定點或浮點值。你能詳細說明嗎? – wap26

+0

浮點數 – Ehsan

回答

3

從硬件(而不是固件)的角度來看的答案:不幸的是,沒有簡單的回答你的問題。您列出的每個功能都有許多不同的硬件實現,通常在小 - 慢和大 - 快之間。此外,它取決於你的目標FPGA,因爲他們中的一些嵌入這些功能作爲硬宏,所以問題不是任何什麼他們花費更多,但做我有足夠的人在這個FPGA

作爲了部分答案,你可以藉此:用最簡單的,組合的實現,不使用任何硬宏,整數或定點N -Bits加法/減法成本O(N)N x N -Bits乘數成本O(NxN)。大致。

對於其他功能,這是非常難以回答,有太多的變量要考慮(固定/浮點,延遲,吞吐量,精度,範圍...)。假設你爲他們做出了類似的選擇,我會說:add < mul < div < sqrt < trig。但說實話,不要認爲這是理所當然的。例如,如果您正在處理浮點數,加法器可能比乘法器更接近甚至更大,因爲它需要mantissas對齊,即桶式移位器。

+1

定點除法器對於定點操作數也會花費'O(NxN)'。 – wap26

1

具有一點硬件設計知識的固件工程師可能會爲每個功能使用預製內核。賽靈思,Altera和其他公司提供可執行大部分功能的可參數化內核。內核的參數可能包括輸入大小和指定操作所需的週期數等等。每個核心所使用的資源將根據配置以及供核心創建的廠商和相應的FPGA系列(例如Altera Cyclone 5或Xilinx Artix 7)而顯着不同。核心所具有的延遲也需要成爲您決策的一個因素,更高速的FPGA系列可以以更快的時鐘速率運行,從而縮短運行時間。 獲得真實估計值的方法是安裝供應商工具(例如Xilinx的Vivado或Altera的Quartus)並使用這些工具生成所需的每種核心類型。您需要在您正在評估的系列中挑選精確的FPGA部分。選擇一個具有多個引腳的引腳,以避免FPGA上的I/O耗盡。然後針對您正在評估的每個核心進行綜合和實施設計。最簡單的設計將只包含您正在評估的核心,並將其輸入和輸出映射到FPGA I/O引腳。實現結果將爲您提供設計所需的資源數量以及設計可以運行的最大時鐘頻率。