回答
從硬件(而不是固件)的角度來看的答案:不幸的是,沒有簡單的回答你的問題。您列出的每個功能都有許多不同的硬件實現,通常在小 - 慢和大 - 快之間。此外,它取決於你的目標FPGA,因爲他們中的一些嵌入這些功能作爲硬宏,所以問題不是任何什麼他們花費更多,但做我有足夠的人在這個FPGA?
作爲了部分答案,你可以藉此:用最簡單的,組合的實現,不使用任何硬宏,整數或定點N
-Bits加法/減法成本O(N)
而N x N
-Bits乘數成本O(NxN)
。大致。
對於其他功能,這是非常難以回答,有太多的變量要考慮(固定/浮點,延遲,吞吐量,精度,範圍...)。假設你爲他們做出了類似的選擇,我會說:add < mul < div < sqrt < trig
。但說實話,不要認爲這是理所當然的。例如,如果您正在處理浮點數,加法器可能比乘法器更接近甚至更大,因爲它需要mantissas對齊,即桶式移位器。
定點除法器對於定點操作數也會花費'O(NxN)'。 – wap26
具有一點硬件設計知識的固件工程師可能會爲每個功能使用預製內核。賽靈思,Altera和其他公司提供可執行大部分功能的可參數化內核。內核的參數可能包括輸入大小和指定操作所需的週期數等等。每個核心所使用的資源將根據配置以及供核心創建的廠商和相應的FPGA系列(例如Altera Cyclone 5或Xilinx Artix 7)而顯着不同。核心所具有的延遲也需要成爲您決策的一個因素,更高速的FPGA系列可以以更快的時鐘速率運行,從而縮短運行時間。 獲得真實估計值的方法是安裝供應商工具(例如Xilinx的Vivado或Altera的Quartus)並使用這些工具生成所需的每種核心類型。您需要在您正在評估的系列中挑選精確的FPGA部分。選擇一個具有多個引腳的引腳,以避免FPGA上的I/O耗盡。然後針對您正在評估的每個核心進行綜合和實施設計。最簡單的設計將只包含您正在評估的核心,並將其輸入和輸出映射到FPGA I/O引腳。實現結果將爲您提供設計所需的資源數量以及設計可以運行的最大時鐘頻率。
- 1. 哪些現有語言功能最難實現?爲什麼?
- 2. VHDL和FPGA的
- 3. 以VHDL實現FSM
- 4. 難以製作memset功能?
- 5. 在App Purchase中實現有多難?
- 6. EggOn FPGA實現在Android中
- 7. 難以理解以下功能結構
- 8. beforeCreate功能FPGA實現的最佳實踐
- 9. 在VHDL中使用fpga處理中斷
- 10. 以VHDL實現累加器
- 11. Verilog中的DWT(FPGA實現)
- 12. 難以實現REGEXP_SUBSTR
- 13. 在xilinx(vhdl)中實現ROM
- 14. 使Clojure的defprotocol在現有功能下可以很好(多態)
- 15. 如何在操作欄中實現多個下拉菜單?
- 16. 如何在Angular2中實現以下操作?
- 17. 。實現多個操作數
- 18. 我如何在代碼中實現以下功能?
- 19. 如何在Realm中實現以下功能android
- 20. arm或mips核心在fpga中實現
- 21. 是否有vDSP功能來執行以下操作?
- 22. VHDL mux實現?
- 23. FIFO實現 - VHDL
- 24. 爲以下功能
- 25. 難以與.closest,父母,在jquery中的下一個功能
- 26. 實現時間標記器有多難?
- 27. Java 7鑽石操作員:爲什麼難以實施?
- 28. VHDL發現「0」操作的定義「=」
- 29. VHDL shift_left操作出現錯誤
- 30. 推動型ABS FPGA實現
如果是VHDL/FPGA問題,則需要硬件工程師,而不是固件工程師。 –
對於算術運算(+ - * /),它將很大程度上取決於您是否考慮定點或浮點值。你能詳細說明嗎? – wap26
浮點數 – Ehsan