本文將著眼於藉由更好的產能、效能以及容量來處理百萬個邏輯閘以上等級的系統,同時發展以模擬與智財(IP)為基礎的驗證技術和流程。而這些將建立在現有的工具、語言標準以及現行工程上的知識,方便現有使用者只需要付出最小的代價即可達到所需要求。現行的策略並不夠有彈性且規模不夠大到應付未來驗證所需。而以傳遞訊號為基礎(transaction-based)的測試,協定驗證以及可量化的效能將可使得測試只需花費更少的時間。(圖一)為新測試解決方案與現有策略的比較。
分散式平行處理
在此提出一套可以支援各家模擬器的平行模擬解決方案,此工具稱之為SimCluster。SimCluster同時支援多個模擬器同時運作,藉此可以達到更快更迅速的模擬,也藉此節省使用者花費在模擬上所需的時間。同時SimCluster除了支援Verilog模型外也支援VHDL、C甚至於Perl模型。參考(圖二)
SimCluster可以藉由區域網路來溝通多台電腦主機,除了可以將模擬效能進一步提升外,也可以打破單台電腦的記憶體以及硬碟的容量限制,一般來說,將可同時支援2到10台電腦;如(圖三)的Linux區域網路範例。同時,經過證明,SimCluster可以給模擬速度帶來數倍的成長,如(圖四)。
《圖三 以Linux區域網路為例之SimCluster》 |
|
《圖四 SimCluster下的模擬器速度提升狀況》 |
|
通訊產業現狀
現在由於工業發展和創新高速家用和商業用網際網路服務,使得資料傳輸量(data rate)以每兩年四倍的速度成長,如此將導致在所有通訊的領域,包含有WAN和MAN核心網路、整合多功層次以及LAN路由器(router)、交換器(switch),在系統複雜度上有著無法預測的高成長。整體來說一個產品發展團隊的產能(productivity)主要是以其效率(efficiency)與有效性(effectiveness)來衡量,而企業的成功與否,則主要取決於其和對手相比較是否能夠有著較佳的產品發展週期的長度與時間點。
現行設計上的挑戰
目前通訊產業產品開發環節上所面臨的挑戰,主要來自於ASIC (application specified IC) 的高度使用以及無法預測的系統複雜度,而這些系統的功能驗證的範圍和規模也因此無法事先評估。對於設計、除錯和系統的正確性來說,單位時間模擬所能處理的量是相當關鍵的,通常分配大約50%到70%的時間在處理功能的驗證。
設計回合時間為產能的衡量標準
通常在數百萬邏輯閘的設計上,每經過一個回合的設計就需要模擬一次功能測試,而在單一電腦上面跑個別測試所需要的時間可能是數分鐘、數小時、甚至是數天。單位時間的模擬量一般來說大約是每秒鐘十數個週期,單位時間的模擬量通稱為SCPS(Simulated Cycles per Second)。
關鍵設計產能的評估主要是取決於可以在多少時間內修正一個錯誤或是更改設計,而這個標準通常稱為回合時間──TAT (Turn Around Time)。TAT主要來自於實現或是驗證系統的現行功能改變所需要的時間。通常來說,當在開發一個大型的系統,常常會有數百個錯誤或是數十個功能ECO。平均來說,每一個設計上的變動大概需要5個小時以上的時間。在每一開發週期,需要跑一小量的功能改變測試(check in test)以及完整的功能測試 (functional regression test)。
而單位模擬的產量的有效性對於TAT來說是相當重要且關鍵的。以一個典型的通訊計畫為例,假設此計劃的模擬特性如(表一),且該計畫擁有適當的模擬所需要的資源、計畫團隊由15個工程師所組成,根據TAT, 我們會建議設計團隊每天可以跑兩個回合的功能改變測試,以及每兩天跑一次全面功能測試。假設一個計畫包含有兩百個錯誤以及ECO,這會使得這個計畫需要160天的時間去完成。而因為整個設計團隊有15個人,所以整體投資將會是2400個人力資源乘以天數的投資。
通訊計畫模擬特性範例
測試 |
模擬時間 |
TAT |
每天的回合數 |
錯誤的百分比 |
功能改變測試 |
5 小時 |
10 小時 |
2 |
60 % |
基本功能測試 |
16 小時 |
21 小時 |
1 |
30 % |
全面功能測試 |
24 小時 |
29 小時 |
1/2 |
10 % |
假如TAT可以減少將會怎樣?
藉由增加單位模擬量可以改進TAT。SimCluster可以支援分散式模擬,並藉此增加單位模擬量從200%到700%不等。SimCluster可以支援SoC的模擬,以及整合Verilog、C或是perl的模型,且可以與數種不同的模擬器、硬體加速器或是模擬器一同平行運作。藉由使用SimCluster可以提升模擬的速度,以提升300%為例,如此一來TAT平均將降低32%,而整體設計所需要的時間將降低到120天,約25%。同時,資源投資將從2400個人力資源乘以天數,降低到1800個人力資源乘以天數。如(表二)。
TAT減少之後的測試所需時間
測試 |
模擬時間 |
TAT |
每天的回合數 |
錯誤的百分比 |
功能改變測試 |
1.75 小時 |
6.75 小時 |
3 |
60 % |
基本功能測試 |
16 小時 |
21 小時 |
1 |
30 % |
全面功能測試 |
8 小時 |
13 小時 |
1 |
10 % |
以上的假設是基於在基本功能測試上並沒有使用SimCluster。這假設是基於這些測試將會耗盡模擬伺服器的資源,進而無法使用SimCluster得到模擬速度的加快。
使用SimCluster所需要付出的代價和硬體加速器( hardware accelerator )以及模擬器(emulator)比起來,是相對低的,因為SimCluster只使用既有的模擬器的許可證(liscence)以及現有的模擬伺服器資源,而這些資源在計畫的一開始即擁有。所以使用SimCluster分散式模擬所需要的所有資源也就只有SimCluster的許可證,而這通常會小於10萬美金。而在模擬環境的整合上,通常也只需要小於兩天的時間。假設一個計畫需要5個主要的模擬環境的整合,也就是說需要10天來準備,但是藉由使用SimCluster,接下來可以節省25%的設計時間以及資源投資,所以總共來說可以節省12.5%到17.5%。
除此之外,SimCluster也提共了以下的好處:
- ˙容易和現有的模擬器整合;
- ˙編譯時間同時也可以減少200%到700%;
- ˙效能隨著模擬器引擎加速而上升;
- ˙支援 cycle-based、RTL以及gate level各層級設計;
- ˙簡單的設定;
- ˙模擬的成效和容量成長200%到700%。
其他比較
SimCluster或許不能取代硬體加速器或是模擬器,可是相較於兩者,SimCluster擁有一些其他的優點。第一,SimCluster需要較少的設定時間。第二,SimCluster可以提供很有彈性的環境,並可以和各種模擬器整合在一起,或是C模型,甚至可以是Perl模型,而這對於一個複雜的設計來說,比方SoC,是相當有利的。
一般來說,和硬體加速器以及模擬器來說,SmiCluster有以下的優點:
- ˙較容易與現有模擬器整合;
- ˙系統較有彈性的支援Verilog HDL以及C模型;
- ˙較快的設定時間;
- ˙沒有邏輯閘數目的限制;
- ˙不錯的單位模擬量的增加;
- ˙只需要五分之一的代價。
結論
SimCluster是一個相當不錯的模擬器解決方案,它可以藉由增加模擬器速度200%到700%,來改進TAT達32%,而這使得驗證所需要的時間可以減少25%以及減少全部約17%的研發代價。SimCluster使用現成的模擬器許可證以及模擬器資源,所以可以維持低工具投資。(作者郭斯彥為台大電子工程學研究所/台大系統晶片中心研發教授;杜威廷為研究生)
|
|
許多數位通訊系統,同時包含了緊密整合的射頻(RF),類比/混合信號和數位訊號處理(DSP)功能,而這些功能因為含有射頻載波,使得不易使用傳統的暫態模擬。相關介紹請見「新世代EDA工具挑戰混合信號設計」一文。 |
|
EDA業者的設計資料庫,是一複雜、精密,支援EDA應用程式中涵蓋RTL到光罩(mask)廣大範圍資料模組的軟體系統。你可在「新世代IC設計資料庫的開放與互通」一文中得到進一步的介紹。 |
|
SoC的高複雜性設計必須仰賴EDA供應商提供全新的設計解決方案,以實現類比前後端、混合信號和數位電路的完全整合。在「IC設計工具技術趨勢與探索」一文為你做了相關的評析。 |
|
|
|