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