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

利用自動設置資訊工具簡化晶片設計等效檢查

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

關鍵字:等效檢查  EC  equivalence checking  匹配  match 

晶片設計過程中經常會對設計進行修改,因此需要對設計做等效檢查,以保證設計完整性。能傳遞設置資訊的製作工具對於高效能檢查非常重要,自動設置可使用戶在驗證出現問題時即刻加以解決,不會延長驗證周期,並且不影響設計完整性。本文介紹利用自動設置資訊工具簡化設計之間的等效檢查。

在晶片設計中,最後得到的結果常常因修改和最佳化而與原始設計有很大不同,那麼如何對產生了重大變換的設計進行驗證呢?如果驗證工程師只有一點或根本不了解使用的最佳化工具與過程,則等效檢查(EC)工具的設置就不能達到最優。而遺漏設置資訊會影響到檢驗的等效性,同時也不能充分發揮驗證的性能,設計實際上等效但卻會得到一個不等效的結果(虛假錯誤)。即使驗證工程師了解最最佳化過程,手工設置還是很費時間和容易產生錯誤,隨著各種新穎設計問題也提出最佳化的要求,使得驗證問題更加嚴重,這些問題對自動化方案很敏感,所以供應商們都在積極開發自動設置工具。圖1:等效檢查過程需要將參考設計和最終實現設計邏輯錐進行比較。

為了理解設計變換如何影響等效檢查,我們必須首先了解等效檢查流程中的一些基本要素。等效檢查是靜態驗證的一個分支,它使用形式與數學方法來證明一個設計兩種版本在功能上是否等價。等效檢查流程由四個主要步驟組成,分別是讀取、匹配、驗證和除錯。匹配和驗證階段受設計變換的影響最大。

◆讀取:在讀取階段,兩個版本設計都被讀入等效檢查工具,並分割成便於管理的分區,稱為邏輯錐。邏輯錐是由暫存器、埠或黑盒圍起來的一組邏輯,邏輯錐的輸出邊稱為比較點。

◆匹配:在匹配階段,等效檢查工具將參考設計比較點與最終設計中相應的比較點進行匹配或映射,可以使用非功能(基於名稱)和基於功能兩種匹配方法。為了使性能最佳,大多數匹配使用更有效的基於名稱的方法來完成。

設計產生變換後會造成基於名稱的技術只得到很少匹配邏輯錐,因而使匹配速度減慢。製作比較規則(指明各設計版本名稱間關係的規則)有助於基於名稱技術的使用,但規則本身的判定和製作也很費時間。當實現工具以隨機方式產生名稱時,設計規則就無法寫出,比較點必須用手工進行匹配以得到最佳效果(圖1),或者用更昂貴的基於功能的技術來進行匹配,而這對於有很多不匹配點的設計卻不實用。

◆驗證:在驗證階段,每對匹配的比較點將被證明功能上是等價還是不等價。設計變換會影響邏輯錐的結構,當邏輯錐變化太大相差太遠時,性能就會受到損害。在有些場合如重定時階段,邏輯錐改變很大,以致需要進行附加設置才能成功完成設計驗證。

◆除錯:除錯階段從前一工具報告結果不等價開始。沒有考慮到的設計變換會導致虛假錯誤結果,需要花費大量時間來除錯實際上是等價的設計。透過除錯分析,設計人員能夠判定結果是否是由於一個未予解釋的轉換造成的,但好的方案應能在驗證工具工作之前就先進行正確的設置。

製作設置腳本

因為在合成時經常會產生重命名和最佳化,所以上述驗證過程對重大延遲或虛假錯誤很感應。在等效檢查完成後,用手工檢查所有報告出的差異情況,找出那些由命名或重組問題所造成差異,然後為等效檢查工具標出這些問題並再次執行,就可以糾正這些問題,但顯然這不是最好的辦法。

較好的方法是在那些會使等效檢查產生問題的事件產生時就將其抓出來,並引導等效檢查工具避免這些問題。這可以用手工來做,但要損失一些時間和精密度,或者也可以用用戶開發的指針工具對合成結果進行後處理,找出特定的名稱或結構變換類型,但這不僅需要開發時間,且要對變換工具和等效檢查工具能接受的自動指示有深入的理解,將無端浪費設計資源。理想情況下,工具供應商應使其工具自己提供變換資訊,並編碼成等效檢查指示,使引導等效檢查工具避免問題的全部過程能夠自動進行,我們將這一過程稱為自動設置。

執行設置文件圖2:暫存器接腳總是保持數值1就可以用一個常數1所替代。

設置資訊可透過各種執行工具製作,如合成、測試插入、佈局與佈線。對於等效檢查,設置資訊將包含必要的指令描述設計流程中產生的變換。例如當合成從設計中移走分層時,結果可能造成暫存器名稱產生明顯改變,RTL中的‘Pre_bus_pipe_state_reg’會變成網表中的‘r2345’這樣一個不能直觀看出來的轉換。從合成過程中擷取的設置資訊將使驗證工具把這些變化考慮進去,這樣匹配的性能就與基於名稱的技術相同。

再來看另外一個例子,即合成工具在暫存器間產生邏輯反相的情況。等效檢查工具可以用手工設置來檢測這種反相,但它可能需要調查每個暫存器以判斷是否產生了移相而對性能產生影響。如果設置採用來自最最佳化工具的數據自動進行,將無需手工設置。此外,等效檢查工具將僅僅調查認為可能有相位改變的暫存器,當相位改變能由工具獨立證明時,整個設計可以非常有效地進行驗證。

驗證設計變換

這種方法能對跨工具應用的多種設計變換提供幫助,單對等效檢查而言,它可以包括名稱改變、常數暫存器刪除、倒相、有限狀態機重編碼、合併冗餘暫存器以及用於命名的先進算法應用。為說明這一過程,下面我們對三種具體轉換進行詳細說明,它們分別是名稱改變、常數暫存器刪除和冗餘暫存器合併。

在合成過程中,暫存器名稱經常會改變,如果基於名稱的方法不能成功發現,則邏輯錐匹配將花費很多時間。直觀的改變如把括弧變為下劃線或者加一個_reg到名稱中,這些都很容易用基於名稱的方法來處理。但當名稱有很大變動時,等效檢查工具就得使用更昂貴的基於功能的技術。

名稱改變與性能一起會影響設計驗證的性能。為了完成驗證,各版本設計之間的比較點必須正確匹配,如果有任何比較點改變使得對應錐不匹配,則沒有附加用戶設置的驗證就不能夠完成。

設置資訊並不使用比較規則或者手工匹配來幫助基於名稱的技術,但它提供一個機制傳達這一資訊,該方法具有很高的效率並保證所有設計中的比較點都完全匹配。

合成可能會去掉輸出總是常數的暫存器,通常情況下常數暫存器會被一個常數1或常數0驅動器所替代。從純功能觀點看,因為附加邏輯不倒相,所以暫存器接腳總是保持數值1就可以用一個常數1所替代(圖2)。

最佳化暫存器還可能使參考設計出現一些多餘的暫存器,這些不會包含在最終的實現設計中。它可能帶來兩個問題,首先,在匹配時將有大量不匹配比較點資訊需要用戶檢查,這很費時間,此外在過濾這些資訊過程中,指明真正設計錯誤的不匹配點可能會被忽略掉;第二,驗證過程中比較具有不同輸入和邏輯設置的邏輯錐可能產生虛假錯誤。

如圖3所示,最終實現錐的額外輸入和邏輯使它在功能上不同於參考錐,因此要想成功驗證取決於能否判定參考設計中暫存器c_reg是常數。圖3:最佳化可能會將參考設計中的兩個邏輯錐在最終實現設計中合併為一個。

設置文件有助於解決這類問題。在匹配過程中,自動設置可以指示哪一個暫存器可能為常數,等效檢查工具然後集中比較設計其餘比較點。考慮到匹配的目的,可以先假定設置資訊正確,這一假設的有效性在驗證中會進行確認。如果假設正確,驗證將取得成功,當假設不正確時,比較點就不能正確匹配,於是得到驗證結果不等價。

暫存器合併

暫存器合併是去掉一個或多個功能上冗餘的暫存器。當暫存器具有相同的扇入和扇出時就認為是冗餘的,當兩個或更多訊號經常為相同值時,冗餘暫存器也會產生在RTL中。合成工具可以最佳化設計並且只使用一個訊號暫存器,而不是為每個訊號都用一個暫存器,暫存器的輸出用來驅動原始暫存器的輸出訊號。這種最最佳化技術在閘數特別重要的FPGA設計流程中普遍使用。

暫存器合併以後,RTL參考設計將含有多態保持暫存器(因而有多個比較點),但最終實現設計(最優網表)只有一個比較點。如果沒有額外的工具設置,邏輯錐就不能正確匹配,驗證將得到虛假錯誤結果。另外也不能簡單忽略掉額外的比較點,因為沒有方法可以判斷暫存器是否等價。

有些工具可以告訴如何尋找合併的暫存器,只需一步就可驗證這類轉換,然而在判斷什麼地方產生暫存器合併時需要進行搜索,所以會使驗證變慢。

使用設置文件可以識別每次產生的暫存器合併,並作為設置資訊傳遞給等效檢查工具,檢查工具就能知道到什麼地方去尋找己合併的暫存器。證實暫存器在功能上是冗餘的以後,等效檢查工具就能執行合併,然後成功完成驗證而不會對性能或設置產生不利影響。

使用這種設置文件具有明顯的優點,但最終品質取決於能否從變換設計工具中得到正確資訊,以及正確傳遞這些資訊至等效檢查工具的能力。為了使過程完全自動化,需要修改變換工具以得到數據,並修改等效檢查工具,以接收自動設置文件。

作者:Osman Eralp


應用工程師


Synopsis公司




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


EE人生人氣排行
 
返回頁首