ISE應(yīng)用基礎(chǔ)實(shí)驗(yàn)課件_第1頁
ISE應(yīng)用基礎(chǔ)實(shí)驗(yàn)課件_第2頁
ISE應(yīng)用基礎(chǔ)實(shí)驗(yàn)課件_第3頁
ISE應(yīng)用基礎(chǔ)實(shí)驗(yàn)課件_第4頁
ISE應(yīng)用基礎(chǔ)實(shí)驗(yàn)課件_第5頁
已閱讀5頁,還剩106頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

ISE應(yīng)用基礎(chǔ)實(shí)驗(yàn)重點(diǎn)

ISE9.1使用流程實(shí)驗(yàn)ArchitectureWizard與PACE實(shí)驗(yàn)綜合技術(shù)實(shí)驗(yàn)IP核生成工具使用實(shí)驗(yàn)背景了解FPGA的實(shí)驗(yàn)、項(xiàng)目研發(fā)與設(shè)計流程,了解ISE軟件在FPGA項(xiàng)目設(shè)計中的作用、組成部分和基本操作步驟。1ISE9.1使用流程實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康模?)熟悉ISE9.1的開發(fā)環(huán)境,掌握工程的生成方法。(2)熟悉SEED-XDTKXUPV2Pro實(shí)驗(yàn)與仿真設(shè)計的環(huán)境。(3)了解PicoBlaze8bit嵌入式微控制器特點(diǎn)。ISE9.1窗口圖1實(shí)驗(yàn)內(nèi)容(1)創(chuàng)建工程。(2)添加HDL資源文件。(3)配置一個應(yīng)用程序完成設(shè)計。(4)設(shè)計的仿真及實(shí)現(xiàn)。實(shí)驗(yàn)準(zhǔn)備(1)將光盤下03.ExamplesofProgram實(shí)驗(yàn)程序目錄下的01.ISE9.1文件夾復(fù)制到E盤根目錄下。(2)將USB下載電纜與計算機(jī)及XUPV2Pro板的J8連接好。(3)將RS232串口線一端與計算機(jī)連接好,另一端與板卡的J11相連接。(4)啟動計算機(jī)后,將XUPV2Pro板的電源開關(guān)SW11打開到“ON”上。觀察XUPV2Pro板上的+2.5V,+3.3V,+1.5V的電源指示燈是否均亮,若有不亮的,請斷開電源,檢查電源。實(shí)驗(yàn)步驟創(chuàng)建工程1)雙擊桌面XilinxISE9.1的快捷方式,打開ISE工程管理器(ProjectNavigator)。2)打開ProjectNavigator后,選擇“File”→“NewProject”,彈出新建工程對話框,如圖5.2所示。圖23)在工程路徑中單擊“…”按鈕,將工程指定到如下目錄后單擊“確定”按鈕:4)在工程名稱中輸入Flow_lab,單擊“Next”按鈕,彈出器件特性對話框。器件族類型(DeviceFamily)選擇“Virtex2P”,器件型號(Device)選擇“XC2VP30ff896-7”,綜合工具(SynthesisTool)選擇“XST(VHDL/Verilog)”,仿真器(Simulator)選擇“ISESimulator”,如圖5.3所示。圖35)單擊“Next”按鈕,彈出“CreateNewSource”對話框,可以使用這個對話框來創(chuàng)建新的HDL資源文件,或者也可以創(chuàng)建工程后,新建HDL資源文件,如圖5.4所示。圖46)單擊“Next”按鈕,彈出添加存在資源對話框,如圖5.5所示。圖5添加HDL資源文件1)單擊“AddSource”按鈕,指向E:\01.ISE9.1\KCPSM3\VHDL(Verilog)目錄,選擇kcpsm3_int_test和kcpsm3文件,單擊“Open”按鈕,如圖5.6所示。圖62)單擊“Next”按鈕,彈出工程信息后單擊“Finish”按鈕,如圖5.7所示。圖73)單擊“OK”按鈕,資源文件添加完成,如圖5.8所示。圖8注意:在工程中你會看到一個int_test模塊出現(xiàn)紅色問號,這是工程中缺少資源文件的標(biāo)記,在下一步將會解決此問題。圖9配置一個應(yīng)用程序完成設(shè)計1)打開E:\01.ISE9.1\KCPSM3目錄下的Assembler文件夾。注意,KCPSM3.exe匯編編譯系統(tǒng)執(zhí)行文件和ROM_form模板文件與兩個PSM例子文件必須在這個目錄下。緊記匯編編譯器生成的用于程序內(nèi)存的VHDL/Verilog文件會在這個目錄下,如圖5.9所示。圖102)用文件編輯器打開int_test.psm文件,瀏覽一下代碼,此檔就是設(shè)計者編寫和輸入的源文件。3)在開始菜單中的所有程序的附件上單擊“命令提示符”,使用cd命令指向匯編編譯器的目錄下,輸入“kcpsm3int_test.psm”命令,如圖5.10所示。4)執(zhí)行完命令后,會看到在Assembler下生成了一些文件,其中包括VHDL(int_test.vhd)和Verilog(int_test.v)。5)在ISEProjectNavigator,單擊“Project”→“AddCopyofSource”,指向E:\01.ISE9.1\KCPSM3\Assembler目錄下的int_test.vhd或者int_test.v文件,如圖5.11所示。圖11圖12單擊“打開”按鈕,如圖5.12所示。圖13單擊“OK”按鈕后,將int_test.vhd或者int_test.v文件添加到工程里,則解決了出現(xiàn)紅色問號的問題,如圖5.13所示。設(shè)計的仿真1)在ISEProjectNavigator中單擊“Project”→“AddCopyofSource”,指向E:\01.ISE9.1\KCPSM3\vhdl(或者Verilog)目錄,選擇test_bench.vhd(或者testbench.v)文件,單擊“打開”按鈕,如圖5.14所示。圖142)選擇“SimulationOnly”,單擊“OK”按鈕,則將測試范本(Testbench)test_bench.vhd/.v文件添加到工程里,如圖5.15所示。圖153)單擊Sourcese窗口中的“testbench”,則在Processes窗口中顯示“XilinxISESimulator”工具欄,擴(kuò)展開后,右鍵單擊“SimulatorBehavioralModel”,選擇“Properties”,對“SimulationRunTime”輸入10000ns,單擊“OK”按鈕,如圖5.16所示。圖164)雙擊Processes窗口中的“SimulateBehavioralModel”對設(shè)計進(jìn)行仿真,將在右方窗口彈出仿真結(jié)果的波形,如圖5.17所示。圖17設(shè)計的實(shí)現(xiàn)1)在工程的Sources窗口“Sourcesfor”選擇“Synthesis/Implementation”,并單擊工程的頂層文件kcpsm3_int_test.vhd/v,如圖5.18所示。圖182)在工程的資源操作窗(Processes),雙擊“ImplementDesign”,如圖5.19所示。圖193)當(dāng)實(shí)現(xiàn)設(shè)計(ImplementDesign)運(yùn)行的過程中,展開實(shí)現(xiàn)(ImplementDesign)的步驟,會看到實(shí)現(xiàn)過程中,首先是進(jìn)行綜合(Synthesis),然后才依次完成實(shí)現(xiàn)的步驟。當(dāng)完成相關(guān)操作后,在每個操作步驟前會顯示一個小圖標(biāo),表示該步驟的完成情況。對于本設(shè)計,在一些操作步驟前顯示的是嘆號,這些警告是可以忽略的。圖5.19示意如下:對號(√)表示該操作步驟成功完成;嘆號(?。┍硎驹摬僮鞑襟E雖完成但有警告信息;叉號(×)表示該操作步驟因錯誤而未完成。4)當(dāng)完成這些操作步驟后,生成相應(yīng)的操作報告供查看。實(shí)現(xiàn)操作完成后,再看designutilization的DesignSummary窗口,如圖5.20所示。注意:此窗口中的信息包括資源利用率,在調(diào)試的過程中這個很重要。圖20ISE結(jié)構(gòu)向?qū)ВˋrchitectureWizard)功能可快速配置高性能芯片特性,時鐘向?qū)?ClockingWizard)功能則支持對Virtex-IIProTM系列器件進(jìn)行高級內(nèi)部FPGA時鐘配置。PACE(ISE引腳和區(qū)域約束編輯器)通過易于使用的圖形接口提供了高級引腳管理和邏輯區(qū)塊平面規(guī)劃能力,PACE包括了針對并發(fā)開關(guān)輸出(SSO)的關(guān)鍵工程規(guī)則檢查功能,可幫助確定潛在的地反彈問題。2ArchitectureWizard與PACE實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康模?)熟悉并使用ArchitectureWizard。(2)掌握如何例化DCM模塊單元。(3)熟悉并使用PACE。實(shí)驗(yàn)內(nèi)容(1)使用ArchitectureWizard生成DCM模塊單元。(2)將例化DCM模塊單元添加到工程。(3)使用PACE進(jìn)行引腳位置鎖定。實(shí)驗(yàn)準(zhǔn)備(1)將光盤下03.ExamplesofProgram實(shí)驗(yàn)程序目錄下的01.ISE9.1文件夾復(fù)制到E:盤根目錄下。(2)將USB下載電纜與計算機(jī)及XUPV2Pro板的J8連接好。(3)將RS232串口線一端與計算機(jī)連接好,另一端與板卡的J11相連接。(4)啟動計算機(jī)后,將XUPV2Pro板的電源開關(guān)SW11打開到“ON”上。觀察XUPV2Pro板上的+2.5V,+3.3V,+1.5V的電源指示燈是否均亮,若有不亮的,請斷開電源,檢查電源。(5)打開超級終端。實(shí)驗(yàn)步驟(1)使用ArchitectureWizard生成DCM模塊單元1)選擇“Start”→“Programs”→“XilinxISE9.1i”→“ProjectNavigator”,進(jìn)入ISE的ProjectNavigator環(huán)境。2)選擇“File”→“OpenProject”,并指向如下目錄,選擇“arwz_pace.ise”打開工程。Verilog使用者:E:\01.ISE9.1\xupv2pro\labs\verilog\lab2\arwz_paceVHDL使用者:E:\01.ISE9.1\xupv2pro\labs\vhdl\lab2\arwz_pace3)雙擊Processes窗口中的“CreatNewSource”,彈出新資源向?qū)Т翱冢x擇“IP(CoreGen&ArchitectureWizard)”,輸入my_dcm,如圖5.21所示。圖214)單擊“Next”按鈕,彈出SelectIP窗口,展開FPGAFeaturesandDesign和Clocking目錄,選擇“SingleDCMv9.1”,如圖5.22所示。圖225)單擊“Next”按鈕,顯示新建資源信息。單擊“Finish”按鈕,則彈出XilinxClockingWizard–GeneralSetup窗口,選中CLK0,CLKFX和LOCKED,不選中RST,輸入時鐘頻率為100MHz,如圖5.23所示。圖236)單擊“Next”按鈕,彈出XilinxClockingWizard–ClockBuffers窗口,保持默認(rèn)選項(xiàng),如圖5.24所示。圖247)單擊“Next”按鈕,彈出XilinxClockingWizard–ClockingFrequencySynthesizer窗口,輸入50MHz輸出頻率,如圖5.25所示。圖258)單擊“Next”按鈕,顯示新建資源信息。單擊“Finish”按鈕,則在工程的Sources窗口看到my_dcm.xaw作為資源添加到工程中,但沒有作為一個模塊加入頂層設(shè)計文件中,則需要下一步的例化過程,如圖5.26所示。圖26(2)DCM組件的例化1)選中my_dcm.xaw文件,則在工程的Processes窗口雙擊“ViewHDLSource”,在HDL編輯器中可以看到由ArchitectureWizard生成的DCM的VHDL源代碼。此代碼中包含了一個IBUFG、一個DCM和兩個BUFG例化的組件。輸入時鐘CLKIN_IN驅(qū)動IBUFG,輸出的時鐘與DCM相接,CLKFX_BUF和CLK0_BUF輸出時鐘驅(qū)動BUFG組件,所有的DCM屬性使用VHDLgeneric語句傳遞。

2)在工程的Sources窗口,雙擊“uart_clock.vhd”在HDL編輯器中打開源代碼。3)在工程的Sources窗口,選擇my_dcm.xaw,在Processes窗口雙擊“ViewHDLInstantiationTemplate”在HDL編輯器中打開例化組件的模板。在HDL例化范本my_dcm.vhi中,復(fù)制組件聲明(從COMPONENTmy_dcm到ENDCOMPONENT)并粘貼到uart_clock.vhd代碼中的“--InsertDCMcomponentdeclarationhere”注釋的下方。4)在uart_clock.vhd代碼中的“--InsertDCMcomponentinstantiationhere”注釋下方,添加下列對端口的名稱映像代碼,完成對組件的例化。Inst_my_dcm:my_dcmPORTMAP(CLKIN_IN=>clk,CLKFX_OUT=>clk50MHz,CLKIN_IBUFG_OUT=>open,CLK0_OUT=>open,LOCKED_OUT=>lock);5)在“--SignalsforDCM,asfollows:”注釋的下方添加DCM的50MHz的信號聲明:signalclk50MHz:std_logic;6)在實(shí)體說明里添加lock輸出管腳如下:entityuart_clockisPort(tx:outstd_logic;rx:instd_logic;alarm:outstd_logic;clk:instd_logic;lock:outstd_logic);enduart_clock;7)保存后,my_dcm.xaw作為一個模塊加入頂層設(shè)計文件中,如圖5.27所示。圖27(3)使用PACE進(jìn)行管腳分配1)在工程的Sources窗口,選擇頂層設(shè)計文件uart_clock.vhd/.v,則在Processes窗口,擴(kuò)展UserConstraints并雙擊“AssignPackagePins”打開PACE,在此過程中彈出詢問是否添加UCF文件到工程中對話框,單擊“yes”按鈕。用VHDL做實(shí)驗(yàn)時,如果PACE沒有自動跳出,可把lab2復(fù)制到根目錄下再打開工程。注意:在PACE能啟動之前必須先進(jìn)行綜合。2)在PACE中瀏覽DesignObjectList-I/OPins窗口,如圖5.28所示,可看到所列的信號名稱和信號方向是Output還是Input。在Loc欄里每個信號對應(yīng)于FPGA的管腳,F(xiàn)PGA的管腳分配需查看光盤數(shù)據(jù)../02.Schmatic目錄下的原理圖。圖283)保存后出現(xiàn)“BusDelimiter”對話框,如圖5.29所示。選擇“XSTDefault”,單擊“OK”按鈕。將DeviceArchitecture窗口放大直到可以看清每個管腳。圖294)保存后出現(xiàn)“BusDelimiter”對話框,選擇“XSTDefault”,單擊“OK”按鈕。單擊菜單欄中的“File”→“Exit”,退出PACE;5)單擊工程中Sources窗口中的uart_clock.ucf文件,然后雙擊Prosesses窗口中UserConstraints目錄下的“EditConstraints(Text)”,就可以看到由PACE生成的uart_clock.ucf管腳約束文件,如圖5.30所示。圖301)單擊工程中的Sources窗口的uart_clock.vhd/v文件,然后打開Processes窗口中的ImplementDesign目錄下的Place&Route目錄,雙擊“PadReport”。當(dāng)Place&Route完成后,“PadReport”在HDL編輯器中打開,可以看“PadReport”來確定I/O信號管腳約束是否與分配的管腳相匹配,如圖5.31所示。(4)檢查Pad報告并打開超級終端2)從開始菜單的“File”→所有程序→附件→通訊中單擊超級終端,輸入名字并單擊“OK”按鈕,選擇COM1作為端口連接,單擊“確定”按鈕后按照圖5.31進(jìn)行設(shè)定,最后單擊“確定”完成設(shè)定。圖313)單擊超級終端菜單中屬性中的設(shè)置,單擊“ASCII碼設(shè)置”,選中“將換行符附加到傳入行末尾”并單擊“確定”按鈕。再次單擊“確定”按鈕退出屬性對話框,如圖5.32所示。圖321)給板卡上電,打開SW11開關(guān)。2)單擊工程的頂層文件uart_clock.vhd/v文件,然后雙擊Processes窗口中“GenerateProgrammingFile”來生成此工程的Bitstream文件并下載到芯片中去。3)當(dāng)這個過程完成后,打開GenerateProgrammingFile目錄,雙擊“ConfigureDevice(iMPACT)”,彈出“iMPACT”對話框后選擇“ConfigureDevicesusingBoundary-Scan(JTAG)”,然后單擊“Finish”按鈕,如圖5.33所示。(5)程序的下載并操作UART實(shí)時時鐘圖334)等到彈出“AssignNewConfigurationFile”對話框后,前兩個器件都選擇“bypass”按鈕,對于最后一個器件單擊uart_clock.bit文件選擇“Open”按鈕,然后再單擊“OK”按鈕后彈出一個警告信息,單擊“OK”按鈕,如圖5.34所示。圖345)在iMPACT窗口右鍵單擊“xc2vp30”,選擇“Program”后彈出ProgrammingProperties窗口,單擊“OK”按鈕,如果下載成功則出現(xiàn)“ProgramSucceeded”,如圖5.35所示。圖356)在超級終端窗口則會看到KCPSM3>提示符,如圖5.36所示。注意:這里超級終端是否顯示成功不僅與下載是否成功有關(guān),而且還與電腦的連接有關(guān)。如果COM1不行的話,可以試一下COM2。圖367)在KCPSM3>提示符后輸入“time”命令,則會以hh:mm:ss格式顯示當(dāng)前時鐘,如圖5.37所示。圖378)在命令提示符后輸入“alarm”命令,則以hh:mm:ss形式顯示當(dāng)前警告時間,此時alarm是關(guān)閉的,如圖5.38所示。圖389)輸入“alarmon”命令,則警告變成有效,然后輸入“alarm00:00:30”設(shè)定警告時間為30s,輸入“time00:00:00”設(shè)定時間后,會看到板卡上的LED1燈會在30s警告后熄滅。當(dāng)你輸入“alarmoff”命令后則關(guān)閉警告,LED1燈則再次亮起。FPGA設(shè)計一般使用同步時序電路。同步時序電路基于時鐘觸發(fā)沿設(shè)計,對時鐘的周期、占空比、延時和抖動提出了很高的要求。為了滿足同步時序設(shè)計的要求,一般在FPGA設(shè)計中采用全局時鐘資源驅(qū)動設(shè)計的主時鐘,以達(dá)到最低的時鐘抖動和延遲。FPGA全局時鐘資源一般使用全銅層工藝實(shí)現(xiàn),并設(shè)計了專用時鐘緩沖與驅(qū)動結(jié)構(gòu),從而使全局時鐘到達(dá)芯片內(nèi)部的所有可配置單元(CLB)、I/O單元(IOB)和選擇性塊RAM(BlockSelectRAM)的時延和抖動都為最小。為了適應(yīng)復(fù)雜設(shè)計的需要,Xilinx的FPGA中集成的專用時鐘資源與數(shù)字延遲鎖相環(huán)(DLL)的數(shù)目有所增加。3全局時序約束實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康?)學(xué)習(xí)使用約束編輯器(ConstraintsEditor)設(shè)置全局時序約束。2)通過分析映像后的靜態(tài)時序報告來檢驗(yàn)時序約束的實(shí)現(xiàn)。3)通過分析布局布線后靜態(tài)時序報告來確認(rèn)實(shí)際的設(shè)計效果。實(shí)驗(yàn)內(nèi)容通過設(shè)置全局時序約束來提高系統(tǒng)時鐘頻率,用映像后的靜態(tài)時序報告和布線布局后的靜態(tài)時序報告來分析設(shè)計的性能。實(shí)驗(yàn)準(zhǔn)備(1)將光盤下03.ExamplesofProgram實(shí)驗(yàn)程序目錄下的01.ISE9.1文件夾復(fù)制到E:盤根目錄下。(2)將USB下載電纜與計算機(jī)及XUPV2Pro板的J8連接好。(3)將RS232串口線一端與計算機(jī)連接好,另一端與板卡的J11相連接。(4)啟動計算機(jī)后,將XUPV2Pro板的電源開關(guān)SW11打開到“ON”上。觀察XUPV2Pro板上的+2.5V,+3.3V,+1.5V的電源指示燈是否均亮,若有不亮的,請斷開電源,檢查電源。實(shí)驗(yàn)步驟(1)編譯范本中的匯編1)選擇“Start”→“Programs”→“XilinxISE9.1i”→“ProjectNavigator”,進(jìn)入ISE的ProjectNavigator環(huán)境。2)選擇“File”→“OpenProject”,并指向如下目錄,選擇time_const.ise打開工程。Verilog使用者:E:\01.ISE9.1\xupv2pro\labs\verilog\lab3\time_constVHDL使用者:E:\01.ISE9.1\xupv2pro\labs\vhdl\lab3\time_const3)選擇“Start”→“Programs”→“Accessories”→“CommandPrompt”,打開命令提示符,并使cd命令指向如下的匯編編譯器的目錄下,如圖5.40所示。圖40在提示符后輸入kcpsm3program.psm命令,執(zhí)行結(jié)束后的結(jié)果如圖5.41所示。圖414)執(zhí)行完命令后,會看到在Assemble下生成了一些文件,其中包括VHDL(program.vhd)和Verilog(program.v),這就是匯編編譯系統(tǒng)將編寫的匯編源文件program.psm自動生成了用于程序內(nèi)存的VHDL/Verilog格式文件,用于綜合和仿真。將生成的program.vhd/v文件添加到工程中。

5)單擊工程Sources窗口中的頂層文件loopback.vhd,然后雙擊Processes窗口中Synthesis-XST目錄下的“CheckSyntax”,檢驗(yàn)添加的文件是否有語法錯誤。(2)輸入全局時鐘約束1)單擊工程Sources窗口中的頂層文件loopback.vhd,然后雙擊Processes窗口中的UserConstraints目錄下的“CreateTimingConstraints”,如圖5.42所示。圖422)本工程若沒有UCF文件,則彈出提示對話框,單擊“Yes”按鈕,將自動生成UCF文件為loopback.ucf,并添加到工程中,如圖5.43所示。圖433)當(dāng)打開約束編輯器時,選中“Globle”全局約束窗口,如圖5.44所示。圖444)雙擊Period列下的單元格,彈出“ClockPeriod”對話框,可以設(shè)置Period約束。例如輸入10ns,單擊“OK”按鈕,如圖5.45所示。圖455)雙擊PadtoSetup列下的單元格,彈出對話框并輸入6ns,單擊“OK”按鈕,完成輸入延遲約束設(shè)置,如圖5.46所示。圖466)單擊ClocktoPad列下的單元格,彈出對話框并輸入7.5ns,單擊“OK”按鈕,完成輸出延遲約束設(shè)置,如圖5.47所示。圖477)選擇“File”→“Save”保存,然后選擇“Exit”退出約束編輯器,如圖5.48所示。圖48(3)輸入引腳位置約束大部分的FPGA在設(shè)計完成前就進(jìn)行了引腳分配。在這個實(shí)驗(yàn)中,通過UCF文件手動輸入來分配輸入/輸出引腳的位置,也可以使用PACE進(jìn)行引腳位置分配。區(qū)域約束的主要目的是關(guān)聯(lián)耦合邏輯,減少后續(xù)布線壓力;其次是加大資源利用率,距離近的信號延遲不一定就小,信號線上延遲主要是來自線與線之間的轉(zhuǎn)接(如LUT,switch-box)。由于FPGA內(nèi)部連接的結(jié)構(gòu)是橫縱兩向的,斜向的連接延遲會大于橫、縱方向上的最大跨度連接延遲。所以,在進(jìn)行位置約束時應(yīng)盡量避免斜向;而區(qū)域約束要寬松,如果沒有資源上的顧慮,約束面積建議為所需的3倍以上。需要注意的是,區(qū)域約束對時序的改善貢獻(xiàn)很小,緊的約束甚至有惡化時序的可能。1)單擊工程Sources窗口中的頂層文件loopback.vhd,然后雙擊Processes窗口中的UserConstraints目錄下的“EditTimingConstraints(Text)”,打開loopback.ucf文件。2)從XUPVirtex-IIPro使用手冊可知,關(guān)于IO引腳位置的設(shè)置如表5.1所示。表1PinNameDirectionWidthXUPBoardcinnectionclkInput1bit100MHzclockoscillatorrstInput1bitUsecenterpushbuttonswitchesInput4bit8Slideswitches(usefirstfour)rs232_rxInput1bitRS-232serialreceiveLEDsOutput4bit4LEDsrs232_tsOutput1bitRS-232serialtransmit(4)實(shí)現(xiàn)設(shè)計并進(jìn)行時序分析執(zhí)行此步驟是通過映像實(shí)現(xiàn)設(shè)計,并生成映像后時序報告。在時序分析器(TimingAnalyzer)中打開此報告,通過此報告可以驗(yàn)證時序約束是否實(shí)現(xiàn),以此避免浪費(fèi)布局布線的時間。

1)單擊工程的Sources窗口中的頂層文件loopback.vhd文件,展開Processes窗口中的“ImplementDesign”,然后再展開Map目錄下的“GeneratePost-MapStaticTiming”,右鍵單擊“AnalyzePost-MapStaticTiming(TimingAnalyzer)”并選擇“RerunAll”。2)單擊“AnalyzeAgainstTimingConstraints”按鈕,映像如表5.2所示。表2Chart1PERIODconstraint(DCMclock)OFFSETINconstraintOFFSETOUTconstaintConstraint20ns6ns7.5nsPost-Map~5.3ns~2.7ns~2.19ns3)在時序報告窗口中可以看到時序約束報告,分析每個時序路徑約束,注意線網(wǎng)延遲。4)“e”代表評估。實(shí)際的線網(wǎng)延遲是在布局布線后計算出來的。5)退出時序分析器后,在Processes窗口,展開Place&Route目錄下的“GeneratePost-Place&RouteStaticTiming”,雙擊“AnalyzePost-Place&RouteStaticTiming(TimingAnalyzer)”,完成表5.3,并與表5.2進(jìn)行對照比較。Chart2PERIODconstraint(DCMclock)OFFSETINconstraintOFFSETOUTconstaintConstraint20ns6ns7.5nsPost-P&R~7.6ns~4.9ns~2.15ns表3(5)生成軟件并進(jìn)行HDL仿真1)打開本實(shí)驗(yàn)的Assembler文件包內(nèi)的program.psm文件,此匯編范本的匯編代碼含有三部分。2)在匯編范本Task#1部分中,添加如下匯編語句,編寫完成后,要重新用匯編編譯系統(tǒng)把編寫的匯編源文件program.psm自動生成用于程序內(nèi)存的VHDL/Verilog格式文件。在匯編范本涉及到的端口值的常量,參考PicoBlaze的指南,而代碼的編寫參考KCPSM3的使用手冊。3)在工程中選擇Project下拉菜單中的“AddSource”,選擇lab3目錄下的testbench.vhd文件(testbench主要是為了對電路進(jìn)行仿真驗(yàn)證,測試設(shè)計電路的功能,部分性能是否與其的目標(biāo)相符),此文件為測試激勵文件,仿真結(jié)果波形如圖5.49所示。圖49綜合是FPGA/CPLD設(shè)計流程中的重要環(huán)節(jié),綜合的結(jié)果優(yōu)劣直接影響布局布線結(jié)果的最終效能。好的綜合器能使設(shè)計占用芯片的物理面積最小,工作頻率最快,這也是評定綜合器優(yōu)劣的兩個重要指標(biāo)。4綜合技術(shù)實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康模?)學(xué)習(xí)使用保留層次和扇出綜合這些選擇來提高調(diào)試和綜合結(jié)果。(2)通過讀取XST軟件的綜合報告來確認(rèn)綜合結(jié)果質(zhì)量。實(shí)驗(yàn)內(nèi)容(1)修改XST綜合選項(xiàng)。(2)分析綜合報告。實(shí)驗(yàn)準(zhǔn)備(1)將光盤下03.ExamplesofProgram實(shí)驗(yàn)程序目錄下的01.ISE9.1文件夾復(fù)制到E:盤根目錄下。(2)將USB下載電纜與計算機(jī)及XUPV2Pro板的J8連接好。(3)將RS232串口線一端與計算機(jī)連接好,另一端與板卡的J11相連接。(4)啟動計算機(jī)后,將XUPV2Pro板的電源開關(guān)SW11打開到“ON”上。觀察XUPV2Pro板上的+2.5V,+3.3V,+1.5V的電源指示燈是否均亮,若有不亮的,請斷開電源,檢查電源。(5)打開超級終端。實(shí)驗(yàn)步驟(1)瀏覽設(shè)計并生成軟件1)選擇“Start”→“Programs”→“XilinxISE9.1i”→“ProjectNavigator”,進(jìn)入ISE的ProjectNavigator環(huán)境。2)選擇“File”→“OpenProject”,并指向如下目錄,選擇synth_lab.ise打開工程。Verilog使用者:E:\01.ISE9.1\xupv2pro\labs\verilog\lab4\synth_labVHDL使用者:E:\01.ISE9.1\xupv2pro\labs\vhdl\lab4\synth_lab3)用文件編輯器打開在lab4目錄下的Assembler文件包中的program.psm,在此匯編范本的task#2部分添加代碼。

4)在開始菜單中的所有程序的附件上單擊命令提示符,使用cd命令指向匯編編譯器的目錄下,在提示符后輸入kcpsm3program.psm,命令如圖5.50所示。圖505)匯編編譯系統(tǒng)把編寫的匯編源文件program.psm自動生成的用于程序內(nèi)存的VHDL/Verilog格式文件program.vhd/v添加到工程中。(2)默認(rèn)選項(xiàng)進(jìn)行綜合和實(shí)現(xiàn)1)在工程的Sources窗口單擊頂層文件loopback.vhd/v文件,雙擊Processes窗口中的“Synthesize–XST”進(jìn)行綜合。2)綜合完成后,雙擊“ViewSynthesisReport”,在此報告中會看到“TimingSummary”,時鐘頻率評估值為395.749MHz(注意這些結(jié)果會因?yàn)槊總€PC系統(tǒng)的不同而不一樣),如圖5.51所示。圖513)在此報告中找到“Deviceutilizationsummary”,信息如下:(3)改變選項(xiàng)進(jìn)行綜合和實(shí)現(xiàn)1)右鍵單擊“Synthesize”并選擇“Properties”,彈出“ProcessProperties”對話框,將“KeepHierarchy”值選為“Yes”,然后單擊“OK”按鈕,重新雙擊Processes窗口中的“Synthesize-XST”進(jìn)行綜合,如圖5.52所示。圖522)綜合完成后,雙擊“ViewSynthesisReport”,在此報告中會看到“TimingSummary”,時鐘頻率評估值為375.023MHz,可以比較默認(rèn)選項(xiàng)時候的結(jié)果,如圖5.53所示。圖533)在此報告中找到“Deviceutilizationsummary”,信息如下,可以比較默認(rèn)選項(xiàng)時候的結(jié)果。4)在此報告中也可看到線網(wǎng)最多的扇出(Fanout:一邏輯門的輸出需要驅(qū)動多個等效門的輸入,稱輸出端接的需要驅(qū)動的等效門數(shù)為扇出“Fanout”)為71,如圖5.53所示。扇出會引起布線問題,因此綜合會通過復(fù)用門或者嵌入緩存來限制扇出數(shù)。這個限制不是技術(shù)上的限制,而是作為XST的指導(dǎo),當(dāng)這個限制很?。ㄐ∮?0)時可以忽略,如圖5.54所示。圖545)右鍵單擊“Synthesize”并選擇“Properties”,彈出“ProcessProperties”對話框,單擊Category窗口的“XilinxSpecificOptions”,將“MaxFanout”值改為50,單擊“OK”按鈕。重新雙擊Processes窗口中的“Synthesize-XST”進(jìn)行綜合,如圖5.55所示。圖556)綜合完成后,雙擊“ViewSynthesisReport”,則在此報告中也可看到線網(wǎng)最多的扇出為40,如圖5.56所示。圖567)在此報告中找到“TimingSummary”,時鐘頻率評估值為378.146MHz,如圖5.57所示。圖57(4)下載并測試系統(tǒng)1)在工程的Sources窗口單擊頂層文件loopback.vhd/v文件,展開Processes窗口中的“GenerateProgrammingFile”,雙擊“ConfigureDevice(iMPACT)”。2)彈出“WelcomeiMPACT”對話框后,選擇“ConfiguredevicesusingBoundary-Scan(JTAG)”,單擊“Finish”按鈕,按照ISE9.1程序下載過程,將loopback.bit文件下載到FPGA中后,超級終端顯示如圖5.58所示。圖58

IP核生成器(COREGenerator)是XilinxFPGA設(shè)計中的一個重要設(shè)計輸入工具,它將原有驗(yàn)證過的設(shè)計模塊重新利用,也就是一般的IP復(fù)用工具。它提供了大量成熟、高效的IP核為用戶使用,這些IP核直接用XilinxFPGA底層硬件語言描述。該工具可以生成用戶所需的IP核,在實(shí)際工程中例化。CoreGenerator可生成的IP核大致分為:基本模塊、通信與網(wǎng)絡(luò)模塊、數(shù)字信號處理模塊、數(shù)學(xué)功能模塊、內(nèi)存模塊、微處理器、控制器與外設(shè)模塊、標(biāo)準(zhǔn)與協(xié)議數(shù)據(jù)單元到復(fù)雜功能樣機(jī)的眾多設(shè)計,這些IP核是根據(jù)Xilinx的FPGA器件特點(diǎn)和結(jié)構(gòu)而設(shè)計的,直接用XilinxFPGA底層硬件語言描述,充分發(fā)揮了FPGA的功能(本實(shí)驗(yàn)是在VHDL環(huán)境下實(shí)現(xiàn)的)。5IP核生成工具使用實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康模?)學(xué)會使用IP核生成工具(COREGenerator)。(2)例化組件到工程中。實(shí)驗(yàn)內(nèi)容(1)IP核生成工具(COREGenerator)生成雙口BlockRAM。(2)將生成的內(nèi)存例化到工程中。(3)進(jìn)行行為仿真并在板卡上驗(yàn)證設(shè)計。實(shí)驗(yàn)準(zhǔn)備(1)將光盤下03.ExamplesofProgram實(shí)驗(yàn)程序目錄下的01.ISE9.1文件夾復(fù)制到E:盤根目錄下。(2)將USB下載電纜與計算機(jī)及XUPV2Pro板的J8連接好。(3)將RS232串口線一端與計算機(jī)連接好,另一端與板卡的J11相連接。(4)啟動計算機(jī)后,將XUPV2Pro板的電源開關(guān)SW11打開到“ON”上。觀察XUPV2Pro板上的+2.5V,+3.3V,+1.5V的電源指示燈是否均亮,若有不亮的,請斷開電源,檢查電源。(5)打開超級終端。實(shí)驗(yàn)步驟(1)生成ROM初始化文件1)選擇“Start”→“Programs”→“XilinxISE9.1i”→“ProjectNavigator”,進(jìn)入ISE的ProjectNavigator環(huán)境。2)選擇“File”→“OpenProject”,并指向如下目錄,選擇“coregen_lab.ise”打開工程。Verilog使用者:E:\labs\verilog\lab5\coregen_labVHDL使用者:E:\labs\vhdl\lab5\coregen_lab3)用文件編輯器打開lab5目錄下的Assembler文件包中的program.psm匯編范本文件。(2)生成BLOCKRAMIP核1)單擊工程Sources窗口中的頂層文件loopback.vhd,然后雙擊Processes窗口中的“CreateNewSource”,彈出新資源對話框,選擇“IP(CoreGen&ArchitectureWizard)”,在欄輸入文件名稱program,如圖5.60所示。圖602)單擊“Next”按鈕后,在選擇“CoreType”對話框中,展開“Memories&StorageElements”,展開“RAMs&ROMs”,選擇“BlockMemoryGeneratorv2.1”,單擊“Next”按鈕,如圖5.61所示。圖613)彈出核信息窗口,單擊“Finish”按鈕后,彈出“COREGenerator?systemGUI”對話框,并按照以下要求配置雙口存儲塊核,單擊“Next”按鈕,如圖5.62所示。圖624)選擇以下參數(shù):ReadWidth:18,ReadDepth:1024,Enable:AlwaysEnabled,然后單擊“Next”按鈕,如圖5.63所示。圖635)選擇以下參數(shù),然后單擊“Next”按鈕,如圖5.64所示。ReadWidth:18ReadDepth:1024Enable:AlwaysEnabled圖64選擇“LoadInitFile”,單擊“Browse”按鈕打開lab5目錄下的Assembler文件包中program.coe文件,單擊“Next”按鈕,然后單擊“Finish”按鈕,如圖5.65所示。圖657)在ISE工程窗口生成以下信息,如圖5.66所示。圖66(3)BlockRAMIP核的例化1)雙擊工程Sources窗口的loopback.vhd文件,并選擇Edit下拉菜單中的“LanguageTemplates”,如圖5.67所示。圖672)在彈出的LanguageTemplates窗口展開“COREGEN”,然后展開“VHDLComponentInstantiation”并選擇“program”,右端則出現(xiàn)相應(yīng)的模板,如圖5.68所示。圖683)在此模板上復(fù)制組件聲明(從componentprogram到endcomponent;)并粘貼到loopbac

溫馨提示

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

評論

0/150

提交評論