基于FPGA的系統易測試性的研究
主要的FPGA廠商針對器件的在線調試都提供了嵌入式邏輯分析儀內核,這些知識產權模塊插入FPGA設計中,同時提供觸發功能和存儲功能。它們使用FPGA邏輯資源實現觸發電路;使用FPGA存儲模塊實現存儲功能;使用JTAG配置內核操作,并用它將捕獲的數據傳送到PC上進行查看。
由于嵌入式邏輯分析儀使用內部FPGA資源,因此其通常用于大型FPGA,這些大型FPGA可以更好地消化插入內核帶來的開銷。一般來說,用戶希望內核占用的FPGA邏輯資源不超過可用資源的5%。
與其他調試方法一樣,還要知道這種方法存在的部分矛盾。
2.1 針腳與內部資源
嵌入邏輯分析儀內核不使用額外的測試針腳,因為它通過現有的JTAG針腳訪問內核。這意味著即使設計受到FPGA針腳限制,仍可以使用這種方法。矛盾在于,它使用的內部FPGA邏輯資源和存儲模塊可以用來實現設計。此外,由于使用片內內存存儲捕獲的數據,因此內存深度一般相對較淺。
2.2 探測與運行模式
嵌入式邏輯分析儀核心的探測非常簡單,它使用現有的JTAG針腳。矛盾在于,盡管嵌入式邏輯分析儀可以查看FPGA操作,但沒有一種方式將這些信息與電路板級或系統級信息時間關聯起來。而將FPGA內部的信號與FPGA外部的信號關聯起來對解決棘手的調試問題至關重要。在分析方法上,嵌入式邏輯分析儀只能進行狀態分析。
2.3 成本與靈活性
大多數FPGA廠商提供了嵌入式邏輯分析儀內核,而其價格要低于全功能外部邏輯分析儀。雖然用戶希望更多的功能,但嵌入式邏輯分析儀內核的功能無論從通用性、分析方式、觸發能力,還是從存儲和分析能力都弱于全功能外部邏輯分析儀,而用戶通常需要這些功能來捕獲和分析棘手的調試問題。例如,嵌入式邏輯分析儀只能在狀態模式下操作,它們捕獲與FPGA設計中已有的指定時鐘同步的數據,因此不能提供精確的信號定時關系。
3 外部邏輯分析儀
由于嵌入式邏輯分析儀方法存在部分限制,FPGA設計人員采用外部邏輯分析儀方法,來利用FPGA的靈活性和外部邏輯分析儀的處理能力,如泰克TLA系列邏輯分析儀。
在這種方法中,有用的內部信號路由到FPGA沒有使用的針腳上,然后連接到邏輯分析儀上。這種方法提供了非常深的內存,適合調試出現故障和實際導致該故障的原因在時間上相距很遠的問題;對于需要采集大量數據進行后期分析的設計人員也非常必要。另外,它還可以把內部FPGA信號與電路系統中的其他活動時間關聯起來。
與嵌入式邏輯分析儀方法一樣,也需要考慮許多矛盾。
3.1 針腳與內部資源
外部邏輯分析儀方法采用非常少的邏輯資源,不使用FPGA內存資源。它釋放了這些資源,來實現所需功能。其矛盾在于,必須增加專用于調試的針腳數量,而設計時需要使用這些針腳。
3.2 探測與工作模式
外部邏輯分析儀探測要比嵌入式邏輯分析儀方法要求的探測復雜一些。必須確定怎樣使用邏輯分析儀探頭探測FPGA內部信號,而不能使用電路板上已有的JTAG連接器。最簡便的方式是在電路板中增加一個測試連接器,這可以簡便地把FPGA信號與系統中的其他信號關聯起來。
3.3 成本與靈活性
盡管外部邏輯分析儀的購買價格確實要高于嵌入式邏輯分析儀,但使用外部邏輯分析儀可以解決更加廣泛的問題。邏輯分析儀不僅可以用于FP
GA調試,還可以用來解決其他數字設計挑戰,它被公認為是進行通用數字系統硬件調試的最佳工具。外部邏輯分析儀能夠實現更加靈活的采集模式和觸發功能。通過外部邏輯分析儀,可以設置最多16個不同的觸發狀態(每一個狀態含有16個條件判斷分支),每一個通道提供256 MB的內存,并且可以在定時分析模式下以高達125 ps的分辨率(8 GS/s采樣) 捕獲數據。
4 FPGAView進行FPGA調試
外部邏輯分析儀方法有效地利用了FPGA的處理能力,并根據需要重新對設備配置,將有用的內部信號路由到通常很少的針腳上。這是一種非常有用的方法,但它也有一定的局限性:用戶每次需要查看一套不同的內部信號時,都必須改變設計(在RTL級或使用FPGA編輯器工具),把希望的信號組路由到調試針腳上。這不僅耗時,而且如果要求重新匯編設計,還會改變設計的定時,可能會隱藏需要解決的問題。當更改FPGA內部測試信號時,在外部邏輯分析儀上的被測信號名稱需要手工進行更新。一般說來,調試針腳數量很少,內部信號與調試針腳之間1:1的關系限制著設計查看能力和洞察力。為克服這些局限性,出現了一種新的FPGA調試方法,它不僅提供了外部邏輯分析儀方法的所有優勢,還消除了主要局限性。FPGAView軟件在與泰克TLA系列邏輯分析儀配套使用時,為調試FPGA和周邊硬件電路提供了一個完整的解決方案,如圖2所示。
這種組合可以時間關聯的查看FPGA的內部活動和外部活動;迅速改變FPGA內部探點,而無須重新匯編設計;每個針腳監測多個內部信號;在TLA邏輯分析儀上自動更新切換的內部信號名稱。此外,FPGAView可以在一臺設備中處理多個測試內核(適合監測不同的時鐘域),并可以在一個JTAG鏈上處理多臺FPGA設備。
評論