關於模擬的一些看法

admin @ 2014-03-26 , reply:0

概述
  模擬,顧名思義,就是模模擬實情況,對設計進行一種驗證。根據對設計的模擬,以及所模擬的設計的層次,可以對模擬進行分類,於是出現了所謂前仿,后仿,門級,RTL級,功能模擬,定時模擬……

   模擬,顧名思義,就是模模擬實情況,對設計進行一種驗證。根據對設計的模擬,以及所模擬的設計的層次,可以對模擬進行分類,於是出現了所謂前仿,后仿,門級,RTL級,功能模擬,定時模擬等等諸多的辭彙。搞明白各個級別的模擬對應的具體操作,自然,就不會混淆了。下面是個人的一點認識,有謬誤之處,請大俠們指正。

  根據IC設計流程,在制定了設計需求以及系統spec之後,最開始完成的當然是演算法級別的的設計,我所接觸的項目,這裡是用C來完成的。至於有人提到,matlab也可以進行演算法設計,可能在學校里用得多一些吧,實際工作中好像用得不多。 matlab是解釋性的語言,效率比較低,另外與現有模擬工具的介面也不通用。對於演算法C的模擬,主要是對演算法進行驗證,這一階段的模擬是決定最後系統成敗的關鍵。這一階段會產生後續模擬中所需要的測試向量。 這個階段的工作本人接觸不多,不多說了 ,大人補充。

  接下去就是RTL級別的模擬了,或者說前仿,或者說功能級模擬,都是一回事。這時,已經有了所有的RTLcode, 這裡所說的寄存器傳輸級,是指verilog等hdl 語言的描述的一種抽象層次,實際很多這時候的寫法還是抽象級別更高的寫法。 RTL模擬需要搭建測試平台,也就是所說的testbench。一般包括這麼幾個部分: 代測模塊例化, 激勵產生,輸出結果檢驗,模擬過程式控制制,模擬結果(波形)存儲等。關於過程式控制制和模擬結果等可以針對不同的simulator來採用不同的task來完成。我用到的東西不多,只用過modelsim和NCveilog,vcs只接觸過一次。這三個應該是目前提到最多的軟體了,modelsim速度最慢,價格最便宜,盜版最多,所以討論最火。NC速度最快,是cadence的主力產品,現在是IC設計signoff的工具之一, VCS是synopsys的產品,速度介於兩者之間。其實這三個工具的基本功能和基本命令以及參數都差不太多,只是有些許的差別。RTL級別的模擬,主要模擬功能的正確性,速度比較快,不涉及定時關係,雖然有時候在rtlcode裡面會有類似1ns的慣性延時來模擬門級特性,故此也叫功能模擬。

  RTL code經過綜合,得到netlist——門級網表,相應的模擬便稱為門級模擬,門級模擬又可以分為post-synthesis,post-dft, post-layout等不同層次。真正的“后仿”是指post-layout模擬。門級模擬一般會加入定時信息,常用的是導入sdf(標準延時文件),因此又稱之為定時模擬。但並非門級模擬都是定時模擬,比如simulator可以支持零延時的模擬。門級的模擬,速度比較慢,主要是驗證系統的動態定時特性。這種驗證和靜態時序分析一起構成綜合后驗證的必備手段。

  等到place route之後,得到最後的gds,再反相提取參數,再進行物理層次的模擬,應該屬於晶體管級的模擬了,俺目前害沒接觸到,請高手指教。




[admin via 研發互助社區 ] 關於模擬的一些看法已經有2494次圍觀

http://cocdig.com/docs/show-post-43522.html