加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 6.7  片上邏輯分析儀(ChipScope Pro)使用技巧
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

FPGA設(shè)計(jì)開發(fā)軟件ISE使用技巧之:片上邏輯分析儀(ChipScope Pro)使用技巧

2013/08/26
1
閱讀需 24 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

6.7??片上邏輯分析儀(ChipScope?Pro)使用技巧

FPGA的調(diào)試階段,傳統(tǒng)的方法在設(shè)計(jì)FPGA的PCB板時,保留一定數(shù)量的FPGA管腳作為測試管腳。在調(diào)試的時候?qū)⒁獪y試的信號引到測試管腳,用邏輯分析儀觀察內(nèi)部信號。

這種方法存在很多弊端:一是邏輯分析儀價格高昂,每個公司擁有的數(shù)量有限,在研發(fā)期間往往供不應(yīng)求,影響進(jìn)度;二是PCB布線后測試腳的數(shù)量就確定了,不能靈活地增加,當(dāng)測試腳不夠用時會影響測試,測試管腳太多又影響PCB布局布線。

ChipScope?Pro是ISE下一款功能強(qiáng)大的在線調(diào)試工具。面對這些問題,ChipScope?Pro都可以有效地解決。

6.7.1??ChipScope?Pro概述

ChipScope?Pro是針對Xilinx?Virtex-II?pro/?Virtex/?Virtex-II/?Virtex-EM/?Spartan-IIE/?Spartan-IIE?系列FPGA的在線片內(nèi)信號分析工具。它的主要功能是通過JTAG口,在線實(shí)時讀取FPGA的內(nèi)部信號。

ChipScope?Pro的基本原理是利用FPGA中未使用的BlockRam,根據(jù)用戶設(shè)定的觸發(fā)條件將信號實(shí)時地保存到這些BlockRam中,然后通過JTAG口傳送到計(jì)算機(jī),最后在計(jì)算機(jī)屏幕上顯示出時序波形。ChipScope?Pro應(yīng)用的框圖如圖6.34所示。

圖6.34??ChipScope?Pro應(yīng)用框圖

其中ILA、ICON是為了使用ChipScope?Pro觀察信號而插入的核。ChipScope?Pro工作時一般需要用戶設(shè)計(jì)中實(shí)例化兩種核:一是集成邏輯分析儀核(ILA?core,Integrate?Logic?Analyzer?core),該核主要用于提供觸發(fā)和捕獲的功能;二是集成控制核(ICON?core,Integrated?Contorller?core),負(fù)責(zé)ILA?core和邊界掃描端口(JTAG)的通信

一個ICON?core可以連接1~15個ILA?core。ChipScope?Pro工作時,ILA?core根據(jù)用戶設(shè)置的觸發(fā)條件捕獲數(shù)據(jù),然后在ICON?core控制下,通過邊界掃描端口上傳到計(jì)算機(jī),最后用ChipScope?Pro?Analyzer顯示信號波形。

6.7.2??ChipScope?Pro設(shè)計(jì)流程

ChipScope?Pro工具箱中包含了3個工具: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ā)條件,觀察信號波形。

第二種是原代碼完成綜合后,由ChipScope?Core?Inserter工具插入ICON?core和ILA?core等核,它能自動完成在設(shè)計(jì)網(wǎng)表中插入這些核的工作,而不用手動在HDL代碼中實(shí)例化這些核,在實(shí)際中應(yīng)用的比較多,也是推薦大家使用的方法。下面就重點(diǎn)介紹ChipScope?Pro?Core?Inserter和ChipScope?Pro?Analyzer的使用,這里以ChipScope?Pro?8.2i為例來介紹。

?

6.7.3??ChipScope?Pro?Core?Inserter簡介

ChipScope?Pro?Core?Inserter的啟動有兩種方式。

(1)直接在Windows環(huán)境下運(yùn)行“開始”/“程序”/“ChipScope?Pro?8.2i”/“ChipScope?Pro?Core?Inserter”命令。運(yùn)行后即可得到ChipScope?Pro?Core?Inserter的用戶界面,如圖6.36所示。

(2)可以通過新建資源的方法,如圖6.37所示。

新建ChipScope?Pro?Inserter資源后,系統(tǒng)自動生成擴(kuò)展名為cdc的文件。如圖6.38所示,雙擊擴(kuò)展名為cdc的文件即可啟動ChipScope?Pro?Inserter界面。需要注意的是,在雙擊擴(kuò)展名為cdc的文件時,系統(tǒng)會先對該工程文件進(jìn)行綜合。綜合完成后才會啟動ChipScope?Pro?Inserter。

圖6.36??ChipScope?Pro?Core?Inserter用戶界面

????

圖6.37??新建ChipScope?Pro?Inserter資源對話框?? 圖6.38 新建ChipScope?Pro?Core?Inserter資源后的界面

?

這里在綜合前必須先對綜合屬性進(jìn)行設(shè)置,如圖6.39所示,在綜合屬性對話框中對“synthesis?options”/“keep?Hierarchy”選項(xiàng)進(jìn)行設(shè)置。設(shè)置“keep?Hierarchy”為“Yes”或“Soft”。

雙擊擴(kuò)展名為cdc的文件,系統(tǒng)完成綜合后,會自動啟動ChipScope?Pro?Core?Inserter。設(shè)計(jì)者通過ChipScope?Pro?Core?Inserter對觸發(fā)單元個數(shù)、觸發(fā)寬度、觸發(fā)條件、存儲深度、采樣時刻等參數(shù)進(jìn)行設(shè)置。設(shè)置完畢后,在ISE下完成布局布線,下載配制文件,即可用ChipScope?Pro?Analyzer進(jìn)行觀測。

下面對ChipScope?Pro?Core?Inserter的各項(xiàng)設(shè)置做詳細(xì)的說明。

1.用戶界面

啟動ChipScope?Pro?Core?Inserter后,顯示如圖6.40所示的界面。在“Input?Design?Netlist”文本框中設(shè)置輸入設(shè)計(jì)網(wǎng)表的路徑。設(shè)置好后,“Output?Design?Netlist”和“Output?Directory”會自動生成,設(shè)計(jì)者也可自己指定。

圖6.40??ChipScope?Pro?Core?Inserter用戶界面

?

如果是通過新建資源的方法啟動ChipScope?Pro?Core?Inserter,這幾項(xiàng)顯示為灰色,無需設(shè)計(jì)者設(shè)置,系統(tǒng)會自動找到設(shè)計(jì)網(wǎng)表文件。在“Device?Family”下拉列表中選取設(shè)計(jì)所用的FPGA后,就可單擊“Next”按扭,進(jìn)入“Select?Integrated?Controller?Options”對話框,如圖6.41所示。

圖6.41??“Select?Integrated?Controller?Options”對話框

2.“Select?Integrated?Controller?Options”對話框設(shè)置

在如圖6.40所示的“Select?Device?Options”對話框中,可以指定是否禁止在JTAG時鐘上插入BUFG。如果選中此項(xiàng),JTAG時鐘將使用普通布線資源,而不是全局時鐘布線。這樣會在JTAG時鐘線上產(chǎn)生較大的布線延時。因此在全局時鐘資源足夠用的情況下,應(yīng)該盡量使JTAG時鐘使用BUFG資源。即使由于全局時鐘資源不夠而不得不禁用BUFG時,也最好附加相應(yīng)約束,使延遲抖動盡量小。推薦設(shè)計(jì)者在使用時不選此項(xiàng)。

單擊“Next”按鈕,進(jìn)入“Select?Integrated?Logic?Analyzer?Options”對話框,如圖6.42所示。

圖6.42??“Select?Integrated?Logic?Analyzer?Options”ILA對話框

?

3.“Select?Integrated?Logic?Analyzer?Options”對話框設(shè)置

如圖6.42所示,可以看到在“Select?Integrated?Logic?Analyzer?Options”ILA對話框下有3個選項(xiàng)卡,可對觸發(fā)參數(shù)、捕獲參數(shù)、網(wǎng)線連接進(jìn)行設(shè)置。

“Trigger?Parameters”選項(xiàng)卡可對觸發(fā)端口數(shù)目,每個觸發(fā)端口的寬度、觸發(fā)條件判斷單元、觸發(fā)條件判斷單元的個數(shù)和類型等進(jìn)行設(shè)置。

(1)觸發(fā)端口數(shù)目。

在設(shè)計(jì)中可以根據(jù)需要設(shè)置多個觸發(fā)端口,每個ILA?Core最多可以有16個輸入觸發(fā)端口,每個觸發(fā)端口下又可設(shè)置多個觸發(fā)條件判斷單元,但各個觸發(fā)端口包含的觸發(fā)條件判斷單元數(shù)量之和不能大于16。

(2)觸發(fā)端口設(shè)置。

一個完整的觸發(fā)端口設(shè)置包括:觸發(fā)寬度、觸發(fā)條件判斷單元個數(shù)及類型的設(shè)置。觸發(fā)寬度是指觸發(fā)端口包含信號線的個數(shù)。通過觸發(fā)條件判斷單元進(jìn)行判斷,當(dāng)信號線上的信號滿足設(shè)定的條件時,ChipScope?Pro就可將其捕獲并存儲在BlockRam中,用于在ChipScope?Pro?Analyzer中顯示波形。

對觸發(fā)條件可以設(shè)置個數(shù)和類型。當(dāng)有多個觸發(fā)條件時,可以將觸發(fā)條件設(shè)置為幾個觸發(fā)條件的邏輯組合。觸發(fā)條件判斷單元實(shí)際為比較器,其類型可以有以下幾種,如表6.4所示。

?

表6.4 觸發(fā)條件判斷單元的類型

類????型

數(shù)值類型

匹?配?功?能

Bit/Slice

說????明

Basic

0、1、X

=、<>

8

用于一般信號比較,是一種節(jié)約資源的類型

Basic(w/trans)

0、1、X、R、F、B

=、<>、transition?detection

4

用于控制信號的比較,可以檢測跳變的發(fā)生

Extend

0、1、X

=、<>、>、>=、<、<=

2

當(dāng)主要考慮數(shù)據(jù)的大小時,用于地址或數(shù)據(jù)信號大小的比較

Extend(w/trans)

0、1、X、R、F、B

=、<>、>、>=、<、<=、transition?detection

2

當(dāng)數(shù)據(jù)和地址信號的大小和跳變都需要考慮時,可以用于檢測跳變的發(fā)生

Range

0、1、X

=、<>、>、>=、<、<=、in?range、not?in?range

1

當(dāng)數(shù)據(jù)和地址的大小需要考慮時,可以用于檢測數(shù)值是否在一定范圍內(nèi)

Range(w/trans)

0、1、X、R、F、B

=、<>、>、>=、<、<=、in?range、not?in?range、transition?detection

1

當(dāng)數(shù)據(jù)和地址的大小和跳變都需要考慮時,可以用于檢測跳變和數(shù)值是否在一定范圍內(nèi)

“Capture?Parameters”選項(xiàng)卡可以對存儲深度、采樣時刻等參數(shù)進(jìn)行設(shè)置,如圖6.43所示。

圖6.43??“Capture?Parameters”選項(xiàng)卡設(shè)置

所謂存儲深度,是指在滿足觸發(fā)條件后,要存儲多少數(shù)據(jù),用于最終的波形顯示。ChipScope?Pro可能的最大存儲深度為16384,最大數(shù)據(jù)位寬為256bit。實(shí)際的數(shù)據(jù)存儲深度和位數(shù)由FPGA內(nèi)部剩余的BlockRam的數(shù)量決定。

對于“Data?Same?As?Trigger”選項(xiàng),有時要觀測的信號就是設(shè)置的觸發(fā)條件中的信號,此時選中此項(xiàng)即可。有時設(shè)定了觸發(fā)條件后,想觀察別的數(shù)據(jù)信號,這時可以不選中此項(xiàng),數(shù)據(jù)與觸發(fā)信號完全獨(dú)立。

“Net?Connections”選項(xiàng)卡可以設(shè)置觸發(fā)端口信號線與要觀測的信號的連接,要觀測哪些信號,就將這些信號與端口的信號線連接即可,如圖6.44所示。

圖6.44??“Net?Connections”選項(xiàng)卡設(shè)置

?

設(shè)置的連接信號可以分為3類:時鐘信號(CLOCK?PORT)、觸發(fā)端口信號(TRIGGER?PORTS)和數(shù)據(jù)信號(DATA?PORT)。單擊“Modify?Connections”按鈕會出現(xiàn)如圖6.40所示對話框。

圖6.45??網(wǎng)線連接對話框

設(shè)置完所有信號后,端口名字會變?yōu)楹谏駝t為紅色。設(shè)置完上述各項(xiàng)后,單擊“Inserter”按鈕,邏輯分析儀的網(wǎng)表就插入到原來的設(shè)計(jì)網(wǎng)表當(dāng)中。之后在ISE下完成布局布線并下載后,就可以用ChipScope?Pro?Analyzer進(jìn)行觀測了。

6.7.4??ChipScope?Pro?Analyzer簡介

將邏輯分析的核插入設(shè)計(jì)當(dāng)中后,就可以運(yùn)行ChipScope?Pro?Analyzer進(jìn)行觀測了,ChipScope?Pro?Analyzer的啟動方式有兩種。

(1)直接運(yùn)行“開始”/“程序”/“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.單擊圖標(biāo),打開JTAG并口連接電纜

在此之前要保證已將JTAG與器件連接好,如果連接無誤,會出現(xiàn)如圖6.48所示的對話框。

對話框中會顯示JTAG連接的FPGA類型和所用的配置器件類型,這里使用的FPGA為Spartan?3系列,配置器件選用的是XCF02S。

圖6.48??JTAG正常連接后提示

2.下載配置文件

在ISE下完布局布線后,生成配置文件*.bit文件。注意:ChipScope?Pro采用JTAG方式觀測FPGA內(nèi)部信號,這就要求在生成下載文件時。在“Generate?Programming?File”的屬性對話框(如圖6.49所示)中設(shè)置“Startup?Options”/“FPGA?Start-Up?Clock”為JTAG?Clock,否則ChipScope?Pro將無法正確配置器件。

?

下載配置文件時,選擇“Device”/“DEV1”/“Configure”選項(xiàng),如圖6.50所示。單擊后會出現(xiàn)如圖6.51所示的對話框,選擇要下載的*.bit文件,對FPGA進(jìn)行配置。

圖6.50??配置FPGA

圖6.51??選擇配置文件對話框

?

3.設(shè)置觸發(fā)條件

成功完成對FPGA的配置后,會出現(xiàn)如圖6.52所示界面。

圖6.52??成功完成配置后用戶界面

如圖6.52所示,ChipScope?Pro?Analyzer的界面由兩部分組成。

左邊一欄為工程視窗和信號列表。工程視窗的下拉列表中有“Trigger?Setup”、“Waveform”選項(xiàng)。雙擊后,就會有相應(yīng)的視窗在右邊顯示。信號列表中列出了所有信號,在這里可以增加或刪除視圖中的信號,對信號重命名,也可以將信號組合為總線以便于觀察。

?

右邊一欄主要有兩個視窗:一個為“Trigger?Setup”,用于設(shè)置觸發(fā)條件;一個為“Waveform”用于觀察波形。設(shè)置觸發(fā)條件包括設(shè)置觸發(fā)條件函數(shù)(Match)、觸發(fā)條件(Trig)和捕獲參數(shù)(Capture),下面分別介紹。

(1)“Match”選項(xiàng)卡。

主要完成觸發(fā)條件函數(shù)的設(shè)置。所謂觸發(fā)條件函數(shù)是與表6.4中的匹配功能相對應(yīng)的。要設(shè)置數(shù)值大小和函數(shù),即選擇:=、<>、>、>=、<、<=某數(shù)值時,才滿足觸發(fā)條件。當(dāng)有多個條件時,可以分別設(shè)置每個條件的要求滿足的函數(shù)和數(shù)值,如圖6.53所示。

圖6.53??“Match”選項(xiàng)卡設(shè)置對話框

?

(2)“Trig”選項(xiàng)卡。

主要用于設(shè)置觸發(fā)條件。在“Match”下設(shè)置了觸發(fā)所需要滿足的條件。當(dāng)有多個條件時這里可以設(shè)置是讓哪一個條件起作用,也可以將條件設(shè)置為幾個條件的邏輯組合?;蛘呤菍讉€條件設(shè)置為“條件鏈”,即當(dāng)依次滿足條件鏈設(shè)置的各個條件后,才可以捕獲數(shù)據(jù),如圖6.54所示。

圖6.54??“Trig”選項(xiàng)卡設(shè)置對話框

?

如圖6.54所示,單擊“Trigger?Condition?Equation”下的選項(xiàng),會彈出如圖6.55所示的對話框。在對話框中,有兩個選項(xiàng)卡。在“Boolean”選項(xiàng)卡下,可以設(shè)置哪一個條件起作用,也可將條件設(shè)置為幾個條件的邏輯組合;在“Sequencer”選項(xiàng)卡下,可以設(shè)置條件鏈,如圖6.55所示。當(dāng)依次滿足條件鏈下的幾個條件后,就被觸發(fā)。

圖6.55??“Sequencer”選項(xiàng)卡設(shè)置對話框

?

4.觀測波形

觸發(fā)條件設(shè)置好后,單擊左上角的按鈕開始執(zhí)行。當(dāng)滿足觸發(fā)條后,ChipScope?Pro開始采集數(shù)據(jù),采集到一定數(shù)目后(該數(shù)目取決于存儲深度),就可以觀察波形了。如圖6.56為ChipScope?Pro顯示波形的效果圖。

在波形顯示窗口下可對波形進(jìn)行放大和縮小,也可以進(jìn)行局部放縮。當(dāng)要觀察總

圖6.56??ChipScope?Pro波形顯示效果圖

線數(shù)據(jù)時,可以先選中所有總線數(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é)對在線邏輯分析工具ChipScope?Pro作了詳細(xì)介紹。通過本節(jié)的學(xué)習(xí),讀者應(yīng)該掌握ChipScope?Pro的設(shè)計(jì)流程以及使用方法。

ChipScope?Pro本身的功能很強(qiáng)大,在調(diào)試階段應(yīng)用很廣泛。它可以觀察FPGA內(nèi)部的任何信號,使用也比較簡單,希望讀者能夠很好地掌握。

為了讓讀者能夠盡快地熟悉這一工具的使用,在6.8節(jié)給出一個簡單的實(shí)例,分別應(yīng)用兩種設(shè)計(jì)流程來完成,讀者可參照這一例程來進(jìn)一步熟悉ChipScope?Pro的使用。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

華清遠(yuǎn)見(www.farsight.com.cn)是國內(nèi)領(lǐng)先嵌入師培訓(xùn)機(jī)構(gòu),2004年注冊于中國北京海淀高科技園區(qū),除北京總部外,上海、深圳、成都、南京、武漢、西安、廣州均有直營分公司。華清遠(yuǎn)見除提供嵌入式相關(guān)的長期就業(yè)培訓(xùn)、短期高端培訓(xùn)、師資培訓(xùn)及企業(yè)員工內(nèi)訓(xùn)等業(yè)務(wù)外,其下屬研發(fā)中心還負(fù)責(zé)嵌入式、Android及物聯(lián)網(wǎng)方向的教學(xué)實(shí)驗(yàn)平臺的研發(fā)及培訓(xùn)教材的出版,截止目前為止已公開出版70余本嵌入式/移動開發(fā)/物聯(lián)網(wǎng)相關(guān)圖書。企業(yè)理念:專業(yè)始于專注 卓識源于遠(yuǎn)見。企業(yè)價值觀:做良心教育、做專業(yè)教育,更要做受人尊敬的職業(yè)教育。