玩轉Zynq連載5——基于Vivado的在線板級調試概述 更多資料共享 鏈接:https://share.weiyun.com/5s6bA0s ![]() FPGA的板級調試方法有很多,借助于常規的示波器和邏輯分析儀的調試方法是最典型的手段。如圖13.1所示,基于傳統的臺式示波器或邏輯分析儀進行板級調試有著諸多的不便,相對于設計電路深藏在芯片內部的FPGA設計來說有著很大的局限性,簡單的列舉如下。 l 臺式機器價格昂貴,設備成本高。 l 只能訪問到FPGA的I/O引腳信號,對內部信號只能通過引出到I/O引腳的方式進行觀察,并且此方式只有個別信號可行,大量內部信號就無能為力了。 l PCB的layout設計必須預留足夠的空間用于外部探針對被測試信號的連接,浪費板級空間且降低了電路可靠性,同時也會潛在的增加成本。 l 測試信號較多,調試過程極其繁瑣并容易犯錯。 l 靈活性差,只能觀察設計之初就預留了探針接口的一些信號。 ![]() 當然了,這些局限性在大多數產品的板級調試中都存在,尤其是在芯片集成度越來越高的當下。而FPGA器件由于其靈活的可編程特性,也使得它具有了更加獨特的調試手段。在FPGA器件支持并且剩余邏輯資源足夠的情況下,設計者往往習慣于使用開發軟件提供的在線邏輯分析儀進行調試,如Vivado的ILA和Quartus II的SignalTapII,它們的功能都很強大,并且非常的簡單實用。它們相較于傳統的臺式儀器,不僅大大降低了調試門檻和成本,而且由于其內嵌于FPGA器件的特性,使得其可調試性和靈活性上也更勝一籌,例如它可以訪問到FPGA內部的一些中間過程信號。除此以外,還有一些其它的手段在不同的應用背景下都有助于加速板級調試。除此之外,還有類似虛擬IO、在線存儲器編輯、Virtual JTAG之類的調試手段,都是非常簡單實用的在線調試方法。下面我們看看Vivado中支持的一些重要調試方式。 ILA(Integrated Logic Analyzer),即內嵌邏輯分析儀。可以在FPGA器件上對已實現的設計進行板級在線調試。ILA可用于板級調試過程中監測FPGA內部信號的實時狀態,ILA也可用于硬件事件觸發后以系統時鐘頻率采集信號。 ILA和一般臺式的邏輯分析儀功能基本相似,只不過臺式邏輯分析儀是看得見摸得著的實物設備,且它必須對所有觸發或觀察信號進行物理連接,信號也必須在電路板上有實際的觸點可供探測。但是ILA不同,你可以說它是一個軟件工具而已,因為它只需要被測試設備本身(即FPGA器件),通過一條JTAG下載器與PC連接,在PC的Vivado上可以查看最終采集的波形。并且ILA不需要被測試信號有實際的物理探測點,只要這個信號是在FPGA內部,就可以被實時的觀測到。 ILA功能模塊可以通過配置IP核方式例化到RTL代碼中,也可以在Vivado的工具選項上直接加載設置。 VIO(Virtual Input/Output),即虛擬IO調試接口。VIO可以用于實時的監控或驅動FPGA內部信號狀態。如果對目標硬件缺乏合適的訪問通信方式時,可以使用VIO功能實現FPGA內部信號實時的監控或驅動。VIO調試應用的主要場景可能是速率要求不高,但又希望可以在線交互的一些信號接口,比如一些開關信號的控制或狀態信號的實時查看。 VIO功能模塊只能通過配置IP核方式例化到RTL代碼中,設計代碼中需要施加激勵或者觀察狀態的信號必須通過VIO的IP核模塊例化連接好。 IBERT(Integrated Bit Error Ratio Tester),即內嵌誤碼率測試機。IBERT是針對高速串行接口的在線調試和驗證。通過IBERT的檢測,可以確認FPGA內部的高速串行口傳輸數據的可靠性和穩定性。 JTAG-to-AXI Master,即JTAG-to-AXI主機調試接口。對于不含處理器,但又有AXI從機接口的應用,該調試方式可以對設計中的AXI從機接口進行板級的在線調試驗證。 以上所提的這些在線調試方式大都是通過FPGA器件引出的JTAG接口,同時使用了一些FPGA片內固有的邏輯、存儲器或布線資源就能夠實現的。這些調試功能通常也只需要隨著用戶設計所生產的配置文件一同下載到目標FPGA器件中運行。相比于復雜的傳統臺式儀器,基于FPGA的在線調試僅需一條JTAG線纜連接FPGA和PC機,非常簡單清爽,調試起來更是得心應手。 至于我們所提到的這些在線調試手段,可以根據不同的應用和設計進行選擇。因為不同的設計往往會有不同的約束和需求,例如可以根據閑置不使用引腳的數量、邏輯和存儲器資源剩余量大小等進行不同的在線調試方式選擇。 對于FPGA內部的在線調試,通常可以分為以下3個階段。 ● 探測階段:識別出需要進行探測的信號,確認使用何種在線調試手段進行探測。 ● 實現階段:將在線調試的IP核集成到設計工程中,完成編譯并生成板級調試的下載配置文件。 ● 分析階段:使用集成的調試功能模塊對設計功能進行驗證和調試。 更多資料共享 鏈接:https://share.weiyun.com/5s6bA0s |