在一個(gè)領域中,如果唯一不變的是變化,那(nà)麽不需要對電(diàn)子技(jì)術(shù) 和(hé)設計(jì)方法的發展變化做(zuò)多(duō)少(shǎo)回顧,就能見證到變化是如何使設計(jì)工程師(shī)能夠創建出下一代創新産品。微處理(lǐ)器(qì)得(de)到大(dà)規模應用後,價廉物美的新技(jì)術(shù)為(wèi)基于軟件的革新性電(diàn)子産品設計(jì)打開(kāi)了大(dà)門(mén),這就是一個(gè)很(hěn)好的例子。簡言之,把設計(jì)的主要元素——在這兒是控制(zhì)“智能”——轉入到軟領域後,設計(jì)工程師(shī)就可(kě)以在更短(duǎn)時(shí)間(jiān)內(nèi)創建出更好、更智能、更廉價的産品。
這個(gè)變化意味着嵌入式軟件開(kāi)發人(rén)員是當今定義電(diàn)子産品功能和(hé)特性的主要推動者,并且最終将把硬件生(shēng)産出來(lái)。該方法的成功因素在于減少(shǎo)硬件複雜度和(hé)把設計(jì)的控制(zhì)元素轉變到可(kě)編程領域帶來(lái)的開(kāi)放靈活性。
今天,大(dà)容量、低(dī)成本可(kě)編程器(qì)件的到來(lái)給電(diàn)子産品設計(jì)的發展帶來(lái)了同樣的希望,因為(wèi)在軟領域定義系統硬件本身已經成為(wèi)可(kě)能。諸如大(dà)容量這樣的大(dà)規模器(qì)件對滿足這一需求十分理(lǐ)想。這些(xiē)一般可(kě)用于構建系統外設邏輯功能塊的大(dà)件部分,包括總線接口、I/O 塊、甚至內(nèi)存。把大(dà)量邏輯引入領域對硬件開(kāi)發具有(yǒu)深遠影(yǐng)響,并為(wèi)‘軟’設計(jì)的新時(shí)代打開(kāi)了一扇大(dà)門(mén),這為(wèi)設計(jì)提供了前所未有(yǒu)的靈活性,同時(shí)具有(yǒu)減少(shǎo)闆級尺寸和(hé)複雜性的無窮潛力。
雖然它具有(yǒu)對電(diàn)子産品開(kāi)發過程起到革命性作(zuò)用的潛力,但(dàn)多(duō)數(shù)嵌入式軟件開(kāi)發人(rén)員仍像以前一樣工作(zuò)——在設計(jì)流程的開(kāi)始階段選擇分立的硬件處理(lǐ)器(qì)、創建物理(lǐ)平台,然後寫軟件使用該平台。人(rén)們在嵌入式系統開(kāi)發的“軟”硬件領域缺乏探索,主要原因在于缺少(shǎo)讓 C 程序員在可(kě)編程硬件級發揮技(jì)巧的工具。确實,當前多(duō)數(shù)設計(jì)流主要都來(lái)自芯片設計(jì)領域,需要非常專業的技(jì)巧。
把軟設計(jì)提升一個(gè)水(shuǐ)平
要超越 FPGA 膠合邏輯應用需要更廣闊的視(shì)野,包括充分利用可(kě)編程器(qì)件,把盡可(kě)能多(duō)的硬件引入到軟領域中。這包括引入處理(lǐ)器(qì)功能本身,今天,FPGA 內(nèi)的軟處理(lǐ)器(qì)正越來(lái)越多(duō)地轉變成嵌入式平台。從根本上(shàng)說,改用帶 FPGA 的軟處理(lǐ)器(qì)會(huì)帶來(lái)結構靈活性、闆卡尺寸更小(xiǎo)、更簡單的優點。但(dàn)深層次的應用會(huì)帶來(lái)更吸引人(rén)的優點。
當利用了 FPGA 的可(kě)編程特性獲得(de)處理(lǐ)器(qì)頂層的抽象層時(shí),就為(wèi)嵌入式開(kāi)發人(rén)員打開(kāi)了無限可(kě)能,——不僅在軟件中實現抽象級設計(jì),而且在硬件中也實現了。試想這樣一個(gè)系統:處理(lǐ)器(qì)通(tōng)過可(kě)配置硬件(本質上(shàng)是一個(gè)硬件包裹)與其內(nèi)存和(hé)外設連接——這就抽象了處理(lǐ)器(qì)的接口。簡單地對 FPGA 重新編程就改變了硬件包裹,系統設計(jì)師(shī)可(kě)以輕易地改變處理(lǐ)器(qì)內(nèi)核,甚至在硬的或軟的處理(lǐ)器(qì)之間(jiān)轉換,無需修改其他系統硬件。從系統的角度來(lái)看,所有(yǒu)處理(lǐ)器(qì)都是相似的,這就簡化了硬件設計(jì)流程。當然,把這延伸到應用軟件領域也需要可(kě)以在處理(lǐ)器(qì)之間(jiān)提供 C 級别兼容性的編譯器(qì)。
這種系統的優點是不需要“事先”對處理(lǐ)器(qì)做(zuò)出選擇。系統可(kě)能是使用某種處理(lǐ)器(qì)開(kāi)發的,但(dàn)是開(kāi)發階段發現需要更高(gāo)的性能,又采用了更快的器(qì)件。由于包裹層的原因,處理(lǐ)器(qì)可(kě)以是軟的、硬的、甚至是 FPGA 內(nèi)部的硬件處理(lǐ)器(qì)內(nèi)核,而不會(huì)影(yǐng)響周圍的硬件,因為(wèi)轉換層僅僅創建出連接外設的标準接口。實際上(shàng)外設器(qì)件本身的連接可(kě)以相同方式抽象。在這個(gè)方案中,FPGA 為(wèi)嵌入式系統的所有(yǒu)部件提供通(tōng)用的連接性,而有(yǒu)效地成為(wèi)系統互連結構。換言之,它有(yǒu)效地成為(wèi)标準接口“骨幹”,硬件和(hé)軟件都可(kě)以輕松與處理(lǐ)器(qì)和(hé)外設交流。
最後,在處理(lǐ)器(qì)之上(shàng)引入透明(míng)的包裹層會(huì)創建出基于 FPGA 的開(kāi)發環境,提供真正的處理(lǐ)器(qì)獨立性。軟件和(hé)硬件開(kāi)發速度都提高(gāo)了,處理(lǐ)器(qì)選擇可(kě)以放到設計(jì)流程的後期進行(xíng),有(yǒu)效的軟件 / 硬件協同設計(jì)成為(wèi)可(kě)能。
軟件和(hé)硬件間(jiān)進行(xíng)轉換
在可(kě)配置硬件中創建處理(lǐ)器(qì)和(hé)外設包裹層的想法的擴展就是自動生(shēng)成應用專用的系統硬件,在硬件中執行(xíng)軟件算(suàn)法——一種‘自己的’硬件協處理(lǐ)器(qì)。
從 C 代碼中直接生(shēng)成硬件的想法并不新鮮,有(yǒu)幾個(gè)系統已經實現,到現在為(wèi)止的想法是希望通(tōng)過 C 類語言創建完整的系統硬件。在本質上(shàng),這與使用 HDL(如 VHDL 或 Verilog)設計(jì) FPGA 沒有(yǒu)什麽不同,需要軟件開(kāi)發人(rén)員學習和(hé)采用新的設計(jì)方法。真正對嵌入式開(kāi)發人(rén)員有(yǒu)用的是使流程透明(míng)。設計(jì)工具必須要能夠處理(lǐ)标準 ANSI C 代碼的輸入,把程序員選擇的功能轉換為(wèi)硬件。不僅如此,系統必須要能夠生(shēng)成使用生(shēng)成硬件所需的所有(yǒu)代碼。嵌入式程序員以這種方式把專用算(suàn)法從處理(lǐ)器(qì)卸載到專用硬件上(shàng),無需了解底層硬件的任何設計(jì)細節。
利用 FPGA 的全部潛力
很(hěn)明(míng)顯,從工具角度來(lái)說充分利用可(kě)編程器(qì)件(如 FPGA)帶來(lái)的機會(huì)需要一個(gè)提高(gāo)開(kāi)發流程抽象級别的系統,這樣設計(jì)的核心元素可(kě)通(tōng)過類似的設計(jì)技(jì)術(shù)和(hé)流程輕松改變。這樣的系統必須能夠統一整個(gè)電(diàn)子産品開(kāi)發過程,在單一、一緻的環境中将硬件、軟件和(hé)可(kě)編程硬件開(kāi)發綜合在一起。
Altium Designer 引入簡單、高(gāo)層次的處理(lǐ)器(qì)實現這一目标,滿足軟件、FPGA 和(hé) PCB 要求,一體(tǐ)化的産品開(kāi)發環境在單一應用中把所有(yǒu)需要的流程綜合在一起(圖 1)。硬件和(hé)軟件開(kāi)發統一在平台級 ,使快速軟件 / 硬件協同設計(jì)成為(wèi)可(kě)能。通(tōng)過基于 FPGA 的處理(lǐ)器(qì)和(hé)處理(lǐ)器(qì)包裹內(nèi)核,設計(jì)師(shī)可(kě)以定位于 Altium Designer 或任意受支持的第三方處理(lǐ)器(qì),同時(shí)保留設計(jì)的全部功能,包括與 FPGA 外設的方便連接。Altium Designer 基于 Viper 的編譯器(qì)保證在系統支持的所有(yǒu)處理(lǐ)器(qì)結構間(jiān) C 級别代碼的兼容性。
上(shàng)一條:基于FPGA的嵌入式系統設計(jì)
下一條:沒有(yǒu)啦! |
返回列表 |