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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > FPGA易測試性分析

          FPGA易測試性分析

          作者: 時間:2010-08-14 來源:網(wǎng)絡 收藏

            
          3.1 針腳與內部資源
            
          外部邏輯儀方法采用非常少的邏輯資源,不使用內存資源。它釋放了這些資源,來實現(xiàn)所需功能。其矛盾在于,必須增加專用于調試的針腳數(shù)量,而設計時需要使用這些針腳。
            
          3.2 探測與工作模式
            
          外部邏輯儀探測要比嵌入式邏輯儀方法要求的探測復雜一些。必須確定怎樣使用邏輯分析儀探頭探測內部信號,而不能使用電路板上已有的JTAG連接器。最簡便的方式是在電路板中增加一個連接器,這可以簡便地把信號與系統(tǒng)中的其他信號關聯(lián)起來。
            
          3.3 成本與靈活性
            
          盡管外部邏輯分析儀的購買價格確實要高于嵌入式邏輯分析儀,但使用外部邏輯分析儀可以解決更加廣泛的問題。邏輯分析儀不僅可以用于FP

          GA調試,還可以用來解決其他數(shù)字設計挑戰(zhàn),它被公認為是進行通用數(shù)字系統(tǒng)硬件調試的最佳工具。外部邏輯分析儀能夠實現(xiàn)更加靈活的采集模式和觸發(fā)功能。通過外部邏輯分析儀,可以設置最多16個不同的觸發(fā)狀態(tài)(每一個狀態(tài)含有16個條件判斷分支),每一個通道提供256 MB的內存,并且可以在定時分析模式下以高達125 ps的分辨率(8 GS/s采樣) 捕獲數(shù)據(jù)。
            
          4 FPGAView進行FPGA調試
            
          外部邏輯分析儀方法有效地利用了FPGA的處理能力,并根據(jù)需要重新對設備配置,將有用的內部信號路由到通常很少的針腳上。這是一種非常有用的方法,但它也有一定的局限性:用戶每次需要查看一套不同的內部信號時,都必須改變設計(在RTL級或使用FPGA編輯器工具),把希望的信號組路由到調試針腳上。這不僅耗時,而且如果要求重新匯編設計,還會改變設計的定時,可能會隱藏需要解決的問題。當更改FPGA內部信號時,在外部邏輯分析儀上的被測信號名稱需要手工進行更新。一般說來,調試針腳數(shù)量很少,內部信號與調試針腳之間1:1的關系限制著設計查看能力和洞察力。為克服這些局限性,出現(xiàn)了一種新的FPGA調試方法,它不僅提供了外部邏輯分析儀方法的所有優(yōu)勢,還消除了主要局限性。FPGAView軟件在與泰克TLA系列邏輯分析儀配套使用時,為調試FPGA和周邊硬件電路提供了一個完整的解決方案,如圖2所示。

          本文引用地址:http://www.ex-cimer.com/article/151663.htm  
          這種組合可以時間關聯(lián)的查看FPGA的內部活動和外部活動;迅速改變FPGA內部探點,而無須重新匯編設計;每個針腳監(jiān)測多個內部信號;在TLA邏輯分析儀上自動更新切換的內部信號名稱。此外,F(xiàn)PGAView可以在一臺設備中處理多個內核(適合監(jiān)測不同的時鐘域),并可以在一個JTAG鏈上處理多臺FPGA設備。
            
          5 快速使用FPGAView
            
          使用FPGAView的步驟如下所述:
            
          (1) 插入內核
            
          這步是配置測試內核,把它插入到FPGA設計中。例如,在使用ALTERA或Xilinx器件時,可以使用FPGA開發(fā)工具提供的邏輯分析儀接口編輯器,創(chuàng)建最適合自己需求的測試核。
            
          對大多數(shù)的測試內核,可以指定下述參數(shù):
            
          ①針腳數(shù)量(pin count):表示希望專用于邏輯分析儀接口的針腳數(shù)量;
            
          ②組數(shù)(bank count):表示希望映射到每個針腳上的內部信號數(shù)量;
            
          ③輸出/捕獲模式(output/capture mode):選擇希望執(zhí)行的采集類型;可以選擇組合邏輯/定時模式(combina-tion/timing)或寄存器/狀態(tài)模式(registered/state);
            
          ④時鐘(clock):如果用戶選擇了registered/state的捕獲模式,這一選項允許選擇測試內核的取樣時鐘;
            
          ⑤通電狀態(tài)(power-up state):這個參數(shù)允許指明用于邏輯分析儀接口的針腳的通電狀態(tài)。
            
          (2) 把測試內核信息加載到FPGAView中
            
          從FPGAView軟件窗口中,可以與JTAG編程電纜建立連接,并且連接到TLA系列邏輯分析儀(TLA邏輯分析儀使用Windows平臺)或PC工作站上。
            
          在使用ALTERA FPGA芯片時,按打開(Open)工具條按鈕,調出一個文件瀏覽器,選擇QuartusⅡLAI Editor軟件以前生成的邏輯分析儀接口(.lai)文件。這樣就加載了與LAI核心有關的所有信息,包括每一組的信號數(shù)量、組數(shù)和信號名稱,另外如果設備中的LAI內核多于一個,那么還包括每個LAI內核的信息。

          (3) 把FPGA針腳映射到邏輯分析儀上
            
          映射FPGA針腳和TLA邏輯分析儀探頭之間的物理連接。FPGAView可以自動更新邏輯分析儀上顯示的信號名稱,與測試內核當前監(jiān)測的信號相匹配。為此,簡單地點擊探頭(probes)按鈕,將出現(xiàn)一個拖放窗口,把測試內核輸出信號名稱與邏輯分析儀上的相應通道連接起來。對某條目標連接,這個通道分配過程只需一次。
            
          (4) 進行測量
            
          使用組(bank)列表下拉菜單,選擇想要測量的組。一旦選擇了組,F(xiàn)PGAView會通過JTAG接口與FPGA通信,并配置測試內核,以便選擇希望的組。
            
          FPGAView還將這些通道名稱通過對TLA系列邏輯分析儀的控制進行自動分配,從而可以簡便地理解測量結果。為測量不同的一套內部信號,用戶只需選擇不同的信號組。全功能TLA系列邏輯分析儀會自動地把這些FPGA信號與系統(tǒng)中的其他信號關聯(lián)起來。
            
          在TLA邏輯分析儀中,針對設計人員關心的各種時間信息,提供了業(yè)內獨有的定時參數(shù)自動測量功能,通過鼠標簡單地拖放操作,能夠得到周期、頻率、占空比、脈沖寬度、通道/通道延遲、邊沿計數(shù)、周期計數(shù)、違規(guī)計數(shù)、周期抖動、以及周期間抖動等信息。
            
          6 結
            
          調試針對Altera和Xilinx的FPGA系統(tǒng)時用嵌入式邏輯分析儀和外部邏輯分析儀這2種方法各有其優(yōu)勢和不足,而FPGAView等新方法進一步提高了外部邏輯分析儀方法的吸引力。能夠快速方便地移動探點,而不需重新匯編設計,同時能夠把內部FPGA信號活動與電路板級信號關聯(lián)起來,能夠較好地滿足產品開發(fā)周期的要求。

          上一頁 1 2 下一頁

          關鍵詞: 分析 測試 FPGA

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();