論文之嵌入式系統設計方法的演化從微控制器到單片系統及發展策略
論文之嵌入式系統設計方法的演化從微控制器到單片系統及發展策略
摘要:在介紹嵌入式系統設計方法變化背景的基礎上,綜述嵌入式系統設計方法的不同層次,從單片 機應用到單片系統設計的演化,並提出了發展戰略。
關鍵詞:嵌入式系統 設計 單片系統(SOC) 硬體描述語言(HDL) IP核心
一、嵌入式系統設計方法變化的背景
嵌入式系統設計方法的演化總的來說是因為應用需求的牽引和IT技術的推動。
1.隨著微電子技術的不斷創新和發展,大規模積體電路的整合度和工藝水平不斷提高。矽材料與人類智慧的結合,生產出大批次的低成本、高可靠性和高精度的微電子結構模組,推動了一個全新的技術領域和產業的發展。在此基礎上發展起來的器件可程式設計思想和微處理(器)技術可以用軟體來改變和實現硬體的功能。微處理器和各種可程式設計大規模整合專用電路、半定製器件的大量應用,開創了一個嶄新的應用世界,以至廣泛影響著並在逐步改變著人類的生產、生活和學習等社會活動。
2.計算機硬體平臺效能的大幅度提高,使很多複雜演算法和方便使用的介面得以實現,大大提高了工作效率,給複雜嵌入式系統輔助設計提供了物理基礎。
3.高效能的EDA綜合開發工具(平臺)得到長足發展,而且其自動化和智慧化程度不斷提高,為複雜的嵌入式系統設計提供了不同用途和不同級別集編輯、佈局、佈線、編譯、綜合、模擬、測試、驗證和器件程式設計等一體化的易於學習和方便使用的開發整合環境。
4.硬體描述語言HDL(Hardware Description Language)的發展為複雜電子系統設計提供了建立各種硬體模型的工作媒介。它的描述能力和抽象能力強,給硬體電路,特別是半定製大規模積體電路設計帶來了重大的變革。目前,用得較多的有已成為IEEE為 STD1076標準的VHDL、IEEE STD 1364標準的Verilog HDL和Altera公司企業標準的AHDL等。
由於HDL的發展和標準化,世界上出現了一批利用HDL進行各種積體電路功能模組專業設計的公司。其任務是按常用或專用功能,用HDL來描述積體電路的功能和結構,並經過不同級別的驗證形成不同級別的IP核心模組,供晶片設計人員裝配或整合選用。
IP(Intellectual Property)核心模組是一種預先設計好的甚至已經過驗證的具有某種確定功能的積體電路、器件或部件。它有幾種不同形式。IP核心模組有行為(behavior)、結構(structure)和物理(physical)3級不同程度的設計,對應有主要描述功能行為的“軟IP核心(soft IP core)”、完成結構描述的“固IP核心(firm IP core)”和基於物理描述並經過工藝驗證的“硬IP核心(hard IP core)”3個層次。這相當於積體電路(器件或部件)的毛坯、半成品和成品的設計技術。
軟IP核心通常是用某種HDL文字提交使用者,它已經過行為級設計最佳化和功能驗證,但其中不含有任何具體的物理資訊。據此,使用者可以綜合出正確的閘電路級網表,並可以進行後續結構設計,具有最大的靈活性,可以很容易地藉助於EDA綜合工具與其他外部邏輯電路結合成一體,根據各種不同的半導體工藝,設計成具有不同效能的器件。可以商品化的軟IP核心一般電路結構總門數都在5000門以上。但是,如果後續設計不當,有可能導致整個結果失敗。軟IP核心又稱作虛擬器件。
硬IP核心是基於某種半導體工藝的物理設計,已有固定的拓撲佈局和具體工藝,並已經過工藝驗證,具有可保證的效能。其提供給使用者的形式是電路物理結構掩模版圖和全套工藝檔案,是可以拿來就用的全套技術。
固IP核心的設計深度則是介於軟IP核心和硬IP核心之間,除了完成硬IP核心所有的設計外,還完成了閘電路級綜合和時序模擬等設計環節。一般以閘電路級網表形式提交使用者使用。
TI,Philips和Atmel等廠商就是透過Intel授權,用其MCS51的IP核心模組結合自己的特長開發出有個性的與Intel MCS51相容的微控制器。
常用的IP核心模組有各種不同的CPU(32/64位CISC/RISC結構的CPU或8/16位微控制器/微控制器,如8051等)、32/64位DSP(如320C30)、DRAM、SRAM、EEPROM、Flashmemory、A/D、D/A、MPEG/JPEG、USB、PCI、標準介面、網路單元、編譯器、編碼/解碼器和模擬器件模組等。豐富的IP核心模組庫為快速地設計專用積體電路和單片系統以及儘快佔領市場提供
了基本保證。
5.軟體技術的進步,特別是嵌入式實時作業系統EOS(Embedded Operation System)的推出,為開發複雜嵌入式系統應用軟體提供了底層支援和高效率開發平臺。EOS是一種功能強大、應用廣泛的實時多工系統軟體。它一般都具有作業系統所具有的各種系統資源管理功能,使用者可以透過應用程式介面API呼叫函式形式來實現各種資源管理。使用者程式可以在EOS的基礎上開發並執行。它與通用系統機中的OS相比,主要有系統核心短小精悍、開銷小、實時性強和可靠性高等特點。完善的EOS還提供各種裝置的驅動程式。為了適應網路應用和Internet應用。還可以提供TCP/IP協議支援。目前流行的EOS有3Com公司的Palm OS、Microsoft公司的Windows CE和Windows NT Embedded4.0、日本東京大學的Tron和各種開放原始碼的嵌入式Linux以及國內開發成功的凱思集團的Hopen OS和浙江大學的HBOS。
二、嵌入式系統設計方法的變化
過去擅長於軟體設計的程式設計人員一般對硬體電路設計“敬而遠之”,硬體設計和軟體設計被認為是性質完全不同的技術。
隨著電子資訊科技的發展,電子工程出身的設計人員,往往還逐步涉足軟體程式設計。其主要形式是透過微控制器(國內習慣稱作微控制器)的應用,學會相應的組合語言程式設計。在設計規模更大的集散控制系統時,必然要用到已普及的PC機,以其為上端機,從而進一步學習使用Quick BASIC,C,C++,VC和VB等高階語言程式設計作系統程式,設計系統介面,透過與微控制器控制的前端機進行多機通訊構成集中分佈控制系統。
軟體程式設計出身的設計人員則很少有興趣去學習應用電路設計。但是,隨著計算機技術的飛速發展,特別是硬體描述語言HDL的發明,系統硬體設計方法發生了變化,數字系統的硬體組成及其行為完全可以用HDL來描述和模擬。在這種情況下,設計硬體電路不再是硬體設計工程師的專利,擅長軟體程式設計的設計人員可以藉助於HDL工具來描述硬體電路的行為、功能、結構、資料流、訊號連線關係和定時關係,設計出滿足各種要求的硬體系統。
EDA工具允許有兩種設計輸入工具,分別適應硬體電路設計人員和軟體程式設計人員兩種不同背景的需要。讓具有硬體背景的設計人員用已習慣的原理圖輸入方式,而讓具有軟體背景的設計人員用硬體描述語言輸入方式。由於用HDL描述進行輸入,因而與系統行為描述更接近,且更便於綜合、時域傳遞和修改,還能建立獨立於工藝的設計檔案,所以,擅長軟體程式設計的人一旦掌握了HDL和一些必要的硬體知識,往往可以比習慣於傳統設計的工程師設計出更好的硬體電路和系統。所以,習慣於傳統設計的工程師應該學會用HDL來描述和程式設計。
三、嵌入式系統設計的3個層次
嵌入式系統設計有3個不同層次。
1.第1層次:以PCB CAD軟體和ICE為主要工具的設計方法。
這是過去直至現在我國微控制器應用系統設計人員一直沿用的方法,其步驟是先抽象後具體。
抽象設計主要是根據嵌入式應用系統要實現的功能要求,對系統功能細化,分成若干功能模組,畫出系統功能框圖,再對功能模組進行硬體和軟體功能實現的分配。
具體設計包括硬體設計和軟體設計。硬體設計主要是根據效能引數要求對各功能模組所需要使用的元器件進行選擇和組合,其選擇的基本原則就是市場上可以購買到的價效比最高的通用元器件。必要時,須分別對各個沒有把握的部分進行搭試、功能檢驗和效能測試,從模組到系統找到相對最佳化的方案,畫出電路原理圖。硬體設計的關鍵一步就是利用印製板(PCB)計算機輔助設計(CAD)軟體對系統的`元器件進行佈局和佈線,接著是印製板加工、裝配和硬體除錯。
工作量最大的部分是軟體設計。軟體設計貫穿整個系統的設計過程,主要包括任務分析、資源分配、模組劃分、流程設計和細化、編碼除錯等。軟體設計的工作量主要集中在程式除錯,所以軟體除錯工具就是關鍵。最常用和最有效的工具是線上模擬器(ICE)。
2.第2層次:以EDA工具軟體和EOS為開發平臺的設計方法。
隨著微電子工藝技術的發展,各種通用的可程式設計半定製邏輯器件應運而生。在硬體設計時,設計師可以利
用這些半定製器件,逐步把原先要透過印製板線路互連的若干標準邏輯器件自制成專用積體電路(ASIC)使用,這樣,就把印製板佈局和佈線的複雜性轉換成半定製器件內配置的複雜性。然而,半定製器件的設計並不需要設計人員有半導體工藝和片內積體電路佈局和佈線的知識和經驗。隨著半定製器件的規模越來越大,可整合的器件越來越多,使印製板上互連器件的線路、裝配和除錯費用越來越少,不僅大大減少了印製板的面積和接外掛的數量,降低了系統綜合成本,增加了可程式設計應用的靈活性,更重要的是降低了系統功耗,提高了系統工作速度,大大提高了系統的可靠性和安全性。
這樣,硬體設計人員從過去選擇和使用標準通用積體電路器件,逐步轉向自己設計和製作部分專用的積體電路器件,而這些技術是由各種EDA工具軟體提供支援的。
半定製邏輯器件經歷了可程式設計邏輯陣列PLA、可程式設計陣列邏輯PAL、通用陣列邏輯GAL、複雜可程式設計邏輯器件CPLD和現場可程式設計門陣列FPGA的發展過程。其趨勢是整合度和速度不斷提高,功能不斷增強,結構趨於更合理,使用變得更靈活和方便。
設計人員可以利用各種EDA工具和標準的CPLD和FPGA等,設計和自制使用者專用的大規模積體電路。然後再透過自下而上的設計方法,把用半定製器件設計自制的積體電路、可程式設計外圍器件、所選擇的ASIC與嵌入式微處理器或微控制器在印製板上佈局、佈線構成系統。
3.第3層次:以IP核心庫為設計基礎,用軟硬體協同設計技術的設計方法。
20世紀90年代後,進一步開始了從“積體電路”級設計不斷轉向“整合系統”級設計。目前已進入單片系統SOC(System on a chip)設計階段,並開始進入實用階段。這種設計方法不是把系統所需要用到的所有積體電路簡單地二次整合到1個晶片上,如果這樣實現單片系統,是不可能達到單片系統所要求的高密度、高速度、高效能、小體積、低電壓、低功耗等指標的,特別是低功耗要求。單片系統設計要從整個系統性能要求出發,把微處理器、模型演算法、晶片結構、外圍器件各層次電路直至器件的設計緊密結合起來,並透過建立在全新理念上的系統軟體和硬體的協同設計,在單個晶片上完成整個系統的功能。有時也可能把系統做在幾個晶片上。因為,實際上並不是所有的系統都能在一個晶片上實現的;還可能因為實現某種單片系統的工藝成本太高,以至於失去商業價值。目前,進入實用的單片系統還屬簡單的單片系統,如智慧IC卡等。但幾個著名的半導體廠商正在緊鑼密鼓地研製和開發像單片PC這樣的複雜單片系統。
單片系統的設計如果從零開始,這既不現實也無必要。因為除了設計不成熟、未經過時間考驗,其系統性能和質量得不到保證外,還會因為設計週期太長而失去商業價值。
為了加快單片系統設計週期和提高系統的可靠性,目前最有效的一個途徑就是透過授權,使用成熟最佳化的IP核心模組來進行設計整合和二次開發,利用膠粘邏輯技術GLT(Glue Logic Technology),把這些IP核心模組嵌入到SOC中。IP核心模組是單片系統設計的基礎,究竟購買哪一級IP核心模組,要根據現有基礎、時間、資金和其他條件權衡確定。購買硬IP核心模組風險最小,但付出最大,這是必然的。但總的來說,透過購買IP核心模組不僅可以降低開發風險,還能節省開發費用,因為一般購買IP核心模組的費用要低於自己單獨設計和驗證的費用。當然,並不是所需要的IP核心模組都可以從市場上買得到。為了壟斷市場,有一些公司開發出來的關鍵IP核心模組(至少暫時)是不願意授權轉讓使用的。像這樣的IP核心模組就不得不自己組織力量來開發。
這3個層次各有各的應用範圍。從應用開發角度看,在相當長的一段時間內,都是採用前2種方法。第3層次設計方法對一般具體應用人員來說,只能用來設計簡單的單片系統。而複雜的單片系統則是某些大的半導體廠商才能設計和實現的,並且用這種方法實現的單片系統,只可能是那些廣泛使用、具有一定規模的應用系統才值得投入研製。還有些應用系統,因為技術問題或商業價值問題並不適宜用單片實現。當它們以商品形式推出相應單片系統後,應用人員只要會選用即可。所以,3個層次的設計方法會並存,並不會簡單地用後者取代前者。 初級應用設計人員會以第1種方法為主;富有經驗的設計人員會以第2種方法為主;很專業的設計人員會用第3種方法進行簡單單片系統的設計和應用。但所有的設計人員都可以應用半導體大廠商推出的用第3種方法設計的專用單片系統。
結束語
目前,在我國3個層次的設計分別呈“面”、“線”、“點”的狀態。習慣於第1層次設計方法的電子資訊系統設計人員需要逐步向第2層次過渡和發展;第2層次設計方法要由“線”逐步發展成“面”;第3層次設計方法需要國家有關部門根據IT發展戰略和規劃,組織各方面力量攻關、協調發展。第3層次設計方法要由“點”逐步發展成“線”。