《Xilinx FPGA設(shè)計(jì)基礎(chǔ)》課件第7章_第1頁
《Xilinx FPGA設(shè)計(jì)基礎(chǔ)》課件第7章_第2頁
《Xilinx FPGA設(shè)計(jì)基礎(chǔ)》課件第7章_第3頁
《Xilinx FPGA設(shè)計(jì)基礎(chǔ)》課件第7章_第4頁
《Xilinx FPGA設(shè)計(jì)基礎(chǔ)》課件第7章_第5頁
已閱讀5頁,還剩170頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第7章FPGA邏輯設(shè)計(jì)實(shí)驗(yàn)7.1實(shí)驗(yàn)一熟悉Xilinx開發(fā)工具7.2實(shí)驗(yàn)二結(jié)構(gòu)體生成向?qū)Ш蚉ACE7.3實(shí)驗(yàn)三全局時(shí)鐘約束實(shí)驗(yàn)7.4實(shí)驗(yàn)四綜合技巧實(shí)驗(yàn)7.5實(shí)驗(yàn)五IP核生成實(shí)驗(yàn)7.6實(shí)驗(yàn)六Chipscope調(diào)試實(shí)驗(yàn)

7.1實(shí)驗(yàn)一熟悉Xilinx開發(fā)工具

7.1.1實(shí)驗(yàn)介紹

本實(shí)驗(yàn)主要介紹Xilinx的開發(fā)工具——ISE的使用。

7.1.2實(shí)驗(yàn)?zāi)繕?biāo)

●了解FPGA的開發(fā)流程;

●熟悉Spartan-3E開發(fā)套件的功能特點(diǎn);

●清楚PicoBlaze8位控制器的特性。7.1.3實(shí)驗(yàn)過程

本實(shí)驗(yàn)包含五個(gè)主要的部分:使用ISE集成環(huán)境創(chuàng)建一個(gè)新的工程;添加設(shè)計(jì)文件到工程中;編譯設(shè)計(jì);仿真設(shè)計(jì);實(shí)現(xiàn)設(shè)計(jì)。每個(gè)部分都有對應(yīng)的詳細(xì)步驟,并有圖表輔助說明步驟的內(nèi)容。讀者可以按照詳細(xì)步驟一步一步完成實(shí)驗(yàn),也可以按照大的實(shí)驗(yàn)部分自行完成。

7.1.4實(shí)驗(yàn)步驟

首先,閱讀PicoBlaze的說明文檔,以便熟悉8位微控制器的體系結(jié)構(gòu)和編譯系統(tǒng),可參考“..\KCPSM3\docs\”目錄下的KCPSM3_manual.pdf文檔。本系列實(shí)驗(yàn)將使用基于PicoBlaze處理器的設(shè)計(jì),舉例說明ISE設(shè)計(jì)流程及其相關(guān)的各個(gè)重要工具。

1.啟動(dòng)ISE創(chuàng)建一個(gè)新的工程

(1)選擇“開始→程序→XilinxISE9.1i”或直接在桌面雙擊XilinxISE9.1i圖標(biāo),打開ISE9.1i集成環(huán)境。

(2)在ISE中,選擇菜單欄中的File→NewProject,打開創(chuàng)建新工程界面,如圖7.1所示。圖7.1創(chuàng)建新工程界面

(3)在工程名稱填寫欄里輸入Flow_Lab;工程存放位置選擇“…”按鈕指定到下列目錄之一,然后單擊OK按鈕。

●?Verilogusers:c:\xup\fpgaflow\labs\verilog\lab1;

●?VHDLusers:c:\xup\fpgaflow\labs\vhdl\lab1。

(4)單擊Next按鈕,將出現(xiàn)器件和設(shè)計(jì)工具選擇對話框(見圖7.2)。圖7.2工程屬性參數(shù)

(5)在圖7.2中選擇下列參數(shù),并單擊Next按鈕。

Family(器件類別):Spartan3E;

Device(器件型號):XC3S500E;

Package(封裝):FG320;

Speed(速度等級):–4;

SynthesisTool(綜合工具):XST(VHDL/Verilog);

Simulator(仿真工具):ISESimulator(VHDL/Verilog);

PreferredLanguage(偏好語言):VerilogorVHDL(selectyourpreference)。單擊Next按鈕,將會(huì)出現(xiàn)創(chuàng)建新文件的對話框,如圖7.3所示,在這個(gè)對話框里可以通過單擊NewSource…按鈕,按照用戶定義的模塊名稱、端口屬性等信息來創(chuàng)建一個(gè)新的HDL源文件,對文件的全部后續(xù)修改只能在HDL編輯器中完成。本實(shí)驗(yàn)所用到的HDL源文件已被創(chuàng)建好了,故此處不用單擊NewSource…按鈕創(chuàng)建新文件。圖7.3創(chuàng)建新文件對話框

(6)單擊Next按鈕,將會(huì)出現(xiàn)添加已有文件的對話框,如圖7.4所示。圖7.4添加已有文件對話框

2.添加HDL源文件到工程

(1)單擊AddSource,瀏覽c:\xup\fpgaflow\KCPSM3\VHDLorVerilog目錄。

(2)選擇VHDL/Verilog文件kcpsm3_int_test和kcpsm3,并單擊Open按鈕。

(3)單擊Next按鈕,然后單擊Finish按鈕,將出現(xiàn)選擇源文件類型對話框,如圖7.5所示。圖7.5選擇源文件類型對話框

(4)單擊OK按鈕,接受默認(rèn)設(shè)置。

注意:在分層顯示列表中,會(huì)出現(xiàn)帶有紅色問號標(biāo)記名為int_test的模塊。這個(gè)模塊是個(gè)BlockRAM,它包含PicoBlaze控制器的指令信息,這些指令信息將在隨后的步驟中被添加。

3.編譯設(shè)計(jì)

編寫MY_AND2實(shí)體的VHDL代碼。

(1)打開Windows搜索,在KCPSM3子目錄(c:\xup\fpgaflow\KCPSM3\Assembler)里找到編譯器(見圖7.6)。圖7.6編譯器目錄內(nèi)容

(2)使用諸如寫字板這樣的文本編輯器打開文件int_test.psm,查看代碼,可參考PicoBlaze8-bitEmbeddedMicrocontrollerUserGuide或KCPSM3manual得到技術(shù)幫助。這些文檔存放在Docs子目錄中。

(3)打開命令窗口(開始→程序→附件→命令提示符)。

(4)使用cd命令切換到Assembler目錄(見圖7.7)。

>cdc:\xup\fpgaflow\KCPSM3\Assembler圖7.7命令窗口

(5)在命令提示符下輸入以下命令,立即編譯代碼輸出程序ROM文件。

>kcpsm3int_test.psm

注意:在編譯器子目錄里,現(xiàn)在應(yīng)該能看到幾個(gè)以INIT_TEST*開頭的文件,包括VHDL(INT_TEST.VHD)和Verilog(INT_TEST.V)程序ROM文件。

(6)在ISE集成環(huán)境里,打開Project→AddCopyofSource并找到INT_TEST.VHD或INT_TEST.V文件(c:\xup\fpgaflow\KCPSM3\Assembler路徑),如圖7.8所示。圖7.8添加INT_TEST.HDL程序ROM文件到工程

(7)單擊Open按鈕,然后單擊OK按鈕把INIT_TEST當(dāng)作設(shè)計(jì)文件添加到工程,如圖7.9所示。圖7.9PicoBlaze設(shè)計(jì)的層次瀏覽窗口

4.仿真設(shè)計(jì)

添加測試文件testbench.vhd/.v并閱讀其代碼。使用XilinxiSIM仿真工具完成行為級仿真并檢查仿真結(jié)果。

(1)在ISE的Sources窗口中,選擇Project→AddCopyofSource并找到c:\xup\fpgaflow\KCPSM3\vhdl(orverilog)目錄。

(2)選擇文件test_bench.vhd(或testbench.v)并單擊Open按鈕。

(3)選擇SimulationOnly并單擊OK按鈕,添加測試文件到工程,如圖7.10所示。圖7.10包含testbench的層次瀏覽窗口

(4)選中testbench測試文件,在Processes窗口中展開XilinxISESimulator仿真工具,右鍵單擊SimulateBehavioralModel并選擇屬性Properties。

(5)在SimulationRunTime選項(xiàng)下輸入值25000ns并單擊OK按鈕,如圖7.11所示。

(6)雙擊SimulateBehavioralModel仿真設(shè)計(jì)。仿真結(jié)束后會(huì)出現(xiàn)兩個(gè)窗口。一個(gè)窗口以波形方式顯示仿真結(jié)果,另一個(gè)以HDL格式顯示testbench文件。圖7.11iSIM行為級仿真屬性

(7)單擊waveform標(biāo)簽查看仿真結(jié)果??s放并仔細(xì)觀察波形以確認(rèn)模塊仿真結(jié)果的正確性。(見圖7.12和圖7.13)

(8)關(guān)閉simulatorwindows。單擊Yes按鈕,確認(rèn)退出仿真。圖7.12中斷服務(wù)程序產(chǎn)生中斷中斷確認(rèn)中斷向量中斷程序啟動(dòng)計(jì)數(shù)值圖7.13輸出波形波形開始波形值寫開始

5.實(shí)現(xiàn)設(shè)計(jì)

實(shí)現(xiàn)設(shè)計(jì)過程中將會(huì)生成一些報(bào)告。

(1)在Sources窗口中,選擇Synthesis/Implementation,并選中頂層設(shè)計(jì)文件kcpsm3_int_test.v,如圖7.14所示。圖7.14Sources窗口

(2)在Processes窗口中雙擊ImplementDesign(見圖7.15),ISE工具會(huì)運(yùn)行所有需要的過程來實(shí)現(xiàn)設(shè)計(jì),在實(shí)現(xiàn)之前首先運(yùn)行綜合。圖7.15Processes窗口

(3)在實(shí)現(xiàn)過程中,單擊ImplementDesign旁邊的“+”展開實(shí)現(xiàn)步驟,查看進(jìn)展。

每個(gè)階段完成后,都會(huì)出現(xiàn)一個(gè)對應(yīng)符號:

對號表示正確;

感嘆號表示警告;

X表示錯(cuò)誤。

對于這個(gè)設(shè)計(jì),在某些步驟中可能會(huì)出現(xiàn)一個(gè)感嘆號(警告),這里的警告是可以忽略的。

(4)在ISE集成環(huán)境的底部消息窗口閱讀消息。

(5)實(shí)現(xiàn)結(jié)束后,在DesignSummary窗口中查看設(shè)計(jì)的資源利用情況(見圖7.16)。圖7.16設(shè)計(jì)概要7.1.5實(shí)驗(yàn)總結(jié)

在本實(shí)驗(yàn)中,我們創(chuàng)建了一個(gè)簡單的邏輯門模塊,這個(gè)模塊在上層的模塊中被調(diào)用,模塊之間通過信號相連。讀者通過這個(gè)簡單的實(shí)驗(yàn),接觸了使用VHDL編程的一些基本技術(shù)和方法,這些方法會(huì)在后續(xù)的工程中經(jīng)常使用。 7.2實(shí)驗(yàn)二結(jié)構(gòu)體生成向?qū)Ш蚉ACE

7.2.1實(shí)驗(yàn)介紹

本實(shí)驗(yàn)主要介紹結(jié)構(gòu)體生成向?qū)Ш蚉ACE的使用。

7.2.2實(shí)驗(yàn)?zāi)繕?biāo)

●使用結(jié)構(gòu)生成向?qū)渲靡粋€(gè)DCM;

●例化DCM;

●使用PACE指定引腳位置;

●實(shí)現(xiàn)設(shè)計(jì)并確認(rèn)引腳分配生效;

●下載并測試硬件設(shè)計(jì)。7.2.3實(shí)驗(yàn)過程

本實(shí)驗(yàn)主要包含四個(gè)部分:使用結(jié)構(gòu)體生成向?qū)渲靡粋€(gè)DCM;例化DCM到VHDL/Verilog設(shè)計(jì)中;使用PACE指定引腳位置;實(shí)現(xiàn)、下載設(shè)計(jì)并最終通過硬件測試設(shè)計(jì)。

7.2.4實(shí)驗(yàn)步驟

1.使用結(jié)構(gòu)體生成向?qū)渲靡粋€(gè)DCM

打開已有工程,使用結(jié)構(gòu)體生成向?qū)渲靡粋€(gè)DCM模塊,模塊輸出55MHz時(shí)鐘。

(1)選擇“開始→程序→XilinxISE9.1i→ProjectNavigator”,打開ISE9.1i集成環(huán)境。

(2)在ISE中,選擇菜單欄中的File→OpenProject。

(3)指定到以下目錄并選擇arwz_pace.ise。

Verilogusers:c:\xup\fpgaflow\labs\veriloglab2\arwz_pace;

VHDLusers:c:\xup\fpgaflow\labs\vhdl\lab2\arwz_pace。

(4)單擊Open按鈕。

(5)在Processes窗口中雙擊CreateNewSource。

如果沒有看到CreateNewSource過程,請檢查是否在Sources窗口中選擇了一個(gè)HDL源文件。

(6)在新文件窗口中,選擇IP(CoreGen&ArchitectureWizard)并輸入my_dcm作為文件名。

(7)單擊Next按鈕。

(8)在選擇Core類型窗口中,展開FPGAFeaturesandDesign→Clocking→Spartan-3E,Spartan-3A并選擇SingleDCMSPv9.1i,如圖7.17所示。圖7.17結(jié)構(gòu)體類型選擇

(9)單擊Next按鈕,然后單擊Finish按鈕。

(10)在XilinxClockingWizard–GeneralSetup窗口中設(shè)置選項(xiàng)(見圖7.18)。

CLK0,CLKFX和LOCKED選項(xiàng)框:選中;

RST選項(xiàng)框:不選;

InputClockFrequency(輸入時(shí)鐘頻率):50MHz。圖7.18XilinxClockingWizard–GeneralSetup窗口

(11)單擊Next按鈕。

(12)在XilinxClockingWizard–ClockBuffers窗口(見圖7.19)中,接受默認(rèn)選項(xiàng)并單擊Next按鈕。圖7.19XilinxClockingWizard–ClockBuffers窗口

(13)在XilinxClockingWizard–ClockFrequencySynthesizer對話框(見圖7.20)中,輸入55MHz作為輸出頻率,單擊Next按鈕,然后單擊Finish按鈕。圖7.20定義DCM的輸出頻率注意:如果在設(shè)計(jì)層次中沒有看到my_dcm.xaw,可以通過Project→AddSource手動(dòng)添加,新文件(my_dcm.xaw)將被當(dāng)作源文件加進(jìn)工程(見圖7.21)。這個(gè)新文件被例化到HDL文件中之后,才會(huì)出現(xiàn)在設(shè)計(jì)層次中。圖7.21DCM出現(xiàn)在層次設(shè)計(jì)列表

2.例化DCM

上一步驟已經(jīng)創(chuàng)建了所需的文件,因而現(xiàn)在就可以例化DCM。從例化模板中復(fù)制粘貼文本信息到uart_clock.vhd并連接信號。

(1)在Sources窗口中,雙擊uart_clock.vhd打開文件內(nèi)容。

(2)在Sources窗口選中my_dcm.xaw。

(3)在Processes窗口中,雙擊ViewHDLInstantiationTemplate,在文本編輯器里打開例化模板。

(4)在例化模板my_dcm.vhi中,復(fù)制componentdeclaration(從COMPONENTmy_dcm開始,到ENDCOMPONENT;結(jié)束)并粘貼到文件uart_clock.vhd的注釋語句InsertDCMcomponentdeclarationhere之下。

(5)在例化模板my_dcm.vhi中,復(fù)制componentinstantiation(從Inst_my_dcm:my_dcm開始直到文件結(jié)尾)并粘貼到文件uart_clock.vhd的注釋語句InsertDCMcomponentinstantiationhere之下。

(6)如下填寫端口連接,完成例化:注意:clkin_ibufg_out輸出端口對包含RocketIO?收發(fā)器的設(shè)計(jì)有用。因?yàn)楸緦?shí)驗(yàn)針對的不是Virtex-IIPro?器件,所以這個(gè)端口被連接到一個(gè)虛假信號。

(7)在注釋語句SignalsforDCM之下,為DCM的55MHz輸出添加一個(gè)信號聲明,如下所示:

signalclk55MHz:std_logic;

注意:uart_clock.vhd設(shè)計(jì)已經(jīng)被更新,因此所有的時(shí)鐘信號(clk)被改名為(clk55MHz)。

(8)如下所示在實(shí)體中添加一個(gè)輸出引腳lock:

3.使用PACE指定引腳位置

大多數(shù)FPGA設(shè)計(jì)在完成之前都引出了所需引腳。PACE有助于指定引腳和檢查所選的引腳定義是否滿足有關(guān)I/O標(biāo)準(zhǔn)和I/Obanks的DRC規(guī)則。

(1)在Sources窗口中,選中頂層設(shè)計(jì)文件uart_clock.vhd/.v。

(2)在Sources窗口中,展開UserConstraints并雙擊AssignPackagePins,打開PACE。當(dāng)要求加入U(xiǎn)CF文件到工程時(shí),單擊YES按鈕。在PACE啟動(dòng)之前,設(shè)計(jì)必須被綜合。

(3)瀏覽DesignObjectList窗口,查看列出的信號。注意,這些是設(shè)計(jì)的輸入/輸出信號。

(4)根據(jù)以下需求輸入引腳約束。參考DigilentSpartan-3EUsers’Manual,獲得模塊的引腳和UCF映射信息。

clk:連接到50MHz晶振;

lock:連接到led0;

alarm:連接到led1;

rx:連接到從MaximMAX3232接收串口數(shù)據(jù)的引腳;

tx:連接到發(fā)送數(shù)據(jù)到MaximMAX3232的引腳;

(5)單擊save按鈕并選擇XSTDefault:<>作為I/O總線分隔符再單擊OK按鈕。

(6)在DeviceArchitecture窗口中,放大直到看清單個(gè)引腳數(shù)字(見圖7.22)。I/O引腳邊上的彩色條指示哪些引腳在相同的I/Obank??梢匀菀椎乜吹侥男┮_被指定到了相同的bank。

(7)單擊eachcoloredI/Opin,在DesignObjectList窗口里的相應(yīng)引腳會(huì)被選中。

(8)在DesignObjectList窗口中,確認(rèn)引腳指定被更改。

(9)單擊File→Save保存這些引腳放置。

(10)單擊File→Exit關(guān)閉PACE。

(11)在工程瀏覽器的Processes窗口中,展開UserConstraints并雙擊EditConstraints(Text),查看文件uart_clock.ucf內(nèi)的約束信息,查看UCF文件的版本以確認(rèn)約束是否被寫入文件。圖7.22器件結(jié)構(gòu)

4.檢查Pad報(bào)告并啟動(dòng)超級終端會(huì)話

實(shí)現(xiàn)設(shè)計(jì)并查看Pad報(bào)告,確認(rèn)引腳指定被接受。開始一個(gè)超級終端會(huì)話。

(1)確保Sources窗口中的頂層設(shè)計(jì)文件uart_clock.vhd/.v被選中。

(2)在Processes窗口中,展開ImplementDesign過程并展開Place&Route。

(3)雙擊PadReport。工程瀏覽器自動(dòng)確定哪些過程必須運(yùn)行,并且會(huì)在Place&Route過程完成后打開報(bào)告。

(4)查看報(bào)告,確認(rèn)I/O信號的引腳編號與之前指定的一致。

(5)通過開始→程序→附件→通信→超級終端打開一個(gè)超級終端會(huì)話。

(6)給會(huì)話命名,單擊OK按鈕,并定義COM1作為端口連接。

(7)單擊配置按鈕并定義下列參數(shù)作為端口設(shè)置(見圖7.23)。完成后單擊OK按鈕。圖7.23串口通信設(shè)置●?Baudrateof38400(波特率設(shè)為38400)

●?8databits(8比特?cái)?shù)據(jù)位置)

●?Noparitybits(無校驗(yàn)位)

●?1stopbit(1位停止位)

●?Noflowcontrol(無流控)

(8)單擊settings標(biāo)簽,然后單擊ASCIISetup標(biāo)簽,選中Appendlinefeedstoincominglineends選項(xiàng),再單擊OK按鈕。再次單擊OK按鈕退出屬性對話框(見圖7.24)。圖7.24串口連接的ASCII設(shè)置

5.下載設(shè)計(jì)

生成bitstream并下載到FPGA。

(1)選中uart_clock.vhd并雙擊GenerateProgrammingFile生成下載到FPGA的bitstream。

(2)處理過程結(jié)束后,展開GenerateProgrammingFile并雙擊ConfigureDevice(iMPACT)。

(3)選中ConfigureDevicesusingBoundary-Scan(JTAG),單擊Finish按鈕。

(4)出現(xiàn)AssignNewConfigurationFile對話框時(shí),為xc3s500e(firstdeviceinJTAGchain)器件選擇uart_clock.bit文件并單擊Open按鈕。注意:會(huì)出現(xiàn)一個(gè)警告信息,提示啟動(dòng)時(shí)鐘被更改為JTAG時(shí)鐘,單擊OK按鈕。

(5)對于其他器件,單擊Bypass(見圖7.25)。圖7.25JTAG下載鏈

(6)連接JTAG下載電纜和串口通信電纜到Spartan-3E開發(fā)板并加電。

(7)在iMPACT窗口中,右鍵單擊xc3s500e,選擇Program并在ProgrammingOptions對話框中單擊OK按鈕。

注意:在超級終端窗口中將看到KCPSM3>提示符(見圖7.26)。圖7.26與PicoBlaze串口通信

6.操作UART實(shí)時(shí)鐘表

(1)輸入指令“time”顯示當(dāng)前時(shí)間,時(shí)間格式為hh:mm:ss,如圖7.27所示。圖7.27當(dāng)前時(shí)間顯示

(2)輸入指令“alarm”顯示當(dāng)前報(bào)警時(shí)間,時(shí)間格式為hh:mm:ss,如圖7.28所示。圖7.28報(bào)警時(shí)間和狀態(tài)顯示

(3)輸入指令“alarmon”使報(bào)警器運(yùn)行。

(4)輸入指令“alarm00:00:30”設(shè)置報(bào)警器30秒后報(bào)警。

(5)輸入指令“time00:00:00”設(shè)置時(shí)間。

注意:一旦開始報(bào)警,DigilentSpartan-3E開發(fā)板上的led1會(huì)點(diǎn)亮。

(6)輸入指令“alarmoff”關(guān)閉報(bào)警器。

注意:led0熄滅,表示報(bào)警器被關(guān)閉。

7.2.5實(shí)驗(yàn)總結(jié)

在這個(gè)實(shí)驗(yàn)中完成了以下內(nèi)容:使用結(jié)構(gòu)向?qū)渲靡粋€(gè)DCM并將其例化到設(shè)計(jì)中;使用PACE完成引腳分配;實(shí)現(xiàn)設(shè)計(jì)并完成硬件測試。

7.3實(shí)驗(yàn)三全局時(shí)鐘約束實(shí)驗(yàn)

7.3.1實(shí)驗(yàn)介紹

本實(shí)驗(yàn)將使用全局時(shí)鐘約束來提升系統(tǒng)時(shí)鐘頻率,還可使用Post-MapStaticTimingReport和Post-Place&RouteStaticTimingReport來分析設(shè)計(jì)的性能。

7.3.2實(shí)驗(yàn)?zāi)繕?biāo)

●使用XilinxConstraintsEditor輸入全局時(shí)鐘約束;

●查看Post-MapStaticTimingReport報(bào)告,檢查時(shí)鐘約束是否可實(shí)現(xiàn);

●查看Post-Place&RouteStaticTimingReport報(bào)告,確定每個(gè)時(shí)鐘約束的最長路徑延遲。7.3.3實(shí)驗(yàn)概要

1.構(gòu)建硬件系統(tǒng)

本實(shí)驗(yàn)將實(shí)現(xiàn)一個(gè)帶有幾個(gè)外設(shè)的嵌入式處理器系統(tǒng)。硬件方面的大多數(shù)系統(tǒng)已經(jīng)具備,但是還需要閱讀系統(tǒng)的硬件描述,以便理解系統(tǒng)的結(jié)構(gòu)原理。

這個(gè)實(shí)驗(yàn)的主要任務(wù)是編寫PicoBlaze軟件程序,編譯、實(shí)現(xiàn)回路測試?;芈窚y試作為測試器件是否工作正常的一種方式,是通過發(fā)送信號給器件并接收由器件返回的信號。

第一個(gè)回路測試將把切換開關(guān)的設(shè)置顯示在LEDs。這里,相當(dāng)于用手指發(fā)送信號,用眼睛接收系統(tǒng)返回的信息。第二個(gè)回路測試將通過RS232串口接收返回信息。這里,電腦通過自身串口發(fā)送,再通過串口接收系統(tǒng)返回的信息。如圖7.29所示,系統(tǒng)有許多輸入,包括時(shí)鐘、復(fù)位輸入,還有4-bit切換開關(guān)和串口輸入。串口接收信號由開發(fā)板上的RS232插座輸入并經(jīng)過電平轉(zhuǎn)換之后到達(dá)FPGA。圖7.29也給出了輸出,包括8-bitLED和串口輸出。串口輸出信號由FPGA輸出并經(jīng)過電平轉(zhuǎn)換之后到達(dá)開發(fā)板上的RS232插座。

RS232_TX 串口發(fā)送輸出信號

LEDS[7:0] 8比特LED輸出信號

必須用給定的源文件實(shí)現(xiàn)系統(tǒng),然后開發(fā)一個(gè)簡單的軟件程序。軟件開發(fā)被劃分為三個(gè)部分,最終的軟件需要在復(fù)位時(shí)發(fā)送一個(gè)短消息,然后并行完成兩個(gè)回路測試功能。

●在LEDS上顯示切換開關(guān)設(shè)置

●顯示由RS232接口串行接收到的數(shù)據(jù)

完成這個(gè)實(shí)驗(yàn),將會(huì)理解如何使用PicoBlaze實(shí)現(xiàn)一個(gè)簡單的嵌入式處理器系統(tǒng)。

2.時(shí)序報(bào)告分析

時(shí)序報(bào)告給出了為什么時(shí)鐘約束失敗、哪些路徑通過和哪些路徑失敗的細(xì)節(jié)信息。

打開時(shí)序報(bào)告時(shí),TimingAnalyzerutility會(huì)啟動(dòng)生成時(shí)序報(bào)告。

TimingAnalyzerGUI包含三個(gè)窗口,如圖7.30所示??梢允褂米髠?cè)的層次瀏覽界面輕松瀏覽大報(bào)告。

路徑細(xì)節(jié)信息窗口在右下方,它包含了時(shí)序報(bào)告的實(shí)際文本信息。

頂層窗口顯示當(dāng)前在路徑細(xì)節(jié)信息窗口中查看的時(shí)序報(bào)告部分。圖7.30時(shí)序分析GUI界面路徑分析的細(xì)節(jié)信息(見圖7.31)包含路徑延遲信息,包括以下內(nèi)容:

●?Slack:路徑的約束長度與實(shí)際長度之差(負(fù)值slack表示路徑約束失敗);

●?路徑起點(diǎn)與終點(diǎn)(Pathsourceanddestination);

●?路徑上的增量延遲列表(abbreviationscorrespondtodatasheetinformation);

●?延遲路徑上的每個(gè)節(jié)點(diǎn)扇出;

●?路徑總延遲(Totaldelayonthepath);

●?邏輯和路由延遲占總延遲的百分比:由此可判斷出路徑的布線是否很差。圖7.31詳細(xì)路徑分析7.3.4實(shí)驗(yàn)過程

這個(gè)實(shí)驗(yàn)將創(chuàng)建一個(gè)簡單的嵌入式系統(tǒng)并輸入位置和全局時(shí)鐘約束,包括三個(gè)主要步驟:打開工程;輸入全局時(shí)鐘約束;最后實(shí)現(xiàn)設(shè)計(jì)并分析時(shí)序。

7.3.5實(shí)驗(yàn)步驟

1.編譯一個(gè)程序模板

啟動(dòng)ISE工程瀏覽器并打開time_const工程。編譯匯編程序模板program.psm,生成包含指令ROM的文件program.v。

(1)選擇“開始→程序→XilinxISE9.1i”,打開ISE9.1i集成環(huán)境。

(2)在ISE中,選擇菜單欄中的File→OpenProject。

(3)指定到以下目錄之一:

VHDLusers:c:\xup\fpgaflow\labs\VHDL\lab3

Verilogusers:c:\xup\fpgaflow\labs\Verilog\lab3

(4)選中time_const.ise,單擊Open按鈕查看頂層設(shè)計(jì)。

(5)選擇“開始→程序→附件→命令提示符”,打開命令輸入窗口。

(6)?CD切換到編譯器子目錄(位于工程目錄),其中包括一個(gè)程序模板(program.psm)和一個(gè)用于編譯它的批處理文件。

>cdc:\xup\fpgaflow\labs\verilogl\lab3\assembler(Verilogusers)

>cdc:\xup\fpgaflow\labs\vhdl\lab3\assembler(VHDLusers)

(7)在提示符后輸入以下命令,編譯程序模板生成一個(gè)程序ROM:

>kcpsm3program

注意:這個(gè)程序模板只是語法上正確,但不具備什么功能,需要在后面的步驟里編寫一個(gè)有意義的程序。

(8)在ISE里,添加生成的ROMHDL文件到工程。

(9)選中頂層設(shè)計(jì)文件并在綜合過程下雙擊運(yùn)行CheckSyntax進(jìn)行語法檢查。

(10)切換到行為級仿真模式并使用testbench.v/vhd進(jìn)行仿真,仿真時(shí)間設(shè)置為35000ns。波形放大后,可以看到如圖7.32所示的仿真結(jié)果,切換開關(guān)上有數(shù)值為170的輸入,而LEDs上沒有輸出。后面將輸入程序代碼以使切換開關(guān)的設(shè)置顯示在LEDs上。圖7.32仿真波形

2.輸入全局時(shí)鐘約束

這一步,將使用名為約束編輯器的圖形化工具輸入PERIOD和OFFSETIN/OUT約束。

(1)在Sources窗口中,選擇頂層設(shè)計(jì)文件loopback.vhd/.v。

(2)在Processes窗口中,展開UserConstraints并雙擊CreateTimingConstraints,如圖7.33所示。圖7.33Processes窗口

(3)單擊Yes按鈕,創(chuàng)建一個(gè)名為loopback.ucf的新UCF文件并將其添加到工程。

(4)約束編輯器打開后,單擊Global按鈕,如圖7.34所示。圖7.34全局約束編輯器

(5)雙擊在Period下的空白處,打開時(shí)鐘周期對話框(見圖7.35)。圖7.35時(shí)鐘周期對話框

(6)接受20ns和50%時(shí)鐘占空比的默認(rèn)設(shè)置并單擊OK按鈕。

(7)雙擊PadtoSetup(OFFSETIN)下面的空白處并輸入7ns的約束(見圖7.36),完成后單擊OK按鈕。圖7.36OFFSETIN約束對話框

(8)雙擊ClocktoPad(OFFSETOUT)下面的空白處并輸入7.5ns的約束(見圖7.37),完成后單擊OK按鈕。圖7.37OFFSETOUT約束對話框現(xiàn)在,約束編輯器里應(yīng)該有如下所示的三個(gè)約束,如圖7.38所示。圖7.38全局時(shí)鐘約束

3.輸入引腳位置約束

大多數(shù)FPGA設(shè)計(jì)在完成之前都需要規(guī)劃引腳。這部分,將通過從文本文件復(fù)制LOC約束到UCF文件來給設(shè)計(jì)的輸入/輸出引腳指定位置。

(1)展開UserConstraints并雙擊EditConstraints(見圖7.39),打開UCF文件。圖7.39打開UCF文件

(2)在LAB3目錄下,使用諸如寫字板之類的工具打開pinouts.txt文件,如圖7.40所示。

(3)把圖7.40中的約束復(fù)制到UCF文件,放在約束編輯器輸入的時(shí)鐘約束之下。

(4)保存并關(guān)閉UCF文件。圖7.40引腳位置約束

4.實(shí)現(xiàn)設(shè)計(jì)并分析時(shí)序

實(shí)現(xiàn)設(shè)計(jì),詳細(xì)查看Post-MapStaticTimingReport和Post-Place&RouteStaticTimingReport報(bào)告,完成Chart1和Chart2圖表。

(1)在Processes窗口中,展開ImplementDesign,然后展開Map。

注意:如果看不到ImplementDesign,請確認(rèn)Sources窗口的loopback.vhd/.v是否被選中。

(2)展開GeneratePost-MapStaticTiming。

(3)雙擊AnalyzePost-MapStaticTiming。

(4)退出TimingAnalyzer。

(5)在Processes窗口中,展開Place&Route,然后展開GeneratePost-Place&RouteStaticTiming。

(6)雙擊Post-Place&RouteStaticTimingReport。

5.編譯軟件程序并完成HDL仿真

硬件滿足時(shí)序要求之后,就可以開發(fā)PicoBlaze匯編程序來滿足三個(gè)軟件需求。程序模板包括許多有用的常量定義并被封裝,因而可以獨(dú)立地完成每個(gè)需求。每個(gè)需求被列為一個(gè)任務(wù),任務(wù)1最簡單,任務(wù)3最復(fù)雜。寫完一個(gè)任務(wù)的程序代碼后,必須重新運(yùn)行編譯器編譯完整的程序。編寫任務(wù)1的回路測試所需的程序代碼并對其編譯。生成ROM文件之后,添加testbench到設(shè)計(jì)中,并執(zhí)行行為級仿真來測試切換開關(guān)和LEDs。

(1)在編譯器子目錄下編輯program.psm文件完成任務(wù)1的代碼編寫,讀取切換開關(guān)狀態(tài),然后將其寫入LED控制端口。

注意:參考匯編模板關(guān)于端口值的常量定義和關(guān)于指令的PicoBlaze文檔。

提示:只需要編寫兩行代碼(refertotheKCPSM3usermanual)。

(2)代碼編寫完成后,重新編譯程序。

(3)切換到BehavioralSimulation模式。

(4)設(shè)置停止時(shí)間為50000ns,并完成設(shè)計(jì)的行為級仿真,如圖7.41所示。圖7.41設(shè)置仿真時(shí)間

(5)分析波形輸出和仿真控制臺(tái),完成后關(guān)閉窗口(見圖7.42)。圖7.42仿真波形注意:二進(jìn)制值10101010(170)施加在PicoBlaze的切換開關(guān)輸入端口,輸出返回到LEDs輸出端口,如圖7.43所示。圖7.43仿真控制臺(tái)的輸出消息

6.生成PlatformFlashPROM文件

XilinxplatformflashPROMs提供了存儲(chǔ)大型XilinxFPGA配置比特流的重復(fù)編程方法。DigilentSpartan-3E開發(fā)板由一個(gè)4Mbit的xcf04splatformflashPROM配置,xcf04s可存儲(chǔ)一個(gè)xc3s500e器件的比特流,需要2270208個(gè)配置比特。這一步,將使用iMPACT生成編程PROM的Intel格式MCS文件。

(1)雙擊GenerateProgrammingFile,生成比特流文件。

(2)展開GenerateProgrammingFile,并雙擊GeneratePROM,ACE,orJTAG選項(xiàng)。

(3)選擇PrepareaPROMfile,并單擊Next按鈕。

(4)保留默認(rèn)值(見圖7.44),選中XilinxPROM和MCS,可選擇提供的一個(gè)PROM文件名,然后單擊Next按鈕。圖7.44準(zhǔn)備PROM文件

(5)在下拉列表中選擇xcf04s,單擊Add按鈕,然后單擊Next按鈕,如圖7.45所示。圖7.45為Spartan-3E開發(fā)板定義xcf04sPROM圖7.46制作PROM文件

(6)單擊Next和Finish按鈕,然后添加loopback.bit文件,對話框打開后單擊No按鈕不再添加其他器件,如圖7.46所示。

(7)雙擊GenerateFile…生成MCS文件,將會(huì)顯示:“PROMFilegenerationsucceeded”,如圖7.47所示。圖7.47生成MCS文件

7.配置PROM并運(yùn)行LoopBack測試

這一步,將切換到配置模式并配置platformflashPROM使用上一步生成的MCS文件,然后通過PROM配置FPGA并測試在Digilent開發(fā)板上的loopback應(yīng)用。

(1)上電并連接Spartan-3E開發(fā)板。

(2)在Flows面板中雙擊BoundaryScan,如圖7.48所示。

(3)在空白處單擊右鍵并選擇InitializeChain。

(4)在被要求給xc3s500s指定配置文件時(shí)單擊Bypass。

(5)添加?.mcs文件給xcf04sPlatformFlash器件,然后繞過CPLD。

圖7.48選擇邊界掃描

(6)在iMPACT窗口中右鍵單擊xcf04S并選擇Program。

(7)??ProgrammingProperties對話框會(huì)被打開,實(shí)時(shí)顯示編程進(jìn)度。

注意:如果編程失敗,取消EraseBeforeProgramming選項(xiàng)然后再次編程。

(8)檢查配置模式,跳線被設(shè)置,以便上電啟動(dòng)時(shí)由PlatformFlash加載bitstream(consultwithDigilentSpartan-3Euserguide)。可重復(fù)上電由platformflashPROM重配置Digilent開發(fā)板,也可切換撥碼開關(guān)控制LEDs亮或滅。7.3.6實(shí)驗(yàn)總結(jié)

在本實(shí)驗(yàn)中,使用了XilinxConstraintsEditor輸入全局時(shí)鐘約束,查看了Post-Map和Post-Place&RouteTimingReports報(bào)告。

時(shí)鐘約束是設(shè)計(jì)期望與實(shí)現(xiàn)工具聯(lián)系的最好方式。

在實(shí)現(xiàn)工具第一次布局布線時(shí),必須檢查時(shí)鐘約束是否可以實(shí)現(xiàn)。由Post-MapStaticTimingReport報(bào)告可以估計(jì)出時(shí)鐘性能。

實(shí)現(xiàn)完成后,必須用Post-Place&RouteStaticTimingReport報(bào)告或由TimingAnalyzer產(chǎn)生的自定義時(shí)序報(bào)告來檢驗(yàn)時(shí)鐘約束。 7.4實(shí)驗(yàn)四綜合技巧實(shí)驗(yàn)

7.4.1實(shí)驗(yàn)介紹

本實(shí)驗(yàn)將介紹如何使用綜合選項(xiàng)來提高XilinxFPGA設(shè)計(jì)的性能。

7.4.2實(shí)驗(yàn)?zāi)繕?biāo)

●使用保持層次、扇出等綜合選項(xiàng)來提高調(diào)試和綜合結(jié)果;

●閱讀XST軟件生成的綜合報(bào)告,以便確定綜合結(jié)果的性能。

7.4.3實(shí)驗(yàn)過程

本實(shí)驗(yàn)主要包含四個(gè)部分:回顧之前的設(shè)計(jì);使用默認(rèn)選項(xiàng)綜合;更改綜合選項(xiàng);在RTL瀏覽器里查看綜合結(jié)果。7.4.4實(shí)驗(yàn)步驟

1.回顧之前設(shè)計(jì)并編寫軟件程序

啟動(dòng)ISE并打開工程文件synth_lab.ise,更改實(shí)驗(yàn)三中創(chuàng)建的program.psm文件,完成任務(wù)2,即顯示消息“XilinxRules!”并編譯程序,生成ROM文件,將ROM文件加入工

程中。

(1)選擇“開始→程序→XilinxISE9.1i”,打開ISE9.1i集成環(huán)境。

(2)在ISE中,選擇菜單欄中的File→OpenProject。

(3)指定到以下目錄之一:

VHDLusers:c:\xup\fpgaflow\labs\VHDL\lab4

Verilogusers:c:\xup\fpgaflow\labs\Verilog\lab4

(4)選擇synth_lab.ise并單擊Open按鈕。

(5)使用文本編輯器打開文件program.psm,加入代碼完成任務(wù)2??蓞⒖缄P(guān)于PicoBlaze和編譯器的技術(shù)文檔。

提示:所有的ASCII字母都包含在程序頂部的常量列表中,顯示一個(gè)字母只需要兩個(gè)指令語句(load和output)。

(6)打開命令窗口并瀏覽編譯器所在目錄,此目錄下包含有更改后的程序。

(7)輸入以下命令編譯程序,生成ROM文件。

>kcpsm3program

2.使用默認(rèn)選項(xiàng)綜合實(shí)現(xiàn)

綜合loopback.v/.vhd文件。

(1)在Sources窗口中,單擊loopback.v/.vhd。

(2)在Processes窗口中,雙擊Synthesize-XST。

(3)在Processes窗口中,展開Synthesize并雙擊ViewSynthesisReport,查看TimingSummary和DeviceUtilization。

(4)展開ImplementDesign并雙擊Place&Route。

(5)展開Place&Route并雙擊View/EditPlacedDesign(Floorplanner)。

(6)查看設(shè)計(jì)的層次和平面布局(見圖7.49和圖7.50)。

(7)退出FloorPlanner。圖7.49FloorPlanner設(shè)計(jì)層次瀏覽圖7.50設(shè)計(jì)的平面版圖

3.更改綜合選項(xiàng)

如圖7.51所示,更改綜合屬性(KeepHierarchy欄選擇Yes),然后重新綜合。圖7.51綜合屬性

(1)在Processes窗口中,右鍵單擊Synthesize并選擇Properties。

(2)在SynthesisOptions下,設(shè)置KeepHierarchy選項(xiàng)為Yes,如圖7.51所示。

(3)單擊OK按鈕,然后重新綜合設(shè)計(jì)。

(4)打開綜合報(bào)告查看TimingSummary、Fanout和DeviceUtilization。

(5)減少最大扇出。右鍵單擊Synthesize并選擇Properties。

(6)在XilinxSpecificOptions標(biāo)簽下,輸入50作為MaxFanout的參數(shù)值,單擊OK按鈕,如圖7.52所示。圖7.52Xilinx特性選項(xiàng)窗口

(7)雙擊Synthesize-XST重新綜合設(shè)計(jì)。

(8)打開綜合報(bào)告查找fanout和timingsummary。

(9)展開ImplementDesign并雙擊Place&Route。

(10)打開Floorplanner查看設(shè)計(jì)層次(見圖7.53和圖7.54)。圖7.53FloorPlanner設(shè)計(jì)層次瀏覽圖7.54層次化設(shè)計(jì)的版圖

4.下載測試系統(tǒng)

這一步,將生成bitstream并使用JTAG下載線配置FPGA。

(1)設(shè)置配置模式跳線,使JTAG下載模式有效。

(2)連接下載線,然后給Spartan-3E開發(fā)板上電。

(3)打開超級終端會(huì)話。

(4)展開GenerateProgrammingfile并雙擊ConfigureDevice(iMPACT)。

(5)配置器件對話框出現(xiàn)時(shí),檢查是否選中了Boundary-ScanMode,單擊Next按鈕后再單擊Finish按鈕。

(6)出現(xiàn)iMPACT檢測到兩個(gè)器件提示時(shí),單擊OK按鈕。

(7)指定loopback.bit文件給xc3s500e,忽略其他器件(見圖7.55)。圖7.55指定配置文件

(8)右鍵單擊xc3s500e器件并選擇編程下載。

(9)更改開發(fā)板上的切換開關(guān)設(shè)置,查看LEDs的變化。

7.4.5實(shí)驗(yàn)總結(jié)

在本實(shí)驗(yàn)中,可以通過改變綜合選項(xiàng)來提高設(shè)計(jì)性能,不同的選項(xiàng)設(shè)置會(huì)改變設(shè)計(jì)的綜合結(jié)果。 7.5實(shí)驗(yàn)五IP核生成實(shí)驗(yàn)

7.5.1實(shí)驗(yàn)介紹

本實(shí)驗(yàn)介紹使用XilinxCOREGenerator?系統(tǒng)創(chuàng)建IP核,并將IP核加入到設(shè)計(jì)中實(shí)現(xiàn)的過程。

7.5.2實(shí)驗(yàn)?zāi)繕?biāo)

●使用XilinxCOREGenerator?系統(tǒng)創(chuàng)建一個(gè)IP核;

●例化IP核到已有的設(shè)計(jì)中;

●對包含IP核的設(shè)計(jì)進(jìn)行行為級仿真;

●硬件測試。7.5.3實(shí)驗(yàn)過程

本實(shí)驗(yàn)主要包含三個(gè)部分:使用XilinxCOREGenerator?系統(tǒng)創(chuàng)建一個(gè)blockRAM,并初始化為軟件程序;例化到PicoBlaze設(shè)計(jì)中;在Spartan-3E開發(fā)板上進(jìn)行測試。

7.5.4實(shí)驗(yàn)步驟

1.生成ROM初始化文件

啟動(dòng)ISE集成環(huán)境,打開工程文件。

(1)選擇“開始→程序→XilinxISE9.1i”,打開ISE9.1i集成環(huán)境。

(2)在ISE中,選擇菜單欄中的File→OpenProject打開已有工程。

VHDLusers:c:\xup\fpgaflow\labs\VHDL\lab4\coregen

Verilogusers:c:\xup\fpgaflow\labs\Verilog\lab5\coregen

(3)選擇coregen.ise,單擊Open按鈕。

使用之前實(shí)驗(yàn)中的程序,編譯軟件程序生成?.coe文件,用來初始化ROM。

(4)打開位于工程所在目錄的program.psm文件。

(5)編寫幾行代碼,用超級終端回顯鍵盤輸入信息。

(6)打開命令輸入窗口,切換到程序所在目錄,輸入以下命令編譯程序:

>kcpsm3program

2.生成IP核

新建名為program的COREGenIP源文件,IP類型為雙端口ROM。

(1)在Processes窗口中,雙擊CreateNewSource。

(2)在NewSourceWizard對話框中,選擇IP(CoreGen&ArchitectureWizard),輸入program作為文件名稱,如圖7.56所示。圖7.56NewSource對話框

(3)單擊Next按鈕,進(jìn)入DefineModule窗口。

(4)單擊Next按鈕。

(5)在SelectCoreType對話框中,展開Memories&StorageElements,展開RAMs&ROMs,選擇BlockMemoryGeneratorv2.1,如圖7.57所示。圖7.57SelectCoreType對話框

(6)單擊Next按鈕,然后單擊Finish按鈕,打開COREGenerator?systemGUI。

配置如下雙端口Block存儲(chǔ)器:

●?Name(名稱):program;

●?MemoryType(存儲(chǔ)器類型):DualPortROM;

●?MemorySize(存儲(chǔ)器大小):1024×18。

(7)設(shè)置下列參數(shù)如圖7.58所示,然后單擊Next按鈕。

ComponentName:program

MemoryType:DualPortROM圖7.58Block存儲(chǔ)器選項(xiàng)

(8)設(shè)置下列參數(shù)如圖7.59所示,然后單擊Next按鈕。

●?ReadWidth:18;

●?ReadDepth:1024;

●?OperatingMode:WriteFirst;

●?Enable:AlwaysEnabled。圖7.59端口A的設(shè)計(jì)選項(xiàng)和引腳極性

(9)設(shè)置下列參數(shù)如圖7.60所示,然后單擊Next按鈕。

●?ReadWidth:18;

●?ReadDepth:1024;

●?OperatingMode:WriteFirst;

●?Enable:AlwaysEnabled。圖7.60端口B的設(shè)計(jì)選項(xiàng)和引腳極性

(10)單擊LoadInitFile,在編譯器目錄中選擇PROGRAM.COE文件(見圖7.61)。圖7.61初始化存儲(chǔ)器

(11)單擊Show按鈕,從下拉列表框里選擇memory_initialization_vector,查看將要下載到存儲(chǔ)器的數(shù)據(jù)內(nèi)容,如圖7.62所示。

(12)單擊Next按鈕,然后單擊Finish按鈕。圖7.62BlockRAM初始化數(shù)據(jù)內(nèi)容

3.例化BlockRAMIP核到VHDL設(shè)計(jì)中

將第二步生成的IP核例化到fifo_2048x8.vhd。

(1)在Sources窗口中,雙擊loopback.vhd。

(2)選擇Edit→LanguageTemplates。IP核的例化模板位于窗口的COREGEN部分。

(3)展開COREGEN和VHDLComponentInstantiation,如圖7.63所示,選擇program。圖7.63程序模板

4.完成行為級仿真

檢查testbench文件,理解測試內(nèi)容。

(1)在Sources窗口中,雙擊testbench.v/.vhd。檢查testbench的功能。

(2)在Sources窗口中,選擇program.xco。

(3)在Processes窗口中,展開COREGEN,雙擊ViewVerilog/VHDLFunctionalModel。

使用testbench.vhd文件,運(yùn)行5000ns行為級仿真,查看波形確定IP核是否正確連接。

(4)在Source窗口中,選擇BehavioralSimulation并選中testbench.v/.vhd。

(5)在Processes窗口中,展開XilinxISESimulator,右鍵單擊SimulateBehavioralModel并選擇Properties。

(6)輸入50000ns的仿真時(shí)間。

(7)單擊OK按鈕。

(8)雙擊SimulateBehavioralModel。

(9)檢查仿真波形,驗(yàn)證切換開關(guān)設(shè)置顯示在LEDs上。

5.硬件測試

打開超級終端會(huì)話,生成bitstream下載到Spartan-3E開發(fā)板上測試。

(1)在工程目錄中,雙擊terminal.ht,打開超級會(huì)話。

(2)在Sources窗口中,選中l(wèi)oopback.v/vhd,展開GenerateProgrammingfile,雙擊ConfigureDevice(iMPACT)。

(3)?iMPACT打開時(shí),使用JTAG下載線配置FPGA,確定選擇了以下選項(xiàng)后,單擊Finish按鈕。

●?Boundary-ScanMode

●?Automatciallyconnectcable

(4)在出現(xiàn)iMPACT檢測到兩個(gè)器件提示時(shí),單擊OK按鈕。

(5)指定loopback.bit文件給xc3s500e,跳過PROM。

(6)在iMPACT中右鍵單擊Spartan-3E器件,選擇編程,單擊OK按鈕,將會(huì)在超級終端窗口中看到如圖7.64所示的輸出結(jié)果。圖7.64超級終端窗口輸出7.5.5實(shí)驗(yàn)總結(jié)

在本實(shí)驗(yàn)中,我們使用COREGenerator?生成了IP核,并例化到設(shè)計(jì)中。

7.6實(shí)驗(yàn)六Chipscope調(diào)試實(shí)驗(yàn)

7.6.1實(shí)驗(yàn)介紹

本實(shí)驗(yàn)介紹如何加入ILA/ICON核到設(shè)計(jì),并實(shí)現(xiàn)片上驗(yàn)證功能。

7.6.2實(shí)驗(yàn)?zāi)繕?biāo)

●在ISE中創(chuàng)建Chipscope-Pro源;

●使用Chipscope-Pro創(chuàng)建ILA和ICON核,并將其加入到PicoBlaze設(shè)計(jì)中;

●在ChipscopeAnalyzer中定義觸發(fā)條件;

●下載bitstream,硬件運(yùn)行設(shè)計(jì);

●查看ChipscopeAnalyzer的波形顯示,實(shí)現(xiàn)片上驗(yàn)證。7.6.3實(shí)驗(yàn)過程

本實(shí)驗(yàn)主要包含兩個(gè)部分:更改針對PicoBlaze的程序應(yīng)用;使用Chipscope-Pro實(shí)現(xiàn)片上驗(yàn)證。

7.6.4實(shí)驗(yàn)步驟

1.創(chuàng)建一個(gè)新的Chipscope-Pro源

啟動(dòng)ISE集成環(huán)境,打開工程文件。

(1)選擇“開始→所有程序→XilinxISE9.1i”,打開ISE9.1i集成環(huán)境。

(2)在ISE中,選擇菜單欄中的File→OpenProject,打開已有工程。

VHDLusers:c:\xup\fpgaflow\labs\VHDL\lab6\

chipscope

Verilogusers:c:\xup\fpgaflow\labs\Verilog\lab6\chipscope

(3)選擇chipscope.ise,單擊Open按鈕。

(4)選擇Project→NewSource,打開新建源對話框,單擊ChipscopeDefinitionandConnection,輸入名稱loopback_cs,再單擊Next按鈕,如圖7.65所示。圖7.65新建源對話框

(5)選擇loopback作為源,單擊Next按鈕,然后單擊Finish

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論