Global Sources
電子工程專輯
 
電子工程專輯 > 測試與測量
 
 
測試與測量  

利用模擬技術縮短百萬閘ASIC設計時間

上網時間: 2003年03月30日     打印版  Bookmark and Share  字型大小:  

關鍵字:network security protocol  prototype  ASIC  FPGA  Verification 

單晶片系統的開發工作包括硬體和軟體兩部份,軟體開發常常要等到硬體設計完成拿到樣片之後才能進行。本文介紹如何利用模擬技術進行硬軟體協同驗證,使軟體開發人員不用等到真正的樣片出來即可在模擬模型上開始設計,因而縮短開發周期。

Luna 340是Chrysalis-ITS網路安全處理器系列產品中的第一個型號,它用多個嵌入式RISC核心設立一個完整的SoC,可以提供對稱╱非對稱密碼處理及相關網路安全協議處理。Luna 341是一個伴隨處理器(companion processor),其高速模組化求冪結構、加密與散亂算法加速硬體均設計成可與Luna 340實現無縫連接,並藉由一個32位元66MHz PCI介面提供與SSL相關的高速密碼運算(RC4、MD5、SHA-1)(圖1)。

Luna 340的設計相當於一個500萬閘ASIC,是我們與Mosaid Technologies合作共同完成的。它採用0.25微米製程,內含2,200萬個電晶體。Luna 340包含5個ARC RISC核心及相應記憶體、兩個66MHz PCI介面以及一個複雜的(256位元)乘法器。最先做出具有一定功能的矽片後,發現性能沒有達到預期的效果,有兩個地方需要改進。

首先就是要為軟硬體協同設計準備一個更好的環境,這一點Axis Systems模擬系統能夠做到。其次,由於安全協議市場更加規格,可以用專門硬體模組代替基於微處理器的解決方案。Luna 341是Chrysalis-ITS第一個使用這種硬體模組的晶片,它採用一種以平台為基礎的SoC設計方法產生一個分層可擴展模組化設計,相當於一個幾百萬閘ASIC。模組化求冪加密引擎(RC4、MD5、及SHA-1)都是由Chrysalis-ITS的IC設計人員設計,由於採用多個時脈域,開發小組可以使每個加密引擎都發揮出最大性能。Luna 341的原型完全是在多個FPGA上實現的,現在已經改為ASIC。圖1;Luna 340和Luna 341晶片組框圖。

Luna 340是設立在處理器基礎上的,因此有大量軟體需要設計和驗證,包括驅動程式、應用代碼及多達128kB的嵌入式底層作業系統。Luna 340控制處理器從主機接受命令,然後將任務分配給它自己的對稱處理器或Luna 341的密碼加速器,這些命令靈活而有序地控制高級密碼作業。

我們的驗證工具套件括VHDL和Verilog模擬程式及ARC、Axis Systems、Cadence、Mentor Graphics的軟體開發工具,邏輯模擬程式沒有我們所需要的系統級驗證性能,因此我們在可重覆配置運算(RCC)技術基礎上增加了Axis的硬體系統,這樣一來其性能比標準邏輯模擬要快好幾個數量級,可作為我們驗證工作的基礎。現在我們整個設計小組都在使用RCC系統。

RCC技術採用可程式元件使模擬加速,系統模擬及硬軟體協同驗證都在一個平台上,它只要一個設計數據庫。可以設立RCC系統加速邏輯模擬,也可以利用模擬能力讓它看起來像一個元件以便用實際目標系統對其進行驅動。

對硬體工程師來說,RCC就像他們熟悉的邏輯模擬器一樣(圖2),由於它可以很快從基於軟體的邏輯模擬轉換成模擬加速和系統模擬,因此工程師們能夠在很高的速度下進行模擬,然後在除錯時轉換成邏輯模擬模式。

對於軟體工程師來說,感覺就像真正從晶圓廠拿到了硬體。這種系統讓他們在所喜歡的主機環境下工作,他們可以用標準開發工具,包括指令集模擬器和原始碼除錯器,而不需要面對從邏輯模擬器得到的波形和大量記錄文件。軟體工程師甚至可以單步執行代碼,觀察每一行代碼執行之後暫存器會有什麼變化。

RCC技術利用可程式協同處理器加速邏輯模擬的速度,每個處理器設計成執行一項任務,在對設計進行匯編過程中,處理器的數量和類型選擇取決於設計種類;然後數以萬計的處理器映射到FPGA中,採用高效通訊算法使用事件驅動平行運算結構執行。

在我們進行Luna 340網路安全晶片開發時還沒有RCC模擬器,Luna 340使用Verilog和VHDL混合方式設計。在Luna 340B設計快結束的時候我們才加入Axis RCC,那時已經將設計綜合成閘,可以很容易在RCC系統上執行藉由綜合的閘級代碼。在設備提供的一個星期?,我們就能對340B設立模型。我們使用RCC系統來驗證新設計,並提供模型執行Luna 341,Luna 340B出帶完全成功。

Luna 341採用Verilog設計,這樣可以在Axis上用RTL代碼來執行並除錯設計,RCC系統支援行為、RTL和閘級描述。

驗證帶來的挑戰

我們為自己的元件提供了大量專用軟體,它也是整個系統的一個重要部份。有了這麼多軟體,一個能提供元件周期精確描述和支援軟體升級的驗證環境就非常重要。我們選擇ARC核心用於這套晶片組,因為它具有定製功能。由於核心具有擴展性,而客戶通常會做很大的修改,所以對供應商來說要提供周期精確模型並不容易。所以如果沒有一個好的方法來模擬,我們就不得不在增加額外功能以提高性能和具備良好硬軟體協同設計環境之間作一個適當的選擇。

有了RCC系統後,我們就有一種簡單的方法利用閘級設計為軟體工程師提供周期精確模型。所以除了驗證功能外,我們現在還能夠發現如衝突和等待狀態之類的問題。

由於資源衝突,軟體編寫應在5,000個時脈周期完成的功能結果可能要花8,000個時脈周期。假如IC不是周期精確的就很難發現等待狀態,也難於預測後面的性能,RCC系統能很好解決這種情況。我們這?5個ARC核心都是可以綜合的,而且還有網表,因此只需在RCC系統上簡單地執行所作的設計即可,不再需要供應商提供的模型。在模擬模式下執行系統時,它就是我們所希望的周期精確模型,也即可以在上面執行實際的軟體。Axis既是一個模擬加速器,也是一個模擬器,它絕不僅僅只是周期精確模型,它為硬體和軟體工程師們提供了一種很有幫助的完整模擬與除錯環境。

我們面臨的另一個主要問題是缺乏原始模擬性能,只有邏輯模擬我們還不能得到足夠的數據來測試系統,但是RCC系統能使系統性能明顯提高。

對於某個特定的測試,硬體工程師需要花兩天時間進行邏輯模擬,並把結果提供給RCC系統。如果在模擬加速模式下,同樣的測試只需花40秒時間。這一原始功能可以讓開發小組比以前增加更多的測試驗證更複雜的性能,在處理多晶片系統時這一點尤其重要。

協同驗證

我們的設計過程已經逐漸開始需要硬軟體協同驗證。因為我們可以執行硬體周期精確模型,所以能大幅增加對整個硬體和軟體設計信心,Luna 340最初設計過程中沒有採用硬軟體協同驗證,驗證只能覆蓋三層軟體代碼。設計人員先把驅動程式(如PCI驅動程式)和底層作業系統裝入元件中,再在上面增加應用代碼。把系統整合在一起時系統勉強還能工作,但沒有我們想象的那麼快,如同前面提到的那樣。

當設計人員藉由RCC模擬器執行實際的客戶軟體時,我們發現軟體工具改變對許多不同任務都可以減少多個時脈周期;我們還能發現硬體的瓶頸所在,這樣有助於把精力集中在設計上。這在設計輔助晶片時很明顯,複雜的指令在最初設計時候要藉由350個周期,現在只要200個周期就能完成。

有了ARC的周期精確模式,設計人員可以發現無作業狀態,即核心想在同一個時間?做兩件事情,由於資源衝突,核心需要先完成一件事然後再做另一件,當我們發現為什麼會經常存取一個元件後,就可以藉由改變軟體來避免這種情況,我們可再執行一次軟體以確認衝突確實已不存在。

RCC系統成了我們晶片的絕對精確模型。將系統用一根電纜連接到板上,這樣就得到了整個系統的模型。我們在它上面簡單地執行一下軟體,有些軟體可能是在RCC系統上執行,有些可能是在板上的處理器上執行,或者兩者兼而有之。由於這時硬體還是RTL描述,所以在結果上可以對硬體直接進行修改。這樣能進行真正的折衷分析,修改硬體或軟體使系統性能達到最佳。

採用硬軟體協同驗證方法最大的好處就是可以使用熟悉的硬體開發軟體,當我們開始設計Luna 341時,用RCC系統來模擬Luna 340B並執行軟體,此時Luna 340B還正製造過程中。這樣Luna 341的軟體開發就可以提前4個月的時間,而不需要等到4個月後有了真正的晶片後再開始開發軟體。

硬軟體協同驗證增加了我們的自信心,晶片返工率也從90%降到了30%,這也意味著大幅降低了成本。對於0.15μm製程,少一次返工相當於省下100萬美元,更不用說4個月製造晶片的時間成本了。

用RCC系統進行硬軟體協同驗證的另外一個好處就是能夠強迫並釋放軟體環境中的節點,我們可以用它來模擬時序如加電序列。安全類元件中由於要確保感應資訊不會在無意中流失,因此上電序列非常多。我們也可以按檢查器和監護器的形式增加性能代碼,這樣能顯示出執行時的資訊,例如一個特定的事件序列觸發檢查器時在Unix命令行中就會顯示“晶片已清空”等資訊。這些特性使得系統作業的透明度有了很大改進。圖2:可重覆配置運算系統硬體結構。

RCC為真正的硬軟體協同驗證提供了必需的性能,這樣在原型樣片出來前即可對嵌入的軟體進行早期測試。它增強了硬體工程師所做的驗證,減少計畫開發時間,並增加了整個設計過程的信心。

在模擬器上進行除錯

很多模擬器缺乏先進的硬體除錯能力,如斷點除錯,在模擬的時候不能回到任何斷點再繼續進行交互除錯。另外它們還綜合成閘級表述,造成不明確而在除錯過程中難以克服。

用RCC做模擬就沒有這些限制。它在程式編制完成的協同處理器上直接執行RTL,這樣硬體驗證工程師可以除錯他們所寫的代碼,而不是藉由綜合後的表述。以軟體為基礎的邏輯模擬器與RCC結合得很密切,工程師可迅速地在模擬和邏輯模擬間轉換,因而得到非常強大的除錯能力,設計人員也可以回到模擬的任何地方繼續觀察和除錯他們的設計。

硬體驗證工程師發現這種方法比傳統的模擬方法要好很多,他們每天晚上執行軟體,早上就可以檢查結果。由於邏輯模擬與模擬器沒有聯繫,在設計人員檢查頭一天晚上的結果時我們還可以繼續執行實際測試。

另週邊設備置非常簡單,用不了一天時間內就可把Luna 341裝上並在RCC系統上執行。匯編的時間相對來說也較短,只要1小時就可以將整個系統描述匯編好。與其它模擬器不一樣,RCC系統不需要使用邏輯分析儀,這也進一步簡化了安裝要求。以前設計人員在特定事件產生時設定探測點來觸發,現在工程師只需要規定他們想要看到結果的時間長短即可。

執行性能的增加使工程師可以完成附加測試,設計小組可不希望在花了很多時間進行除錯後性能一點也沒有提高。

本文總結

Luna 340是一個相當於500萬閘的ASIC設計,它在Axis Xtreme系統上進行完全模擬後可使系統得到驗證,並加速軟體開發和系統除錯的速度。在模擬基礎上的硬軟體協同驗證使我們不僅能改進系統性能,還縮短了設計周期。它可以讓軟體設計人員在模擬結果上開始設計,這比真正拿到晶片提前了4個月的時間。現在我們採用的是0.15μm製程,晶片返工一次要多花4個月的時間及100萬美元。從上可以看出,模擬已不再是一個可有可無的東西,還有很多地方可以用到它。

作者: TTerry Thomas博士


副總裁


Chrysalis-ITS




投票數:   加入我的最愛
我來評論 - 利用模擬技術縮短百萬閘ASIC設計時間
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首