Global Sources
電子工程專輯
 
電子工程專輯 > EDA/IP
 
 
EDA/IP  

開放原始碼工具協助工程師使用C++進行硬體驗證

上網時間: 2006年10月23日     打印版  Bookmark and Share  字型大小:  

關鍵字:驗證  多執行緒  模擬器  開放原始碼  verification 

驗證工程師Mike Mintz堅信,IC驗證需使用物件導向的編程技術,因此他開發了兩個開放原始碼的軟體程式,以協助工程師們使用C++進行硬體驗證工作。此外,他在工作之餘,還與人合作撰寫了一本以此為主題的書。

Mintz在一家大型系統設計公司工作,另一位作者Robert Ekendahl是昇陽電腦公司的首席驗證工程師。他們透過自己創立的www.trusster.com網站,對外提供兩個開放原始程式。其中一個是名為Teal的C++資料庫,它將C++改編為Verilog,並且提供執行緒支援。另一個程式為Truss,它是在Teal的基礎上進行C++驗證的應用程式架構。

Mintz和Ekendahl還出版了一本名為《用C++進行硬體驗證:專業手冊》的書。該書所附贈的光碟中便提供了Teal和Truss這兩個程式。

“據我所知,至今還沒有用C++進行驗證的有關書籍,但卻已有許多人使用C++進行驗證。” Mintz說,“我認為能將我20年的軟體工作經驗集結成書是一件很不錯的事。”

Mintz認為,C++是目前適用於驗證的最佳物件導向語言。“不要讓我從SystemC開始,”他警告道,“它是一種很好的建模語言,但它對於驗證來說毫無價值。它將樣板(templete)放在你的面前──這是C++的通用術語,但是在進行驗證的過程中幾乎用不到。”

人們期待採用C++來做驗證工作,然而,這還需要相應的軟體才能實現。這也就是Teal和Truss產生的原因。

Mintz做過15年軟體工程師,他在6年前第一次接觸驗證工作時便編寫了Teal。“我每次去一家新公司就得重新建置Teal,”Mintz說。因此,最終當他問老闆是否能公開Teal時,他的老板也同意了。

Truss則是去年Mintz和Ekendahl都還在為飛思卡爾半導體公司工作的時候所編寫的。“Robert問我:‘你已經有許多自行開發的東西,為什麼不把它公開出來呢?”Mintz回憶道。

Mintz將Truss與Synopsys-ARM公司的驗證方法學手冊或者Mentor Graphics公司的先進驗證方法學進行了比較,“不同之處在於它是開放且免費的,而且採用的是C++語言。”

“這是非常清楚的,”Ekendahl說,“物件導向的驗證正成為業界最佳的實務驗證方法。”他表示新書內容包含從基本到先進物件導向編程技術用法,其指導原則也能直接適用於SystemVerilog、Vera和Specman等語言。

Ekendahl指出,目前已有好幾家公司正使用Teal和Truss。這些軟體程式與C++正逐漸吸引了起更多的關注。

模擬環境供應商Aldec公司的執行長Stanley Hyduke在www.trusster.com中發表了他對這本新書的評論。“這本手冊對於物件導向編程以及如何將其應用於硬體模擬,為讀者提供了一個清晰的見解,”Hyduke寫道,“它讓我清楚瞭解,對於下一代硬體驗證來說,C++、Teal和Truss可組成一個強大的平台。”

C++到Verilog的過渡

Mintz將Teal形容為一個‘墊圈’(gasket),它透過Verilog編程語言介面(PLI)而將C++程式碼和Verilog模擬環境連接起來。“它讓你每天採用C++來編寫程式,但又能與硬體相互作用,”Mintz說。

只要你不試圖在C++中建置一個高頻率的時脈,那麼PLI是相當具有效率的,Mintz表示。他還說:“只需要將程式放入Verilog中。我們用Verilog寫了一個看門狗計時器,但是所有的邏輯都在C++中。”

Teal還提供可攜式Posix執行緒的封包器,因而可提供多執行緒支援。“因為硬體是支援執行緒的,所以驗證系統也需要支援多執行緒。” Mintz表示,“你想執行多少執行緒都可以,我就執行過4,000或5,000個執行緒。”

Teal的其他特性包括穩定的隨機數字產生器、彈性化的記錄工具和用於驗證系統各部份之間傳遞參數的字典式命名空間。記憶體命名空間和查找功能為‘備份’記憶體讀寫提供了簡便的方法。

所有這些功能只佔用很小的空間。據Mintz透露,Teal僅僅包含了6個原始文件和大約3,000行的程式碼。因為它的程式碼是開放的,用戶可以視情況修改軟體;而唯一的限制是他們不得再進行商業轉售。

Teal可與Cadence、Synopsys、Mentor Graphics和Aldec的Verilog模擬器以及開放原始碼的Icarus模擬器一起工作。

正如Mintz所說的,雖然Teal提供了“驗證系統所需的核心”,但它並未提供一種方法學。Truss由一系列位於Teal之上的類別、樣板和協議所組成,並描述測試、測試平台和驅動程式應如何執行。“如果你想看看我們如何建構驗證系統,那就看看Truss吧!”Mintz說。

Truss包含頂層控制器、測試平台和看門狗計時器三大部分,Mintz表示,“它涉及了這三個組成之間如何出現、作出哪些指令要求,以及他們如何共同運作來執行測試。”

Mintz表示,他和Ekendahl並不計劃將Teal或Truss投入市場。“只透過提供一個架構,是不能賺錢的,”他說。不過有些人可能會私底下提供有關這些程式的服務,他指出。

他們將透過Email對Teal和Truss盡可能地提供技術支援,Mintz表示。不過也要知道他其實很忙碌。

“我們花了大約2,000小時來寫這本書,Teal和Truss也耗盡了同樣的心力,”他說,“我每週工作60小時,但在家工作的時間還更長。”

作者:葛立偉




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


EE人生人氣排行
 
返回頁首