<dd id="cv9gz"><big id="cv9gz"></big></dd>
  • <progress id="cv9gz"></progress>

      <tbody id="cv9gz"></tbody>
          1. 集成電路技術分享

             找回密碼
             我要注冊

            QQ登錄

            只需一步,快速開始

            搜索
            查看: 1080|回復: 5
            打印 上一主題 下一主題

            FPGA開發驗證的重要性

            [復制鏈接]
            跳轉到指定樓層
            1#
            小舍YZ 發表于 2017-7-12 17:03:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
            FPGA開發驗證的重要性

            驗證,顧名思義就是通過仿真、時序分析、上板調試等手段檢驗設計正確性的過程,在FPGA/IC開發流程中,驗證主要包括功能驗證和時序驗證兩個部分。
            為了了解驗證的重要性,我們先來回顧一下FPGA開發的整個流程。FPGA開發流程和IC的開發流程相似,主要分為以下幾個部分:
                    1)設計輸入,利用HDL輸入工具、原理圖輸入工具或狀態機輸入工具等把所要設計的電路描述出來。
                    2)功能驗證,也就是前仿真,利用Modelsim、VCS等仿真工具對設計進行仿真,檢驗設計的功能是否正確;常用的仿真工具有Model Tech公司的ModelSim,Synopsys公司的VCS,Cadence公司的NC-Verilog和NC-VHDL,Aldec公司的Active HDL VHDL/Verilog HDL等。仿真過程能及時發現設計中的錯誤,加快了設計進度,提高了設計的可靠性。
                    3)綜合,綜合優化是把HDL語言翻譯成最基本的與或非門的連接關系(網表),并根據要求(約束條件)優化所生成的門級邏輯連接,輸出edf和edn等文件,導給CPLD/FPGA廠家的軟件進行實現和布局布線。常用的專業綜合優化工具有Synplicity公司的synplify
            /Synplify Pro、Amplify等綜合工具,Synopsys公司的FPGA Compiler II綜合工具(Synopsys公司將停止發展FPGA Express軟件,而轉到FPGA Compiler II平臺),Exemplar Logic公司出品的LeonardoSpectrum等綜合工具。另外FPGA/CPLD廠商的集成開發環境也帶有一些綜合工具,如Xilinx ISE中的XST等。
                    4)布局布線,綜合的結果只是通用的門級網表,只是一些門與或非的邏輯關系,與芯片實際的配置情況還有差距。此時應該使用FPGA/CPLD廠商提供的實現與布局布線工具,根據所選芯片的型號,進行芯片內部功能單元的實際連接與映射。這種實現與布局布線工具一般要選用所選器件的生產商開發的工具,因為只有生產者最了解器件內部的結構,如在ISE的集成環境中完成實現與布局布線的工具是Flow Engine。
                    5)時序驗證,其目的是保證設計滿足時序要求,即setup/hold time符合要求,以便數據能被正確的采樣。時序驗證的主要方法包括STA(Static Timing Analysis)和后仿真。在后仿真中將布局布線的時延反標到設計中去,使仿真既包含門延時,又包含線延時信息。這種后仿真是最準確的仿真,能較好地反映芯片的實際工作情況。仿真工具與綜合前仿真工具相同。

            STA的意思是靜態時序分析(Static Timing Analysis),做FPGA設計時是必須的一個步驟,事實上大家一般都已經做了這一步,我們在FPGA加約束、綜合、布局布線后,會生成時序分析報告(在ISE中可以運行Timing Analyzer生成詳細的時序報告), 設計人員會檢查時序報告、根據工具的提示找出不滿足setup/hold time的路徑,以及不符合約束的路徑,這個過程就是STA。

            細致全面的STA可以保證設計的時序符合要求,只要代碼robust(綜合結果符合設計原意),可以省略后仿真。

            功能仿真加STA(靜態時序分析)并不能涵蓋后仿真的作用,因為后仿真事實上有檢驗綜合結果是否正確的作用,而功能仿真正確并不能保證綜合結果和RTL設計人員的原意一樣,綜合器能正確綜合的前提是RTL代碼編寫具有良好的代碼風格,例如if-else語句完整、case語句完整、組合邏輯敏感列表完整,只有在這樣的條件下,綜合結果才有保障,否則即使功能仿真正確,綜合出來的電路的功能不一定正確。對于綜合過程出現的偏差,后仿真可以發現,因為后仿真實質上門級仿真,可以同時檢驗功能和時序是否正確,后仿真驗證能保證實現結果是正確的。后仿真的不足之處在于仿真速度比較慢,因此如果不想做后仿真,對FPGA設計來說,可以做功能仿真、綜合后仿真和STA,對IC設計可以做功能仿真、形式驗證和STA。

              另外需要注意的是,加時序約束要完整,因為STA根據時序約束做檢查,如果約束不正確,STA結果就不準確.經常會出現功能驗證正確而后仿真結果不正確的問題,一般是由setup time/hold time不滿足等時序問題引起的,說明在綜合與布局布線過程中沒有進行約束或者約束條件不完全,導致STA分析結果不準確、不完全。

            例如設計存在兩個時鐘域,一個快、一個慢,附加約束時一般要最設計整體附加較松的約束,再對局部附加較緊的約束,然后再對慢時鐘和快時鐘之間的路徑進行約束,這一般也是較緊的約束,如果忘了最后一部分約束,那么STA會認為設計人員對這部分路徑沒有要求,因而不分析這部分路徑,這樣即使這部分路徑的延遲非常大,STA也不會提示錯誤,但是后仿真就會出現問題。

              總而言之,對FPGA設計來說,只有正確地完成綜合后仿真(以保證綜合結果正確)和STA,才能省略后仿真,否則后仿真仍然是必要的
                    6)生成并下載BIT或PROM文件,進行板級調試。
            在以上幾個主要開發步驟當中,屬于驗證的有功能仿真和時序驗證兩個步驟,由于前仿真和后仿真涉及驗證環境的建立,需要耗費大量的時間,而在STA中對時序報告進行分析也是一個非常復雜的事情,因此驗證在整個設計流程中占用了大量的時間,在復雜的FPGA/IC設計中,驗證所占的時間估計在60%~70%之間。相比較而言,FPGA設計流程的其他環節由于需要人為干預的東西比較少,例如綜合、布局布線等流程,基本所有的工作都由工具完成,設置好工具的參數之后,結果很快就可以出來,因此所花的時間精力要比驗證少的多。

            一般而言,在驗證的幾個內容中功能驗證最受重視,研究討論得最多,特別是現在FPGA/IC設計都朝向SOC(System On Chip,片上系統)的方向發展,設計的復雜都大大提高,如何保證這些復雜系統的功能是正確的成了至關重要的問題。功能驗證對所有功能進行充分的驗證,盡早地暴露問題,保證所有功能完全正確,滿足設計的需要。任何潛在的問題都會給后續工作作帶來難以極大的困難,而且由于問題發現得越遲,付出的代價也越大,這個代價是幾何級數增長的。這里將以功能驗證為主說明驗證方法、工具、驗證環境的建立。

              做功能驗證時,需要建立驗證環境,以便對設計(DUT/DUV,Design Under Test/ Verification)施加特定的輸入,然后對DUT的輸出進行檢查,確實其是否正確。在實際驗證工作中,一般采用由TESTBENCH 和DUT(design under test)組成的Verification體系,如圖1所示。

            本帖子中包含更多資源

            您需要 登錄 才可以下載或查看,沒有賬號?我要注冊

            x
            2#
             樓主| 小舍YZ 發表于 2017-7-12 17:04:46 | 只看該作者
                    這是驗證系統普遍適用的模型,Testbench為DUT提供輸入,然后監視輸出,從而判斷DUT工作是否正確。注意到這是一個封閉的系統,沒有輸入也沒有輸出。驗證工作的難度在于確定應該輸入何種激勵,相應的正確的輸出應該是怎樣的。

            本帖子中包含更多資源

            您需要 登錄 才可以下載或查看,沒有賬號?我要注冊

            x
            3#
             樓主| 小舍YZ 發表于 2017-7-12 17:05:22 | 只看該作者
            下一貼我們看個具體的例子。

            本帖子中包含更多資源

            您需要 登錄 才可以下載或查看,沒有賬號?我要注冊

            x
            4#
            zxopen08 發表于 2017-7-13 11:54:50 | 只看該作者
            FPGA開發驗證的重要性
            5#
             樓主| 小舍YZ 發表于 2017-7-14 18:56:47 | 只看該作者
            zxopen08 發表于 2017-7-13 11:54
            FPGA開發驗證的重要性

                                                                                       
            6#
            zxopenljx 發表于 2023-2-13 09:41:15 | 只看該作者
            FPGA開發驗證的重要性
            您需要登錄后才可以回帖 登錄 | 我要注冊

            本版積分規則

            關閉

            站長推薦上一條 /1 下一條

            QQ|小黑屋|手機版|Archiver|集成電路技術分享 ( 京ICP備20003123號-1 )

            GMT+8, 2023-5-15 02:13 , Processed in 0.114805 second(s), 20 queries .

            Powered by Discuz! X3.4

            © 2001-2023 Discuz! Team.

            快速回復 返回頂部 返回列表
            久久久亚洲
            <dd id="cv9gz"><big id="cv9gz"></big></dd>
          2. <progress id="cv9gz"></progress>

              <tbody id="cv9gz"></tbody>