FPGA易測試性分析
本文就調試FPGA系統時(shí)遇到的問(wèn)題及有助于提高調試效率的方法,針對Altera和Xilinx的FPGA調試提供了最新的方法和工具。
1 FPGA一般設計流程
在FPGA系統設計完成前,有2個(gè)不同的階段:設計階段、調試和檢驗階段,如圖1所示。設計階段的主要任務(wù)是輸入、仿真和實(shí)現;調試和檢驗階段的主要任務(wù)是檢驗設計,校正發(fā)現的錯誤。
1.1 設計階段

在這一階段不僅要設計,而且要使用仿真工具開(kāi)始調試。實(shí)踐證明,正確使用仿真為找到和校正設計錯誤提供了一條有效的途徑。但是,不應依賴(lài)仿真作為調試FPGA設計的唯一工具。
在設計階段,還需要提前考慮調試和檢驗階段,規劃怎樣在線(xiàn)快速調試FPGA,這可以定義整體調試方法,幫助識別要求的任何測試測量工具,確定選擇的調試方法對電路板設計帶來(lái)的影響。針對可能選用的FPGA存在的高速總線(xiàn),除了考慮邏輯時(shí)序的測試和驗證外,還應該充分考慮后面可能面臨的信號完整性測試和分析難題。
1.2 調試和檢驗階段
在調試階段,必須找到仿真沒(méi)有找到的棘手問(wèn)題。怎樣以省時(shí)省力的方式完成這一工作是一個(gè)挑戰。本文將研究如何選擇正確的FPGA調試方法及如何有效地利用新方法的處理能力,這些新方法可以只使用少量的FPGA針腳查看許多內部FPGA信號。如果使用得當,可以突破最棘手的FPGA調試問(wèn)題。
1.3 FPGA調試方法
在設計階段需要作出的關(guān)鍵選擇是使用哪種FPGA調試方法。在理想情況下,設計者希望有一種方法,這種方法可以移植到所有FPGA設計中,能夠洞察FPGA內部運行和系統運行過(guò)程,為確定和分析棘手的問(wèn)題提供相應的處理能力。
基本在線(xiàn)FPGA調試方法有2種:使用嵌入式邏輯分析儀以及使用外部邏輯分析儀。選擇使用何種方法取決于項目的調試需求。
2 嵌入式邏輯分析儀內核
主要的FPGA廠(chǎng)商針對器件的在線(xiàn)調試都提供了嵌入式邏輯分析儀內核,這些知識產(chǎn)權模塊插入FPGA設計中,同時(shí)提供觸發(fā)功能和存儲功能。它們使用FPGA邏輯資源實(shí)現觸發(fā)電路;使用FPGA存儲模塊實(shí)現存儲功能;使用JTAG配置內核操作,并用它將捕獲的數據傳送到PC上進(jìn)行查看。
由于嵌入式邏輯分析儀使用內部FPGA資源,因此其通常用于大型FPGA,這些大型FPGA可以更好地消化插入內核帶來(lái)的開(kāi)銷(xiāo)。一般來(lái)說(shuō),用戶(hù)希望內核占用的FPGA邏輯資源不超過(guò)可用資源的5%。
與其他調試方法一樣,還要知道這種方法存在的部分矛盾。
2.1 針腳與內部資源
嵌入邏輯分析儀內核不使用額外的測試針腳,因為它通過(guò)現有的JTAG針腳訪(fǎng)問(wèn)內核。這意味著(zhù)即使設計受到FPGA針腳限制,仍可以使用這種方法。矛盾在于,它使用的內部FPGA邏輯資源和存儲模塊可以用來(lái)實(shí)現設計。此外,由于使用片內內存存儲捕獲的數據,因此內存深度一般相對較淺。
2.2 探測與運行模式
嵌入式邏輯分析儀核心的探測非常簡(jiǎn)單,它使用現有的JTAG針腳。矛盾在于,盡管嵌入式邏輯分析儀可以查看FPGA操作,但沒(méi)有一種方式將這些信息與電路板級或系統級信息時(shí)間關(guān)聯(lián)起來(lái)。而將FPGA內部的信號與FPGA外部的信號關(guān)聯(lián)起來(lái)對解決棘手的調試問(wèn)題至關(guān)重要。在分析方法上,嵌入式邏輯分析儀只能進(jìn)行狀態(tài)分析。
2.3 成本與靈活性
大多數FPGA廠(chǎng)商提供了嵌入式邏輯分析儀內核,而其價(jià)格要低于全功能外部邏輯分析儀。雖然用戶(hù)希望更多的功能,但嵌入式邏輯分析儀內核的功能無(wú)論從通用性、分析方式、觸發(fā)能力,還是從存儲和分析能力都弱于全功能外部邏輯分析儀,而用戶(hù)通常需要這些功能來(lái)捕獲和分析棘手的調試問(wèn)題。例如,嵌入式邏輯分析儀只能在狀態(tài)模式下操作,它們捕獲與FPGA設計中已有的指定時(shí)鐘同步的數據,因此不能提供精確的信號定時(shí)關(guān)系。
3 外部邏輯分析儀
由于嵌入式邏輯分析儀方法存在部分限制,FPGA設計人員采用外部邏輯分析儀方法,來(lái)利用FPGA的靈活性和外部邏輯分析儀的處理能力,如泰克TLA系列邏輯分析儀。
在這種方法中,有用的內部信號路由到FPGA沒(méi)有使用的針腳上,然后連接到邏輯分析儀上。這種方法提供了非常深的內存,適合調試出現故障和實(shí)際導致該故障的原因在時(shí)間上相距很遠的問(wèn)題;對于需要采集大量數據進(jìn)行后期分析的設計人員也非常必要。另外,它還可以把內部FPGA信號與電路系統中的其他活動(dòng)時(shí)間關(guān)聯(lián)起來(lái)。
與嵌入式邏輯分析儀方法一樣,也需要考慮許多矛盾。
評論