|
例說FPGA連載6:FPGA開發所需的技能 特權同學,版權所有 配套例程和更多資料下載鏈接: http://pan.baidu.com/s/1c0nf6Qc
前面的文字已經做了很多鋪墊,相信讀者在初學FPGA時也一定早有耳聞。的確,FPGA是一門相對復雜的技術,先不說設計本身,單是器件的內部結構、繁瑣的開發流程、開發過程中需要接觸的各種EDA工具,有時都會把工程師們折騰得暈頭轉向。 相比于單一處理器的開發,今天的FPGA開發卻可能會涉及到嵌入式系統設計的方方面面。如圖1.7所示,很多時候,FPGA工程師需要具備的技能可能要比其它任何設計團隊多得多,如系統設計、功能分配、嵌入式處理器的實現、DSP算法的實現、HDL設計輸入、仿真、設計優化和高速電路板的布局布線以及特定信號接口的實現等。
圖1.7 FPGA技術是多種設計技能的交叉 至今在業內可能還有爭論,到底FPGA是屬于純粹軟件的范疇還是純粹硬件的范疇。從FPGA設計的方式和手段上看,和軟件有些相似;但從FPGA設計的思想和實現方面看,更多的趨向于硬件層面。因此,“軟硬兼施”這個詞來形容FPGA工程師的工作就再貼切不過了。我們說的“軟”,一方面的確是傳統意義上的軟件編程工作可能需要在FPGA中實現,另一方面的“軟”則指的是FPGA邏輯實現所需要的代碼輸入方式。 單純的軟和硬,還只是很低級的技能。無論是在FPGA中內嵌了處理器,還是FPGA外部需要接口的處理器,FPGA都不可避免的要和純軟件打交道,這種軟硬銜接部分的設計非常有講究,這也是FPGA工程師系統思維的一種要求。 雖然FPGA開發中需要涉及眾多的技能門類,對于一些規模不大的工程項目,可能FPGA工程師確實要承擔起“既當爹又當媽”的重任;但是對于中大規模的工程項目,一定會有一個分工明確的團隊協作完成。這樣的團隊,絕對是一個不折不扣的嵌入式系統精英大薈萃:板級硬件工程師進行FPGA的板級原理圖繪制、layout等工作;FPGA工程師做底層邏輯實現;嵌入式軟件工程師做軟件編程工作;也可能會有算法工程師的參與;當然還可能會有系統工程師統領全局(實際情況是,這個角色往往由項目經理兼任),對各個模塊(包括軟硬銜接部分)和接口進行劃分和界定。 |