EDA技術(shù)應(yīng)用與發(fā)展之管窺
EDA技術(shù)主要是指面向?qū)S眉呻娐吩O(shè)計的計算機技術(shù),與傳統(tǒng)的專用集成電路設(shè)計技術(shù)相比,其特點有:①設(shè)計全程,包括電路系統(tǒng)描述、硬件設(shè)計、仿真測試、綜合、調(diào)試、軟件設(shè)計,直至硬件系統(tǒng)都由計算機完成;②設(shè)計技術(shù)直接面向用戶,即專用集成電路的被動使用都有同時也可能是專用集成電路的主動設(shè)計者;③專用集成電路的實現(xiàn)有了更多的途徑,即除傳統(tǒng)的ASIC器件外,還能通過FPGA、CPLD、ispPAC、FPSC等可編程器件來實現(xiàn),本文主要就后者,簡要介紹EDA技術(shù)及其應(yīng)用最新近的一些發(fā)展。
由于在電子系統(tǒng)設(shè)計領(lǐng)域中的明顯優(yōu)勢,基于大規(guī)??删幊唐骷鉀Q方案的EDA技術(shù)及其應(yīng)用在近年中有了巨大的發(fā)展,將電子設(shè)計技術(shù)再次推向又一嶄新的歷史階段。這些新的發(fā)展大致包括這樣6個方面:①新器件;②新工具軟件;③嵌入式系統(tǒng)設(shè)計;④DSP系統(tǒng)設(shè)計;⑤計算機處理器設(shè)計;⑥與ASIC市場的競爭技術(shù)。以下將分別予以說明。
1、新器件
由于市場產(chǎn)品的需求和市場競爭的促進,成熟的EDA工具所能支持的,同時標志著最新EDA工具所能支持的,同時標志著最新EDA技術(shù)發(fā)展成果的新器件不斷涌現(xiàn),其特點主要表現(xiàn)為:
(1)大規(guī)模。邏輯規(guī)模已達數(shù)百萬門,近10萬邏輯宏單元,可以將一個復(fù)雜的電路系統(tǒng),包括諸如一個至多個嵌入式系統(tǒng)處理器、各類通信接口、控制模塊和DSP模塊等裝入一個芯片中,即能滿足所謂的SOPC設(shè)計。典型的器件有Altera的Stratix系列、Excalibue系列;Xilinx的Virtex-II Pro系列、Spartan-3系列(該系列達到了90nm工藝技術(shù))。
(2)低功耗。盡管一般的FPGA和CPLD在功能和規(guī)模上都能很好地滿足絕大多數(shù)的系統(tǒng)設(shè)計要求,但對于有低功耗要法語的便攜式產(chǎn)品來說,通常都難于滿足要求,但由Lattice公司最新推出的ispMACH4000z系列CPLD達到了前所未有的低功耗性能,靜態(tài)功耗20微安,以至于被稱為0功耗器件,而其它性能,如速度、規(guī)模、接口特性等仍然保持了很好的指標。
(3)模擬可編程。各種應(yīng)用EDA工具軟件設(shè)計、isp方式編程下載的模擬可編程及模數(shù)混合可編程器件不斷出現(xiàn)。最具代表性的器件是Lattice的ispPAC系列器件,其中包括常規(guī)模擬可編程器件ispPAC10;精密高階低通濾波器設(shè)計專用器件ispPAC80;模數(shù)混合通用在系統(tǒng)可編程器件ispPAC20;在系統(tǒng)可編程電子系統(tǒng)電源管理器件ispPAC-POWER等等。
(4)含多種專用端口和附加功能模塊的FPGA。例如Lattice的ORT、ORSO系列器件,含sysHSI SERDES技術(shù)的FPGA具有通信速度高達3.7Gbps的SERDES背板收發(fā)器,其中內(nèi)嵌8b/10b編解碼器,以及超過40萬門的FPGA可編程邏輯資源;Altera的Stratix、Cyclone、APEX等系列器件,除內(nèi)嵌大量ESB(嵌入式系統(tǒng)塊)外,還含有嵌入的鎖相環(huán)模塊(用于時鐘發(fā)生和管理)、嵌入式微處理器核等。此外,Stratix系列器件還嵌有豐富的DSP模塊。
2、新工具軟件
為了適應(yīng)更大規(guī)模FPGA的開發(fā),包括片上系統(tǒng)的DSP的開發(fā),除了第三方EDA公司不斷更新的通用EDA工具外,主要PLD供應(yīng)商也相繼推出,并適時升級其EDA開發(fā)工具。
如Lattice公司從早期的Synario,升級到后來的ispEXPERT System、ispDesignEXPERT System、ispLEVER,直到現(xiàn)在的ispLEVER Advanced System通用EDA工具,可用于開發(fā)Lattice所有的FPGA、FPSC、CPLD和GDX器件。
Xilinx推出的最新設(shè)計環(huán)境是ISE6.1I,其中增加了許多新的功能,如支持嵌入式系統(tǒng)的Linux開發(fā),支持混合硬件描述語言綜合設(shè)計流程、強化排錯功能、Chip Scope Pro實時調(diào)試器等等。此外還升級了用于軟核嵌入式系統(tǒng)調(diào)試的工具Embedded Developmen Kit和基于FPGA的DSP開發(fā)環(huán)境System Generator for DSP。
同樣,Altera也推出了適用于不同設(shè)計對象的EDA開發(fā)環(huán)境。其中QuartusⅡ 3.0是一綜合設(shè)計環(huán)境,被稱為SOPC(可編程單片系統(tǒng))升級環(huán)境,它承接了原來MaxplusⅡ的全部設(shè)計功能和器件對象外還增加了許多新功能和新的FPGA器件系列,包括一些適用于SOPC開發(fā)的大規(guī)模器件。
相對于上述EDA工具,QuartusⅡ含有許多更具特色和更強的實用功能,大致有以下幾點:
(1)QuartusⅡ與MATLAB/Simulink和Altera的DSP Builder,以及第三方的綜合器和仿真器相結(jié)合,用于開發(fā)DSP硬件系統(tǒng);
(2)QuartusⅡ與SOPC Builder結(jié)合用于開發(fā)Nios嵌入式系統(tǒng);
(3)QuartusⅡ含實時調(diào)試工具、嵌入式邏輯分析式Signal TapⅡ。
隨著邏輯設(shè)計復(fù)雜性的不斷增加,在計算機上以軟件方式的仿真測試變得更加耗費時間,而不斷需要重復(fù)進行的硬件系統(tǒng)的測試同樣變得更為困難。為了解決這些問題,設(shè)計者可以將一種高效的硬件實時測試手段和傳統(tǒng)的系統(tǒng)測試方法相結(jié)合來完成。這就是嵌入式邏輯分析儀Signal TapⅡ的使用。它可以隨設(shè)計文件一并下載于目標芯片中,用以捕捉目標芯片內(nèi)設(shè)計者感興趣的信號節(jié)點處的信號,而又不影響原硬件系統(tǒng)的正常工作。可以通過兩種方式來使用Signal TapⅡ,一種是直接使用QuartusⅡ3.0中的Signal TapⅡ;另一種方式是通過MATLAB的Simulink和DSP Builder來使用Signal TapⅡ。DSP Builder中包含有Signal TapⅡ模塊,設(shè)計者可以使用此模塊設(shè)置用于信號探察的事件觸發(fā)器,配置存儲器,并能顯示波形。這可以使用Node模塊來選擇有待監(jiān)測的信號。使用Signal TapⅡ后,當觸發(fā)器運行后,通常要占用部分內(nèi)部RAM,因為在實際監(jiān)測中,將測得的樣本信號暫存于目標器件中的嵌入式RAM(如ESB)中,然后通過器件的JTAG端口和Byte BlasterⅡ下載線將采得的信息傳出,送于PC機進行分析。PC機中送達的數(shù)據(jù)是以文本文件的方式存儲的,并可在Simulink圖上顯示波形;
(4)QuartusⅡ含一種十分有效的邏輯設(shè)計優(yōu)化技術(shù),即設(shè)計模塊在FPGA中指定區(qū)域內(nèi)的邏輯鎖定功能,Logic Lock技術(shù)。
有FPGA開發(fā)經(jīng)驗的人都會有這樣的體會,原來在硬件測試上十分成功的FPGA設(shè)計,結(jié)果在源代碼并沒有任何改變的情況下,僅僅是增加了一點與原程序毫不相干的電路描述,或甚至只改變了某個端口信號的引腳鎖定位置,結(jié)果在綜合適配后,原設(shè)計的硬件性能大為下降,如速度降低了,有時甚至無法正常工作。這時,如果比較改變設(shè)計前后的Floorplan圖,會發(fā)現(xiàn)芯片內(nèi)部資源的使用情況發(fā)生了巨大的變化。這表明,即使對原設(shè)計作極小的改變(更不用說對適配約束條件的改變),都會使適配器對原設(shè)計的布線(routing)和布局(placing)策略作大幅改變和調(diào)整。同時,當設(shè)計規(guī)模比較大時,人為很難直接介入布線/布局的優(yōu)化。對于由許多基本電路模塊構(gòu)建成的頂層系統(tǒng)的FPGA開發(fā),類似的問題將更加突出。例如,原來某一基本模塊的FPGA硬件測試十分成功,包括工作性能、速度以及資源利用率等,但當將這些基本模塊連接到一個頂層設(shè)計后,即使在同一FPGA中進行測試,也常發(fā)現(xiàn)各模塊以及總系統(tǒng)的性能有所下降,甚至無法工作的情況。事實上,如果能在設(shè)計基本模塊時,就固定其布線/布局的原方案,即使在頂層文件的總體適配時,也不改變原來基本模塊的布線/布局及其原來的優(yōu)化方案,就能很好地解決上述棘手的問題。對此,QuartusⅡ提供了這一優(yōu)秀的設(shè)計技術(shù),可以將設(shè)計好的布線/布局方案。這樣一來,對于一項較大設(shè)計中的某一底層模塊,不但在頂層的軟件描述上是一個子模塊,而且在FPGA芯片中總體適配中,此模塊在硬件便類似于ASIC設(shè)計中的一個標準模塊,始終能保持自己原來的布線/布局方案,從而在任何大系統(tǒng)中都能保持原有的電路性能,就像一個被調(diào)用的獨立的元件一樣,不會由于頂層系統(tǒng)布線/布局的改變而改變基本模塊的布線/布局結(jié)構(gòu)了。有了邏輯鎖定技術(shù),面對大系統(tǒng)的設(shè)計,工程師們就可以將構(gòu)成大系統(tǒng)的各模塊進行分別設(shè)計,分別優(yōu)化它們的布線/布局,及適配約束,逐個地使它們分別獲得最佳的工作性能,逐個優(yōu)化交鎖定它們的布線/布局方案,最后把它們連在一起形成性能優(yōu)良的頂層系統(tǒng)。顯然,邏輯設(shè)計鎖定技術(shù)是SOPC單片系統(tǒng)優(yōu)化設(shè)計及IP核成功拼裝應(yīng)用的有力保證。
(5)QuartusⅡ含有將FPGA設(shè)計向ASIC設(shè)計我縫轉(zhuǎn)移的高效的ASIC設(shè)計技術(shù),即Hard Copy技術(shù),對此將在后面做更多的說明。
3、在FPGA中植入嵌入式系統(tǒng)處理器
目前最為常用的嵌入式系統(tǒng)大多采用了含有ARM的32位知識產(chǎn)權(quán)處理器核的器件。盡管由這些器件構(gòu)成的嵌入式系統(tǒng)有很強的功能,但為了使系統(tǒng)更為完備、功能更為強大、對更多任務(wù)的完成具有更好的適就萬籟 ,通常必須為此處理器配置許多接口器件,方能構(gòu)成一個完整的應(yīng)用系統(tǒng),如除配置常規(guī)的SRAM、DRAM、Flash外,還必須配置網(wǎng)絡(luò)通信接口、串行通信接口USB接口、VGA接口、PS/2接口等等。這樣勢必會增加整個系統(tǒng)的體積、功耗,降低了系統(tǒng)的可靠性。但是如果將ARM或其它知識產(chǎn)權(quán)核以硬核方式植入FPGA中,利用FPGA中的可編程邏輯資源和IP軟核來構(gòu)成該嵌入式系統(tǒng)處理器的接口功能模塊,就能很好地解決這些問題。對此,Altera和Xilinx公司都相繼推出了這方面的器件。例如,Altera的Excalibur系列FPGA中就植入了ARM922T嵌入式系統(tǒng)處理器;Xilinx的Virtex-ⅡPro系列中植入了IBM PowerPC405處理器。這樣就能使得FPGA的強大的軟件功能有機地相結(jié)合,高效地實現(xiàn)SOC系統(tǒng)。
但是,這種將IP硬核植入FPGA的解決方案存在5種不夠完美之處:(1)由于此類硬核多來自第三方公司,F(xiàn)PGA廠商通常無法直接控制其知識產(chǎn)權(quán)費用,從而導致FPGA器件價格相對較高;(2)由于硬核是預(yù)先植入的,設(shè)計者無法根據(jù)實際需要改變處理器的結(jié)構(gòu),如總線規(guī)模、接口方式,乃至指令形式,更不可能將FPGA邏輯資源構(gòu)成的硬件模塊以指令的形式形成內(nèi)置嵌入式系統(tǒng)的硬件加速模塊(如DSP模塊),以適應(yīng)更多的電路功能要求;(3)無法根據(jù)實際設(shè)計需求在同一FPGA中使用指定數(shù)量的處理器核;(4)無法裁減處理器硬件資源以降低FPGA成本;(5)只能在特定的FPGA中使用硬核嵌入式系統(tǒng),如只能使用Excalibur系列FPGA中的ARM核,Virtex-ⅡPro系列中的PowerPC核。
但是如果利用軟核嵌入式系統(tǒng)處理器就能有效地解決上述不利因素。它們分別是Altera的Nios核與Xilinx的Micro Blaze。特別是前者,使上述5方面的問題得到全面的解決。
Altera的Nios核是用戶可隨意配置和構(gòu)建的32位/16位總線(用戶可選的)指令集和數(shù)據(jù)通道的嵌入式系統(tǒng)微處理器IP核,采用Avalon總線結(jié)構(gòu)通信接口,帶有增強的內(nèi)存、調(diào)試和軟件功能(C或匯偏程序程序優(yōu)化開發(fā)功能);含由First Silicon Solutions(FS2)開發(fā)的基于JTAG的片內(nèi)設(shè)備(OCI)內(nèi)核(這為開發(fā)者提供了強大的軟硬件調(diào)試實時代碼,OCI調(diào)試功能可根據(jù)FPGA JTAG端口上接受的指令,直接監(jiān)視和控制片內(nèi)處理器的工作情況)。此外,基于QuartusⅡ平臺的用戶可編輯的Nios核含有許多可配置的接口模塊核,包括:可配置高速緩存(包括由片內(nèi)ESB或外部SRAM或SDRAM,100M以上單周期訪問速度)模塊,可配置RS232通信口、SDRAM控制器、標準以太網(wǎng)協(xié)議接口、DMA、定時器、協(xié)處理器等等。在植入(配置進)FPGA前,用戶可根據(jù)設(shè)計要求,利用QuartusⅡ和SOPC Builder,對Nios及其外圍系統(tǒng)進行構(gòu)建,使該嵌入式系統(tǒng)在硬件結(jié)構(gòu)、功能特點、資源占有等方面全面滿足用戶系統(tǒng)設(shè)計的要求。Nios核在同一FPGA中被植入的數(shù)量沒有限制,只要FPGA的資源允許,此外Nios可植入的Altera FPGA的系列幾乎沒有限制,在這方面,Nios顯然優(yōu)于Xilinx的Micro Blaze。另外,在開發(fā)工具的完備性方面、對常用的嵌入式操作系統(tǒng)支持方面,Nios都優(yōu)于Micro Blaze。就成本而言,由于Nios是由Altera直接推出而非第三方產(chǎn)品,故用戶通常無需支付知識產(chǎn)權(quán)費用,Nios的使用費僅僅是其占用的FPGA的邏輯資源費。因此,選用的FPGA越便宜,則Nios的使用費就越便宜。