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