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

下載本文檔

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

文檔簡介

第4章XilinxIP核4.1Xilinx的IP介紹

4.2XilinxIP配置工具及使用方法

4.3時(shí)鐘管理IP

4.1Xilinx的IP介紹

XilinxFPGA設(shè)計(jì)中可用的IP核有兩種,一種由Xilinx原廠設(shè)計(jì),稱為LogiCore;另一種由Xilinx的第三方合作伙伴設(shè)計(jì),稱為AllianceCore。在ISE的IP核生成工具中可以看到這些核。

原廠設(shè)計(jì)的LogiCore有很多種,如用于數(shù)字信號處理的FIR濾波器、相關(guān)器,用于數(shù)學(xué)運(yùn)算的累加器、全加器、乘法器、積分器和開方模塊,用于存儲(chǔ)數(shù)據(jù)的RAM、FIFO,還有PCI控制器等。大部分的LogiCore都是參數(shù)可配置的,這些核都經(jīng)過了完整的測試,Xilinx公司提供了產(chǎn)品詳細(xì)的使用說明和技術(shù)支持。多數(shù)LogiCore都是免費(fèi)的,設(shè)計(jì)者可以在Xilinx的軟件中直接獲取,但一些復(fù)雜的LogiCore在使用時(shí)需要經(jīng)過授權(quán)。核在使用時(shí)與設(shè)計(jì)流程無關(guān),既可以用于VHDL/Verilog語言的設(shè)計(jì)流程也可以用于原理圖的設(shè)計(jì),多數(shù)的EDA工具都支持LogiCore。

第三方合作伙伴也有多種AllianceCore可供使用,如用于外設(shè)控制的DMA控制器、可編程中斷控制器、通用串口控制器,用于通信和網(wǎng)絡(luò)領(lǐng)域的ATM、RS編解碼器,標(biāo)準(zhǔn)的接口控制器(PCMCIA控制器、USB控制器)等。多數(shù)的AllianceCore只能按照標(biāo)準(zhǔn)的輸入/輸出使用,不能進(jìn)行參數(shù)配置,但這些固化的核都是針對于Xilinx的器件做過深度優(yōu)化的,因此使用中不用擔(dān)心其功能實(shí)現(xiàn)問題。通常AllianceCore都以EDIF(ElectronicDesignInterchangeFormat)網(wǎng)表的方式提供,網(wǎng)表文件可以直接在工程中調(diào)用例化。但這些網(wǎng)表基本上都是要付費(fèi)的,即使有一些AllianceCore在Xilinx的軟件中直接看到,但在使用時(shí)也需要有授權(quán)文件的支持。多數(shù)AllianceCore都可以在VHDL/Verilog的設(shè)計(jì)流程中使用,部分AllianceCore還可以在原理圖設(shè)計(jì)流程中使用。 4.2XilinxIP配置工具及使用方法

Xilinx的ISE集成環(huán)境中提供了一個(gè)可視化的用戶界面軟件CoreGenerator,幫助用戶形象直觀地配置所需的IP核,這個(gè)工具軟件可以獨(dú)立運(yùn)行也可以在ISE中作為一個(gè)功能組件調(diào)用。

這里以一個(gè)雙端口RAM核的配置為例,介紹CoreGenerator的配置方法,配置的步驟如下:

(1)打開XilinxISE軟件,在新建一個(gè)工程后,選擇Project→NewSource。

(2)在源文件類型選擇窗口中,選擇IP(CoreGen&ArchitectureWizard),并在Filename欄填入源文件名,例如MY_RAM,如圖4.1所示,然后單擊Next按鈕。圖4.1選擇源文件類型

(3)在彈出的IP核選擇窗口中依次選擇Memories&StorageElements→RAMs&ROMs→DualPortBlockMemoryv6.3,如圖4.2所示,然后單擊Next按鈕。圖4.2IP核選擇窗口

(4)驗(yàn)證IP選擇信息后,單擊Finish按鈕進(jìn)入雙端口RAM核配置窗口,如圖4.3所示。圖4.3雙端口RAM核配置窗口

(5)如果設(shè)計(jì)者對IP核所完成的功能及實(shí)現(xiàn)參數(shù)不了解,可以單擊核配置窗口下的DateSheet…按鈕查看IP核的數(shù)據(jù)手冊,數(shù)據(jù)手冊是PDF格式的文檔,包括核的特性、功能描述、輸入/輸出端口、配置參數(shù)、工作模式、資源占用率等詳細(xì)信息,如圖4.4所示。XilinxFPGA的雙端口RAM有兩套獨(dú)立的輸入/輸出端口,對同一個(gè)存儲(chǔ)實(shí)體做操作,在讀/寫時(shí)要注意,不要使兩個(gè)端口有讀/寫沖突。圖4.4數(shù)據(jù)手冊

(6)配置好雙端口RAM核的參數(shù)后,單擊窗口左下角的Generate按鈕,就生成了一個(gè)滿足用戶要求的IP核。如果在創(chuàng)建源文件時(shí)默認(rèn)地選擇了將源文件添加到工程中,則這個(gè)核會(huì)在工程源文件區(qū)出現(xiàn),如圖4.5所示。對生成的IP核,可以執(zhí)行ManageCores重新配置核,執(zhí)行RegenerateCore按照原先的參數(shù)重新生成一次核,也可以查看核的VHDL功能模型,如圖4.5右側(cè)所示。

在HDL的設(shè)計(jì)流程中使用這個(gè)IP核,只需要將其作為一個(gè)元件,在文件中聲明并例化即可,如圖4.6所示。IP核在生成時(shí),同時(shí)已經(jīng)生成核對應(yīng)的元件符號,在原理圖的設(shè)計(jì)流程中,只需要直接使用原件符號即可。圖4.5在工程中查看IP核圖4.6IP核的例化帶IP核的原理圖設(shè)計(jì)流程和HDL設(shè)計(jì)流程相似,分別見圖4.7和圖4.8。圖4.7帶IP核的原理圖設(shè)計(jì)流程圖4.8帶IP核的HDL設(shè)計(jì)流程用CoreGenerator生成IP核之后,軟件會(huì)自動(dòng)生成核的例化模板文件(?.VHO,.VEO)、網(wǎng)表文件(?.EDN)、核封裝文件(?.VHD)和符號文件(?.SYM),使用IP核時(shí)可以將IP核看做普通的元件或元件符號。設(shè)計(jì)者可以直接將例化模板文件拷貝到設(shè)計(jì)文件中,修改元件名和對應(yīng)的參數(shù)即可。符號文件用于原理圖的設(shè)計(jì),核封裝文件用于仿真時(shí)使用,而網(wǎng)表文件用于最終的布局布線。

包含有IP核的設(shè)計(jì)文件在仿真時(shí)要注意,仿真之前要先使用compxlib.exe命令編譯Xilinx核的仿真庫XilinxCore.Lib,否則在仿真時(shí)會(huì)報(bào)錯(cuò)。仿真庫的編譯方法可以參照2.1.2節(jié)中的步驟。compxlib.exe命令在ISE安裝目錄下的\bin\文件夾內(nèi)。

學(xué)習(xí)完本節(jié)內(nèi)容后,讀者可以嘗試完成第6章的實(shí)驗(yàn)九。

4.3時(shí)鐘管理IP

4.3.1DCM模塊

DCM按功能劃分可以分為三部分,數(shù)字鎖相環(huán)DLL(Delay-LockedLoop)、數(shù)字頻率綜合器DFS(DigitalFrequencySynthesizer)和數(shù)字相移器DPS(DigitalPhaseShifter),如圖4.9所示。注意:DCM對時(shí)鐘所做的所有處理都是由時(shí)鐘上升沿觸發(fā)的,如果沒有時(shí)鐘上升沿,則所有的DCM輸出都不起作用。圖4.9數(shù)字時(shí)鐘管理器

DLL可以去除輸入時(shí)鐘信號的偏移(Skew),修正時(shí)鐘的占空比,完成相移、倍頻和分頻等功能,這個(gè)部分的輸出信號及含義如下:

●CLK0:去除偏移后的時(shí)鐘信號;

●CLK90:CLK0相移90°的時(shí)鐘信號;

●CLK180:CLK0相移180°的時(shí)鐘信號;

●CLK270:CLK0相移270°的時(shí)鐘信號;

●CLK2X:CLK0的2倍頻時(shí)鐘信號;

●CLK2X180:CLK0的2倍頻并相移180°的時(shí)鐘信號;

●CLKDV:CLK0分頻后的時(shí)鐘信號。

DFS可以按照用戶的配置產(chǎn)生任意M/D倍頻和分頻的時(shí)鐘信號,其中M的范圍為2~32,D的范圍為1~32。輸出的時(shí)鐘信號為CLKFX,CLKFX180是CLKFX經(jīng)過180°相移的時(shí)鐘,輸出的時(shí)鐘都經(jīng)過了占空比修正,占空比為50%。

DPS可以對所有的輸出時(shí)鐘信號做相移,相移的間隔為輸入時(shí)鐘周期的分?jǐn)?shù)值,精度由PHASE_SHIFT控制,為“輸入時(shí)鐘周期/PHASE_SHIFT”,PHASE_SHIFT的最大范圍為(-255,255),具體的與輸入時(shí)鐘頻率的高低有關(guān)系。相移可以工作于固定模式下,也可以在變量模式下。在變量模式下會(huì)增加4個(gè)端口,分別為PSINCDEC、PSEN、PSCLK和PSDONE,這四個(gè)信號的含義我們在后續(xù)內(nèi)容中給出。4.3.2DCM的使用方法

在工程中使用DCM的方法與一般的IP核的方法相同,在IP核選擇窗口中顯示的可用DCM與工程選用的FPGA器件有關(guān)。假設(shè)我們選用的器件仍為Spartan3系列的xc3s200,IP核選擇窗口如圖4.10所示,所選擇的IP核為FPGAFeaturesandDesign→Clocking→Virtex-IIPro,Virtex-II,Spartan-3→SingleDCMv9.1i。單擊Next按鈕,彈出DCM配置窗口,如圖4.11所示。圖4.10DCM的IP選擇窗口圖4.11DCM配置窗口在圖4.11中,用戶可以選擇所需的DCM端口,及相關(guān)的的屬性配置。

InputClockFrequency表示輸入信號的頻率,用戶在這個(gè)框中填入外部輸入時(shí)鐘的頻率,DCM將自動(dòng)判斷當(dāng)前的工作模式為高頻模式還是低頻模式。如果輸入時(shí)鐘信號的頻率比較高,有一些輸出端口,如CLK90、CLK270、CLK2X和CLK2X180是不能使用的。為了去除時(shí)鐘的偏移,DCM一般都需要時(shí)鐘反饋信號(只使用CLKFX和CLKFX180輸出的情況除外),用于補(bǔ)償內(nèi)部時(shí)鐘布線帶來的時(shí)延。時(shí)鐘反饋輸入信號的名稱為CLKFB,CLKFB可以由芯片內(nèi)部時(shí)鐘連線提供,也可以通過芯片外部的信號接入,但是CLKFB的時(shí)鐘源必須為CLK0或CLK2X的輸出,而且在接入CLKFB之前必須經(jīng)過BUFGMUX、IBUFG或IBUF之一,?典型的用法是用BUFGMUX直接驅(qū)動(dòng)。?外部反饋信號通常使用IBUFG或IBUF驅(qū)動(dòng),使用IBUFG時(shí)補(bǔ)償偏移的效果最好,使用IBUF時(shí),芯片引腳到DCM輸入的這部分時(shí)延得不到補(bǔ)償。使用DCM去除時(shí)鐘偏移的詳細(xì)連接方法請查閱對應(yīng)FPGA芯片的相關(guān)數(shù)據(jù)手冊。使用DPS功能時(shí),DPS控制反饋信號CLKFB與輸入時(shí)鐘信號的相移偏差可以工作在三種模式下,如圖4.12所示。圖4.12DPS三種工作模式下的相移效果●None模式下,不進(jìn)行時(shí)鐘相移,CLKIN與CLKFB同相,相當(dāng)于在Fixed模式下將相移參數(shù)設(shè)置為0;

●Fixed模式下,CLKFB相對于CLKIN有固定的相移,而且在DCM模塊配置好后不能在應(yīng)用過程中修改;

●Variable模式下,CLKFB相對于CLKIN的相移可以通過PSEN、PSINCDEC和PSCLK控制,信號之間的時(shí)序關(guān)系如圖4.13所示。圖4.13動(dòng)態(tài)調(diào)整相移的時(shí)序關(guān)系

PSCLK的時(shí)鐘上升沿作為相移動(dòng)態(tài)調(diào)整的觸發(fā)條件。PSEN為相移調(diào)整的使能信號,PSEN為高表示可以進(jìn)行調(diào)整,PSEN為低時(shí)表示不能進(jìn)行調(diào)整,但要特別注意,每次調(diào)整相移時(shí),PSEN只能有一個(gè)時(shí)鐘周期的高脈沖,如果PSEN出現(xiàn)連續(xù)的高脈沖,將會(huì)引發(fā)不可預(yù)知的結(jié)果。

相移的初始值在圖4.11PhaseShift的Value文本框中填寫,將Value設(shè)置為1時(shí),Value文本框下對應(yīng)的時(shí)間值和角度為相移調(diào)整的精度,也是動(dòng)態(tài)調(diào)整時(shí)的一個(gè)單位。

PSINCDEC的值表示相移調(diào)整的方向,PSINCDEC為高時(shí),表示增加一個(gè)相移單位,PSINCDEC為低時(shí),表示減小一個(gè)相移單位。每一次的相移需要幾個(gè)時(shí)鐘周期的調(diào)整,相移調(diào)整完成后PSDONE出現(xiàn)一個(gè)PSCLK時(shí)鐘周期的高脈沖。在PSDONE出現(xiàn)高脈沖后,即可執(zhí)行下一次相移調(diào)整。如果相移的值超出了可以調(diào)整的范圍,則DCM的輸出信號STATUS[0]變高,直到下一次調(diào)整將相移調(diào)回限定范圍內(nèi)。

選擇UseDutyCycleCorrection,可以對CLK0、CLK90、CLK180和CLK270的輸出信號做占空比調(diào)整,調(diào)整后的輸出時(shí)鐘占空比為50%。如果DLL工作在低頻模式下,CLKDV的輸出信號占空比自動(dòng)為50%;如果DLL工作在高頻模式下,只有分頻倍數(shù)為整數(shù)時(shí)占空比為50%。

DCM對時(shí)鐘頻率和相移的調(diào)整以及占空比的修正需要一個(gè)過程,因此,在DCM未處理完之前,輸出時(shí)鐘端口會(huì)出現(xiàn)一些不穩(wěn)定的時(shí)鐘邊沿,例如,在進(jìn)行2倍頻時(shí),CLK2X的輸出信號有可能如圖4.14所示,一開始變?yōu)檎伎毡葹?5/75、頻率與CLKIN相同的時(shí)鐘,之后變?yōu)镃LKIN的2倍頻。在CLK2X穩(wěn)定3個(gè)周期后,LOCKED信號拉高,表示倍頻處理已經(jīng)完成。圖4.14未進(jìn)入穩(wěn)態(tài)的DCM輸出信號

DCM還有一些高級配置選項(xiàng),在圖4.11中,單擊Advanced按鈕,彈出高級選項(xiàng)卡,如圖4.15所示。圖4.15DCM高級選項(xiàng)卡在默認(rèn)情況下,DCM不影響FPGA的配置過程,但如果選中“WaitforDCMlockbeforeDONEsignalgoeshigh”,則FPGA會(huì)等待DCM模塊的LOCKED信號拉高后,才把配置結(jié)束信號DONE置位。

如果輸入時(shí)鐘頻率太高,可以選中“DivideInputClockBy2”信號,在接入DCM之前,將時(shí)鐘進(jìn)行一次二分頻。

如果需要外部同步的方式進(jìn)行數(shù)據(jù)傳輸,可以將“DCMDeskewAdjust”選擇為SOURCE_SYNCHRONOUS。

配置好圖4.11中的選項(xiàng)后,單擊右下

溫馨提示

  • 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

提交評論