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