Microsemi 線上 FPGA 調試
產品資訊
規格
- 設備類型:Microsemi SmartFusion2 SoC FPGA
- 發售日期:2014 年 XNUMX 月
- 調試功能:線上 FPGA 調試、嵌入式邏輯分析儀
- 最大資料擷取頻率:高達 100MHz
抽象的
FPGA 是嵌入式系統中強大的設計元素,具有許多設計優勢tag但這些設備可能具有複雜的設計,並且存在需要調試的複雜設計問題。追蹤定義錯誤、系統互動問題和系統時序錯誤等設計問題可能是一個挑戰。 FPGA 中加入線上偵錯功能可以顯著改善硬體調試,並避免無數小時的挫折感。本文介紹了 FPGA 在線調試的幾種不同方法,確定了關鍵的權衡,並通過一個示例amp該設計針對 Microsemi SmartFusion®2 SoC FPGA 設備,將展示如何使用新功能加速除錯和測試。
介紹
FPGA 是一種普遍且強大的設計元素,現在幾乎存在於每個嵌入式系統中。隨著容量的增加、複雜的片上功能模組和先進的串行介面的加入,這些設備也可能出現需要調試的複雜設計問題。使用先進的 FPGA 時,追蹤諸如功能定義錯誤(在 FPGA 或系統級)、功能係統互動問題、系統時序問題以及 IC 之間的訊號保真度問題(如雜訊、串擾或反射)等問題都會變得更加複雜。模擬對於識別許多設計問題確實有很大幫助,但許多現實世界的互動只有在設計在硬體中實現時才會出現。已經開發了幾種用於調試複雜設計問題的不同技術來簡化該過程。仔細理解每項關鍵技術,包括各種優勢tages和disadvantag在考慮哪種技術或技術組合適合特定設計時很有用。
前任ample FPGA 設計針對 Microsemi SmartFusion2 SoC FPGA 設備,可用於展示一些優勢tages和disadvantag這些標準技術以及最新的線上調試功能。這個說明性的例子amp本文將展示如何使用這些不同的技術來加速硬體調試期間硬體問題的識別和消除。
為什麼 FPGA 調試是系統設計和開發的關鍵方面?
FPGA 有兩種主要使用模型,使其有別於其他設計元素。 FPGA 可用於生產產品,或可用作開發工具來驗證或製作生產設計概念的原型。當用作生產工具時,FPGA 可以比 ASIC 或基於 CPU 的生產工具更靈活。這對於尚未在硬體中實現的新設計尤其重要。可以輕鬆建立和測試具有不同架構選項的設計,從而確定最佳設計。具有片上處理器的 FPGA(SoC FPGA)還可以平衡基於 CPU 的處理和基於硬體輔助 FPGA 的加速功能。這些優勢tages可以大幅減少新產品開發的設計、驗證、測試和故障分析所需的時間。
當用於原型設計(例如用於生產 ASIC)時,FPGA 靈活性是一個關鍵優勢。實際的硬體平台,即使不是全速運行的平台,也可以更輕鬆地獲得詳細的系統效能指標、吞吐量分析資料和架構概念驗證結果。 FPGA 對產業標準匯流排(如 PCIe®、千兆乙太網路、XAUI、USB、CAN 等)的強化實現的支援簡化了與這些介面相關的測試。最新的 FPGA 系列配備片上 ARM 處理器 (SoC FPGA),可輕鬆使用嵌入式處理器進行原型實作。先前開發的處理器程式碼可以移植到原型中,並且可以與硬體設計工作並行創建新的程式碼。
標準處理器與標準介面匯流排的組合使得利用可用程式碼庫、驅動程式、功能 API、即時作業系統甚至完整作業系統的大型生態系統來更快地創建工作原型成為可能。此外,一旦設計確定下來,FPGA 原型就可以用來捕捉反映實際系統資料的大量模擬測試集(用於刺激和回應)。這些資料集對於創建 ASIC 或其他生產實施的最終模擬非常有價值。優勢tag使用 FPGA 作為設計原型的優勢可以大幅減少最終產品實施的設計、驗證、測試和故障分析的時間。
在這兩種常見的 FPGA 使用模型中,FPGA 作為設計目標的靈活性是一個關鍵優勢tage.這意味著許多設計變更和迭代將成為常態,因此快速調試設計錯誤的能力對於實現盡可能多的設計選項至關重要。如果沒有有效的調試能力,許多優勢tagFPGA 設計的彈性會因所需的額外除錯時間而降低。幸運的是,FPGA 還可以提供額外的硬體功能,大大簡化即時調試。在了解這些功能之前,讓我們先看看 FPGA 設計可能面臨的最常見問題類型,以便我們有適當的背景來評估各種調試工具的效率和相關的權衡。
調試 FPGA 設計時的常見問題
隨著現代 FPGA 帶來的擴展功能,隨之而來的複雜性的增加使得創建無錯誤的設計變得更加困難。事實上,據估計,調試可佔據嵌入式系統設計週期的 50% 以上。隨著上市時間的壓力不斷壓縮開發週期,初始系統的硬體調試被降為事後考慮——人們常常認為驗證(本身佔很大比例)tag在開發計畫的實施過程中,開發人員會先檢查系統是否正常運作(在開發計畫的實施過程中),然後在系統初始啟動之前捕獲所有的錯誤。讓我們來看看幾種常見的系統問題,以便更好地理解典型設計在初始系統啟動期間將面臨的挑戰。
由於設計人員誤解了特定的要求,因此功能定義錯誤可能很難發現,因此即使仔細查看設計細節,也可能忽略錯誤。前任amp常見的功能定義錯誤之一是狀態機轉換沒有以正確的狀態結束。錯誤也可能作為互動問題出現在系統介面中。例如介面延遲ample,可能被錯誤指定,從而導致意外的緩衝區溢位或下溢情況。
系統級時序問題是另一個非常常見的設計錯誤來源。特別是,當沒有仔細考慮同步或跨時間域效應時,非同步事件是常見的錯誤來源。當高速運行時,這些類型的錯誤可能會非常麻煩,並且可能很少出現,也許僅在特定資料模式出現時才會出現。許多常見的時序違規都屬於這一類,而且通常非常難以模擬,甚至無法模擬。
時序違規也可能是積體電路之間訊號保真度低的結果,特別是在每個電路具有多個電源軌的系統中。低訊號保真度會導致訊號雜訊、串擾、反射、過載和電磁幹擾 (EMI) 問題,這些問題通常表現為時序違規。電源問題,例如瞬變(特別是在系統啟動或關閉期間)、負載變化和高功率耗散應力也會導致神秘錯誤,而且通常不容易追溯到電源。即使設計完全正確,電路板製造問題也可能導致錯誤。例如,焊點缺陷和連接器連接不當ample,可能是錯誤的來源,甚至可能與溫度或電路板位置有關。使用先進的 FPGA 封裝技術會使探測印刷電路板上的訊號變得困難,因此取得所需的訊號通常會很困難。許多設計問題通常不會立即產生錯誤,而必須在整個設計過程中產生連鎖反應,直到錯誤真正顯現出來。追溯啟動錯誤的根本原因通常是一項令人沮喪、困難且耗時的任務。
對於前amp例如,轉換表中的單位元錯誤可能要經過許多週期後才會導致錯誤。我們將在本文後面討論的一些工具使用專用的線上調試硬件,專門用於更快、更輕鬆地進行這些「錯誤搜尋」。在深入了解這些工具的細節之前,讓我們先來看看一種流行的基於軟體的調試技術模擬,以便更好地理解其優勢tages和disadvantag使用模擬進行調試。
使用模擬進行調試
通常在設計模擬中,設計內部和外部的所有實際組件都以數學方式建模為軟體進程,並在標準 CPU 上按順序執行。對設計應用各種刺激,並根據模擬設計輸出檢查預期輸出,是發現最明顯的設計錯誤的簡單方法。下圖 1 給出了顯示典型模擬運行的視窗。明顯的優勢tag模擬與基於硬體的調試的區別在於,模擬可以在軟體中完成——不需要實際的基於硬體的設計和測試平台。模擬可以快速發現許多設計錯誤,特別是與不正確的規範、對介面要求的誤解、功能錯誤以及許多其他可以透過簡單的刺激向量輕鬆檢測到的「嚴重」類型的錯誤相關的錯誤。
當設計人員可以獲得廣泛的刺激組合並且所得到的輸出眾所周知時,模擬特別有效。在這些情況下,模擬可以對設計進行幾乎詳盡的測試。不幸的是,大多數設計無法輕鬆存取廣泛的測試套件,並且創建它們的過程可能非常耗時。對於基於 FPGA 的大型設計來說,創建覆蓋 100% 設計的測試套件幾乎是不可能的,必須使用捷徑來嘗試覆蓋設計的關鍵元素。模擬的另一個困難是,它不是「真實世界」的實現,無法捕捉非同步事件、高速系統互動或時序違規。最後,模擬過程可能非常緩慢,如果需要多次迭代,模擬很快就會成為最耗時的部分,而且往往是開發過程中最昂貴的部分。
作為一種替代方案(或者更好地說,作為模擬的補充),FPGA 設計人員發現他們可以在 FPGA 設計中添加調試硬件,以便觀察和控制設備內的關鍵信號。這些技術最初是作為臨時方法開發出來的,但逐漸發展成為標準的硬體調試策略。這種線上調試功能的使用提供了顯著的優勢tag基於 FPGA 的設計,下一節將探討三種最常見的策略及其各種優勢tages和disadvantages.
FPGA 常見的線上除錯方法
在 FPGA 中實現線上偵錯功能的最常見技術是使用嵌入式邏輯分析儀、外部測試設備或嵌入在 FPGA 結構中的專用訊號探測硬體。嵌入式邏輯分析儀通常採用 FPGA 結構實作並插入設計中。 JTAG 連接埠用於存取分析儀,並且捕獲的數據可在PC上顯示。當使用外部測試設備時,被測的 FPGA 設計會被修改,以便選定的內部 FPGA 訊號被路由到輸出引腳。然後可以透過外部測試設備觀察這些引腳。使用專用訊號探頭硬體時,可以即時讀取多種內部訊號。一些探測器實作甚至可以用來寫入暫存器或記憶體位置,進一步增強調試能力。讓我們更詳細地了解優勢tages和disadvantag每種技術的範例,然後查看範例amp設計來了解這些不同的方法如何影響整體調試時間。
線上 FPGA 調試嵌入式邏輯分析儀
嵌入式邏輯分析儀的概念是設計人員首次使用 FPGA 時實現的臨時線上偵錯功能的直接結果。嵌入式邏輯分析儀增加了新的功能,並且消除了設計人員開發自己的分析儀的要求。大多數 FPGA 都提供這些功能,第三方也提供標準分析儀(Synopsys 的 Identify® 就是其中一個受歡迎的例子)。ample) 可以輕鬆地與更高層級的工具連接,以進一步提高生產力。
邏輯分析儀功能被插入到設計中,使用 FPGA 結構和嵌入式記憶體區塊作為追蹤緩衝器,如圖 2 所示。還創建了觸發資源,以便可以輕鬆選擇和捕獲複雜的訊號互動。對分析儀的控制和資料傳輸通常透過標準 JTAG 連接埠來簡化介面要求。捕獲的數據可以使用常見的 view軟體,通常鏡像邏輯模擬器波形輸出 view風格。
先進的tag這種方法的優點是不使用額外的 FPGA I/O 引腳,只需使用標準 JTAG 信號。嵌入式邏輯分析儀 IP 核心通常相對便宜,在某些情況下可以作為現有 FPGA 合成或模擬工具的選項。在某些情況下,如果更方便的話,嵌入式邏輯分析儀還可以在未使用的 I/O 上提供額外的輸出。缺點之一tag這種方法的缺點是需要大量的 FPGA 資源。特別是,如果使用追蹤緩衝區,這將減少可用的區塊記憶體數量。如果需要較寬的緩衝區,這也將與記憶體深度產生權衡(因為使用較寬的記憶體會導致較淺的記憶體深度)——這是一個很大的缺點tage 使用較小的設備時。也許這種技術最大的缺點是每次調整探針位置時,都需要重新編譯和重新編程設計。當使用大型設備時,這個過程可能需要相當長的時間。由於訊號探針在設計中的放置方式,關聯訊號時序關係可能很困難。此外,訊號偵測器之間的延遲並不一致,因此時間關係難以比較。當比較非同步訊號或來自不同時間域的訊號時,這尤其困難。
線上 FPGA 調試 – 外部測試設備
當外部邏輯分析儀已經可用於系統測試時,將線上偵錯程式碼與外部測試設備結合使用是一種自然的發展。透過創建一些簡單的調試程式碼來識別和選擇內部測試訊號並將其應用於 FPGA I/O(如圖 3 所示),可以利用分析儀的高級功能(例如大型追蹤緩衝區、複雜的觸發序列和多個 viewing 選項)來建立簡單但功能強大的偵錯環境。進階觸發選項的更複雜的電路內功能可以最大限度地減少所需的輸出數量。例如amp例如,如果需要外部引腳,則在寬總線上選擇特定位址可能會受到限制。
使用內部 FPGA 邏輯可大幅減少 I/O 要求,甚至可以找到特定的位址模式(可能是呼叫和返回序列)來除錯更複雜的問題。如果有通用的使用者介面,這可以簡化學習曲線並提高生產力。
先進的tag這種方法的優點是它利用了外部測試設備的成本,因此不會增加工具成本。一些調試電路IP核可從設備製造商或FPGA製造商處獲得,而且成本非常低甚至免費。實現訊號選擇邏輯所需的 FPGA 資源量非常小,並且由於追蹤功能是使用外部邏輯分析儀完成的,因此不需要區塊記憶體。由於選擇邏輯成本低廉,因此也可以支援具有廣泛觸發的大量通道。邏輯分析儀可以在時序模式和狀態模式下運行,這有助於隔離一些時序問題。
不利因素tag如果專案尚未分配邏輯分析儀,則此方法的缺點是需要購買邏輯分析儀。這種缺點tag在許多情況下,這可能足以阻止這種方法。但請注意,一些使用 PC 或平板電腦進行顯示的低成本邏輯分析儀選項正在變得可用,這使得該選項對於簡單的偵錯要求來說更具成本效益。
FPGA 腳位消耗量可能是另一個缺點tag如果需要觀察寬總線,則需要對電路板佈局進行大量規劃,並添加調試連接器。這個要求大多數時候在設計階段早期很難預測,並且會帶來另一個不必要的複雜性。與嵌入式邏輯分析儀方法類似,每次需要進行新實驗時,外部測試策略都需要重新編譯和重新編程設計。
常見的缺點tag這兩種技術的優點在於:使用片上資源(也可能影響設計的時序性能並產生額外的調試要求)、需要重新編譯和重新編程設計(這可能會使調試時間增加數小時甚至數天)、確定可能的測試場景所需的前期規劃以及使用額外的晶片 I/O 資源,因此需要一種沒有這些缺點的方法。其中一個因應措施是在某些裝置的 FPGA 結構中加入專用偵錯邏輯。結果是使用硬體探針進行線上調試。
線上 FPGA 調試 – 硬體探針
硬體探測器的使用大大簡化了 FPGA 的線上調試技術。該技術作為 SmartFusion2®SoC FPGA 和 IGLOO®2 FPGA 設備上的即時探測功能實現,在 FPGA 結構中添加專用探測線以觀察任何邏輯元件暫存器位元的輸出。如圖4的框圖所示,硬體探頭有兩個探頭通道A和B。
選定的暫存器輸出(探測點),比如圖底部所示的輸出,被路由到兩個探測通道上方,並且如果被選中,可以應用於 A 或 B 通道。然後,這些即時通道訊號可以被傳送到裝置上專用的探針 A 和探針 B 引腳。探頭 A 和探頭 B 訊號也可以內部路由至嵌入式邏輯分析儀。
請注意,探測針的時序特性是規則的,從一個探測點到另一個探測點的偏差可以忽略不計,更容易比較即時訊號的時序特性。資料擷取速度高達 100MHz,適合大多數目標設計。
也許最重要的是探測點的位置,因為它們不是作為實施設計的一部分而選擇的(它們是在設計在 FPGA 上運行時通過專用硬體選擇的),所以可以通過簡單地將選擇數據發送到設備來快速更改。不需要重新編譯和重新編程設計。
為了進一步簡化即時探針功能的使用,相關的調試軟體工具可以透過自動產生的調試來存取所有探針訊號位置 file。如圖5所示,可以從訊號清單中選擇訊號名稱並套用到所需的通道。即使在設計運行時也可以完成此操作,以便設計內的探測活動無縫且非常有效率。
在許多情況下,硬體探測功能(如 Live Probe)可以與前面描述的嵌入式邏輯分析儀和外部測試技術結合使用。
如圖 6 所示,Live Probe 具有「動態」選擇訊號的功能,可以快速輕鬆地更改觀察下的訊號,而無需重新編譯設計。外部邏輯分析儀或示波器可以輕鬆觀察偵測訊號,如圖右上部分專用探頭輸出接腳所示。或者(或甚至除此之外)可以使用內部邏輯分析儀(ILA 識別塊,如圖所示)來觀察探測引腳。探測訊號可以被 ILA 捕獲並在波形視窗上觀察到。無需重新編譯目標設計即可改變探測位置。
請注意,觸發和追蹤的附加功能可用於增強探測功能,從而可以輕鬆發現甚至複雜的設計問題。
SmartFusion2 SoC FPGA 和 IGLOO2 FPGA 設備上還提供額外的硬體調試功能。其中一項功能稱為“主動探測”,可以動態且非同步地讀取或寫入任何邏輯元件暫存器位元。寫入的值會持續一個時鐘週期,因此正常操作可以繼續,這使其成為非常有價值的調試工具。如果需要快速觀察內部訊號(可能只是為了檢查它是否處於活動狀態或所需狀態,例如重設訊號),或者需要透過寫入探測點來快速測試邏輯功能,則有源探針尤其有用
(也許透過快速設定輸入值來啟動狀態機轉換以隔離控制流程問題)。
Microsemi 提供的另一個調試功能是記憶體調試。此功能允許設計人員動態且非同步地讀取或寫入選定的 FPGA 結構 SRAM 區塊。如調試工具的螢幕截圖(圖 7)所示,當選擇“內存塊”選項卡時,用戶可以選擇要讀取的內存,執行內存的快照捕獲,修改內存值,然後將值寫回設備。這對於檢查或設定用於計算導向便箋本的通訊連接埠的資料緩衝區甚至嵌入式 CPU 執行的程式碼特別有用。當可以如此快速地觀察和控制記憶體時,調試複雜資料相關錯誤會變得更快、更容易。
一旦設計被調試,可能需要關閉硬體調試功能以保護敏感資訊。攻擊者可以使用相同的設施讀取關鍵資訊或更改系統設置,從而輕鬆存取系統的敏感部分。 Microsemi 已添加一些功能,允許設計人員在調試完成後保護設備。例如amp例如,可以鎖定對即時探針和主動探針的存取以完全停用該功能作為可能的攻擊手段(它甚至消除了探針活動在電源電流中創建任何模式的可能性,這些模式可用於嘗試間接觀察探針資料)。或者,可以鎖定對設計選定部分的訪問,以防止僅訪問這些部分。如果只需要確保設計的一部分的安全,而使設計的其餘部分仍可進行現場測試或錯誤分析,那麼這會很方便。
線上偵錯比較表
現在,詳細的重新view 已經描述了三種主要的線上硬體調試技術,並創建了一個摘要圖表,如圖 8 所示,該圖表詳細介紹了各種優勢tages和disadvantag每種方法的 es。記住,有些技術可以結合使用(例如,即時探針和內部邏輯分析儀(ILA),如 Synopsys 識別)amp從圖中可以看出,每種技術的主要優點和缺點。線上硬體偵錯功能集合(即時探測、主動探測和記憶體調試 - 統稱為 SmartDebug)在可用探測總數(紅色圓圈)方面與其他技術相比最弱,而當考慮捕獲速度(外部測試設備可以更快)時,它們比最好的(黃色圓圈)更弱。
與其他技術相比,並且考慮到 FPGA 資源需求時,基於 ILA 的技術(例如 Synopsys Identity)是最弱的。基於外部測試設備的技術在許多方面都是最薄弱的,其中成本、設計時序影響和探測行動開銷(由於需要重新編譯設計)是最繁重的。也許最佳解決方案是將 SmartDebug 與其他技術結合,這樣可以緩解 SmartDebug 的通道數弱點,並減少偵測點移動的缺點tag其他技術的效果也同樣降低了。
訊號分類
可以對一些最常見的訊號類型進行有用的區分,這有助於規劃偵錯方法。例如amp例如,除了系統啟動期間之外不會改變的訊號(例如係統重設、區塊重設或初始化暫存器)可歸類為靜態訊號。透過可以輕鬆觀察和控制訊號的設備可以最有效地存取這些類型的訊號,而無需較長的重新編譯週期。 Active Probe 是偵錯靜態訊號的絕佳工具。類似地,變化較頻繁但在絕大多數時間內仍保持靜態的訊號可歸類為偽靜態,並且使用主動探頭進行調試也是最有效的。頻繁變化的訊號(例如時脈訊號)可歸類為動態訊號,且不易透過主動探頭存取。 Live Probe 是觀察這些訊號的更好選擇。
簡單調試用例
現在我們對各種線上偵錯選項有了更好的了解,讓我們看一個簡單的設計範例amp來看看這些技術的表現如何。圖 9 顯示了 SmartFusion2 SoC FPGA 設備中的簡單 FPGA 設計。微控制器子系統 (MSS) 由 CoreSF2Reset Soft IP 區塊重設。此模組的輸入是上電重設、使用者結構重設和外部重設。輸出包括使用者結構重置、MSS 重置和 M3 重置。錯誤症狀是即使裝置成功退出 POR 狀態,I/O 上也沒有任何活動。圖中也說明了調試此錯誤的三種不同選項:藍色框(標有 ETE)用於外部測試設備方法;綠色框(標有 ILA)代表內部邏輯分析儀方法;橙色框(標有 AP)代表主動探測方法。我們假設錯誤的潛在根本原因是對 CoreSF2Reset Soft IP 區塊的重設輸入不正確。
現在讓我們來看看前面描述的三種線上方法的調試過程。
外部測試設備
使用此方法,假設測試設備可用且未被更高優先順序的項目使用。此外,提前規劃也很重要,以便一些 FPGA I/O 可用並且可以輕鬆連接到測試設備。例如,在 PCB 上有一個接頭ample,將會非常有幫助,並最大限度地減少在探測過程中試圖識別和連接「可能的嫌疑人」或潛在的引腳短路所花費的時間。需要重新編譯設計以選擇我們想要調查的訊號。希望我們不會像「剝洋蔥」一樣需要選擇其他訊號進行進一步調查,因為通常我們的初步調查只會導致更多問題。無論如何,重新編譯和重新編程過程可能會花費大量時間,如果導致時序違規,則需要重新設計(我們都知道解決時序收斂問題是多麼令人沮喪,特別是當您進行設計更改以查找設計錯誤時 - 整個過程可能需要幾分鐘到幾小時)!還需要記住的是,如果設計沒有可用的用戶 I/O,則無法實現此方法。此外,這種方法在結構上對設計具有侵入性——並且與時間相關的錯誤可能會在迭代之間消失或重新出現。
內部邏輯分析儀
使用此方法,必須使用結構資源將 ILA 插入設計中,然後需要重新編譯。請注意,如果 ILA 已經實例化,我們想要調查的訊號可能尚未被檢測,這也需要重新編譯。此過程可能會改變原始設計並違反時間限制。如果滿足時序要求,則需要重新編程並重新初始化設計。如果重新編譯時間很長並且需要多次傳遞,整個過程可能需要幾分鐘甚至幾小時。這種方法在結構上具有侵入性,可能會導致與使用上述方法時所描述的類似的問題。
有源探頭
使用此方法,有源探頭可以指向各種重設訊號的來源,所有重設訊號均來自暫存器輸出(這在任何良好的數位設計實踐中都很常見)。從下圖 10 所示的主動探頭選單中,每次選擇一個訊號。可以讀取所選訊號值並將其顯示在有源探頭資料視窗上。任何錯誤斷言都很容易被識別。此測試可立即完成,無需重新編譯和重新編程設備,並且不會在結構或程式上造成侵入。整個過程僅需幾秒鐘。此方法還可以創建可控性(非同步改變值),而其他兩種方法則不允許。在這個特定的例子中amp例如,可以輕鬆探測並發現暫存器發出的重設訊號處於活動狀態。
透過非同步操作產生重設訊號的暫存器可以實現重設訊號的瞬時切換。
更複雜的調試用例
上述設計非常簡單,可以作為使用所述設計技術的介紹,但更複雜的範例ample 可能更能說明問題。很多時候,感興趣的訊號並不是像我們簡單的範例那樣的靜態訊號amp但是是動態的。常見的動態訊號是中間時鐘,可能用於為串列介面計時握手。圖 11 顯示了具有使用者軟體 IP 核心的此類設計,在本例中,自訂序列介面連接到系統 APB 匯流排。錯誤症狀是使用者自訂序列介面上沒有活動,並且當 APB 匯流排主機發出交易以存取序列介面時,它會進入異常狀態,表示握手不正確。這些條件似乎排除了靜態原因,例如不正確的重置訊號,因為交易狀態機似乎沒有按照預期的速率運行,從而導致異常。根本原因被認為是用戶 IP 核心內的時脈頻率產生器。
如果它沒有以正確的頻率運行,就會產生所描述的錯誤。
在這種情況下,以即時偵測 (Live Probe) 取代主動偵測 (Active Probe) 方法可能是更好的策略。上圖橙色的 LP 框說明了這一點,使用 JTAG 訊號用於探頭來源的選擇。
外部測試設備
對於這種情況,方法與前面描述的簡單範例非常相似amp勒。使用者時鐘訊號被引出到測試點(希望在標題上)並且需要耗時的重新編譯。提出一個參考訊號也可能有幫助,例如一個用於為使用者 IP 提供時脈的系統時脈作為比較訊號。我們將再次面臨重新編譯和重新編程的需求,因此整個過程可能需要相當長的時間。
內部邏輯分析儀
這種情況與簡單的情況非常相似amp勒。必須插入 ILA,或定義所需的訊號,然後執行重新編譯和重新編程循環。所有前面描述的問題仍然會導致相當長的調試週期時間。然而,還有額外的複雜性。驅動 ILA 的時鐘需要同步,理想情況下要比從用戶軟 IP 核觀察到的時鐘快得多。如果這些時鐘是異步的,或者沒有正確的時序關係,資料擷取將變得不可預測,並可能成為偵錯過程混亂的根源。
請注意,如果使用者軟 IP 時鐘不是在片上產生的(也許是從串列介面恢復的),則設計人員可能需要添加時脈模組,以使用額外的資源產生更快的 ILA 時鐘,並可能產生時序違規。
即時探針
使用此方法,即時偵測器可以快速指向使用者時脈來源和來自暫存器的任何其他時脈來源,以追蹤錯誤的根本原因。 Live Probe 將即時顯示所選的訊號輸出,因此更容易確定訊號之間的任何時間關係。整個過程僅需幾秒鐘。
串行接口的其他調試功能
還需要指出的是,SmartFusion2 SoC FPGA 和 IGLOO2 FPGA 設備中還有許多額外的調試功能,可用於串行接口,就像上例中的那樣amp設計中的錯誤會變得更加複雜。例如 SERDES 調試ample,為專用高速串列介面提供特定的調試功能。 SERDES 偵錯的一些功能包括 PMA 測試支援(如 PRBS 模式產生和環回測試)、對多個 SERDES 測試配置的支援以及暫存器級重新配置以避免使用完整的設計流程來進行配置更改,以及顯示配置的協定、SERDES 配置暫存器和 Lane 配置暫存器的文字報告。這些功能使 SERDES 調試變得更加容易,並且可以與 Live Probe 和 Active Probe 結合使用,以進一步加快複雜電路的調試速度。
前面描述的記憶體調試工具還可以與 SERDES 調試結合使用以加快測試速度。由於可以使用 Memory Debug 快速輕鬆地檢查和更改記憶體緩衝區,因此可以快速建立「測試資料包」並觀察環回或系統間通訊結果。設計人員可以利用這些功能,從而最大限度地減少對專用「測試工具」的需求,因為這些工具會消耗額外的 FPGA 結構,並且可能會影響晶片時序。
結論
本文詳細介紹了實現 FPGA 和 SoC FPGA 在線調試的幾種不同方法——使用集成邏輯分析儀、使用外部測試設備以及使用集成到 FPGA 結構中的專用探測電路。事實證明,添加專門的探測電路(例如 Microsemi 在 SmartFusion2 SoC FPGA 和 IGLOO2 FPGA 設備上提供的 Active Probe 和 Live Probe)可以顯著加快和簡化調試過程。事實證明,快速修改內部訊號選擇的能力(無需執行非常耗時的重新編譯和重新編程週期)以及探測內部訊號的能力(無需使用 FPGA 結構並可能引入時序違規)是主要優勢tag調試 FPGA 設計時。此外,還描述了多種方法的使用,這些方法可以協同工作以提供更全面的調試功能。最後,兩個前任amp給出了調試用例來說明所述方法之間的權衡。
了解更多
- IGLOO2 FPGA
- SmartFusion2 SoC FPGA
美高森美公司(納斯達克股票代碼:MSCC)為通訊、國防與安全、航空航太和工業市場提供全面的半導體和系統解決方案組合。產品包括高效能、抗輻射類比混合訊號積體電路、FPGA、SoC 和 ASIC;電源管理產品;授時與同步裝置以及精確的時間解決方案,樹立世界時間標準;語音處理設備;射頻解決方案;分立元件;安全技術和可擴展的反amp呃產品;乙太網路供電 IC 和中跨;以及客製化設計能力和服務。 Microsemi 總部位於加州阿里索維耶荷,全球約有 3,400 名員工。了解更多信息 www.microsemi.com.
© 2014 美高森美公司。 版權所有。 Microsemi 和 Microsemi 徽標是 Microsemi Corporation 的商標。 所有其他商標和服務標記均為其各自所有者的財產。
美高森美公司總部
- 一 Enterprise, 亞里索維耶荷 CA 92656 美國
- 之內 美國:+1 800-713-4113
- 外部 美國:+1 949-380-6100
- 銷售量: +1 949-380-6136
- 傳真: +1 949-215-4996
- 電子郵件: sales.support@microsemi.com
常問問題
- Q:該設備的最大資料擷取頻率是多少?
答:該設備支援高達 100MHz 的資料捕獲,適合大多數目標設計。 - Q:使用探測電路進行偵錯時,需要重新編譯設計嗎?
答:否,探測點位置可以快速改變,而無需重新編譯設計或重新編程。
文件/資源
![]() |
Microsemi 線上 FPGA 調試 [pdf] 指示 線上 FPGA 調試、FPGA 調試、調試 |