今天的高速數(shù)字產(chǎn)品設(shè)計工程師面臨著難以應對的測量挑戰(zhàn)。首先,他們必須在近乎苛刻的項目進度和預算條件下,使所設(shè)計的產(chǎn)品達到前所未有的響應能力、功能和可靠性;同時,在越來越復雜的系統(tǒng)中,設(shè)計缺陷有可能僅在多個子系統(tǒng)和軟件的互動下實時產(chǎn)生。面對這些困難的驗證挑戰(zhàn),現(xiàn)場可編程門陣列(FPGA)這種數(shù)字設(shè)計中的新核心器件在調(diào)試和驗證過程中起著越來越重要的作用。通過采用片上技術(shù),FPGA將能適應當前和未來驗證的關(guān)鍵要求。 FPGA重要性的上升可歸結(jié)于諸多因素。FPGA能提供眾多特性和實現(xiàn)高集成度,其使用范圍在幾年前就已經(jīng)遠遠超出了人們的想像。對于ASIC設(shè)計,采用FPGA作設(shè)計原型的占有很高的百分比。FPGA提供可編程的輸入/輸出(I/O),大量用戶可定義的邏輯,以及許多無需特許的內(nèi)核,使設(shè)計工程師能以相對低的開發(fā)成本實現(xiàn)多種多樣的設(shè)計。隨著邏輯密度的增加,單片F(xiàn)PGA 設(shè)計就可能包含過去要占用整塊電路板的子系統(tǒng)或系統(tǒng)。收縮IC工藝幾何學使FPGA成為采用新高速總線的試驗場。FPGA設(shè)計能在200MHz以上運行,在單片器件中實現(xiàn)多時域。有了FPGA,設(shè)計工程師就可采用新出現(xiàn)的高速標準,如PCI Express和 SATA,其開發(fā)成本只是ASIC的一個零頭。 FPGA 可重編程的固有特性改變了產(chǎn)品的開發(fā)過程。開發(fā)ASIC的設(shè)計工程師們一直依賴于用眾多的仿真來驗證設(shè)計。在制作完成第一片ASIC后,再作更改將是費時且代價高昂的。新一輪的設(shè)計可能要花3個月時間。與之相反,FPGA是可重編程的。在把最初設(shè)計下載到FPGA后,如果發(fā)現(xiàn)芯片存在設(shè)計缺陷,即可在幾小時內(nèi)改動設(shè)計和重編程FPGA,并且不需要追加經(jīng)費。對于采用FPGA技術(shù)的設(shè)計工程師們來說,這是一項極重要的優(yōu)點。 可重編程的固有特性對設(shè)計工程師們的產(chǎn)品開發(fā)方式有著重大影響。由于FPGA能很快地開發(fā)和修改,因此易于對元件作最終定義。除此之外,開發(fā)者也經(jīng)常用FPGA對系統(tǒng)其他部分的缺陷作最終修正。FPGA往往被放置在設(shè)計工程師們最易融入新特性的位置。由于這些原因,FPGA的定義將保持流動。 這一流動性也把設(shè)計工程師們對FPGA快速開發(fā)設(shè)計和進行測試的巨大壓力放置到其所處的系統(tǒng)中。在仿真扮演重要角色時,使用FPGA的設(shè)計工程師通常很早就能轉(zhuǎn)到原型。并且在幾分鐘內(nèi)找到電路中的缺陷,而仿真則會花數(shù)日、數(shù)周,甚至數(shù)月的時間。當在電路中測試FPGA時,邏輯分析儀是關(guān)鍵角色,通過實時測量提供FPGA行為至關(guān)重要的信息。在設(shè)計工程師們發(fā)現(xiàn)問題后,他們即可改動設(shè)計,把它下載到FPGA中,然后進行新的測量。采用這種方法,設(shè)計工程師們可在開發(fā)階段經(jīng)歷數(shù)十次設(shè)計和實時測量的反復。 雖然這種方法在過去是很有效的,但隨著時間的流逝,FPGA所包容的邏輯量變得越來越大和越來越復雜。1990年代所測的大FPGA尚在約100000門的范圍。而今天的 FPGA能達到百萬門。隨著用戶邏輯的增加,基于內(nèi)核的設(shè)計變得更為誘人。 除控制邏輯外,FPGA通常也用于數(shù)據(jù)流設(shè)計。用戶可能融有一個PCI內(nèi)核,或是一個提供從工業(yè)標準總線至專利內(nèi)部總線橋接的內(nèi)核。設(shè)計工程師可能用阻塞RAM實現(xiàn)若干內(nèi)部緩沖。也可能設(shè)計是由FPGA中的嵌入處理器或DSP實現(xiàn)。這只不過是少數(shù)幾種內(nèi)核選擇。 FPGA廠商所面對的任務(wù)一般與芯片的后期開發(fā)相關(guān),也就是要使在FPGA中建立設(shè)計更容易。FPGA廠商正在把IC工藝推至最前沿的 0.09μm寬度,F(xiàn)在,工程師已可實現(xiàn)極為巨大的用戶邏輯量。FPGA開發(fā)的未來將是基于內(nèi)核的設(shè)計或系統(tǒng)芯片設(shè)計。采用更新的IC工藝技術(shù),設(shè)計工程師即可用內(nèi)核構(gòu)建大FPGA,而不必過分擔心FPGA是否能夠融入設(shè)計。 在FPGA邏輯密度呈指數(shù)式增加時,器件上的引腳數(shù)卻并不能與之同步上升。由于引腳提供至印制電路板和其他設(shè)計部分的物理連接,因此能實現(xiàn)與印制電路板上FPGA物理連接的高速信號數(shù)將是有限的。任何特定FPGA都有確定的晶核尺寸和有限的焊盤數(shù)。這也使FPGA廠商只能達到固定的引腳數(shù)。采用FPGA設(shè)計的數(shù)量增加將會遭遇有限焊盤的問題。由于大多數(shù)引腳都需接到系統(tǒng)其他部分的FPGA設(shè)計,只有越來越少的引腳可作為實時測量接到其內(nèi)部信號。 這一現(xiàn)象也同時要求設(shè)計工程師必須對FPGA設(shè)計中的無數(shù)內(nèi)部塊做關(guān)鍵性的實時測量。而傳統(tǒng)的驗證方法則效率低下,甚至無能為力。設(shè)計工程師們和FPGA廠商都很清楚這一問題。即必須保證能繼續(xù)用FPGA實現(xiàn)快的設(shè)計開發(fā)。 FPGA設(shè)計的未來包括基于內(nèi)核的設(shè)計和驗證這兩個方面。我們用幾個例子說明已經(jīng)顯現(xiàn)的這一趨勢。 1.在1990年代后期,FPGA廠商推出了邏輯分析內(nèi)核。硬件開發(fā)者可以使用FPGA,把一個或多個這樣的內(nèi)核融入他們的設(shè)計。內(nèi)核包括若干構(gòu)成觸發(fā)的可編程比較器。內(nèi)核也包括用于捕獲跡線的內(nèi)存。觸發(fā)規(guī)范通過JTAG下載到內(nèi)核。在完成測量和保存至內(nèi)存后,跡線通過JTAG上載至由FPGA廠商完成的邏輯分析儀用戶接口。Xilinx ChipScope Pro和 Altera Signal Tap就是這類技術(shù)的例子。 雖然已經(jīng)證明這種方法對于發(fā)現(xiàn)FPGA內(nèi)部問題是有價值的,但它不能建立這些測量與外部事件的相關(guān)性,內(nèi)部FPGA存儲器也制約了這種方法對更寬驗證需要的有用性。 2.驗證要求激勵和響應均為有效。邏輯分析內(nèi)核對于響應確實是有效的,但激勵則必須來自現(xiàn)有電路。為迅速進行驗證,設(shè)計工程師們需要具備在激勵環(huán)境中由人工建立類似測試站測試條件的能力。這一要求將從第二種類型的驗證內(nèi)核,即激勵內(nèi)核中獲得。一個例子是 Xilinx VIO(虛擬輸入/輸出)內(nèi)核。該內(nèi)核模擬仿真環(huán)境,可通過編程在電路中發(fā)送實時的測試碼型。VIO內(nèi)核也可連接至模塊、子模塊,以及如觸發(fā)器這類基本元件的輸入和輸出。 VIO內(nèi)核使其有可能為只有很少,或沒有外引腳可視性的模塊建立電路內(nèi)的測試站,把VIO內(nèi)核接至您設(shè)計的輸入,把ILA接至輸出。通過把內(nèi)結(jié)點強制到特定條件,VIO內(nèi)核即可提供調(diào)制幫助,這有助于做出臨時性的修補,或把問題夸大。  3.雖然這些驗證內(nèi)核可為驗證更大和更復雜的FPGA 設(shè)計提供一個好的開始,但尚不能解決與極度復雜要求相關(guān)的問題。FPGA廠商與測試和測量設(shè)備廠商已聯(lián)手建立更為精煉的解決方案。這樣的伙伴關(guān)系有著深遠的意義。說明業(yè)內(nèi)的領(lǐng)先公司正為滿足設(shè)計工程師們的需要而協(xié)同工作。這里是用最少的引腳數(shù)解決有限內(nèi)部可視性的一個例子。 Agilent和Xilinx兩公司最近推出了Agilent Trace Core II,也可簡稱為ATC2?砂褍(nèi)核看成是如圖1所示的可配置多路復用器。內(nèi)核包括至多路復用器輸入的一些信號排,也就是成組的信號。被稱為FPGA動態(tài)探測器的應用軟件在Agilent邏輯分析儀上運行,它允許使用者規(guī)定引腳上出現(xiàn)的是哪一信號排。把JTAG作為控制媒體,用戶就可不停止設(shè)計而改變邏輯分析儀所測量的信號排。 這種方法能節(jié)省引腳數(shù),同時保持所需要的可視能力。只需幾次鼠標點擊,設(shè)計工程師就可測量一組新的內(nèi)部信號。通過每一調(diào)試引腳訪問多達64個內(nèi)部信號。而在傳統(tǒng)的路由方法中,1個引腳只能提供對1個內(nèi)部信號的可視能力。 一種稱為Core Inserter的Xilinx工具允許設(shè)計工程師們設(shè)置內(nèi)核參數(shù),包括內(nèi)核類型,調(diào)試引腳數(shù),以及輸入至內(nèi)核的信號數(shù)。Core Inserter也允許用戶規(guī)定把哪一內(nèi)部信號接到指定的ATC2信號排。Core Inserter還能產(chǎn)生一個包括所有信號名及位置的edif文件。用戶每次改變信號排時,新文件名將在邏輯分析儀所有菜單中得到自動更新。 這種內(nèi)核輔助驗證方法把傳統(tǒng)儀器的好處與調(diào)試內(nèi)核減少引腳的好處結(jié)合到一起。有趣的是這種方法還把某些通常需時幾小時的任務(wù)化簡到幾次鼠標點擊。讓我們來看一個例子。 從物理上描述內(nèi)部信號如何接到連接器的引腳,繼而接到邏輯分析儀通道可能是一項具有挑戰(zhàn)性和費事的任務(wù)。設(shè)計工程師在每次考慮新的信號路由時,他必須進行許多說明,以保證正確的邏輯分析測量。例如,設(shè)計工程師把“ACK”信號輸出路由選為FPGA的引腳5。而電路板上的布線已把FPGA的引腳5接到mictor連接器的引腳18。用戶然后決定將mictor連接器的引腳18接到邏輯分析儀通道2的接口夾3。最后,設(shè)計工程師還必須把邏輯分析儀設(shè)置菜單上的ACK名送至通道2接口夾3。這還只是針對1個信號。如果設(shè)計工程師們包括8個調(diào)試小組,他們就必須提供這一說明,并且每次在設(shè)計中改變新信號路由時,都需要進行8次設(shè)置。這一過程需時1至2個小時。 調(diào)試內(nèi)核的使用允許使用者把這1至2個小時的設(shè)置時間壓縮到1分鐘以內(nèi)。該工具產(chǎn)生一個帶有所有信號名和信號排信息的文件。每次使用者通過JTAG改變內(nèi)部測量點時,新一組信號就出現(xiàn)在調(diào)試引腳和邏輯分析儀上。由于Core Inserter為邏輯分析儀產(chǎn)生的文件包括所有的文件名,因此邏輯分析儀能夠確定哪一信號排有效,并更新被測信號的當前名稱。當使用者切換到不同信號排時,老信號名被刪除,新信號名自動同步出現(xiàn)在邏輯分析儀上,如圖2所示。如果設(shè)計組經(jīng)過30次更動,每次設(shè)計改變和設(shè)置邏輯分析儀要花2小時的話,對于一片F(xiàn)PGA設(shè)計,基于內(nèi)核的方法就可為設(shè)計工程師們節(jié)省60小時。這僅僅是基于內(nèi)核的驗證如何獲得極大生產(chǎn)力提升的一個例子。對于在所處系統(tǒng)環(huán)境中驗證FPGA,這一時間節(jié)省是極為重要的,因為這一驗證是從設(shè)計最終轉(zhuǎn)向生產(chǎn)所必須的一項工作。 FPGA在數(shù)字設(shè)計中的用法會繼續(xù)增加,直到這些方法被普遍采用。對于大和快的FPGA,基于核心的設(shè)計需要更快地綜合各種技術(shù),以更快地完成設(shè)計。測試和測量設(shè)備廠商與EDA廠商合作伙伴已開發(fā)出了可視性內(nèi)核,伙伴成員還會繼續(xù)增加,F(xiàn)已出現(xiàn)了一些針對這些需要的商業(yè)化產(chǎn)品。雖然目前基于內(nèi)核的驗證技術(shù)以調(diào)試為目標,但將開發(fā)除調(diào)試外的新一類測量和監(jiān)視內(nèi)核,使設(shè)計工程師們能夠?qū)λ麄兊腇PGA設(shè)計作更深入的透析。 |