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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第4章XilinxIP核4.1Xilinx的IP介紹

4.2XilinxIP配置工具及使用方法

4.3時鐘管理IP

4.1Xilinx的IP介紹

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

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

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

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

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

(1)打開XilinxISE軟件,在新建一個工程后,選擇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)驗證IP選擇信息后,單擊Finish按鈕進入雙端口RAM核配置窗口,如圖4.3所示。圖4.3雙端口RAM核配置窗口

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

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

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

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

學習完本節(jié)內容后,讀者可以嘗試完成第6章的實驗九。

4.3時鐘管理IP

4.3.1DCM模塊

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

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

●CLK0:去除偏移后的時鐘信號;

●CLK90:CLK0相移90°的時鐘信號;

●CLK180:CLK0相移180°的時鐘信號;

●CLK270:CLK0相移270°的時鐘信號;

●CLK2X:CLK0的2倍頻時鐘信號;

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

●CLKDV:CLK0分頻后的時鐘信號。

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

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

在工程中使用DCM的方法與一般的IP核的方法相同,在IP核選擇窗口中顯示的可用DCM與工程選用的FPGA器件有關。假設我們選用的器件仍為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端口,及相關的的屬性配置。

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

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

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

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

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

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

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

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

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

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

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

配置好圖4.11中的選項后,單擊右下

溫馨提示

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

評論

0/150

提交評論