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

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

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

Vivado下PLL實驗 ALINX

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2022-02-08 15:13 ? 次閱讀

作者: ALINX

適用于板卡型號:

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

實驗Vivado工程為“pll_test”。

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

1.實驗原理

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

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

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

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

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

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

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

pIYBAGAJuYKAEpu5AABruO8SEPk399.png

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

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

PLL功能框圖如下圖所示:

pIYBAGAJucCAZ4I1AABRmATKN6M495.png

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

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

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

pIYBAGAJugGATm_gAANXs9nwnwI981.png

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

新建一個pll_test的工程,點擊Project Manager界面下的IP Catalog。

pIYBAGAJuoSAEbqDAALQKR1QqCI319.png

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

pIYBAGAJusOAeOdfAACUEwDVM5I687.png

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

pIYBAGAJuwKAZKf_AAERTfgn9_E251.png

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

o4YBAGAJu0GAPAcSAAF-bXFLixs408.png

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

pIYBAGAJu3-ARpejAABu7OMP4Yw472.png

2.5 這時一個 clk_wiz_0.xci的IP會自動添加到我們的pll_test項目中, 用戶可以雙擊它來修改這個IP的配置。

pIYBAGAJu_KAFuJ9AADwkDZuE68657.png

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

o4YBAGAJvFKADErLAALT3FQdQrU698.png

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

`timescale1ns/1ps

module pll_test(

input sys_clk,//system clock 25Mhz on board

input rst_n,//reset ,low active

output clk_out //pll clock output

);

wire locked;

wire sys_clkbuf ;

BUFG BUFG_inst (

.O(sys_clkbuf),// 1-bit output: Clock output.

.I(sys_clk)// 1-bit input: Clock input.

);

/////////////////////PLL IP call////////////////////////////

clk_wiz_0 clk_wiz_0_inst

(// Clock in ports

.clk_in1(sys_clkbuf),// IN 25Mhz

// Clock out ports

.clk_out1(),// OUT 200Mhz

.clk_out2(),// OUT 100Mhz

.clk_out3(),// OUT 50Mhz

.clk_out4(clk_out),// OUT 25Mhz

// Status and control signals

.reset(~rst_n),// pll reset, high-active

.locked(locked));// OUT

endmodule

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

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

o4YBAGAJvJCAdWfWAABoHqy2wMg988.png

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

o4YBAGAJvM-Af_ezAADodWSWbQY293.png

2.8 再為工程添加xdc管腳約束文件pll.xdc,添加方法參考”PL的”Hello World”LED實驗”,也可以直接復制以下內(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.板上驗證

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

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

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

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

另外需要注意的是,有些用戶的示波器的帶寬和采樣率太低,會導致測量高頻時鐘信號的時候,高頻部分衰減太大,測量波形的幅度會變低。

審核編輯:何安

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

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    599014
收藏 人收藏

    評論

    相關(guān)推薦

    ALINX FPGA+GPU異架構(gòu)視頻圖像處理開發(fā)平臺介紹

    Alinx 最新發(fā)布的新品 Z19-M 是一款創(chuàng)新的 FPGA+GPU 異構(gòu)架構(gòu)視頻圖像處理開發(fā)平臺,它結(jié)合了 AMD Zynq UltraScale+ MPSoC(FPGA)與 NVIDIA Jetson Orin NX(GPU)的強大功能,能夠應用于對圖像精準度和實時性有著嚴苛要求的行業(yè)領(lǐng)域。
    的頭像 發(fā)表于 08-29 14:43 ?551次閱讀

    ALINX亮相2024紫光同創(chuàng)FPGA技術(shù)研討會

    “2024 紫光同創(chuàng) FPGA 技術(shù)研討會”系列活動在全國多地繼續(xù)開展,作為紫光同創(chuàng)官方合作伙伴,ALINX 亮相 6 月下旬深圳、廣州兩地活動現(xiàn)場,展示了基于紫光同創(chuàng)多個系列 FPGA 芯片開發(fā)的豐富產(chǎn)品及方案,聯(lián)合紫光同創(chuàng)開發(fā)的首款國產(chǎn) Kosmo-2 可編程系統(tǒng)平臺開發(fā)套件獲得很大關(guān)注。
    的頭像 發(fā)表于 08-29 14:36 ?389次閱讀

    PLL1705/PLL1706雙通道PLL多時鐘發(fā)生器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《PLL1705/PLL1706雙通道PLL多時鐘發(fā)生器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 08-22 11:32 ?0次下載
    <b class='flag-5'>PLL</b>1705/<b class='flag-5'>PLL</b>1706雙通道<b class='flag-5'>PLL</b>多時鐘發(fā)生器數(shù)據(jù)表

    PLL是什么意思

    PLL是Phase Locked Loop的縮寫,中文譯作鎖相環(huán)。它是一種用于控制頻率和相位的電路,通過檢測和跟蹤輸入信號的頻率和相位,并將其轉(zhuǎn)換為一個穩(wěn)定的輸出信號,從而實現(xiàn)頻率和相位的同步與控制。以下是對PLL的詳細解析,包括其定義、分類、工作原理、作用以及在現(xiàn)代電子
    的頭像 發(fā)表于 08-16 17:03 ?1267次閱讀

    ALINX VERSAL SOM產(chǎn)品介紹

    近日,2024 AMD Adaptive Computing Summit(AMD ACS)在深圳舉行,芯驛電子應邀出席作主題分享:《ALINX 基于 Versal 系列硬件解決方案》,闡述了 ALINX 模塊化產(chǎn)品設(shè)計理念,展示基于 Versal 系列芯片開發(fā)的新品及后
    的頭像 發(fā)表于 08-05 10:33 ?459次閱讀

    在不重新安裝Vivado的情況,是否能夠安裝線纜驅(qū)動器?

    如果 Xilinx USB/Digilent 線纜驅(qū)動器在安裝 Vivado 設(shè)計套件時還沒有安裝,或者 Xilinx USB/Digilent 線纜驅(qū)動器被禁用,在不全面重新安裝 Vivado 的情況,是否能夠重新安裝該驅(qū)動
    的頭像 發(fā)表于 05-16 11:21 ?416次閱讀

    ALINX聯(lián)合紫光同創(chuàng)發(fā)布首款國產(chǎn)Kosmo-2可編程系統(tǒng)平臺開發(fā)套件

    近日,ALINX 聯(lián)合國內(nèi) FPGA 芯片龍頭企業(yè)紫光同創(chuàng)發(fā)布了首款國產(chǎn)Kosmo-2 可編程系統(tǒng)平臺開發(fā)套件 AXK400。
    的頭像 發(fā)表于 05-15 11:05 ?448次閱讀
    <b class='flag-5'>ALINX</b>聯(lián)合紫光同創(chuàng)發(fā)布首款國產(chǎn)Kosmo-2可編程系統(tǒng)平臺開發(fā)套件

    ALINX 技術(shù)分享】AMD Versal AI Edge 自適應計算加速平臺之 Versal 介紹(2)

    ALINX 技術(shù)分享】AMD Versal AI Edge 自適應計算加速平臺之 Versal 介紹,以及Versal 芯片開發(fā)流程的簡介。
    的頭像 發(fā)表于 03-07 16:03 ?830次閱讀
    【<b class='flag-5'>ALINX</b> 技術(shù)分享】AMD Versal AI Edge 自適應計算加速平臺之 Versal 介紹(2)

    如何禁止vivado自動生成 bufg

    Vivado中禁止自動生成BUFG(Buffered Clock Gate)可以通過以下步驟實現(xiàn)。 首先,讓我們簡要了解一什么是BUFG。BUFG是一個時鐘緩沖器,用于緩沖輸入時鐘信號,使其更穩(wěn)
    的頭像 發(fā)表于 01-05 14:31 ?1457次閱讀

    Vivado時序問題分析

    有些時候在寫完代碼之后呢,Vivado時序報紅,Timing一欄有很多時序問題。
    的頭像 發(fā)表于 01-05 10:18 ?1446次閱讀

    VIVADO安裝問題解決

    vivado出現(xiàn)安裝問題剛開始還以為是安裝路徑包含中文空格了,重裝的注意了一,發(fā)現(xiàn)還是這個問題。。。。后來又一頓操作猛如虎,終于發(fā)現(xiàn)了問題。出這個問題的原因是vivado壓縮包解壓的路徑包含中文了把解壓文件放到不含中文的地方,
    發(fā)表于 12-22 10:56 ?0次下載

    VIVADO軟件使用問題總結(jié)

    【關(guān)鍵問題?。。。≈匾。?!】VIVADO會在MESSAGE窗口出提示很多錯誤和警告信息!
    的頭像 發(fā)表于 12-15 10:11 ?1531次閱讀
    <b class='flag-5'>VIVADO</b>軟件使用問題總結(jié)

    鎖相環(huán)PLL是什么?它是如何工作的?

    今天想來聊一芯片設(shè)計中的一個重要macro——PLL,全稱Phase lock loop,鎖相環(huán)。我主要就介紹一它是什么以及它是如何工作的。
    的頭像 發(fā)表于 12-06 15:21 ?1199次閱讀

    使用JTAG仿真器在vivado環(huán)境抓信號時報錯咋辦?

    在使用JTAG仿真器在vivado環(huán)境抓信號時,報如下錯誤:
    的頭像 發(fā)表于 11-14 10:37 ?2978次閱讀

    DFT如何產(chǎn)生PLL 測試pattern

    DFT PLL向量,ATE怎么用? 自動測試設(shè)備(ATE)對PLL(鎖相環(huán))進行測試時,我們首先要明白PLL在系統(tǒng)級芯片(SoC)中的重要性。它是SoC中關(guān)鍵的時鐘或信號同步部件,其性能直接影響
    的頭像 發(fā)表于 10-30 11:44 ?1425次閱讀
    DFT如何產(chǎn)生<b class='flag-5'>PLL</b> 測試pattern