一、嵌入式系統設計方法變化的背景
嵌入式系統設計方法的演化總的來說是因為應用需求的牽引和IT技術的推動。
隨著微電子技術的不斷創新和發展,大規模集成電路的集成度和工藝水平不斷提高。硅材料與人類智慧的結合,生產出大批量的低成本、高可靠性和高精度的微電子結構模塊,推動了一個全新的技術領域和產業的發展。在此基礎上發展起來的器件可編程思想和微處理(器)技術可以用軟件來改變和實現硬件的功能。微處理器和各種可編程大規模集成專用電路、半定制器件的大量應用,開創了一個嶄新的應用世界,以至廣泛影響著并在逐步改變著人類的生產、生活和學習等社會活動。
計算機硬件平臺性能的大幅度提高,使很多復雜算法和方便使用的界面得以實現,大大提高了工作效率,給復雜嵌入式系統輔助設計提供了物理基礎。
高性能的EDA綜合開發工具(平臺)得到長足發展,而且其自動化和智能化程度不斷提高,為復雜的嵌入式系統設計提供了不同用途和不同級別集編輯、布局、布線、編譯、綜合、模擬、測試、驗證和器件編程等一體化的易于學習和方便使用的開發集成環境。
硬件描述語言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內核模塊庫為快速地設計專用集成電路和單片系統以及盡快占領市場提供了基本保證。
軟件技術的進步,特別是嵌入式實時操作系統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 o-n 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層次設計方法要由“點”逐步發展成“線”。
評論
查看更多