加速FPGA系統(tǒng)實時調(diào)試技術(shù)
設(shè)計階段
在這一階段不僅要設(shè)計,而且要使用仿真工具開始調(diào)試。實踐證明,正確使用仿真為找到和校正設(shè)計錯誤提供了一條有效的途徑。但是,不應(yīng)依賴仿真作為調(diào)試FPGA設(shè)計的唯一工具。
在設(shè)計階段,還需要提前考慮調(diào)試和檢驗階段,規(guī)劃怎樣在線快速調(diào)試FPGA,這可以定義整體調(diào)試方法,幫助識別要求的任何測試測量工具,確定選擇的調(diào)試方法對電路板設(shè)計帶來的影響。針對可能選用的FPGA存在的高速總線,除了考慮邏輯時序的測試和驗證外,還應(yīng)該充分考慮后面可能面臨的信號完整性測試和分析難題。
調(diào)試和檢驗階段
在調(diào)試階段,必需找到仿真沒有找到的棘手問題。怎樣以省時省力的方式完成這一工作是一個挑戰(zhàn)。
在本文的第一部分,我們將考察怎樣選擇正確的FPGA調(diào)試方法及怎樣有效利用新方法的處理能力,這些新方法可以只使用少量的FPGA針腳查看許多內(nèi)部FPGA信號。如果使用得當(dāng),您可以突破最棘手的FPGA調(diào)試問題。
FPGA調(diào)試方法
在設(shè)計階段需要作出的關(guān)鍵選擇是使用哪種FPGA調(diào)試方法。在理想情況下,您希望有一種方法,這種方法可以移植到所有FPGA設(shè)計中,能夠洞察FPGA內(nèi)部運行和系統(tǒng)運行過程,為確定和分析棘手的問題提供相應(yīng)的處理能力。
基本在線FPGA調(diào)試方法有兩種:使用嵌入式邏輯分析儀以及使用外部邏輯分析儀。選擇使用哪種方法取決于項目的調(diào)試需求。
嵌入式邏輯分析儀內(nèi)核
主要FPGA廠商針對器件的在線調(diào)試都提供了嵌入式邏輯分析儀內(nèi)核,如ALTERA的SignalTap II和Xilinx的ChipScope ILA。這些知識產(chǎn)權(quán)模塊插入FPGA設(shè)計中,同時提供觸發(fā)功能和存儲功能。它們使用FPGA邏輯資源實現(xiàn)觸發(fā)電路,使用FPGA存儲模塊實現(xiàn)存儲功能。它們使用JTAG配置內(nèi)核操作,并用來把捕獲的數(shù)據(jù)傳送到PC上進(jìn)行查看。
由于嵌入式邏輯分析儀使用內(nèi)部FPGA資源,因此其通常用于大型FPGA,這些大型FPGA可以更好地消化插入內(nèi)核帶來的開銷。一般來說,用戶希望內(nèi)核占用的FPGA邏輯資源不超過可用資源的5%。
與任何調(diào)試方法一樣,還要知道這種方法存在的部分矛盾。
針腳與內(nèi)部資源
嵌入邏輯分析儀內(nèi)核不使用額外的測試針腳,因為它通過現(xiàn)有的JTAG針腳訪問內(nèi)核。這意味著即使設(shè)計受到FPGA針腳限制,您仍可以使用這種方法。矛盾在于,它使用的內(nèi)部FPGA邏輯資源和存儲模塊可以用來實現(xiàn)設(shè)計。此外,由于使用片內(nèi)內(nèi)存存儲捕獲的數(shù)據(jù),因此內(nèi)存深度一般相對較淺。
探測與運行模式
嵌入式邏輯分析儀核心的探測非常簡單。它使用現(xiàn)有的JTAG針腳,因此不必?fù)?dān)心怎樣把外部邏輯分析儀連接到系統(tǒng)上。矛盾在于,盡管嵌入式邏輯分析儀可以查看FPGA操作,但沒有一種方式把這些信息與電路板級或系統(tǒng)級信息時間關(guān)聯(lián)起來。而把FPGA內(nèi)部的信號與FPGA外部的信號關(guān)聯(lián)起來對解決最棘手的調(diào)試挑戰(zhàn)至關(guān)重要。在分析方法上,嵌入式邏輯分析儀只能進(jìn)行狀態(tài)分析。
成本與靈活性
大多數(shù)FP
GA廠商提供了嵌入式邏輯分析儀內(nèi)核,而其價格要低于全功能外部邏輯分析儀。雖然用戶希望更多的功能,但嵌入式邏輯分析儀內(nèi)核的功能無論從通用性,分析方式,觸發(fā)能力,還是從存儲和分析能力都弱于全功能外部邏輯分析儀,而用戶通常需要這些功能,來捕獲和分析棘手的調(diào)試挑戰(zhàn)。例如,嵌入式邏輯分析儀只能在狀態(tài)模式下操作,它們捕獲與FPGA設(shè)計中已有的指定時鐘同步的數(shù)據(jù),因此不能提供精確的信號定時關(guān)系。
外部邏輯分析儀
由于嵌入式邏輯分析儀方法存在的部分限制,許多FPGA設(shè)計人員已經(jīng)采用外部邏輯分析儀方法,來利用FPGA的靈活性和外部邏輯分析儀的處理能力,如泰克TLA系列邏輯分析儀。
在這種方法中,感興趣的內(nèi)部信號路由到FPGA沒有使用的針腳上,然后連接到邏輯分析儀上。這種方法提供了非常深的內(nèi)存,適合調(diào)試那種出現(xiàn)故障和實際導(dǎo)致該故障的原因在時間上相距很遠(yuǎn)的問題;對于需要采集大量數(shù)據(jù)進(jìn)行后期分析的設(shè)計人員也非常必要。另外它還可以把內(nèi)部FPGA信號與電路系統(tǒng)中的其它活動時間關(guān)聯(lián)起來。
與嵌入式邏輯分析儀方法一樣,也需要考慮許多矛盾。
針腳與內(nèi)部資源
外部邏輯分析儀方法采用非常少的邏輯資源,不使用FPGA內(nèi)存資源。它釋放了這些資源,來實現(xiàn)所需功能?,F(xiàn)在的矛盾在于,必需增加專用于調(diào)試的針腳數(shù)量,而很明顯,設(shè)計要使用這些針腳。
探測與工作模式
外部邏輯分析儀探測要比嵌入式邏輯分析儀方法要求的探測復(fù)雜一些。必需確定怎樣使用邏輯分析儀探頭探測FPGA內(nèi)部信號,而不能使用電路板上已有的JTAG連接器。最簡便的方式是在電路板中增加一個測試連接器,這可以簡便地把FPGA信號與系統(tǒng)中的其它信號關(guān)聯(lián)起來。
成本與靈活性
盡管外部邏輯分析儀的購買價格確實要高于嵌入式邏輯分析儀,但使用外部邏輯分析儀可以解決更加廣泛的問題。邏輯分析儀不僅可以用于FPGA調(diào)試,還可以用來解決其它數(shù)字設(shè)計挑戰(zhàn),它被公認(rèn)為進(jìn)行通用數(shù)字系統(tǒng)硬件調(diào)試的最佳工具。外部邏輯分析儀能夠?qū)崿F(xiàn)更加靈活的采集模式和觸發(fā)功能。通過外部邏輯分析儀,可以設(shè)置最多16個不同的觸發(fā)狀態(tài)(每一個狀態(tài)含有16個條件判斷分支),每一個通道提供256M的內(nèi)存,并且可以在定時分析模式下以高達(dá)125 ps的分辨率(8GS/s采樣)捕獲數(shù)據(jù)。
評論