在設(shè)計過程早期發(fā)現(xiàn)并解決問題
在設(shè)計過程早期發(fā)現(xiàn)并解決問題
在電路和系統(tǒng)設(shè)計中,需要昂貴的驗證周期這一點證明電子設(shè)計師和 EDA 供應(yīng)商也都是不免要犯錯的,所以最好使用能避免大多數(shù)錯誤的工具和方法。
要 點
● 制造能力與工程生產(chǎn)率之間的差距繼續(xù)在加大。
● 現(xiàn)在不存在標準的驗證方法。
● 形式證明可減小設(shè)計師對功能驗證的依賴性。
● 由于深亞微米加工存在許多電子物理學(xué)問題,電路驗證的重要性正在增加。
設(shè)計驗證需要每個設(shè)計小組花費大量的時間和資源。設(shè)計驗證費用與設(shè)計的規(guī)模和設(shè)計所涉及學(xué)科的多樣性成正比。要求軟硬件協(xié)同設(shè)計或?qū)τ谑褂脭?shù)字和模擬兩種技術(shù)的設(shè)計,驗證起來最為復(fù)雜。工藝技術(shù)的發(fā)展使工程師可以在外形尺寸遞減的情況下使用更多的門電路。如今,一項普通的設(shè)計就要使用幾百萬個門,許多設(shè)計則使用幾千萬個門;最先進的工藝不久將在一塊集成電路上制作 1 億個門。
驗證技術(shù)的發(fā)展落后于半導(dǎo)體制造能力,這是產(chǎn)生設(shè)計差距的重大因素。但這種困難并非剛剛出現(xiàn)。在將產(chǎn)品交付生產(chǎn),并提供一套足夠而又高效的測試程序之前驗證一項設(shè)計的正確無誤,會遇到種種問題,這些問題至少已經(jīng)存在35 年了。制造能力與設(shè)計驗證之間的差距逐步在擴大,因而,驗證費用也隨著設(shè)計復(fù)雜度的提高而逐步上升。設(shè)計驗證的目的是保證設(shè)計正確無誤,但按照設(shè)計所處的不同開發(fā)階段,這一目的也具有不同的意義。正確無誤就是指符合規(guī)范、設(shè)計規(guī)則、工業(yè)標準以及企業(yè)設(shè)計慣例。正確無誤也意味著兩種實現(xiàn)方法在不同抽象等級如 RTL(寄存器傳送級)和門級上的等效性。
設(shè)計小組還必須保證軟硬件接口協(xié)議的正確設(shè)計與實現(xiàn)。盡管上述所列問題給人印象深刻,但只是部分地描述了你必須測試與驗證的可能的設(shè)計與實現(xiàn)問題。在 2003 年 9 月 8 日舉行的 Synopsys 公司用戶大會上,Synopsys 公司主席兼首席執(zhí)行官 Aart de Geus 在主題演說中說,在所有新的 IC 和 ASIC 中,有 61% 需要至少一次反復(fù)。在這些器件中,由于功能邏輯錯誤引發(fā)的問題而出差錯的占43%;只有 3% 的故障原因用現(xiàn)在的驗證技術(shù)無法確認。但是,工程師們沒有時間與資源去發(fā)現(xiàn)并改正所有的設(shè)計問題。設(shè)計驗證對產(chǎn)品開發(fā)成本、開發(fā)周期以及開發(fā)難度的影響是很大的。
殘缺的風(fēng)景
顯然,避免問題的發(fā)生比解決問題更有效,但很少有設(shè)計團隊贊同這種觀點。例如,VHDL 比 Verilog 更加健全而又定義更嚴格。使用 VHDL 的設(shè)計師可以自動地避免某些類型的錯誤,而 Verilog 的用戶則必須通過驗證才能發(fā)現(xiàn)這些錯誤,但是,大多數(shù)工程師卻選擇 Verilog,因為它更易于學(xué)習(xí),仿真速度也快于 VHDL。誠然,較為簡單的語言不支持設(shè)計師開發(fā)復(fù)雜的設(shè)計時所需要的更嚴格方法。這一局限性就是開發(fā) SystemVerilog 和 Verilog 2005 軟件的主要原因。
驗證工程師不能依賴于一種廣為接受的行業(yè)標準驗證方法。驗證工具的范圍很寬,從軟件開發(fā)語言,如C語言,到硬件描述語言,如VHDL語言,再到專用測試語言,如 Synopsys 公司的 OpenVera 和 Verisity 公司的“e”語言,不一而足。這一領(lǐng)域處于不斷變化之中,工具的不穩(wěn)定性直接影響著可反復(fù)使用的模塊和操作規(guī)程的開發(fā)。這一問題在做體系結(jié)構(gòu)級的抽取時最為嚴重,而進行這一抽取級時,避免錯誤或者至少發(fā)現(xiàn)并消除錯誤,對提高利潤率大有裨益。
NEC 電子公司技術(shù)基礎(chǔ)開發(fā)部總經(jīng)理Kazu Yamada認為,驗證包括系統(tǒng)驗證、邏輯驗證和時序驗證三個主要階段。他堅持認為,在大多數(shù)單片系統(tǒng)設(shè)計驗證中,最關(guān)鍵的領(lǐng)域是系統(tǒng)驗證。由于 NEC 沒能找到一個滿意的商業(yè)化方案來解決這一問題,因此它開發(fā)了自己的高級設(shè)計環(huán)境,以便為其設(shè)計師和客戶改進系統(tǒng)驗證。雖然有些方法,如 NEC 公司的方法,可以縮短設(shè)計時間,降低開發(fā)成本,但它們遠不是最佳的。他們使用的工具仍然存在問題。許多年來,EDA 供應(yīng)商的銷售部門業(yè)已指出,一個客戶在開發(fā)期內(nèi)較早地發(fā)現(xiàn)并解決問題就可節(jié)省一大筆錢。遺憾的是,這些闡述并沒有說明避免錯誤的種種好處。實現(xiàn)這一策略的一種方法就是在最高級抽取時進行設(shè)計驗證。這一方法很有效,因為隨著設(shè)計的不斷進展,將引入越來越多的細節(jié),從而使驗證問題更大,因此也更難發(fā)現(xiàn)和更難解決。
在過去兩年里,驗證工具供應(yīng)商之所以把注意力轉(zhuǎn)向工作在規(guī)范方面的設(shè)計師銷售專業(yè)人員,有兩個原因:一是產(chǎn)品設(shè)計和開發(fā)的初始階段是一個未開發(fā)的市場,二是進入這一領(lǐng)域的技術(shù)障礙與財務(wù)障礙比開發(fā)和推出一個后端工具(如一個集成電路布局產(chǎn)品)的要低。為了減小使用上的障礙,許多 EDA 供應(yīng)商正在將軟件編程語言C或它的派生語言如C++或 SystemC,用作電子產(chǎn)品規(guī)范與體系結(jié)構(gòu)設(shè)計的描述語言。這些供應(yīng)商作出這一決定是基于以下事實:C語言和與之相關(guān)的 Unix 操作系統(tǒng)都可以廉價買到,維護費用低,大多數(shù)大學(xué)都使用它進行編程教學(xué)。他們指望大多數(shù)電子工程師都在一定程度上熟悉 C 語言。
遺憾的是,C語言不具備精確描述一個電子產(chǎn)品的結(jié)構(gòu)和健全性,C 語言的派生語言C++ 更適用于軟件開發(fā),但很難掌握和使用。如果輕率地使用C++的功能強大結(jié)構(gòu),可能會導(dǎo)致開發(fā)人員難以發(fā)現(xiàn)而且要花很高代價才能糾正的錯誤。SystemC 嘗試把某些硬件結(jié)構(gòu)引入C++,如時鐘周期和并行性,但仍然無法抓住硬件設(shè)計的本質(zhì)。因此,C++不能幫助設(shè)計師,例如,在某一設(shè)計部分硬件實現(xiàn)方法和軟件實現(xiàn)方法之間做出明確的抉擇。使用 SystemC 成功地按時完成設(shè)計驗證的工程師小組都由高水平的和有經(jīng)驗的工程師組成。如何讓普通水平的工程師也能用這一方法還是一個未知數(shù)。迄今為止的實驗僅僅表明:不管使用什么工具,經(jīng)驗都是無法替代的。
現(xiàn)在已有更多適用的語言,如 Esterel 技術(shù)公司使用的 Esterel。EDAptive 計算公司正在開發(fā)基于 Rosetta 語言的工具,而 KeesDA 正在開發(fā)基于 B 方法的工具。Esterel、B 和 Rosetta 都提供定義和規(guī)范設(shè)計要求與制約因素的健全方法。使用這些工具的工程師發(fā)現(xiàn),設(shè)計中出現(xiàn)錯誤較少,而且很容易獲得設(shè)計正確性的形式證明。據(jù) Real Intent 公司總裁兼首席執(zhí)行官 Prakash Narain說,“抽取與分割處理的范例尚未開發(fā)用于功能驗證。”他指出:“斷言和基于特性的規(guī)范就是實現(xiàn)抽取與分割處理的最實際的范例,”但是抽取的設(shè)計表述則更進一步。Narain 認為,芯片設(shè)計工作是一門精確的藝術(shù),將來會出現(xiàn)什么樣的抽取和精確的方法尚不清楚。因此,業(yè)界仍在努力發(fā)現(xiàn)錯誤——而不是避免錯誤。
評論