URL: http://www.icbuy.com/info/news_show/info_id/182769.html
6.7 片上邏輯分析儀(ChipScope Pro)使用技巧
在FPGA的調試階段,傳統的方法在設計FPGA的PCB板時,保留一定數量的FPGA管腳作爲測試管腳。在調試的時候將要測試的信號引到測試管腳,用邏輯分析儀觀察內部信號。
這種方法存在很多弊端:一是邏輯分析儀價格高昂,每個公司擁有的數量有限,在研發期間往往供不應求,影響進度;二是PCB佈線後測試腳的數量就確定了,不能靈活地增加,當測試腳不夠用時會影響測試,測試管腳太多又影響PCB佈局佈線。
ChipScope Pro是ISE下一款功能強大的在線調試工具。面對這些問題,ChipScope Pro都可以有效地解決。
6.7.1 ChipScope Pro概述
ChipScope Pro是針對Xilinx Virtex-II pro/ Virtex/ Virtex-II/ Virtex-EM/ Spartan-IIE/ Spartan-IIE 系列FPGA的在線片內信號分析工具。它的主要功能是通過JTAG口,在線實時讀取FPGA的內部信號。
ChipScope Pro的基本原理是利用FPGA中未使用的BlockRam,根據用戶設定的觸發條件將信號實時地保存到這些BlockRam中,然後通過JTAG口傳送到計算機,最後在計算機屏幕上顯示出時序波形。ChipScope Pro應用的框圖如圖6.34所示。
圖6.34 ChipScope Pro應用框圖
其中ILA、ICON是爲了使用ChipScope Pro觀察信號而插入的核。ChipScope Pro工作時一般需要用戶設計中實例化兩種核:一是集成邏輯分析儀核(ILA core,Integrate Logic Analyzer core),該核主要用於提供觸發和捕獲的功能;二是集成控制核(ICON core,Integrated Contorller core),負責ILA core和邊界掃描端口(JTAG)的通信。
一個ICON core可以連接1~15個ILA core。ChipScope Pro工作時,ILA core根據用戶設置的觸發條件捕獲數據,然後在ICON core控制下,通過邊界掃描端口上傳到計算機,最後用ChipScope Pro Analyzer顯示信號波形。
6.7.2 ChipScope Pro設計流程
ChipScope Pro工具箱中包含了3個工具:ChipScope Pro Core Generator、ChipScope Pro Core Inserter、ChipScope Pro Analyzer,使用ChipScope Pro在線調試工具的FPGA設計流程如圖6.35所示。
由上述流程可知,ChipScope Pro有兩種使用方法。
第一種是由ChipScope Pro Core Generator根據設定條件生成在線邏輯分析儀IP核,包括ICON core、ILA core、ILA/ATC core和IBA/OPB core等,之後設計人員在原HDL代碼中實例化這些核,然後進行綜合、佈局佈線、下載配置文件,就可以利用ChipScope Pro Analyzer設定的觸發條件,觀察信號波形。
第二種是原代碼完成綜合後,由ChipScope Core Inserter工具插入ICON core和ILA core等核,它能自動完成在設計網表中插入這些核的工作,而不用手動在HDL代碼中實例化這些核,在實際中應用的比較多,也是推薦大家使用的方法。下面就重點介紹ChipScope Pro Core Inserter和ChipScope Pro Analyzer的使用,這裏以ChipScope Pro 8.2i爲例來介紹。
6.7.3 ChipScope Pro Core Inserter簡介
ChipScope Pro Core Inserter的啓動有兩種方式。
(1)直接在Windows環境下運行“開始”/“程序”/“ChipScope Pro 8.2i”/“ChipScope Pro Core Inserter”命令。運行後即可得到ChipScope Pro Core Inserter的用戶界面,如圖6.36所示。
(2)可以通過新建資源的方法,如圖6.37所示。
新建ChipScope Pro Inserter資源後,系統自動生成擴展名爲cdc的文件。如圖6.38所示,雙擊擴展名爲cdc的文件即可啓動ChipScope Pro Inserter界面。需要注意的是,在雙擊擴展名爲cdc的文件時,系統會先對該工程文件進行綜合。綜合完成後纔會啓動ChipScope Pro Inserter。
圖6.36 ChipScope Pro Core Inserter用戶界面
圖6.37 新建ChipScope Pro Inserter資源對話框
圖6.38 新建ChipScope Pro Core Inserter資源後的界面
這裏在綜合前必須先對綜合屬性進行設置,如圖6.39所示,在綜合屬性對話框中對“synthesis options”/“keep Hierarchy”選項進行設置。設置“keep Hierarchy”爲“Yes”或“Soft”。
雙擊擴展名爲cdc的文件,系統完成綜合後,會自動啓動ChipScope Pro Core Inserter。設計者通過ChipScope Pro Core Inserter對觸發單元個數、觸發寬度、觸發條件、存儲深度、採樣時刻等參數進行設置。設置完畢後,在ISE下完成佈局佈線,下載配製文件,即可用ChipScope Pro Analyzer進行觀測。
下面對ChipScope Pro Core Inserter的各項設置做詳細的說明。
1.用戶界面
啓動ChipScope Pro Core Inserter後,顯示如圖6.40所示的界面。在“Input Design Netlist”文本框中設置輸入設計網表的路徑。設置好後,“Output Design Netlist”和“Output Directory”會自動生成,設計者也可自己指定。
圖6.40 ChipScope Pro Core Inserter用戶界面
如果是通過新建資源的方法啓動ChipScope Pro Core Inserter,這幾項顯示爲灰色,無需設計者設置,系統會自動找到設計網表文件。在“Device Family”下拉列表中選取設計所用的FPGA後,就可單擊“Next”按扭,進入“Select Integrated Controller Options”對話框,如圖6.41所示。
圖6.41 “Select Integrated Controller Options”對話框
2.“Select Integrated Controller Options”對話框設置
在如圖6.40所示的“Select Device Options”對話框中,可以指定是否禁止在JTAG時鐘上插入BUFG。如果選中此項,JTAG時鐘將使用普通佈線資源,而不是全局時鐘佈線。這樣會在JTAG時鐘線上產生較大的佈線延時。因此在全局時鐘資源足夠用的情況下,應該儘量使JTAG時鐘使用BUFG資源。即使由於全局時鐘資源不夠而不得不禁用BUFG時,也最好附加相應約束,使延遲抖動儘量小。推薦設計者在使用時不選此項。
單擊“Next”按鈕,進入“Select Integrated Logic Analyzer Options”對話框,如圖6.42所示。
圖6.42 “Select Integrated Logic Analyzer Options”ILA對話框
3.“Select Integrated Logic Analyzer Options”對話框設置
如圖6.42所示,可以看到在“Select Integrated Logic Analyzer Options”ILA對話框下有3個選項卡,可對觸發參數、捕獲參數、網線連接進行設置。
“Trigger Parameters”選項卡可對觸發端口數目,每個觸發端口的寬度、觸發條件判斷單元、觸發條件判斷單元的個數和類型等進行設置。
(1)觸發端口數目。
在設計中可以根據需要設置多個觸發端口,每個ILA Core最多可以有16個輸入觸發端口,每個觸發端口下又可設置多個觸發條件判斷單元,但各個觸發端口包含的觸發條件判斷單元數量之和不能大於16。
(2)觸發端口設置。
一個完整的觸發端口設置包括:觸發寬度、觸發條件判斷單元個數及類型的設置。觸發寬度是指觸發端口包含信號線的個數。通過觸發條件判斷單元進行判斷,當信號線上的信號滿足設定的條件時,ChipScope Pro就可將其捕獲並存儲在BlockRam中,用於在ChipScope Pro Analyzer中顯示波形。
對觸發條件可以設置個數和類型。當有多個觸發條件時,可以將觸發條件設置爲幾個觸發條件的邏輯組合。觸發條件判斷單元實際爲比較器,其類型可以有以下幾種,如表6.4所示。
表6.4 觸發條件判斷單元的類型
類型 |
數值類型 |
匹配功能 |
Bit/Slice |
說明 |
Basic |
0、1、X |
=、<> |
8 |
用於一般信號比較,是一種節約資源的類型 |
Basic(w/trans) |
0、1、X、R、F、B |
=、<>、transition detection |
4 |
用於控制信號的比較,可以檢測跳變的發生 |
Extend |
0、1、X |
=、<>、>、>=、<、<= |
2 |
當主要考慮數據的大小時,用於地址或數據信號大小的比較 |
Extend(w/trans) |
0、1、X、R、F、B |
=、<>、>、>=、<、<=、transition detection |
2 |
當數據和地址信號的大小和跳變都需要考慮時,可以用於檢測跳變的發生 |
Range |
0、1、X |
=、<>、>、>=、<、<=、in range、not in range |
1 |
當數據和地址的大小需要考慮時,可以用於檢測數值是否在一定範圍內 |
Range(w/trans) |
0、1、X、R、F、B |
=、<>、>、>=、<、<=、in range、not in range、transition detection |
1 |
當數據和地址的大小和跳變都需要考慮時,可以用於檢測跳變和數值是否在一定範圍內 |
“Capture Parameters”選項卡可以對存儲深度、採樣時刻等參數進行設置,如圖6.43所示。
圖6.43 “Capture Parameters”選項卡設置
所謂存儲深度,是指在滿足觸發條件後,要存儲多少數據,用於最終的波形顯示。ChipScope Pro可能的最大存儲深度爲16384,最大數據位寬爲256bit。實際的數據存儲深度和位數由FPGA內部剩餘的BlockRam的數量決定。
對於“Data Same As Trigger”選項,有時要觀測的信號就是設置的觸發條件中的信號,此時選中此項即可。有時設定了觸發條件後,想觀察別的數據信號,這時可以不選中此項,數據與觸發信號完全獨立。
“Net Connections”選項卡可以設置觸發端口信號線與要觀測的信號的連接,要觀測哪些信號,就將這些信號與端口的信號線連接即可,如圖6.44所示。
圖6.44 “Net Connections”選項卡設置
設置的連接信號可以分爲3類:時鐘信號(CLOCK PORT)、觸發端口信號(TRIGGER PORTS)和數據信號(DATA PORT)。單擊“Modify Connections”按鈕會出現如圖6.40所示對話框。
圖6.45 網線連接對話框
設置完所有信號後,端口名字會變爲黑色,否則爲紅色。設置完上述各項後,單擊“Inserter”按鈕,邏輯分析儀的網表就插入到原來的設計網表當中。之後在ISE下完成佈局佈線並下載後,就可以用ChipScope Pro Analyzer進行觀測了。
6.7.4 ChipScope Pro Analyzer簡介
將邏輯分析的核插入設計當中後,就可以運行ChipScope Pro Analyzer進行觀測了,ChipScope Pro Analyzer的啓動方式有兩種。
(1)直接運行“開始”/“程序”/“ChipScope Pro 8.2i”/“ChipScope Pro Analyzer”。
(2)在ISE下啓動。
如圖6.46所示,雙擊“Analyze Design Using ChipScope”即可啓動,ChipScope Pro Analyzer界面如圖6.47所示。
圖6.46 從ISE中直接啓動ChipScope Pro Analyzer
圖6.47 ChipScope Pro Analyzer用戶界面
ChipScope Pro Analyzer使用步驟如下。
1.單擊圖標,打開JTAG並口連接電纜
在此之前要保證已將JTAG與器件連接好,如果連接無誤,會出現如圖6.48所示的對話框。
對話框中會顯示JTAG連接的FPGA類型和所用的配置器件類型,這裏使用的FPGA爲Spartan 3系列,配置器件選用的是XCF02S。
圖6.48 JTAG正常連接後提示
2.下載配置文件
在ISE下完佈局佈線後,生成配置文件*.bit文件。注意:ChipScope Pro採用JTAG方式觀測FPGA內部信號,這就要求在生成下載文件時。在“Generate Programming File”的屬性對話框(如圖6.49所示)中設置“Startup Options”/“FPGA Start-Up Clock”爲JTAG Clock,否則ChipScope Pro將無法正確配置器件。
下載配置文件時,選擇“Device”/“DEV1”/“Configure”選項,如圖6.50所示。單擊後會出現如圖6.51所示的對話框,選擇要下載的*.bit文件,對FPGA進行配置。
圖6.50 配置FPGA
圖6.51 選擇配置文件對話框
3.設置觸發條件
成功完成對FPGA的配置後,會出現如圖6.52所示界面。
圖6.52 成功完成配置後用戶界面
如圖6.52所示,ChipScope Pro Analyzer的界面由兩部分組成。
左邊一欄爲工程視窗和信號列表。工程視窗的下拉列表中有“Trigger Setup”、“Waveform”選項。雙擊後,就會有相應的視窗在右邊顯示。信號列表中列出了所有信號,在這裏可以增加或刪除視圖中的信號,對信號重命名,也可以將信號組合爲總線以便於觀察。
右邊一欄主要有兩個視窗:一個爲“Trigger Setup”,用於設置觸發條件;一個爲“Waveform”用於觀察波形。設置觸發條件包括設置觸發條件函數(Match)、觸發條件(Trig)和捕獲參數(Capture),下面分別介紹。
(1)“Match”選項卡。
主要完成觸發條件函數的設置。所謂觸發條件函數是與表6.4中的匹配功能相對應的。要設置數值大小和函數,即選擇:=、<>、>、>=、<、<=某數值時,才滿足觸發條件。當有多個條件時,可以分別設置每個條件的要求滿足的函數和數值,如圖6.53所示。
圖6.53 “Match”選項卡設置對話框
(2)“Trig”選項卡。
主要用於設置觸發條件。在“Match”下設置了觸發所需要滿足的條件。當有多個條件時這裏可以設置是讓哪一個條件起作用,也可以將條件設置爲幾個條件的邏輯組合。或者是將幾個條件設置爲“條件鏈”,即當依次滿足條件鏈設置的各個條件後,纔可以捕獲數據,如圖6.54所示。
圖6.54 “Trig”選項卡設置對話框
如圖6.54所示,單擊“Trigger Condition Equation”下的選項,會彈出如圖6.55所示的對話框。在對話框中,有兩個選項卡。在“Boolean”選項卡下,可以設置哪一個條件起作用,也可將條件設置爲幾個條件的邏輯組合;在“Sequencer”選項卡下,可以設置條件鏈,如圖6.55所示。當依次滿足條件鏈下的幾個條件後,就被觸發。
圖6.55 “Sequencer”選項卡設置對話框
4.觀測波形
觸發條件設置好後,單擊左上角的按鈕開始執行。當滿足觸發條後,ChipScope Pro開始採集數據,採集到一定數目後(該數目取決於存儲深度),就可以觀察波形了。如圖6.56爲ChipScope Pro顯示波形的效果圖。
在波形顯示窗口下可對波形進行放大和縮小,也可以進行局部放縮。當要觀察總
圖6.56 ChipScope Pro波形顯示效果圖
線數據時,可以先選中所有總線數據,然後單擊右鍵,選擇“Add to Bus”/“New Bus”即可,如圖6.57所示。
圖6.57 組合總線數據
添加成功後,就可以在新生成的bus下看到總線數據。如圖6.58所示,圖中DataPort爲新生成的總線,設計者可以根據需要修改總線的名稱。
圖6.58 總線數據生成結果
6.7.5 小結
本節對在線邏輯分析工具ChipScope Pro作了詳細介紹。通過本節的學習,讀者應該掌握ChipScope Pro的設計流程以及使用方法。
ChipScope Pro本身的功能很強大,在調試階段應用很廣泛。它可以觀察FPGA內部的任何信號,使用也比較簡單,希望讀者能夠很好地掌握。
爲了讓讀者能夠儘快地熟悉這一工具的使用,在6.8節給出一個簡單的實例,分別應用兩種設計流程來完成,讀者可參照這一例程來進一步熟悉ChipScope Pro的使用。