將片外調試的優(yōu)點(diǎn)融入FPGA片上調試之中
隨著(zhù)FPGA密度不斷增加,工程師們需要經(jīng)常使用新方法對FPGA實(shí)現的設計進(jìn)行測試和驗證。設計人員傳統上使用邏輯分析儀、示波器和總線(xiàn)分析儀通過(guò)測試夾具來(lái)探查信號,這些測試夾具和連接器與FPGA上用戶(hù)定義的I/O引腳相連,部分引腳(最常見(jiàn)的是64個(gè))被分配給調試和驗證,因此對于引腳分配,設計人員不得不在全面調試與設計實(shí)現之間進(jìn)行協(xié)調。工程師經(jīng)常還要安排時(shí)間給引腳加上片上邏輯以便選擇信號或信號組,驅動(dòng)I/O和后面的連接部分以供調試。盡管該方案可減少分配給調試的I/O引腳數量,但這項工作單調乏味,而且通常不能提供正確調試設計所需的可見(jiàn)性,此外測試夾具和連接器占用了寶貴的電路板空間,并會(huì )引入信號完整性和時(shí)鐘問(wèn)題(特別是在高速電路板設計上),同時(shí)成本也很高。
測試復雜FPGA設計的另一個(gè)方法是把部分FPGA邏輯資源專(zhuān)用于“邏輯分析”內核,這些內核的功能類(lèi)似于傳統的邏輯分析儀,包括觸發(fā)、數據采集和采樣存儲,但卻位于FPGA中,可直接接觸到設計的信號和節點(diǎn)。邏輯分析內核的數據存儲在FPGA本地存儲器中,經(jīng)由JTAG端口可以讀出,這樣就不必占用寶貴的通用I/O引腳。由于邏輯分析內核位于FPGA內部,可利用高速互連總線(xiàn)、快速存儲器和系統時(shí)鐘,而無(wú)須把這些信號引出芯片,因此可提供傳統調試和驗證方法中沒(méi)有的可見(jiàn)度和精確性。
領(lǐng)先的FPGA供應商能提供方便的工具,把邏輯分析和總線(xiàn)分析內核直接插入到FPGA設計中,并帶有先進(jìn)的接口,支持測試和測量供應商主流邏輯分析儀的多種特性和功能。
片上調試的局限
這種片上調試的主要局限在于邏輯內核本身使用了FPGA資源,更重要的是還用到了采樣存儲器。實(shí)現邏輯或總線(xiàn)分析內核所需的邏輯非常少(一般少于FPGA邏輯單元的3%),因為這些內核很小,所以它們可以放在被測邏輯附近不用的邏輯里。但與之相反,片上采樣存儲會(huì )占用大量片上存儲資源。片上邏輯與總線(xiàn)分析內核使用FPGA內部RAM,根據用戶(hù)定義的觸發(fā)條件存儲采集到的樣品數據,僅僅32K采樣數據就需要用到FPGA的全部RAM單元。
除此以外,時(shí)間也是調試多個(gè)系統問(wèn)題的關(guān)鍵因素之一,長(cháng)時(shí)間采樣需要更多片上存儲器。解決這個(gè)問(wèn)題的一個(gè)常用方法是一旦完成調試和驗證就把邏輯分析內核去除,盡管這釋放了FPGA設計的邏輯和存儲器資源,但也意味著(zhù)邏輯分析內核不能用在以后的設計中。
采樣存儲器的數量由FPGA里的RAM數量決定,在某些情況下,它限制了對發(fā)生在較長(cháng)時(shí)間里的復雜事件進(jìn)行調試。片上調試解決方案希望通過(guò)提供先進(jìn)的支持,允許用戶(hù)定義復雜觸發(fā)情況來(lái)克服這個(gè)局限,基于多事件的觸發(fā)條件讓用戶(hù)只能捕捉與特定事件相關(guān)的數據,從而節約片上存儲器資源。雖然該方法可以更好地利用有限的片上存儲器,但它需要知道錯誤發(fā)生在邏輯中的什么地方,而這常常是一個(gè)不斷演進(jìn)的迭代過(guò)程,要仔細研究引起錯誤的具體設計問(wèn)題。因此盡管該方法可以用于調試,但它太費時(shí),且需要大量思考和對設計的深入認識,從而大大影響了驗證能力,而且通常無(wú)法把設計“分解”成多個(gè)小部分塞入受限片上資源進(jìn)行驗證。
傳統測試和測量設備制造商圍繞這個(gè)問(wèn)題,提供了帶有很深采樣存儲和復雜觸發(fā)能力的測試設備。當設計出現問(wèn)題時(shí),用戶(hù)要盡量多采集數據,經(jīng)常要好幾秒,然后利用提供的工具查看數據,發(fā)現設計中的問(wèn)題,這樣能確保工程師抓到事件,但在查看數據發(fā)現問(wèn)題時(shí)需要有耐心。
將兩者優(yōu)點(diǎn)結合起來(lái)
理想的解決方案是把傳統片外調試設備的擴展采樣存儲器與片上調試的優(yōu)點(diǎn)結合在一起。這種方法能使用戶(hù)把虛擬測試夾具放在FPGA設計任意位置,接觸內部信號和節點(diǎn),并使用傳統邏輯和總線(xiàn)分析儀設備的片外深采樣存儲器。它沒(méi)有使用片上存儲資源,相反,存儲器都在片外。
該解決方案帶來(lái)了很多好處。用戶(hù)可以調試現在很多FPGA設計中常見(jiàn)的復雜數據交換事件,調試復雜的控制邏輯、存儲器和I/O接口、處理器系統以及詳細的狀態(tài)機等,這些都要求在較長(cháng)時(shí)間內捕捉樣品數據。復雜數據交換事件需要用戶(hù)捕捉所有活動(dòng)以全面分析事件,當采樣存儲限制取消后,還可以再加上時(shí)間標記。
這種新方法最有用的地方在于實(shí)現了片上驗證。完全調試一個(gè)FPGA設計既費時(shí)又需要大量的計算,新的組合式方案可讓用戶(hù)利用現實(shí)世界幾乎無(wú)窮的測試向量在片上調試FPGA。在軟件仿真環(huán)境里即使仿真10秒的功能也要用多達100天的時(shí)間,而在現實(shí)條件下仿真設計功能還能揭示軟件仿真環(huán)境下無(wú)法看到的異步和信號完整性等異樣情況。
片上邏輯和總線(xiàn)分析內核通常把采樣數據寫(xiě)入片上存儲單元,也可對這些內核進(jìn)行修改而把數據寫(xiě)到片外,但需要一個(gè)新接口?,F在多數片上調試工具利用JTAG接口與安置在FPGA里的邏輯和總線(xiàn)分析內核進(jìn)行通信,這是一個(gè)相對較慢的串行連接(10MHz),但對確定邏輯和總線(xiàn)分析內核參數如觸發(fā)條件來(lái)說(shuō)正好,甚至對存儲在片上存儲器里的空載采樣也足夠,但是它不能支持結合片內、片外解決方案所需要的快速片外數據傳輸率,需要一個(gè)專(zhuān)用高速端口,就是說(shuō)要為調試分配I/O引腳,這樣就抵消了片上調試方法的一個(gè)重要優(yōu)點(diǎn)。有一個(gè)方法是利用諸如時(shí)分復用技術(shù)把數據壓縮到少量I/O引腳中,然后在片外將數據傳給外部采樣存儲器。分析表明,這樣只要分配20個(gè)I/O引腳就可以捕捉高達79個(gè)數據信道,并以與片上方法相當的速率在片外傳輸。
本文結論
片上調試作為調試復雜FPGA設計的一個(gè)可行方法而出現,目前正在開(kāi)發(fā)的新技術(shù)以及現在已出現的技術(shù)則通過(guò)融合片外邏輯分析設備存儲單元對該方案進(jìn)行改進(jìn)。這樣不僅發(fā)揮了片上調試的作用,如片上實(shí)時(shí)驗證,而且提供了一種經(jīng)濟的方法可以取代目前昂貴的邏輯和數據分析設備。
評論