片上系統(tǒng)(SOC)設計流程及其集成開發(fā)環(huán)境
1 片上系統(tǒng)(SOC)引入導致嵌入式系統(tǒng)的設計方法變革
就目前現(xiàn)狀而言,若以嵌入式系統(tǒng)所采用的核心器件——處理器進行劃分,嵌入式系統(tǒng)可以分為三種類型:基于微控制器(MCU)的嵌入式系統(tǒng)、基于信號處理器 (DSP)的嵌入式系統(tǒng)、基于微處理器(MPU)的嵌入式系統(tǒng)。其中,基于MCU的嵌入式系統(tǒng)是一種低端嵌入式系統(tǒng),這種系統(tǒng)共同的特點是系統(tǒng)運行速度低、數(shù)據(jù)處理能力弱和存儲空間有限(K級),因此只適合于低端的電子產品;基于DSP的嵌入式系統(tǒng)是中低端嵌入式系統(tǒng),這種系統(tǒng)共同特點是系統(tǒng)運行速度較高、數(shù)據(jù)處理能力強,但是存儲空間也是有限的(K級、M級);基于MPU的嵌入式系統(tǒng)通??梢苑譃閮煞N類型:基于CISC架構微處理器的嵌入式系統(tǒng)和基于 RISC架構微處理器的嵌入式系統(tǒng)。其中,CISC架構微處理器通常是由x86體系結構進行嵌入應用擴展而獲得一種類型的嵌入式處理器;RISC架構嵌入式微處理器可以分為三大體系結構:ARM體系結構、PowerPC體系結構和MIPS體系結構,基于這三大體系結構的嵌入式處理器品種繁多,功能也各異。但基于此類處理器的嵌入式系統(tǒng)共同特點是運行速度高、數(shù)據(jù)處理能力強、存儲空間足夠大(G級),因此是一種高端的嵌入式系統(tǒng)。
無論是低端、中端或高端嵌入式系統(tǒng),其經典的設計方法仍然是一種板級電子系統(tǒng)設計方法:首先,根據(jù)嵌入式系統(tǒng)的設計要求,并且按一定的設計規(guī)則,把整個嵌入系統(tǒng)劃分成具有特定功能的若干個功能模塊,如處理器模塊、信號采集模塊、執(zhí)行機構控制模塊等;然后,根據(jù)系統(tǒng)模塊劃分的結果,選擇現(xiàn)成已商品化的模塊或自行研制各功能模塊;最后把這些模塊組合成一個完整的嵌入式系統(tǒng)。隨著集成電路技術的發(fā)展和嵌入式系統(tǒng)小型化和微型化等方面要求,板級電子系統(tǒng)設計已經開始出現(xiàn)如下幾個方面的變化:
(1)嵌入式系統(tǒng)的核心器件——處理器(包括MCU、DSP和MPU等)已經開始向單芯片系統(tǒng)方向發(fā)展,例如,經典 8051系列微控制器已經從原來只有簡單的并行I/O和串行接口(UART)發(fā)展到具有并行I/O、多UART、接口、紅外線傳輸、A/D轉換器、D/A 轉換器、模擬比較器、可編程模擬信號放大器、濾波器、PWM等的可編程片上系統(tǒng)(SOPC)型MCU芯片,即只需要極其少量的外圍器件就可以完成一個具有特定功能的嵌入式系統(tǒng)的設計工作;
(2)嵌入式系統(tǒng)的核心器件——處理器(包括MCU、DSP和MPU等)已經開始向平臺級芯片方向發(fā)展,目前所推出的高檔嵌入式處理器,無論是基于ARM體系結構、PowerPC體系結構還是基于MIPS體系結構的高檔嵌入式處理器,在單芯片上不僅具有各種功能的外圍接口,而且通常內置有RISC協(xié)處理器(例如RISC微控制器、數(shù)字信號處理器等),同時還具有測試和自開發(fā)接口,因此安全可以把其認為是一種硬件平臺級芯片,這樣使得嵌入式系統(tǒng)設計與開發(fā)重點由板級系統(tǒng)設計轉到芯片級系統(tǒng)設計;
(3)嵌入式系統(tǒng)的核心器件——處理器(包括MCU、DSP和 MPU等)已經向高處理速度方向發(fā)展,從而使板級電子系統(tǒng)的PCB設計難度增加,設計重點不僅是PCB版圖設計,更重要的是電磁兼容性和系統(tǒng)可靠性設計。由此可見,由于嵌入式系統(tǒng)的核心部件——處理器向片上系統(tǒng)(SOC)發(fā)展,板級設計工作量逐漸減少,未來的嵌入系統(tǒng)的發(fā)展的重點將從板級電子系統(tǒng)設計轉到芯片級電子系統(tǒng)設計上(即轉移到片上系統(tǒng)設計上),因此基于片上系統(tǒng)(SOC)設計方法必將成為未來嵌入式系統(tǒng)的發(fā)展主流。
對于一般的嵌入式系統(tǒng)設計者來講,尤其是國內的嵌人式系統(tǒng)設計者來講,基于片上系統(tǒng)(SOC)的設計方法還是主要停留在板級電子系統(tǒng)設計方法層次,即利用已經推出的商用SOC芯片進行板級電子系統(tǒng)設計,這主要是由于設計工具、資金、集成電路工藝等方面的限制所致。但是,由于近年來多晶圓(MPW)項目和 CPLD/FPGA技術的發(fā)展,尤其是可編程片上系統(tǒng)(SOPC——System-on-a-Programmable-chip)芯片的出現(xiàn),使得一般的系統(tǒng)設計者進入芯片級電子系統(tǒng)設計成 為可能。自從1999年出現(xiàn)第一個可編程片上系統(tǒng)(SOPC)器件以來,已經有眾多可編程器件供應商推出了具有自己特色的可編程器件,最為典型的是世界上兩大可編程器件供應商——Xilinx公司和Altera公司在FPGA/CPLD基礎推出的系列可編程片上系統(tǒng)器件。其中,Xilinx公司先后推出的可編程片上系統(tǒng)器件有:Virtex系列、Virtex-E系列、Virtex-II系列、Virtex-Pro系列、Spaxtan系列、Spartan-II系列等;Altera公司先后推出的可編程片上系統(tǒng)器件有:APEX20系統(tǒng)、APEX II系列、Mercury系列、Excalibur系列、Stratix系列、Cyclone系列等。每個系列器件都有多種產品,以適用于不同的應用要求。因此,對于國內一般的系統(tǒng)設計者來講,基于可編程片上系統(tǒng)(SOPC)器件的嵌入式系統(tǒng)設計將是進入芯片級電子系統(tǒng)設計的敲門磚。
那么,從板級電子系統(tǒng)設計到芯片級電子系統(tǒng)設計轉變將導致哪些方面的變化?主要表現(xiàn)在如下幾個方面:
(1)在設計描述工具方面,傳統(tǒng)的板級電子系統(tǒng)設計主要采用電路原理圖和元器件外形封裝圖作為設計描述語言工具,而現(xiàn)在的芯片級電子系統(tǒng)設計主要采用文本方式的硬件描述語言(HDL——Hardware Description Language)作為設計描述語言工具;
(2) 在設計流程方面,板極電子系統(tǒng)設計主要經歷電子系統(tǒng)原理圖設計與仿真、印刷電路板(PCB)設計與仿真分板(包括信號完整性分析、電磁兼容性分析等)等二個階段,而芯片級電子系統(tǒng)設計通常需要經歷系統(tǒng)級設計與仿真、算法級設計與仿真、寄存器傳輸級(RTL)設計與仿真、邏輯綜合與驗證、版圖設計綜合與驗證等5個階段;
(3)在軟硬件協(xié)同設計方面,板級電子系統(tǒng)設計所采用的方法是先進行硬件系統(tǒng)設計后再進行軟件系統(tǒng)設計的方法,難以實現(xiàn)軟硬同步設計或協(xié)同設計,而芯片級電子系統(tǒng)設計可以比較容易實現(xiàn)軟硬件同時設計或協(xié)同設計;
(4)在設計實現(xiàn)方面,板級電子系統(tǒng)設計主要基于具有特定功能的集成電路器件,而芯片級電子系統(tǒng)設計主要是基于具有特定功能的電路模塊——知識產權核(IP核)。因此,板級電子系統(tǒng)設計與芯片級電子系統(tǒng)設計無論是在設計方法上還是在設計工具方面都發(fā)生了較大的變化。
隨著現(xiàn)代信息技術的發(fā)展,電子產品生命周期越來越短,特別是電子工業(yè)技術不斷發(fā)展,基于深亞微米和超深亞微米的超大規(guī)模集成電路技術的片上系(SOC) 芯片需求日益擴大,傳統(tǒng)的板級電子系統(tǒng)設計方法已不能適應產業(yè)界對電子產品需求。因此,基于知識產權(IP)核復用的芯片級電子系統(tǒng)設計方法將成為嵌入式系統(tǒng)設計的主流方式。
2 基于可編程片上系統(tǒng)(SoPC)的設計流程
基于可編程片上系統(tǒng)(SOPC)的芯片級電子系統(tǒng)設計主要有兩大支撐點:可編程片上系統(tǒng)器件所能提供的片上資源和可復用IP核庫所能提供的IP核資源。其中,可編程片上系統(tǒng)器件所能提供的片上資源是由集成電路工藝技術發(fā)展決定的,對于系統(tǒng)設計者來講,應根據(jù)設計要求盡量選擇合適的器件;可復用TP核庫所能提供的IP核資源需要通過系統(tǒng)設計者自行建設。在基于SOC的電子系統(tǒng)設計中,針對各類專門技術、專門應用、專門工具、專門生產工藝、專門產品的IP資源庫的建設和共享已形成一種規(guī)范,貫穿在系統(tǒng)設計的全過程。圖1為典型的基于IP核庫的片上系統(tǒng)(SOC)設計流程。
從圖1可以看出,在基于可編程上系統(tǒng)(SOPC)的嵌入式系統(tǒng)設計流程中,除了需要強有力的EDA設計工具支持外,離開充分的資源庫的支持,可以說是寸步難行,并且必將失去競爭力。從總體上講,各個層次的IP庫和EDA工具是芯片級電子系統(tǒng)設計者必備的兩翼,可選的IP核庫資源是一種設計者能力的表征。圖 2為芯片級電子系統(tǒng)設計中自頂向下設計方法的流程中所依賴的庫支持說明。
在圖1的片上系統(tǒng)(SOC)設計流程中,除了需要強有力的IP核庫和EDA工具支持外,與傳統(tǒng)的專用集成電路(ASIC)設計流程最明顯的區(qū)別就是——軟硬件協(xié)同設計,圖3給出軟硬件協(xié)同設計的一般流程。在軟硬件協(xié)同設計的過程中,傳統(tǒng)的硬件描述語言(VHDL、Verilog HDL)和軟件設計語言(C/C++)是無法適應軟硬件協(xié)同設計這一種新的設計方法上的突破,為此必須使用新的系統(tǒng)級描述語言——System C(或其他類似語言)才能完成。
軟硬件協(xié)同設計通常是從一個給定的系統(tǒng)任務開始的,通過有效地分析系統(tǒng)任務和所需要的資源,采用一系列的變換方法并且遵循特定的準則,自動生成符合系統(tǒng)功能要求的、符合實現(xiàn)代價約束的硬件和軟件框架。這種全新的軟硬件協(xié)同設計思想需要解決許多問題:系統(tǒng)級建模、系統(tǒng)級描述語言、軟硬件劃分、性能評估、協(xié)調綜合、協(xié)同仿真和協(xié)同 驗證。
3 基于可編程片上系統(tǒng)(SOPC)的集成設計環(huán)境
片上系統(tǒng)(SOC)設計所需要的EDA工具,若從硬件設計角度看,在設計流程的前端與ASIC設計差別不大。但是,從整個芯片設計角度出發(fā),這兩種類型的芯片設計區(qū)別較大。這是因為,在SOC設計中,一般都含有微處理器,所設計的系統(tǒng)級芯片都必須有設備驅動程序與操作系統(tǒng)或嵌入式實時操作系統(tǒng)接口,必須有應用程序完成數(shù)字計算、信號處理變換、控制決策等功能。因此,在設計的前期,需要進行軟、硬件協(xié)同設計,以便確定那些功能是由硬件完成的,那些功能是由軟件完成的,并且進行適當劃分。在設計的中后期,要進行軟硬件協(xié)同驗證,即把軟硬件設計放到一個虛擬的集成環(huán)境中進行仿真驗證,以便驗證硬件的性能是否達到設計目標,軟件功能是否實現(xiàn)設計要求。
根據(jù)可編程片上系統(tǒng)(SOPC)設計流程和軟硬件協(xié)同設計的一般流程,作者提出基于可編程片上系統(tǒng)(SOPC)的芯片級電子系統(tǒng)的集成設計環(huán)境,如圖4所示。此集成環(huán)境是一種典型的軟硬協(xié)同設計集成環(huán)境(或平臺),是由二個不同層次、不同功能的EDA集成設計環(huán)境組成。
第一層次的EDA集成設計環(huán)境是SOC系統(tǒng)級集成設計環(huán)境,主要用于完成嵌入式系統(tǒng)的系統(tǒng)級設計。首先,需要根據(jù)客戶的要求,進行系統(tǒng)的功能定義和性能評估,以便確定系統(tǒng)規(guī)格;其次,根據(jù)已經確定的系統(tǒng)規(guī)格,應用系統(tǒng)級描述語言(C/C++或System C等)進行系統(tǒng)設計描述與設計驗證,以便確定所定義的系統(tǒng)規(guī)格在功能上是否可以實現(xiàn);再次,在證明了系統(tǒng)規(guī)格在功能上可以實現(xiàn)后,就需要進行系統(tǒng)軟硬件功能劃分,以便確定系統(tǒng)的哪些功能是由軟件系統(tǒng)完成的、哪些功能是由硬件系統(tǒng)完成的、哪些功能需要軟硬件協(xié)同完成,對于既可以通過軟件系統(tǒng)完成也可以通過硬件系統(tǒng)完成的功能,需要進行性能與成本的評估;最后,對已經確定的硬件系統(tǒng)功能,還需要進行芯片與PCB功能的劃分,以便確定哪些功能可以在芯片上實現(xiàn)、哪些功能只能在PCB上實現(xiàn)。
第二層次的EDA集成設計環(huán)境是SOC硬件系統(tǒng)集成設計環(huán)境和SOC軟件系統(tǒng)集成設計環(huán)境,主要用于完成嵌入式系統(tǒng)的軟硬系統(tǒng)設計。首先,根據(jù)系統(tǒng)級設計中的功能劃分,分別進行SOC的硬件系統(tǒng)設計和SOC的軟件系統(tǒng)設計。此時的硬件系統(tǒng)設計和軟件系統(tǒng)的設計是并行進行的。在硬件系統(tǒng)設計中,通常經歷幾個設計階段:行為描述與驗證(包括硬件系統(tǒng)的系統(tǒng)級、算法級、寄存器傳輸級的行為描述與仿真驗證)、邏輯綜合與驗證、可測性設計綜合與邏輯生成、器件適配與仿真驗證、器件物理編程與物理驗證、版圖生成與驗證。其中,前4個設計階段是基于SOPC的硬件系統(tǒng)設計流程。在軟件系統(tǒng)設計中,通常經歷如下幾個階段:軟件系統(tǒng)編輯、軟件系統(tǒng)編譯、軟件系統(tǒng)仿真調試、軟件系統(tǒng)編程等。其次,在軟硬件系統(tǒng)設計過程中,為了確保系統(tǒng)的性能價格比達到最優(yōu),需要不斷進行軟硬件協(xié)同設計。通常在硬件系統(tǒng)行為描述與仿真之后,就可以把所設計的硬件系統(tǒng)與軟件系統(tǒng)置于虛擬器件的軟硬件協(xié)同仿真驗證環(huán)境中,以便驗證硬件系統(tǒng)集成的系統(tǒng)所能達到的功能、性能、成本等,從而使得所實現(xiàn)的芯片級電子系統(tǒng)的性能價格比達到最優(yōu)。
綜上所述,基于可編程片上系統(tǒng)(SOPC)的嵌入式系統(tǒng)集成設計環(huán)境是一個相當復雜的集成EDA開發(fā)環(huán)境,常見的可編程片上系統(tǒng)集成化EDA開發(fā)套件—— Altera公司的Quartus II系列的EDA工具套件和Xilinx公司的ISE 5.x系列的EDA工具套件的儲存成化程度雖然較高,但也難以達到圖4所示的集成化程度。因此,需要系統(tǒng)設計設計者根據(jù)現(xiàn)有的商用化EDA工具構建這樣的集成設計環(huán)境。有理由相信在不久的將來,將會推出類似的集成EDA工具環(huán)境。
4 片上系統(tǒng)(SOC)是嵌入式系統(tǒng)發(fā)展方向
嵌入式系統(tǒng)的核心部件是微處理器,由于集成電路技術的發(fā)展,以及電子產品及時面市的要求,促使微處理器(包括微控制器、數(shù)字信號處理器、嵌入式處理器)向單芯片系統(tǒng)方向發(fā)展,從而使得基于片上系統(tǒng)(SOC)的電子系統(tǒng)成為嵌入式系統(tǒng)的發(fā)展方向和主流。目前國內的基于片上系統(tǒng)(SOC)的嵌入式系統(tǒng)設計大都停留在板級電子系統(tǒng)設計水平,隨著可編程片上系統(tǒng)(SOPC)器件的應用發(fā)展,相信在今后的若干年內,基于SOC的嵌入式系統(tǒng)設計會逐漸過渡到芯片級電子系統(tǒng)的設計水平。由于芯片級電子系統(tǒng)設計方法與板級電子系統(tǒng)設計方法有著本質的區(qū)別,因此了解與掌握芯片級電子系統(tǒng)的設計流程、集成設計環(huán)境對于系統(tǒng)設計者來講是至關重要的,為此本文以圖示方式直觀地給出基于可編程片上系統(tǒng)(SOPC)的芯片級電子系統(tǒng)設計流程和集成設計環(huán)境,全面展示了芯片級電子系統(tǒng)所涉及到的問題。