1. 程式人生 > 其它 >晶片驗證中RTL模擬和門級模擬差異到底有多大?

晶片驗證中RTL模擬和門級模擬差異到底有多大?

晶片的前端設計人員,在平時的工作中,將各種演算法/協議等,用硬體描述語言Verilog HDL實現完成之後,都要投入很長一段時間,進行RTL的功能模擬。

隨著晶片的複雜度快速的持續提升,除了設計的複雜度增加之外,驗證的難度也變得越來越大。

在這種背景下面,EDA廠商提供的模擬工具,不僅僅門類很多,而且功能也是越來越完善。

今天就經常使用的模擬工具做一些對比和介紹。

晶片設計流程

為了更好的說明驗證的重要性,需要先介紹一下,晶片前端設計的基本流程,這樣有助於理解在不同的時間,進行不同型別驗證的必要性。

晶片前端設計人員的主要工作內容是進行RTL邏輯開發,當演算法人員完成演算法之後,晶片設計人員是用Verilog HDL完成演算法的硬體建模,即所謂的RTL開發。

RTL開發完成之後,進入驗證階段。

現在大部分的晶片設計廠商,驗證工作主要分成兩個部分,EDA模擬驗證和FPGA功能驗證。

因為篇幅有限,今天只聊EDA模擬驗證。

ncverilog VS. VCS

從工具的角度來看,現在在EDA模擬驗證階段,常用的模擬工具有以下兩種:

Ncverilog.這是Cadence的一款Verilog HDL模擬器。VCS.這是Synopsys(EDA界的另一座大山)的Verilog HDL模擬器。隨著EDA工具的不斷演進,不同產品之間的差異性很小,只要掌握了其中一種,其他公司功能相同的工具,就能夠很快上手。

RTL模擬 VS. 門級模擬

第一階段具體的模擬物件就是在設計階段得到的RTL程式碼。需要說明的是,RTL(register transfer level),顧名思義,是用暫存器傳輸級的描述方式,描述數位電路的資料流。

可以認為RTL是一種中間狀態,後面我們會通過其他綜合工具(例如:Design Compiler),將RTL對映到某種工藝庫(通常我們所說的40nm\7nm工藝等等),生成對應工藝庫下的門級網標。

在RTL模擬階段,資料在傳輸過程中,是在一種理想狀態下,即訊號在傳輸過程中沒有延時,並且數字訊號從0-1或者1-0的跳變過程,瞬間完成。

但是我們都知道,在實際的電路中,情況並非如此。

在真實的晶片中,延時有線延時以及門延時。為了得到更可靠、更真實的模擬模擬結果,除了對RTL進行模擬之外,我們會在綜合完成之後,進行第二階段的模擬,即對生成的門級網標再次進行模擬。

進行門級模擬主要有兩個目的:

保證RTL與門級網標的一致性。在合成過程中,綜合工具為了滿足約束條件,會進行優化,所以會出現merge和removal的情況。雖然有專門的一致性比對工具,進行門級網標和RTL的對比,但是門級網標模擬同樣重要。在門級模擬過程中,會加入延時檔案,模擬線延時和門延時,得到更加可靠的模擬結果。兩種功能模擬的對比

RTL模擬速度快,但是真實性稍微欠缺。門級模擬速度慢,但是更加接近於晶片真實的工作狀態。

兩者互相補充,確保模擬的速度和真實性。

小結

模擬驗證工作時間在整個晶片週期中,佔有非常大的比例。隨著晶片複雜度、整合度的不斷提升,模擬驗證時間還在不斷跟著提升,所以模擬驗證工作的重要性,就不言而喻了。

舉報/反饋