WCDMA文章列表:WiMAX與HSDPA優(yōu)勢比較?
USB:淺談USB閃存盤與PIC微控制器系統(tǒng)的連接
3G知識普及:3G研發(fā)歷史本文將介紹,如何在專業(yè)的驗(yàn)證軟件Certify 的幫助下,實(shí)現(xiàn)快速有效的用多片FPGA 來進(jìn)行ASIC 設(shè)計(jì)驗(yàn)證。
前言
在現(xiàn)在復(fù)雜的ASIC 設(shè)計(jì)中,校驗(yàn)(Verification)是最大的瓶頸。隨著先進(jìn)的半導(dǎo)體工藝技術(shù)不斷前
進(jìn),隨之帶來的是ASIC 設(shè)計(jì)規(guī)模和設(shè)計(jì)復(fù)雜度的飛速增長,這使得傳統(tǒng)的軟件仿真工具已經(jīng)無法完全解決驗(yàn)證的問題。而且隨著越來越多的需要處理大量實(shí)時(shí)數(shù)據(jù)的應(yīng)用(如視頻)出現(xiàn),驗(yàn)證技術(shù)就要求能夠在接近實(shí)時(shí)頻率的條件下進(jìn)行驗(yàn)證?,F(xiàn)在越來越多的ASIC 設(shè)計(jì)者自己設(shè)計(jì)FPGA 驗(yàn)證板來進(jìn)行ASIC 設(shè)計(jì)驗(yàn)證。用FPGA 驗(yàn)證ASIC 的好處是可以使軟件的開發(fā)調(diào)試和ASIC 的開發(fā)調(diào)試并行的進(jìn)行。
ASIC 的設(shè)計(jì)者在用FPGA 做驗(yàn)證和調(diào)試的時(shí)候會面臨很多挑戰(zhàn)。一個(gè)最大的問題就是即使是:最大
容量的FPGA 和復(fù)雜的ASIC 相比還是太小。這意味著設(shè)計(jì)者必須把他們的ASIC 設(shè)計(jì)分割到幾塊FPGA 中。
在作分割和FPGA 綜合的時(shí)候,沒有工具幫他們做出好的分割決定,也很難確定驗(yàn)證板的參數(shù)和設(shè)計(jì)。這樣設(shè)計(jì)者只能單調(diào)乏味的在分割、綜合、板上實(shí)現(xiàn)幾個(gè)步驟中重復(fù),浪費(fèi)大量的時(shí)間。
Certify 是SYNPLICITY 公司的新一代設(shè)計(jì)軟件,它就是針對用FPGA 做ASIC 驗(yàn)證的設(shè)計(jì)。Certify
結(jié)合了RTL 多片分割和業(yè)界最好FPGA 綜合技術(shù)。它是業(yè)界的第一個(gè)也是唯一一個(gè)針對使用多片F(xiàn)PGA 做ASIC 驗(yàn)證的設(shè)計(jì)工具。
SOC(片上系統(tǒng))ASIC 的驗(yàn)證方法ASIC 設(shè)計(jì)者面臨著一系列的壓力。他們的設(shè)計(jì)要達(dá)到最高的集成度,并且要能滿足最新的工藝技術(shù),達(dá)到最大的容量。而且他們也不得不要考慮Time-To-Market 的時(shí)間,所以要盡快的得到功能完全準(zhǔn)確、可以工作的芯片。由于推向市場時(shí)間的巨大壓力,SOC 芯片還要有軟件的部分,因此同樣不容許因?yàn)樾酒δ軟]有達(dá)到準(zhǔn)確而導(dǎo)致拖延軟件的開發(fā)和調(diào)試。軟硬件的合作開發(fā)和調(diào)試是必須的。
EDA 工業(yè)就是為了滿足對新工具和新方法的需要。高級的描述語言和高級的庫極大的提高了設(shè)計(jì)者的生產(chǎn)力。越來越多的IP 核允許設(shè)計(jì)者使用增強(qiáng)功能的元件快速可靠的設(shè)計(jì)很大的設(shè)計(jì)。瓶頸來自于驗(yàn)證,因?yàn)锳SIC 投產(chǎn)之前必須是正確的。對百萬門級片上系統(tǒng)的ASIC 設(shè)計(jì),每次投片的NRE 費(fèi)用是巨大的。因此,在功能沒有被驗(yàn)證之前不去投片是可以理解的。而且隨著設(shè)計(jì)容量的增加,充分仿真需要測試向量的數(shù)量也增加的更快。所以現(xiàn)在的ASIC 設(shè)計(jì)周期中,驗(yàn)證占了50%強(qiáng)。預(yù)計(jì)將來兩年的設(shè)計(jì)中,驗(yàn)證會達(dá)到70%。
對SOC 的設(shè)計(jì)者來說,有許多的驗(yàn)證方法。下圖是一個(gè)比較:
傳統(tǒng)的仿真技術(shù)已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足現(xiàn)在復(fù)雜的ASIC 驗(yàn)證對速度的需要。軟件仿真器和定制的軟件模型非常普及,但僅僅它們已不能滿足用戶的需要。硬件加速器有比較好的性能,但是貴而且使用不方便,并且對于具有高速數(shù)據(jù)處理的一些應(yīng)用,如MPEG 視頻處理等,仍然不能達(dá)到所需的性能。而現(xiàn)在世面上更加昂貴而且更難于使用的硬件仿真器,也不能滿足現(xiàn)在的ASIC 設(shè)計(jì)的性能需要。
所以現(xiàn)在ASIC 設(shè)計(jì)者更多的使用定制或者是可重構(gòu)的驗(yàn)證環(huán)境來做系統(tǒng)驗(yàn)證。驗(yàn)證設(shè)計(jì)的流程如下
圖所示:
綜合/分割的瓶頸用FPGA 作原型驗(yàn)證提供了很多好處,但同時(shí)也帶來了新的難題。把整個(gè)設(shè)計(jì)分割到多片F(xiàn)PGA 中經(jīng)常會花費(fèi)很長周期,從而也延遲了整個(gè)的開發(fā)周期。圖2 顯示了定制的原型驗(yàn)證傳統(tǒng)的設(shè)計(jì)流程。在流程中綜合和分割是分開的,互不關(guān)聯(lián)。綜合的時(shí)候不會考慮到設(shè)計(jì)如何分割到多片的FPGA 中,因此,不會達(dá)到所希望的速度。分割的方法也不會反饋,不會對利用率和系統(tǒng)性能帶來影響。因此,設(shè)計(jì)者會在分割和綜合之間反復(fù)多次。每次的反復(fù)都會浪費(fèi)時(shí)間,結(jié)果增加了驗(yàn)證的時(shí)間,降低了生產(chǎn)力。當(dāng)對源代碼改動的時(shí)候,這個(gè)過程有可能再會重復(fù)多次。更大的問題是仔細(xì)認(rèn)真作出的分割不會在對多個(gè)FPGA 綜合的時(shí)候用到而優(yōu)化系統(tǒng)性能。這有可能降低驗(yàn)證的性能,還會迫使你使用更多更大的更昂貴的器件。
所以要真正解決問題,就需要把FPGA 分割和綜合結(jié)合起來,并且在RTL 級就完成分割。結(jié)合Certify軟件就能做到這樣。這避免了反復(fù)的浪費(fèi)時(shí)間,加快了原型驗(yàn)證,縮短了驗(yàn)證的開發(fā)周期,使產(chǎn)品更快的推向市場。
Certify 是建立在Synplify 綜合技術(shù)上的,Synplify 的核心算法包括了適合每種FPGA 特殊結(jié)構(gòu)的綜合算法,它的時(shí)序驅(qū)動的綜合算法使設(shè)計(jì)可以達(dá)到盡可能高的系統(tǒng)速度。
這種綜合算法的內(nèi)核被擴(kuò)展到了運(yùn)用獨(dú)特的分割驅(qū)動綜合算法的Certify 中。有了這種方法,綜合過程就基于一個(gè)確定的分割。在多片F(xiàn)PGA 之間的時(shí)間預(yù)算自動的被包含在分割驅(qū)動的綜合算法中。
這個(gè)方法是Certify 解決方案的核心,提高了驗(yàn)證的性能,并使得設(shè)計(jì)者可以在幾乎相當(dāng)于實(shí)時(shí)的速度中對其設(shè)計(jì)進(jìn)行驗(yàn)證。
Certify 的綜合引擎,基于已經(jīng)驗(yàn)證的Synplify 技術(shù),可以處理超過100 萬門的設(shè)計(jì)。它同樣有能力進(jìn)行快速綜合。工作在450MHZ,1G 內(nèi)存的PC 平臺上的綜合測試,Cerity 綜合分割100 萬門的設(shè)計(jì)到幾個(gè)FPGA 器件中不多于9 小時(shí)。
Certify 用戶接口
Certify 提供了簡單易用的圖形用戶界面(如圖3),用戶可以快速的產(chǎn)生合理的分割,并可以估計(jì)驗(yàn)
證的速度和效率。Certify 利用成功的HDL 分析器,自動由HDL 代碼產(chǎn)生RTL 圖,并將二者都在窗口顯示。
其他的窗口顯示系統(tǒng)驗(yàn)證板和FPGA 的圖形說明。
Certify 中要首先要估計(jì)設(shè)計(jì)中每個(gè)模塊的面積和I/O 數(shù)。這個(gè)估計(jì)是通過調(diào)用估計(jì)模式下的綜合引擎
實(shí)現(xiàn)的;估計(jì)的結(jié)果作為RTL 塊圖的標(biāo)注顯示。
用戶通過從RTL 圖中選擇塊并把他們拖曳到目標(biāo)FPGA 器件中實(shí)現(xiàn)分割。Certify 直接為每個(gè)器件提供I/O 和面積利用率的百分比的反饋信息。這就使用戶可以完全控制分配及分割結(jié)果的快速反饋。然后設(shè)計(jì)者可以利用這個(gè)信息把選中的模塊分配到最合適的FPGA 中去,同時(shí)又保證分割的結(jié)果對面積和I/O 利用而言是合理的。
當(dāng)分配完成后,Certify 利用物理分割信息驅(qū)動綜合算法。這些選擇會影響電路的實(shí)現(xiàn)。因此當(dāng)把片內(nèi)
和片外的延遲及板子上的延遲時(shí)計(jì)算在內(nèi)時(shí),時(shí)序中的關(guān)鍵路徑能夠被優(yōu)化。
不改變RTL 源代碼而進(jìn)行邏輯復(fù)制
為了增加驗(yàn)證性能并將FPGA 之間的互連最少,Certify 讓設(shè)計(jì)者不改變HDL 源代碼而復(fù)制邏輯。例如在圖4-a 中,解碼器的16 位輸出驅(qū)動三片F(xiàn)PGA 中的邏輯。板子上的總線布線會導(dǎo)致系統(tǒng)速度降低,會產(chǎn)生版圖設(shè)計(jì)的問題并需要大量的利用珍貴的I/O 資源。
相反的,在圖4b 中,解碼器可以被復(fù)制在三個(gè)FPGA 中的每一個(gè)。盡管這樣做會增加總的芯片面積,卻減少了板子之間的互聯(lián)并大大的減少了I/O 的需求。在Certify 中,這個(gè)復(fù)制可以通過簡單的在RTLCertify 用戶接口Certify 提供了簡單易用的圖形用戶界面(如圖3),用戶可以快速的產(chǎn)生合理的分割,并可以估計(jì)驗(yàn)證的速度和效率。Certify 利用成功的HDL 分析器,自動由HDL 代碼產(chǎn)生RTL 圖,并將二者都在窗口顯示。其他的窗口顯示系統(tǒng)驗(yàn)證板和FPGA 的圖形說明。
Certify 中要首先要估計(jì)設(shè)計(jì)中每個(gè)模塊的面積和I/O 數(shù)。這個(gè)估計(jì)是通過調(diào)用估計(jì)模式下的綜合引擎
實(shí)現(xiàn)的;估計(jì)的結(jié)果作為RTL 塊圖的標(biāo)注顯示。
用戶通過從RTL 圖中選擇塊并把他們拖曳到目標(biāo)FPGA 器件中實(shí)現(xiàn)分割。Certify 直接為每個(gè)器件提供I/O 和面積利用率的百分比的反饋信息。這就使用戶可以完全控制分配及分割結(jié)果的快速反饋。
Certify 包含了強(qiáng)有力的“what-if”分析,用戶可以通過它快速分析分割對面積和I/O 的影響。通過在設(shè)計(jì)模塊上點(diǎn)鼠標(biāo)右鍵調(diào)用“what-if”分析。利用選中的模塊和所有以前分割的模塊之間的互連情況,Certify 計(jì)算把選中的模塊到分配到驗(yàn)證板上每個(gè)FPGA 時(shí)對面積和I/O 的影響,并把這個(gè)信息反饋給用戶。然后設(shè)計(jì)者可以利用這個(gè)信息把選中的模塊分配到最合適的FPGA 中去,同時(shí)又保證分割的結(jié)果對面積和I/O 利用而言是合理的。
當(dāng)分配完成后,Certify 利用物理分割信息驅(qū)動綜合算法。這些選擇會影響電路的實(shí)現(xiàn)。因此當(dāng)把片內(nèi)
和片外的延遲及板子上的延遲時(shí)計(jì)算在內(nèi)時(shí),時(shí)序中的關(guān)鍵路徑能夠被優(yōu)化。不改變RTL 源代碼而進(jìn)行邏輯復(fù)制為了增加驗(yàn)證性能并將FPGA 之間的互連最少,Certify 讓設(shè)計(jì)者不改變HDL 源代碼而復(fù)制邏輯。例如解碼器的16 位輸出驅(qū)動三片F(xiàn)PGA 中的邏輯。板子上的總線布線會導(dǎo)致系統(tǒng)速度降低,會產(chǎn)生版圖設(shè)計(jì)的問題并需要大量的利用珍貴的I/O 資源。相反的,在圖4b 中,解碼器可以被復(fù)制在三個(gè)FPGA 中的每一個(gè)。盡管這樣做會增加總的芯片面積,卻減少了板子之間的互聯(lián)并大大的減少了I/O 的需求。在Certify 中,這個(gè)復(fù)制可以通過簡單的在RTL視Figure 3
用戶通過從RTL 圖中選擇塊并把他們拖曳到目標(biāo)FPGA 器件中實(shí)現(xiàn)分割。Certify 直接為每個(gè)器件提供I/O 和面積利用率的百分比的反饋信息。這就使用戶可以完全控制分配及分割結(jié)果的快速反饋。
Certify 包含了強(qiáng)有力的“what-if”分析,用戶可以通過它快速分析分割對面積和I/O 的影響。通過在設(shè)計(jì)模塊上點(diǎn)鼠標(biāo)右鍵調(diào)用“what-if”分析。利用選中的模塊和所有以前分割的模塊之間的互連情況,Certify 計(jì)算把選中的模塊到分配到驗(yàn)證板上每個(gè)FPGA 時(shí)對面積和I/O 的影響,并把這個(gè)信息反饋給用戶。
然后設(shè)計(jì)者可以利用這個(gè)信息把選中的模塊分配到最合適的FPGA 中去,同時(shí)又保證分割的結(jié)果對面積和I/O 利用而言是合理的。
當(dāng)分配完成后,Certify 利用物理分割信息驅(qū)動綜合算法。這些選擇會影響電路的實(shí)現(xiàn)。因此當(dāng)把片內(nèi)
和片外的延遲及板子上的延遲時(shí)計(jì)算在內(nèi)時(shí),時(shí)序中的關(guān)鍵路徑能夠被優(yōu)化。
不改變RTL 源代碼而進(jìn)行邏輯復(fù)制
為了增加驗(yàn)證性能并將FPGA 之間的互連最少,Certify 讓設(shè)計(jì)者不改變HDL 源代碼而復(fù)制邏輯。例如在圖4-a 中,解碼器的16 位輸出驅(qū)動三片F(xiàn)PGA 中的邏輯。板子上的總線布線會導(dǎo)致系統(tǒng)速度降低,會產(chǎn)生版圖設(shè)計(jì)的問題并需要大量的利用珍貴的I/O 資源。
相反的,在圖4b 中,解碼器可以被復(fù)制在三個(gè)FPGA 中的每一個(gè)。盡管這樣做會增加總的芯片面積,
卻減少了板子之間的互聯(lián)并大大的減少了I/O 的需求。在Certify 中,這個(gè)復(fù)制可以通過簡單的在RTL 視圖中拖曳解碼器到版圖視圖中的每個(gè)FPGA 中去實(shí)現(xiàn)。
由于原型的主要目的是對ASIC 進(jìn)行驗(yàn)證,僅僅因?yàn)轵?yàn)證的目的設(shè)計(jì)者是很不愿意改變HDL 源代碼的。事實(shí)上,很多機(jī)構(gòu)中,驗(yàn)證小組被嚴(yán)格的禁止對源代碼進(jìn)行改動。利用傳統(tǒng)的綜合和分割建立原型是不可能不改變源代碼而在FPGA 中復(fù)制邏輯的。這就導(dǎo)致了效率低的-有時(shí)是不可行的原型驗(yàn)證。只有Certify可以使設(shè)計(jì)者不改變源代碼而復(fù)制邏輯,只需要把目標(biāo)從RTL 視圖中拖曳到目標(biāo)器件就可以了。
不改變RTL 源代碼而建立探測點(diǎn)傳統(tǒng)的綜合和分割的方法中,說明一個(gè)要被輸出到FPGA 邊界作為探測點(diǎn)的信號,需要改變HDL 源代碼。只有Certify 可以使設(shè)計(jì)者不改變HDL 代碼而指定探測點(diǎn),只要把信號拖曳到和FPGA 關(guān)聯(lián)的管腳分配表上即可。
重復(fù)的設(shè)計(jì)流程驗(yàn)證的一個(gè)主要目的是快速的找到并修改原設(shè)計(jì)中的錯誤。為了支持重復(fù)的驗(yàn)證-調(diào)試-修改-驗(yàn)證-調(diào)試這樣的周期,驗(yàn)證的工具必須最佳化。Certify 是這個(gè)設(shè)計(jì)流程的最佳工具。除了為設(shè)計(jì)中的每個(gè)FPGA 建立門級網(wǎng)表,Certify 也為每個(gè)FPGA 輸出HDL 源代碼。修復(fù)設(shè)計(jì)中bug 的重復(fù)過程通常被限制到設(shè)計(jì)中為數(shù)不多的模塊中去。通過Certify,只有需要重新實(shí)現(xiàn)的FPGA 才會被影響,這樣就減少了增加設(shè)計(jì)改變所需要的時(shí)間。
關(guān)于IP 核ASIC 設(shè)計(jì),特別是被認(rèn)為是芯片上系統(tǒng)的一個(gè)明顯趨勢是設(shè)計(jì)的重用性,即那些不論是自己生產(chǎn)還是買回來的IP 核。Certify 可以容易的使用它們。
如果有RTL 代碼,就可以放入設(shè)計(jì)過程中去,并在一個(gè)或多個(gè)FPGA 上驗(yàn)證。另一種方法是把它當(dāng)作FPGA外面的東西放入到系統(tǒng)中。Certify 中,這將被認(rèn)為是一個(gè)黑盒子。這個(gè)器件在版圖中被定義,然后在分割過程中被例化。同樣的方法可以例化標(biāo)準(zhǔn)的功能模塊例如UART 和存貯器。
靈活選擇實(shí)現(xiàn)方式Certify 的輸出為測試板產(chǎn)生一個(gè)頂層的網(wǎng)表,為每個(gè)FPGA 產(chǎn)生一個(gè)可以進(jìn)行布局布線的優(yōu)化網(wǎng)表,這就使得使用者可以定義一個(gè)定制驗(yàn)證板,并通過布線互聯(lián)器件例如I-Cube 建立驗(yàn)證板。它也可以被用于流行的來自Aptix 的產(chǎn)品System Explorer 的輸入。System Explorer 把Certify 創(chuàng)立的網(wǎng)表作為輸入,在驗(yàn)證板上放置器件,配置可編程的板子之間的互聯(lián),然后調(diào)用FPGA 布局布線工具執(zhí)行每個(gè)器件。
Certify 支持FPGA 供應(yīng)商最流行的FPGA 器件。在Certify 的第一個(gè)發(fā)行版本中支持的有Altera 的Flex10k,Apex,ApexII,Xilinx 4k 以及Xilinx Virtex 系列。利用Certify 可以用最流行的FPGA 器件以及幾乎所有的驗(yàn)證板為用戶提供了最靈活的實(shí)現(xiàn)方案選擇。
Certify 將RTL 多片分割和FPGA 綜合技術(shù)結(jié)合起來,是第一個(gè)也是唯一的著眼于ASIC 驗(yàn)證和利用多片F(xiàn)PGA 進(jìn)行驗(yàn)證的綜合產(chǎn)品。Certify 的獨(dú)特的分割驅(qū)動綜合方法使得設(shè)計(jì)者達(dá)到最快的驗(yàn)證速度。Certify大大簡化了ASIC 驗(yàn)證,減少了驗(yàn)證開發(fā)時(shí)間,并使其快速市場化。
評論
查看更多