<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的系統(tǒng)易測試性的研究

          基于FPGA的系統(tǒng)易測試性的研究

          作者: 時(shí)間:2011-09-29 來源:網(wǎng)絡(luò) 收藏
          2 嵌入式邏輯分析儀內(nèi)核

          本文引用地址:http://www.ex-cimer.com/article/150147.htm

            主要的廠商針對器件的在線調(diào)試都提供了嵌入式邏輯分析儀內(nèi)核,這些知識(shí)產(chǎn)權(quán)模塊插入設(shè)計(jì)中,同時(shí)提供觸發(fā)功能和存儲(chǔ)功能。它們使用邏輯資源實(shí)現(xiàn)觸發(fā)電路;使用FPGA存儲(chǔ)模塊實(shí)現(xiàn)存儲(chǔ)功能;使用JTAG配置內(nèi)核操作,并用它將捕獲的數(shù)據(jù)傳送到PC上進(jìn)行查看。

            由于嵌入式邏輯分析儀使用內(nèi)部FPGA資源,因此其通常用于大型FPGA,這些大型FPGA可以更好地消化插入內(nèi)核帶來的開銷。一般來說,用戶希望內(nèi)核占用的FPGA邏輯資源不超過可用資源的5%。

            與其他調(diào)試方法一樣,還要知道這種方法存在的部分矛盾。

            2.1 針腳與內(nèi)部資源

            嵌入邏輯分析儀內(nèi)核不使用額外的針腳,因?yàn)樗ㄟ^現(xiàn)有的JTAG針腳訪問內(nèi)核。這意味著即使設(shè)計(jì)受到FPGA針腳限制,仍可以使用這種方法。矛盾在于,它使用的內(nèi)部FPGA邏輯資源和存儲(chǔ)模塊可以用來實(shí)現(xiàn)設(shè)計(jì)。此外,由于使用片內(nèi)內(nèi)存存儲(chǔ)捕獲的數(shù)據(jù),因此內(nèi)存深度一般相對較淺。

            2.2 探測與運(yùn)行模式

            嵌入式邏輯分析儀核心的探測非常簡單,它使用現(xiàn)有的JTAG針腳。矛盾在于,盡管嵌入式邏輯分析儀可以查看FPGA操作,但沒有一種方式將這些信息與電路板級(jí)或級(jí)信息時(shí)間關(guān)聯(lián)起來。而將FPGA內(nèi)部的信號(hào)與FPGA外部的信號(hào)關(guān)聯(lián)起來對解決棘手的調(diào)試問題至關(guān)重要。在分析方法上,嵌入式邏輯分析儀只能進(jìn)行狀態(tài)分析。

            2.3 成本與靈活性

            大多數(shù)FPGA廠商提供了嵌入式邏輯分析儀內(nèi)核,而其價(jià)格要低于全功能外部邏輯分析儀。雖然用戶希望更多的功能,但嵌入式邏輯分析儀內(nèi)核的功能無論從通用性、分析方式、觸發(fā)能力,還是從存儲(chǔ)和分析能力都弱于全功能外部邏輯分析儀,而用戶通常需要這些功能來捕獲和分析棘手的調(diào)試問題。例如,嵌入式邏輯分析儀只能在狀態(tài)模式下操作,它們捕獲與FPGA設(shè)計(jì)中已有的指定時(shí)鐘同步的數(shù)據(jù),因此不能提供精確的信號(hào)定時(shí)關(guān)系。

            3 外部邏輯分析儀

            由于嵌入式邏輯分析儀方法存在部分限制,F(xiàn)PGA設(shè)計(jì)人員采用外部邏輯分析儀方法,來利用FPGA的靈活性和外部邏輯分析儀的處理能力,如泰克TLA系列邏輯分析儀。

          在這種方法中,有用的內(nèi)部信號(hào)路由到FPGA沒有使用的針腳上,然后連接到邏輯分析儀上。這種方法提供了非常深的內(nèi)存,適合調(diào)試出現(xiàn)故障和實(shí)際導(dǎo)致該故障的原因在時(shí)間上相距很遠(yuǎn)的問題;對于需要采集大量數(shù)據(jù)進(jìn)行后期分析的設(shè)計(jì)人員也非常必要。另外,它還可以把內(nèi)部FPGA信號(hào)與電路中的其他活動(dòng)時(shí)間關(guān)聯(lián)起來。


            與嵌入式邏輯分析儀方法一樣,也需要考慮許多矛盾。

            3.1 針腳與內(nèi)部資源

            外部邏輯分析儀方法采用非常少的邏輯資源,不使用FPGA內(nèi)存資源。它釋放了這些資源,來實(shí)現(xiàn)所需功能。其矛盾在于,必須增加專用于調(diào)試的針腳數(shù)量,而設(shè)計(jì)時(shí)需要使用這些針腳。

            3.2 探測與工作模式

            外部邏輯分析儀探測要比嵌入式邏輯分析儀方法要求的探測復(fù)雜一些。必須確定怎樣使用邏輯分析儀探頭探測FPGA內(nèi)部信號(hào),而不能使用電路板上已有的JTAG連接器。最簡便的方式是在電路板中增加一個(gè)連接器,這可以簡便地把FPGA信號(hào)與中的其他信號(hào)關(guān)聯(lián)起來。

            3.3 成本與靈活性

            盡管外部邏輯分析儀的購買價(jià)格確實(shí)要高于嵌入式邏輯分析儀,但使用外部邏輯分析儀可以解決更加廣泛的問題。邏輯分析儀不僅可以用于FP
          GA調(diào)試,還可以用來解決其他數(shù)字設(shè)計(jì)挑戰(zhàn),它被公認(rèn)為是進(jìn)行通用數(shù)字系統(tǒng)硬件調(diào)試的最佳工具。外部邏輯分析儀能夠?qū)崿F(xiàn)更加靈活的采集模式和觸發(fā)功能。通過外部邏輯分析儀,可以設(shè)置最多16個(gè)不同的觸發(fā)狀態(tài)(每一個(gè)狀態(tài)含有16個(gè)條件判斷分支),每一個(gè)通道提供256 MB的內(nèi)存,并且可以在定時(shí)分析模式下以高達(dá)125 ps的分辨率(8 GS/s采樣) 捕獲數(shù)據(jù)。

            4 FPGAView進(jìn)行FPGA調(diào)試

            外部邏輯分析儀方法有效地利用了FPGA的處理能力,并根據(jù)需要重新對設(shè)備配置,將有用的內(nèi)部信號(hào)路由到通常很少的針腳上。這是一種非常有用的方法,但它也有一定的局限性:用戶每次需要查看一套不同的內(nèi)部信號(hào)時(shí),都必須改變設(shè)計(jì)(在RTL級(jí)或使用FPGA編輯器工具),把希望的信號(hào)組路由到調(diào)試針腳上。這不僅耗時(shí),而且如果要求重新匯編設(shè)計(jì),還會(huì)改變設(shè)計(jì)的定時(shí),可能會(huì)隱藏需要解決的問題。當(dāng)更改FPGA內(nèi)部信號(hào)時(shí),在外部邏輯分析儀上的被測信號(hào)名稱需要手工進(jìn)行更新。一般說來,調(diào)試針腳數(shù)量很少,內(nèi)部信號(hào)與調(diào)試針腳之間1:1的關(guān)系限制著設(shè)計(jì)查看能力和洞察力。為克服這些局限性,出現(xiàn)了一種新的FPGA調(diào)試方法,它不僅提供了外部邏輯分析儀方法的所有優(yōu)勢,還消除了主要局限性。FPGAView軟件在與泰克TLA系列邏輯分析儀配套使用時(shí),為調(diào)試FPGA和周邊硬件電路提供了一個(gè)完整的解決方案,如圖2所示。


            這種組合可以時(shí)間關(guān)聯(lián)的查看FPGA的內(nèi)部活動(dòng)和外部活動(dòng);迅速改變FPGA內(nèi)部探點(diǎn),而無須重新匯編設(shè)計(jì);每個(gè)針腳監(jiān)測多個(gè)內(nèi)部信號(hào);在TLA邏輯分析儀上自動(dòng)更新切換的內(nèi)部信號(hào)名稱。此外,F(xiàn)PGAView可以在一臺(tái)設(shè)備中處理多個(gè)測試內(nèi)核(適合監(jiān)測不同的時(shí)鐘域),并可以在一個(gè)JTAG鏈上處理多臺(tái)FPGA設(shè)備。



          關(guān)鍵詞: 研究 測試 系統(tǒng) FPGA 基于

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();