FPGA仿真--前仿真和後仿真

    初學者學習FPGA,必定會被它的各種仿真弄的暈頭轉向。比如,前仿真、後仿真、功能仿真、時序仿真、行爲級仿真、RTL級仿真、綜合後仿真、門級仿真、佈局佈線後仿真等。

  Quartus和Modelsim軟件的仿真形式

  Quartus II有兩種仿真形式:1、功能仿真;2、時序仿真。

  Quartus II調用Modelsim的兩種仿真形式爲:1、RTL級仿真;2、Gate-level仿真。

  以下內容均經過資料查證,詳細如下:

  理解方法一

  當用quartus進行仿真時,分爲功能仿真(al)和時序仿真(Timing);

  當用Modelsim-Altera時,分爲功能仿真(RTL)、綜合後仿真(post-synthesis)和佈局佈線仿真(Gate-level)。其中,功能仿真又稱爲前仿真,佈局佈線仿真又稱爲後仿真。

  注:此處的功能仿真(RTL)與1中的功能仿真(al)是不一樣的,前者是HDL級仿真,後者是門級網表的功能仿真。

  (1)當在quartus中調用Modelsim-Altera進行RTL仿真時(前提是在第三方仿真工具中選擇Modelsim-Altera),步驟如下:

    a) 編寫源文件和測試文件;

    b) Assignment-》setting-》simulation-》不選中run gate leve simulation.。..。,選中nativelink-》添加測試文件,填寫文件名;

    c) start analysis&elabration;

    d) Tools-》start RTL simulation;

  (2)綜合後仿真一般不做。

  (3)當在quartus中調用Modelsim-Altera進行Gate-level仿真時(前提是在第三方仿真工具中選擇Modelsim-Altera),步驟如下:

    a) 編寫源文件和測試文件;

    b)Assignment-》setting-》simulation-》選中run gate leve simulation.。..。,選中nativelink-》添加測試文件,填寫文件名;

    c)全編譯;

  評價:對於Assignment-》setting-》simulation-》“run gate leve simulation automatically after comlilation”選不選中根本沒必要說明,完全可以不用選中,需要在設置處把測試文件testbench添加就可以了(不添加的話到時候 quartus調用出modelsim軟件後需要手動添加編譯,下面補充了)。如果你想RTL級仿真,那麼對於quartus ii只需要進行分析綜合就可以,然後點擊Tools-》Run EDA Simulation tool-》Run RTL Simulation即可,軟件會自動將源文件以及測試文件在modelsim軟件裏編譯,仿真出波形。如果你想Gate-level級仿真,那麼對於 quartus ii需要對工程進行全編譯,然後點擊Tools-》Run EDA Simulation tool-》Run Gate-level Simulation即可,軟件會自動將網表文件.vo(verilog輸出文件)或.vho(VHDL輸出文件)以及測試文件在modelsim軟件裏編譯,並將標準延遲文件SDF(.sdo)添加到modelsim裏面,仿真出波形。

  補充:順便說一句,如果沒有在Assignment-》setting-》simulation把測試文件testbench設置好的話,不論是在RTL還是Gate-level級仿真,調用出modelsim後Quartus只把.vo或.vho文件送到modelsim裏編譯了,然後都需要手動把testbench編譯進去的,並且將在Run Gate-level Simulation仿真的時候,.sdo文件也需要手動添加,相對來說比較麻煩。

  理解方法二

  Modelsim-Altera仿真一般分爲功能仿真,前仿真(綜合後仿真)與後仿真(時序仿真或佈局佈線後仿真)。

  根據設計需要,編寫完代碼(Verilog hdl,Vhdl,system Verilog )後,首先進行功能仿真,驗證所寫代碼是否能完成設計功能;前仿真又稱爲綜合後仿真,即在QuartusII完成綜合後,驗證設計的功能;後仿真又稱爲時序仿真或佈局佈線後仿真,是加入延時後的仿真。對於編譯時間較短的小規模設計,一般只進行功能仿真與後仿真。

  理解方法三

  modelsim 是專門進行仿真的軟件,可以分別進行前仿真和後仿真。前仿真也稱爲功能仿真,主旨在於驗證電路的功能是否符合設計要求,其特點是不考慮電路門延遲與線延遲,主要是驗證電路與理想情況是否一致。可綜合FPGA代碼是用RTL級代碼語言描述的,其輸入爲RTL級代碼與testbench。後仿真也稱爲時序仿真或者佈局佈線後仿真,是指電路已經映射到特定的工藝環境以後,綜合考慮電路的路徑延遲與門延遲的影響,驗證電路能否在一定時序條件下滿足設計構想的過程,是否存在時序違規。其輸入文件爲從佈局佈線結果抽象出來的門級網表、testbench和擴展爲sdo或sdf的標準時延文件。sdo、sdf的標準時延文件不僅包含門延遲,還包括實際佈線延遲,能較好地反映芯片的實際工作情況。一般來說後仿真是必選的,檢查設計時序與實際的FPGA運行情況是否一致,確保設計的可靠性和穩定性。

  理解方法四

  前仿真和後仿真的區別:前仿真就是指綜合前的仿真,也就是行爲級的仿真,如你在Modelsim直接寫代碼的仿真。後仿真指的是綜合後的仿真,也就是功能仿真。比如你在Modelsim中用VHDL寫了個計數器,行爲級得仿真通過了,你把它加到quartus中或者其他的綜合工具進行綜合,綜合完後生成功能網表,它把行爲語言變成寄存器傳送級語言,這時候你把它加到Modelsim中仿真叫後仿真,後仿真成功後,你還要在quartus中進行映射,佈局佈線,完後進行時序分析,生成時序網表,描述器件里門或者佈線的延時,最後把延時網表和功能網表一起加到Modelsim中仿真叫門級仿真。

  門級仿真和時序仿真的區別:門級仿真是quartus生成的網表文件.vo。門級則不考慮互聯延遲,二隻考慮了器件的延遲。時序仿真是選擇具體器件並佈局佈線後進行的包含定時關係的仿真,主要驗證是否滿足時間約束關係、延時、最大工作頻率和消耗的資源等。時序仿真是需添加時延文件.sdo。

  理解方法五

  從廣義上講,仿真驗證包括功能與時序仿真和電路驗證。仿真是指使用設計軟件包對已實現的設計進行完整測試,模擬實際物理環境下的工作情況。從仿真的層次上劃分,主要分爲:

  前仿真,也稱爲功能仿真或行爲級仿真。是指僅對邏輯功能進行測試模擬,以瞭解其實現的功能是否滿足原設計的要求,仿真過程沒有加入時序信息,不涉及具體器件的硬件特性,如延時特性;

  後仿真,也稱爲佈局佈線後仿真或時序仿真。是指提取有關的器件延遲、連線延時等時序參數,並在此基礎上進行的仿真,它是非常接近真實器件運行情況的仿真。 不同的工具和廠商還有一些其他的仿真過程,但大致屬於這兩類。

  針對FPGA設計的流程,有3個階段可以進行仿真:

  第一階段是寄存器傳輸級(RTL)仿真,此級仿真是對設計的語法和基本功能進行驗證 (不含時序信息);

  第二階段是針對特定的FPGA廠家技術的仿真,此級仿真是在綜合後、實現前而進行的功能級仿真,功能級仿真一般驗證綜合後是否可以得到設計者所需要的正確功能;

  第三階段是門級仿真,此級仿真是針對實現後的門級時序進行仿真,門級仿真體現了由於佈局佈線而產生的實際延時。

  理解方法六

  前仿: 針對RTL代碼的功能和性能仿真和驗證。

  後仿: 1. pre-layout,這種是綜合後仿真,主要是仿綜合後的邏輯功能是否正確,綜合時序約束是不是都正確。

             2. post-layout,這種是佈局佈線後仿真,因爲加入了線延遲信息,所以這一步的仿真和真正芯片的行爲最接近,也是用於仿真芯片時序約束是否添加正確,佈局佈線後是否還滿足時序。

  理解方法七

  功能仿真對設計輸入的功能進行仿真,考慮的是理想化的情況,沒有門延遲,沒有佈線延遲。

  綜合的過程,將設計輸入編譯成由與、或、非門,RAM,觸發器等基本邏輯單元組成的邏輯連接,即網表(Netlist),並輸出edf、edn等標準格式的網表文件。綜合後仿真把綜合生成的標準延時文件反標註到綜合仿真模型中去,可估計門延時對電路帶來的影響。

  實現與佈線,根據所選芯片的型號,將綜合輸出的邏輯網表適配到具體的FPGA/CPLD上。實現過程中最主要的過程是佈局佈線(Place and Route):佈局將邏輯單元合理地適配到FPGA內部的固有硬件結構上;佈線則根據佈局的拓撲結構,利用FPGA內部的各種連線資源,合理正確地連接各個元件。時序仿真將佈局佈線的延時信息反標註到設計網表中進行仿真。此時的仿真延時文件信息最全,包含門延時和佈線延時,所以佈線後仿真最準確,能較好地反映芯片的實際工作情況。

  以下是個人拙見:從以上分析,我們可以給文章剛開是提到的那九種仿真名詞中的一些畫等號了。

  前仿真=功能仿真=行爲級仿真=RTL級仿真

  而後仿真又可以分爲兩步,第一步是佈線前 仿真,也就是綜合後仿真其目的主要是驗證邏輯功能是否正確,綜合時序是不是正確;第二步是佈線後 仿真,也就是後仿真=時序仿真=佈局佈線後仿真=門級仿真,這一級的仿真最接近於芯片,裏面加入了線延遲,可見理解方法七的解釋。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章