基于C的設(shè)計方式簡化FPGA/協(xié)處理器混合平臺軟硬件協(xié)同設(shè)計在最近幾年中日益流行在高性能嵌入式應(yīng)用中使用現(xiàn)場可編程門陣列(FPGA)。FPGA已經(jīng)被證明有能力處理各種不同的任務(wù),從相對簡單的控制功能到更加復雜的算法操作。雖然FPGA在某些功能上比設(shè)計專用ASIC硬件具有時間和成本上的優(yōu)勢,但在面向軟件應(yīng)用中FPGA比傳統(tǒng)處理器和DSP的優(yōu)勢并沒有體現(xiàn)出來。這很大程度上是由于過去割裂了硬件和軟件開發(fā)工具和方法之間的關(guān)系。然而最近F
基于C的設(shè)計方式簡化FPGA/協(xié)處理器混合平臺軟硬件協(xié)同設(shè)計 在最近幾年中日益流行在高性能嵌入式應(yīng)用中使用現(xiàn)場可編程門陣列(FPGA)。FPGA已經(jīng)被證明有能力處理各種不同的任務(wù),從相對簡單的控制功能到更加復雜的算法操作。雖然FPGA在某些功能上比設(shè)計專用ASIC硬件具有時間和成本上的優(yōu)勢,但在面向軟件應(yīng)用中FPGA比傳統(tǒng)處理器和
DSP的優(yōu)勢并沒有體現(xiàn)出來。這很大程度上是由于過去割裂了硬件和軟件開發(fā)工具和方法之間的關(guān)系。
然而最近FPGA在面向軟件設(shè)計工具方面的發(fā)展,及器件容量的持續(xù)增加為軟件開發(fā)者創(chuàng)造了新的環(huán)境。在這種環(huán)境下,FPGA可視為軟件編譯器的一個可能的目標(連同傳統(tǒng)和非傳統(tǒng)處理器架構(gòu))。現(xiàn)在,工具能夠幫助軟件工程師利用FPGA平臺,同時在結(jié)合了傳統(tǒng)處理器(或處理器核)和FPGA的單一目標平臺上,幫助這些開發(fā)者利用其所具有的高度算法并行性。
基于FPGA的計算平臺,尤其是那些具有嵌入式“軟”處理器的平臺,有能力實現(xiàn)非常高性能的應(yīng)用,而沒有建立專用定點功能硬件的前期風險。通過使用最新一代的硬件/軟件協(xié)同設(shè)計工具,有可能使用
多種面向軟件(圖形和基于語言)設(shè)計方式作為FPGA設(shè)計過程的一部分。
使用基于FPGA的參考平臺
FPGA中使用嵌入式處理器的優(yōu)勢之一是能夠在單個可編程器件上建立硬件/軟件開發(fā)對象——等效硬件參考平臺,這常常被忽視。即使終端產(chǎn)品不包括嵌入式處理器(將替換外部處理器或其他硬件子系統(tǒng)的接口),快速下載和測試新的軟件/硬件配置(試驗可改變軟件/硬件劃分方案)的能力也能大大地提高設(shè)計生產(chǎn)率。通過使用嵌入式處理器作為測試生成器,單獨的硬件部件(或硬件編譯的軟件過程)也可以快速地驗證功能。
這種快速原型平臺的典型例子是Altera公司提供的Nios開發(fā)包。Cyclone或Stratix FPGA中都包括這個工具包,除了高性能的Nios 32位軟核處理器核之外還包括多種硬件和軟件外設(shè)接口。在設(shè)計過程中可以選擇這種核,使用Altera SOPC Builder工具配置并下載到相應(yīng)的FPGA中。板上本身的連接容許直接和各種不同的外部部件連接,從串口(
RS232和
USB)到
Flash存儲器和網(wǎng)絡(luò)接口。
在開發(fā)過程中使用這種板并結(jié)合Altera工具,容許嵌入式系統(tǒng)設(shè)計者用應(yīng)用原型所需的部件(包括嵌入式處理器)組成目標平臺。然后,軟件開發(fā)者能夠關(guān)注應(yīng)用本身,分析和試驗不同的硬件/軟件劃分方案。
權(quán)衡硬件和軟件資源
在一些高性能嵌入式應(yīng)用中,從產(chǎn)品構(gòu)建費用和開發(fā)成本考慮最佳的資源使用方案是混合處理器方案。在這種方案中應(yīng)用非關(guān)鍵性能的部件位于主處理器(它們可能是或不是嵌入式處理器核),而大計算量的部件是一個或多個DSP芯片、
其它標準硬件或?qū)S肁SIC或FPGA硬件。這種的解決方案通常需要硬件設(shè)計方式和工具的知識,但是在性能和成本方面上具有最佳的收益。