0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【ZYNQ Ultrascale+ MPSOC FPGA教程】第五章Vivado下PLL實(shí)驗(yàn)

FPGA技術(shù)專欄 ? 來源:芯驛電子科技 ? 作者:芯驛電子科技 ? 2021-01-22 09:41 ? 次閱讀

原創(chuàng)聲明:

本原創(chuàng)教程由芯驛電子科技(上海)有限公司(ALINX)創(chuàng)作,版權(quán)歸本公司所有,如需轉(zhuǎn)載,需授權(quán)并注明出處。

適用于板卡型號(hào):

AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG

實(shí)驗(yàn)Vivado工程為“pll_test”。

很多初學(xué)者看到板上只有一個(gè)25Mhz時(shí)鐘輸入的時(shí)候都產(chǎn)生疑惑,時(shí)鐘怎么是25Mhz?如果要工作在100Mhz、150Mhz怎么辦?其實(shí)在很多FPGA芯片內(nèi)部都集成了PLL,其他廠商可能不叫PLL,但是也有類似的功能模塊,通過PLL可以倍頻分頻,產(chǎn)生其他很多時(shí)鐘。本實(shí)驗(yàn)通過調(diào)用PLL IP core來學(xué)習(xí)PLL的使用、vivado的IP core使用方法。

1.實(shí)驗(yàn)原理

PLL(phase-locked loop),即鎖相環(huán)。是FPGA中的重要資源。由于一個(gè)復(fù)雜的FPGA系統(tǒng)往往需要多個(gè)不同頻率,相位的時(shí)鐘信號(hào)。所以,一個(gè)FPGA芯片中PLL的數(shù)量是衡量FPGA芯片能力的重要指標(biāo)。FPGA的設(shè)計(jì)中,時(shí)鐘系統(tǒng)的FPGA高速的設(shè)計(jì)極其重要,一個(gè)低抖動(dòng), 低延遲的系統(tǒng)時(shí)鐘會(huì)增加FPGA設(shè)計(jì)的成功率。

本實(shí)驗(yàn)將通過使用PLL, 輸出一個(gè)方波到開發(fā)板上的擴(kuò)展口,來給大家演示在Vivado軟件里使用PLL的方法。

Ultrascale+系列的FPGA使用了專用的全局(Global)和區(qū)域(Regional)IO和時(shí)鐘資源來管理設(shè)計(jì)中各種的時(shí)鐘需求。Clock Management Tiles(CMT)提供了時(shí)鐘合成(Clock frequency synthesis),傾斜矯正(deskew),過濾抖動(dòng)(jitter filtering)功能。

每個(gè)CMTs包含一個(gè)MMCM(mixed-mode clock manager)和一個(gè)PLL。如下圖所示,CMT的輸入可以是BUFR,IBUFG,BUFG,GT,BUFH,本地布線(不推薦使用),輸出需要接到BUFG或者BUFH后再使用

  • 混合模式時(shí)鐘管理器(MMCM)

MMCM用于在與給定輸入時(shí)鐘有設(shè)定的相位和頻率關(guān)系的情況下,生成不同的時(shí)鐘信號(hào)。 MMCM提供了廣泛而強(qiáng)大的時(shí)鐘管理功能,

MMCM內(nèi)部的功能框圖如下圖所示:

o4YBAGAKLTeAPRH3AABUqINwEXo678.jpg

  • 數(shù)字鎖相環(huán)(PLL)

鎖相環(huán)(PLL)主要用于頻率綜合。使用一個(gè)PLL可以從一個(gè)輸入時(shí)鐘信號(hào)生成多個(gè)時(shí)鐘信號(hào)。與MMCM相比,不能進(jìn)行時(shí)鐘的deskew,不具備高級(jí)相位調(diào)整,倍頻器和分頻器可調(diào)范圍較小等。

PLL功能框圖如下圖所示:

pIYBAGAKLTiATkYQAAC503imd0Y939.jpg

想了解更多的時(shí)鐘資源, 建議大家看看Xilinx提供的文檔"7 Series FPGAs Clocking Resources User Guide"。

2. 創(chuàng)建Vivado工程

本實(shí)驗(yàn)中為大家演示如果調(diào)用Xilinx提供的PLL IP核來產(chǎn)生不同頻率的時(shí)鐘, 并把其中的一個(gè)時(shí)鐘輸出到FPGA外部IO上, 下面為程序設(shè)計(jì)的詳細(xì)步驟。在創(chuàng)建PLL IP之前,有一點(diǎn)需要提下,在原理圖中可以看到PL_REF_CLK,也就是25MHz參考時(shí)鐘,在BANK44中,而且屬于HDGC

o4YBAGAKLTiAHAH4AACi6tXZqJI866.jpg

在ug572文檔中提到HDGC引腳不能直接連接到MMCMs/PLLs,需要經(jīng)過BUFG,再連接到MMCMs/PLLs,這個(gè)地方是需要注意的。

pIYBAGAKLTiAXTa5AAEZxHlhzU8413.jpg

新建一個(gè)pll_test的工程,點(diǎn)擊Project Manager界面下的IP Catalog。

o4YBAGAKLTmAH2YZAADYhz2QMM0820.jpg

2.1 再在IP Catalog界面里選擇FPGA Features and Design\Clocking下面的Clocking Wizard,雙擊打開配置界面。

pIYBAGAKLTmAD62zAABiXzP8zjc404.jpg

2.2 默認(rèn)這個(gè)Clocking Wizard的名字為clk_wiz_0, 這里我們不做修改。在第一個(gè)界面Clocking Options里,輸入的時(shí)鐘頻率為25Mhz,并選擇No buffer,也就是在PLL之前要接個(gè)BUFG。

o4YBAGAKLTmAAY2mAABM5CZuDMo518.jpg

2.3 在Output Clocks界面里選擇clk_out1~clk_out4四個(gè)時(shí)鐘的輸出,頻率分別為200Mhz, 100Mhz, 50Mhz, 25Mhz。這里還可以設(shè)置時(shí)鐘輸出的相位,我們不做設(shè)置,保留默認(rèn)相位,點(diǎn)擊 OK完成,

pIYBAGAKLTmAR4-CAABcIufvOlo629.jpg

2.4 在彈出的對(duì)話框中點(diǎn)擊Generate按鈕生成PLL IP的設(shè)計(jì)文件。

o4YBAGAKLTqAeBt2AABQOaOYnEQ615.jpg

2.5 這時(shí)一個(gè) clk_wiz_0.xci的IP會(huì)自動(dòng)添加到我們的pll_test項(xiàng)目中, 用戶可以雙擊它來修改這個(gè)IP的配置。

pIYBAGAKLTqARJ7eAACexfm5tFk876.jpg

選擇IP Sources這頁(yè),然后雙擊打開clk_wiz_0.veo文件,這個(gè)文件里提供了這個(gè)IP的實(shí)例化模板。我們只需要把框框的中內(nèi)容拷貝到我們verilog程序中,對(duì)IP進(jìn)行實(shí)例化。

o4YBAGAKLTqACqYTAADFbAnthNs230.jpg

2.6 我們?cè)賮砭帉懸粋€(gè)頂層設(shè)計(jì)文件來實(shí)例化這個(gè)PLL IP, 編寫pll_test.v代碼如下。注意PLL的復(fù)位是高電平有效,也就是高電平時(shí)一直在復(fù)位狀態(tài),PLL不會(huì)工作,這一點(diǎn)很多新手會(huì)忽略掉。這里我們將rst_n綁定到一個(gè)按鍵上,而按鍵是低電平復(fù)位,因此需要反向連接到PLL的復(fù)位。在程序中插入一個(gè)BUFG原語,連接到PLL。

`timescale1ns/1psmodulepll_test(inputsys_clk,//systemclock25Mhzonboardinputrst_n,//reset,lowactiveoutputclk_out//pllclockoutput
);wirelocked;wire	sys_clkbuf;BUFGBUFG_inst(.O(sys_clkbuf),//1-bitoutput:Clockoutput..I(sys_clk)//1-bitinput:Clockinput.);/////////////////////PLLIPcall////////////////////////////clk_wiz_0clk_wiz_0_inst(//Clockinports.clk_in1(sys_clkbuf),//IN25Mhz//Clockoutports.clk_out1(),//OUT200Mhz.clk_out2(),//OUT100Mhz.clk_out3(),//OUT50Mhz.clk_out4(clk_out),//OUT25Mhz	
//Statusandcontrolsignals	
.reset(~rst_n),//pllreset,high-active.locked(locked));//OUTendmodule

程序中先用實(shí)例化clk_wiz_0, 把25Mhz時(shí)鐘信號(hào)輸入到clk_wiz_0的clk_in1_p和clk_in1_n,把clk_out4的輸出賦給clk_out。

注意:例化的目的是在上一級(jí)模塊中調(diào)用例化的模塊完成代碼功能,在Verilog里例化信號(hào)的格式如下:模塊名必須和要例化的模塊名一致,比如程序中的clk_wiz_0,包括模塊信號(hào)名也必須一致,比如clk_in1,clk_out1,clk_out2.....。連接信號(hào)為TOP程序跟模塊之間傳遞的信號(hào),模塊與模塊之間的連接信號(hào)不能相互沖突,否則會(huì)產(chǎn)生編譯錯(cuò)誤。

pIYBAGAKLTuAQr7HAAAORsS4ddA401.jpg

2.7 保存工程后,pll_test自動(dòng)成為了top文件,clk_wiz_0成為Pll_test文件的子模塊。

o4YBAGAKLTyAU_NgAACrR3m1ukY746.jpg

2.8 再為工程添加xdc管腳約束文件pll.xdc,添加方法參考”PL的”Hello World”LED實(shí)驗(yàn)”,也可以直接復(fù)制以下內(nèi)容。并編譯生成bitstream。

############## clock and reset define##################set_property PACKAGE_PIN AB11 [get_ports sys_clk]
set_property IOSTANDARD LVCMOS33 [get_ports sys_clk]create_clock -period 40.000 -name sys_clk -waveform {0.000 20.000} [get_ports sys_clk]set_property IOSTANDARD LVCMOS33 [get_ports {rst_n}]set_property PACKAGE_PIN AA13 [get_ports {rst_n}]############## pll output define J11 PIN3##################set_property IOSTANDARD LVCMOS33 [get_ports clk_out]set_property PACKAGE_PIN A11 [get_ports clk_out]

3.板上驗(yàn)證

編譯工程并生成pll_test.bit文件,再把bit文件下載到FPGA中,接下去我們就可以用示波器來測(cè)量輸出時(shí)鐘波形了。

用示波器探頭的地線連接到開發(fā)板上的地(開發(fā)板J15的PIN1腳),信號(hào)端連接開發(fā)板J15的PIN3腳(測(cè)量的時(shí)候需要注意,避免示波器表頭碰到其它管腳而導(dǎo)致電源和地短路)。

這時(shí)我們可以在示波器里看到25Mhz的時(shí)鐘波形,波形的幅度為3.3V, 占空比為1:1,波形顯示如下圖所示:

如果您想輸出其它頻率的波形,可以修改時(shí)鐘的輸出為clk_wiz_0的clk_out2或clk_out3或clk_out4。也可以修改clk_wiz_0的clk_out4為您想要的頻率,這里也需要注意一下,因?yàn)闀r(shí)鐘的輸出是通過PLL對(duì)輸入時(shí)鐘信號(hào)的倍頻和分頻系數(shù)來得到的,所以并不是所有的時(shí)鐘頻率都可以用PLL能夠精確產(chǎn)生的,不過PLL也會(huì)自動(dòng)為您計(jì)算實(shí)際輸出接近的時(shí)鐘頻率。

另外需要注意的是,有些用戶的示波器的帶寬和采樣率太低,會(huì)導(dǎo)致測(cè)量高頻時(shí)鐘信號(hào)的時(shí)候,高頻部分衰減太大,測(cè)量波形的幅度會(huì)變低。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1625

    文章

    21620

    瀏覽量

    601232
  • pll
    pll
    +關(guān)注

    關(guān)注

    6

    文章

    774

    瀏覽量

    135006
  • Zynq
    +關(guān)注

    關(guān)注

    9

    文章

    607

    瀏覽量

    47101
  • MPSoC
    +關(guān)注

    關(guān)注

    0

    文章

    196

    瀏覽量

    24230
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    804

    瀏覽量

    66222
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何利用ZYNQ MPSoC玩DOOM?

    賽靈思和 DornerWorks 的系統(tǒng)軟件團(tuán)隊(duì)在賽靈思的 Zynq? Ultrascale+? MPSoC 上啟動(dòng) Xen Project 管理程序時(shí),我們發(fā)現(xiàn)可通過運(yùn)行當(dāng)年叱詫一時(shí)的流行電子游戲
    發(fā)表于 10-09 06:21

    如何調(diào)試Zynq UltraScale+ MPSoC VCU DDR控制器

      如何調(diào)試Zynq UltraScale+ MPSoC VCU DDR控制器  Zynq UltraScale+
    發(fā)表于 01-07 16:02

    如何調(diào)試Zynq UltraScale+ MPSoC VCU DDR控制器

    如何調(diào)試 Zynq UltraScale+ MPSoC VCU DDR 控制器?
    發(fā)表于 01-22 06:29

    ZYNQ Ultrascale+ MPSOC FPGA教程

    ZYNQ Ultrascale+ MPSOC FPGA教程
    發(fā)表于 02-02 07:53

    Ti推出面向Zynq UltraScale+ MPSoC的電源參考設(shè)計(jì)

    本篇文章將與大家討論的是Xilinx Zynq UltraScale+ MPSoC的電源解決方案參考設(shè)計(jì)。
    發(fā)表于 03-14 02:24 ?3652次閱讀
    Ti推出面向<b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>的電源參考設(shè)計(jì)

    Xilinx基于ARM的Zynq-7000和Zynq UltraScale+ MPSoC及RFSoC器件是否存在安全漏洞

    本文試圖搞清楚在 Xilinx 基于 ARM 的 Zynq-7000、Zynq UltraScale+ MPSoCZynq
    發(fā)表于 06-28 15:53 ?2658次閱讀

    Zynq UltraScale+ MPSoC的發(fā)售消息

    Zynq?UltraScale+?MPSoC,現(xiàn)已開始發(fā)售。視頻向您重點(diǎn)介紹了Xilinx UltraScale +產(chǎn)品組合的第一位成員
    的頭像 發(fā)表于 11-27 06:47 ?3558次閱讀

    米爾科技Zynq UltraScale+ MPSoC技術(shù)參考手冊(cè)介紹

    Zynq UltraScale+ MPSoC是Xilinx推出的第二代多處理SoC系統(tǒng),在第一代Zynq-7000的基礎(chǔ)上做了全面升級(jí),在單芯片上融合了功能強(qiáng)大的處理器系統(tǒng)(PS)和用
    的頭像 發(fā)表于 11-18 11:03 ?3096次閱讀
    米爾科技<b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>技術(shù)參考手冊(cè)介紹

    ZYNQ Ultrascale+ MPSOC FPGA教程】第五章 VivadoPLL實(shí)驗(yàn) ALINX

    ,但是也有類似的功能模塊,通過PLL可以倍頻分頻,產(chǎn)生其他很多時(shí)鐘。本實(shí)驗(yàn)通過調(diào)用PLL IP core來學(xué)習(xí)PLL的使用、vivado的I
    發(fā)表于 01-29 09:30 ?7次下載
    【<b class='flag-5'>ZYNQ</b> <b class='flag-5'>Ultrascale+</b> <b class='flag-5'>MPSOC</b> <b class='flag-5'>FPGA</b>教程】<b class='flag-5'>第五章</b> <b class='flag-5'>Vivado</b><b class='flag-5'>下</b><b class='flag-5'>PLL</b><b class='flag-5'>實(shí)驗(yàn)</b> ALINX

    如何調(diào)試 Zynq UltraScale+ MPSoC VCU DDR 控制器?

    Zynq UltraScale+ MPSoC VCU DDR 控制器是一款專用 DDR 控制器,只支持在 Zynq UltraScale+
    發(fā)表于 02-23 06:00 ?15次下載
    如何調(diào)試 <b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b> VCU DDR 控制器?

    米爾電子zynq ultrascale+ mpsoc底板外設(shè)資源清單分享

    米爾電子推出的國(guó)內(nèi)首款zynq ultrascale+ mpsoc平臺(tái)核心板(及開發(fā)板):MYC-CZU3EG吸引了人工智能、工業(yè)控制、嵌入式視覺、ADAS、算法加速、云計(jì)算、有線/無線通信等
    發(fā)表于 01-07 15:20 ?3次下載
    米爾電子<b class='flag-5'>zynq</b> <b class='flag-5'>ultrascale+</b> <b class='flag-5'>mpsoc</b>底板外設(shè)資源清單分享

    ZYNQ Ultrascale+ MPSoC系列FPGA芯片設(shè)計(jì)

    基于 Xilinx 公司ZYNQ Ultrascale+ MPSoC系列 FPGA 芯片設(shè)計(jì),應(yīng)用于工廠自動(dòng)化、機(jī)器視覺、工業(yè)質(zhì)檢等工業(yè)領(lǐng)域
    發(fā)表于 11-02 14:35 ?1544次閱讀

    Zynq UltraScale+ MPSoC中的隔離方法

    電子發(fā)燒友網(wǎng)站提供《Zynq UltraScale+ MPSoC中的隔離方法.pdf》資料免費(fèi)下載
    發(fā)表于 09-13 17:11 ?1次下載
    <b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>中的隔離方法

    Zynq UltraScale+ MPSoC的隔離設(shè)計(jì)示例

    電子發(fā)燒友網(wǎng)站提供《Zynq UltraScale+ MPSoC的隔離設(shè)計(jì)示例.pdf》資料免費(fèi)下載
    發(fā)表于 09-13 11:28 ?3次下載
    <b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>的隔離設(shè)計(jì)示例

    Zynq UltraScale+ MPSoC驗(yàn)證數(shù)據(jù)手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《Zynq UltraScale+ MPSoC驗(yàn)證數(shù)據(jù)手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 09-15 10:13 ?0次下載
    <b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>驗(yàn)證數(shù)據(jù)手冊(cè)