精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

Vivado下PLL實驗 ALINX

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

作者: ALINX

適用于板卡型號:

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

實驗Vivado工程為“pll_test”。

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

1.實驗原理

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

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

Ultrascale+系列的FPGA使用了專用的全局(Global)和區域(Regional)IO和時鐘資源來管理設計中各種的時鐘需求。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用于在與給定輸入時鐘有設定的相位和頻率關系的情況下,生成不同的時鐘信號。MMCM提供了廣泛而強大的時鐘管理功能,

MMCM內部的功能框圖如下圖所示:

pIYBAGAJuYKAEpu5AABruO8SEPk399.png

數字鎖相環(PLL)

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

PLL功能框圖如下圖所示:

pIYBAGAJucCAZ4I1AABRmATKN6M495.png

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

2. 創建Vivado工程

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

pIYBAGAJugGATm_gAANXs9nwnwI981.png

在ug572文檔中提到HDGC引腳不能直接連接到MMCMs/PLLs,需要經過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。這里還可以設置時鐘輸出的相位,我們不做設置,保留默認相位,點擊 OK完成,

o4YBAGAJu0GAPAcSAAF-bXFLixs408.png

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

pIYBAGAJu3-ARpejAABu7OMP4Yw472.png

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

pIYBAGAJu_KAFuJ9AADwkDZuE68657.png

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

o4YBAGAJvFKADErLAALT3FQdQrU698.png

2.6 我們再來編寫一個頂層設計文件來實例化這個PLL IP, 編寫pll_test.v代碼如下。注意PLL的復位是高電平有效,也就是高電平時一直在復位狀態,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。

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

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實驗”,也可以直接復制以下內容。并編譯生成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中,接下去我們就可以用示波器來測量輸出時鐘波形了。

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

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

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

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

審核編輯:何安

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

    關注

    1626

    文章

    21667

    瀏覽量

    601843
收藏 人收藏

    評論

    相關推薦

    一文詳解 ALINX NVMe IP 特性

    - ALINX NVMe?IP - 在當下數據驅動的時代,企業對高性能存儲解決方案的需求不斷增加。NVMe AXI IP 憑借其支持大數據量、高速傳輸、低延遲等存儲性能優勢,成為眾多開發者和企業
    的頭像 發表于 11-14 13:59 ?145次閱讀
    一文詳解 <b class='flag-5'>ALINX</b> NVMe IP 特性

    基于ALINX開發板Z19-P實現WIFI無線通信功能

    本教程基于 ALINX 開發板 Z19-P , 實現 WIFI 無線通信的功能,WIFI 模塊使用 USB WIFIrtl8188cu。
    的頭像 發表于 11-11 10:44 ?120次閱讀
    基于<b class='flag-5'>ALINX</b>開發板Z19-P實現WIFI無線通信功能

    Vivado使用小技巧

    有時我們對時序約束進行了一些調整,希望能夠快速看到對應的時序報告,而又不希望重新布局布線。這時,我們可以打開布線后的dcp,直接在Vivado Tcl Console里輸入更新后的時序約束。如果調整
    的頭像 發表于 10-24 15:08 ?212次閱讀
    <b class='flag-5'>Vivado</b>使用小技巧

    ALINX FPGA+GPU異架構視頻圖像處理開發平臺介紹

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

    PLL1705/PLL1706雙通道PLL多時鐘發生器數據表

    電子發燒友網站提供《PLL1705/PLL1706雙通道PLL多時鐘發生器數據表.pdf》資料免費下載
    發表于 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>多時鐘發生器數據表

    PLL是什么意思

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

    ALINX VERSAL SOM產品介紹

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

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

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

    ALINX聯合紫光同創發布首款國產Kosmo-2可編程系統平臺開發套件

    近日,ALINX 聯合國內 FPGA 芯片龍頭企業紫光同創發布了首款國產Kosmo-2 可編程系統平臺開發套件 AXK400。
    的頭像 發表于 05-15 11:05 ?583次閱讀
    <b class='flag-5'>ALINX</b>聯合紫光同創發布首款國產Kosmo-2可編程系統平臺開發套件

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

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

    如何禁止vivado自動生成 bufg

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

    Vivado時序問題分析

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

    VIVADO安裝問題解決

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

    VIVADO軟件使用問題總結

    【關鍵問題!!!!重要!!!】VIVADO會在MESSAGE窗口出提示很多錯誤和警告信息!
    的頭像 發表于 12-15 10:11 ?1789次閱讀
    <b class='flag-5'>VIVADO</b>軟件使用問題總結

    鎖相環PLL是什么?它是如何工作的?

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