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