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

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

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

FPGA零基礎(chǔ)學(xué)習(xí)之Vivado-鎖相環(huán)使用教程

FPGA技術(shù)江湖 ? 來(lái)源:FPGA技術(shù)江湖 ? 2023-05-31 17:42 ? 次閱讀

大俠好,歡迎來(lái)到FPGA技術(shù)江湖。本系列將帶來(lái)FPGA的系統(tǒng)性學(xué)習(xí),從最基本的數(shù)字電路基礎(chǔ)開始,最詳細(xì)操作步驟,最直白的言語(yǔ)描述,手把手的“傻瓜式”講解,讓電子、信息、通信類專業(yè)學(xué)生、初入職場(chǎng)小白及打算進(jìn)階提升的職業(yè)開發(fā)者都可以有系統(tǒng)性學(xué)習(xí)的機(jī)會(huì)。

系統(tǒng)性的掌握技術(shù)開發(fā)以及相關(guān)要求,對(duì)個(gè)人就業(yè)以及職業(yè)發(fā)展都有著潛在的幫助,希望對(duì)大家有所幫助。本次帶來(lái)Vivado系列,鎖相環(huán)使用教程。話不多說(shuō),上貨。

鎖相環(huán)使用教程

鎖相環(huán)是我們比較常用的IP核之一。PLL的英文全稱是Phase locked loop即鎖相環(huán),是一種反饋電路。具有分頻、倍頻、相位偏移和占空比可調(diào)的功能。在XILINX 7系列芯片時(shí)鐘資源包含了時(shí)鐘管理單元CMT,每一個(gè)CMT都是由一個(gè)MMCM和一個(gè)PLL組成。對(duì)于使用者來(lái)說(shuō),當(dāng)我們實(shí)現(xiàn)簡(jiǎn)單的分頻時(shí),設(shè)計(jì)者可以通過(guò)寫代碼的方式來(lái)進(jìn)行分頻,但是對(duì)于復(fù)雜的設(shè)計(jì),比如倍頻、相位偏移等設(shè)計(jì)時(shí),寫代碼的方式就顯得力不從心。此時(shí)就體現(xiàn)了學(xué)習(xí)鎖相環(huán)的必要性。接下來(lái)我們一起了解一下鎖相環(huán)的使用。

PLL鎖相環(huán)由以下幾部分組成:前置分頻計(jì)數(shù)器、相位頻率檢測(cè)器電路、電荷泵、環(huán)路濾波器、壓控振蕩器、反饋乘法器計(jì)數(shù)器和后置分頻計(jì)數(shù)器。在工作室,相位頻率檢測(cè)器檢測(cè)其參考頻率和反饋信號(hào)之間的相位差和頻率差,控制電荷泵和環(huán)路濾波器將相位差轉(zhuǎn)換為控制電壓,壓控振蕩器根據(jù)不同的控制電壓產(chǎn)生不同的振蕩頻率從而影響反饋信號(hào)的相位和頻率。在參考頻率和反饋信號(hào)具有相同的頻率和相位后,就認(rèn)為PLL處于鎖相的狀態(tài)。

本次實(shí)驗(yàn)我們將輸出四個(gè)不同的頻率波形,其中有兩個(gè)相位相差180°。其中四個(gè)頻率分別為100MHZ,30MHZ,10MHZ,10MHZ_180。

接下來(lái)我們首先先新建一個(gè)工程:

4825faa2-ff8d-11ed-90ce-dac502259ad0.png

首先選擇新建工程,在此之前,新建工程的介紹已經(jīng)給大家詳細(xì)介紹過(guò)了,在此就不在重復(fù)介紹,新建好之后,如下圖:

483b3aac-ff8d-11ed-90ce-dac502259ad0.png

大家可以在工程總覽中看到工程的信息。

我們?cè)谧髠?cè)菜單欄里面選中IP Catalog

485b17a0-ff8d-11ed-90ce-dac502259ad0.png

打開之后搜索clock,如下圖:

4866fff2-ff8d-11ed-90ce-dac502259ad0.png

雙擊打開此選項(xiàng),彈出如圖界面:

487b4c50-ff8d-11ed-90ce-dac502259ad0.png

我們需要在此界面做一些配置,IP核的名字我們可以修改,但是要符合起名字的規(guī)則,當(dāng)然也可以不做修改。在時(shí)鐘特征里面,我們保持默認(rèn)選項(xiàng)即可。輸入時(shí)鐘我們需要修改,我們開發(fā)板的晶振是50MHz,所以此處頻率我們改為50MHz。

489af302-ff8d-11ed-90ce-dac502259ad0.png

輸入時(shí)鐘設(shè)置好之后,我們?cè)O(shè)置第二個(gè)配置界面。按照我們提前規(guī)定好的輸出頻率去設(shè)置。

48b3b41e-ff8d-11ed-90ce-dac502259ad0.png

需要添加額外的時(shí)鐘的時(shí)候,在對(duì)應(yīng)的選項(xiàng)前面勾選上,設(shè)置好對(duì)應(yīng)的輸出。clk_out4是10MHz偏移180度的波形,所以在相位偏移選項(xiàng)里面設(shè)置成180度。

其他界面沒有需要設(shè)置的內(nèi)容,我們直接點(diǎn)擊OK即可。然后會(huì)彈出提示框。這個(gè)提示框是確認(rèn)是否給IP核新建路徑,在此我們點(diǎn)擊OK。

48c214c8-ff8d-11ed-90ce-dac502259ad0.png

48d8bf7a-ff8d-11ed-90ce-dac502259ad0.png

此處我們也保持默認(rèn)然后點(diǎn)擊Generate

生成好之后,在源文件界面會(huì)看到我們生成的IP核。

48e76ee4-ff8d-11ed-90ce-dac502259ad0.png

接下來(lái)我們寫個(gè)頂層文件,調(diào)用一下我們的IP核,然后做個(gè)仿真看一下我們的輸出波形。

頂層代碼如下:

1 module pll( 2 3 input wire clk, 4 input wire rst_n, 5 output wire clk_100m, 6 output wire clk_30m, 7 output wire clk_10m, 8 output wire clk_10m_180, 9 output wire locked 10 ); 11 12 clk_wiz_0 clk_wiz_0_inst 13 ( 14 // Clock out ports 15 .clk_out1(clk_100m), // output clk_out1 16 .clk_out2(clk_30m), // output clk_out2 17 .clk_out3(clk_10m), // output clk_out3 18 .clk_out4(clk_10m_180), // output clk_out4 19 // Status and control signals 20 .reset(~rst_n), // input reset 21 .locked(locked), // output locked 22 // Clock in ports 23 .clk_in1(clk)); // input clk_in1 24 25endmodule

在頂層文件當(dāng)中,我們需要例化我們的IP核,那么我們需要先打開IP Sources,我們會(huì)看到我們新建的IP,然后點(diǎn)開之后會(huì)看到第一個(gè)選項(xiàng)Instantiation template,打開之后又會(huì)看到一個(gè).veo文件,雙擊打開就可以看到我們ip核的例化頭文件。如圖所示:

48f8a22c-ff8d-11ed-90ce-dac502259ad0.png

我們將頭文件直接復(fù)制粘貼到我們的頂層文件當(dāng)中,然后修改括號(hào)里面的端口名。修改好之后就是我們頂層文件的樣子。

接下來(lái)是我們的仿真文件,代碼如下:

1 `timescale 1ns / 1ps 2 3 module pll_tb; 4 5 reg clk; 6 reg rst_n; 7 wire clk_100m; 8 wire clk_30m; 9 wire clk_10m; 10 wire clk_10m_180; 11 wire locked; 12 13 initial begin 14 rst_n = 0; 15 clk = 0; 16 #105; 17 rst_n = 1; 18 #10000; 19 $stop; 20 end 21 22 always #10 clk = ~clk; 23 24 pll pll_inst( 25 26 .clk (clk ), 27 .rst_n (rst_n ), 28 .clk_100m (clk_100m ), 29 .clk_30m (clk_30m ), 30 .clk_10m (clk_10m ), 31 .clk_10m_180 (clk_10m_180), 32 .locked (locked ) 33 ); 34 35 endmodule

代碼編譯沒有問(wèn)題之后,我們打開仿真波形觀察現(xiàn)象:

49145cce-ff8d-11ed-90ce-dac502259ad0.png

觀察波形可以看出,在復(fù)位結(jié)束之后的一段時(shí)間內(nèi),輸出是沒有波形的,在這段時(shí)間,IP核的輸出還不穩(wěn)定,所以看不到波形,在黃色光標(biāo)處,locked信號(hào)拉高,此時(shí)表明輸出穩(wěn)定,我們觀察后續(xù)波形的周期,跟我們定義的頻率正好對(duì)應(yīng)。

審核編輯 :李倩

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

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598978
  • 鎖相環(huán)
    +關(guān)注

    關(guān)注

    35

    文章

    576

    瀏覽量

    87546
  • 振蕩器
    +關(guān)注

    關(guān)注

    28

    文章

    3758

    瀏覽量

    138505

原文標(biāo)題:FPGA零基礎(chǔ)學(xué)習(xí)之Vivado-鎖相環(huán)使用教程

文章出處:【微信號(hào):HXSLH1010101010,微信公眾號(hào):FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鎖相環(huán)電路

    鎖相環(huán)電路 鎖相環(huán)
    發(fā)表于 09-25 14:28 ?7122次閱讀
    <b class='flag-5'>鎖相環(huán)</b>電路

    什么是鎖相環(huán) 鎖相環(huán)的組成 鎖相環(huán)選型原則有哪些呢?

    大家都知道鎖相環(huán)很重要,它是基石,鎖相環(huán)決定了收發(fā)系統(tǒng)的基礎(chǔ)指標(biāo),那么如此重要的鎖相環(huán)選型原則有哪些呢?
    的頭像 發(fā)表于 08-01 09:37 ?5025次閱讀
    什么是<b class='flag-5'>鎖相環(huán)</b> <b class='flag-5'>鎖相環(huán)</b>的組成 <b class='flag-5'>鎖相環(huán)</b>選型原則有哪些呢?

    有關(guān)fpga中的鎖相環(huán)

    fpga中的用鎖相環(huán)產(chǎn)生時(shí)鐘信號(hào)相比于用計(jì)數(shù)器進(jìn)行分頻有哪些優(yōu)點(diǎn),看fpga鎖相環(huán)的結(jié)構(gòu),其前期的輸入信號(hào)和后期的輸出信號(hào)不也是通過(guò)計(jì)數(shù)器進(jìn)行分頻實(shí)現(xiàn)的嗎
    發(fā)表于 10-06 10:46

    至芯昭哥帶你學(xué)FPGAFPGA_100天之旅_鎖相環(huán)

    至芯昭哥帶你學(xué)FPGAFPGA_100天之旅_鎖相環(huán)
    發(fā)表于 08-20 12:39

    FPGA零基礎(chǔ)學(xué)習(xí)Vivado-鎖相環(huán)使用教程

    及打算進(jìn)階提升的職業(yè)開發(fā)者都可以有系統(tǒng)性學(xué)習(xí)的機(jī)會(huì)。 系統(tǒng)性的掌握技術(shù)開發(fā)以及相關(guān)要求,對(duì)個(gè)人就業(yè)以及職業(yè)發(fā)展都有著潛在的幫助,希望對(duì)大家有所幫助。本次帶來(lái)Vivado系列,鎖相環(huán)使用教程。話不多
    發(fā)表于 06-14 18:09

    模擬鎖相環(huán)應(yīng)用實(shí)驗(yàn)

    一、實(shí)驗(yàn)?zāi)康?、掌握模擬鎖相環(huán)的組成及工作原理。2、學(xué)習(xí)用集成鎖相環(huán)構(gòu)成鎖相解調(diào)電路。3、學(xué)習(xí)用集成鎖相
    發(fā)表于 03-22 11:44 ?127次下載

    基于FPGA的全數(shù)字鎖相環(huán)設(shè)計(jì)

    基于FPGA的全數(shù)字鎖相環(huán)設(shè)計(jì):
    發(fā)表于 06-26 17:30 ?141次下載
    基于<b class='flag-5'>FPGA</b>的全數(shù)字<b class='flag-5'>鎖相環(huán)</b>設(shè)計(jì)

    鎖相環(huán)(PLL),鎖相環(huán)(PLL)是什么意思

    鎖相環(huán)(PLL),鎖相環(huán)(PLL)是什么意思 PLL的概念 我們所說(shuō)的PLL。其
    發(fā)表于 03-23 10:47 ?6098次閱讀

    鎖相環(huán)

    鎖相環(huán)英文為PLL,即PLL鎖相環(huán)??梢苑譃槟M鎖相環(huán)和數(shù)字鎖相環(huán)。兩種分類的鎖相環(huán)原理有較大區(qū)別,通過(guò)不同的
    發(fā)表于 10-26 12:40
    <b class='flag-5'>鎖相環(huán)</b>

    基于FPGA的數(shù)字鎖相環(huán)設(shè)計(jì)與實(shí)現(xiàn)

    基于FPGA的數(shù)字鎖相環(huán)設(shè)計(jì)與實(shí)現(xiàn)技術(shù)論文
    發(fā)表于 10-30 10:38 ?9次下載

    FPGA實(shí)現(xiàn)數(shù)字鎖相環(huán)

    Xilinx FPGA工程例子源碼:用FPGA實(shí)現(xiàn)數(shù)字鎖相環(huán)
    發(fā)表于 06-07 15:07 ?38次下載

    詳解FPGA數(shù)字鎖相環(huán)平臺(tái)

    一、設(shè)計(jì)目標(biāo) 基于鎖相環(huán)的理論,以載波恢復(fù)環(huán)為依托搭建數(shù)字鎖相環(huán)平臺(tái),并在FPGA中實(shí)現(xiàn)鎖相環(huán)的基本功能。 在
    發(fā)表于 10-16 11:36 ?18次下載
    詳解<b class='flag-5'>FPGA</b>數(shù)字<b class='flag-5'>鎖相環(huán)</b>平臺(tái)

    基于FPGA的寬頻帶數(shù)字鎖相環(huán)的設(shè)計(jì)與實(shí)現(xiàn)簡(jiǎn)介

    基于FPGA的寬頻帶數(shù)字鎖相環(huán)的設(shè)計(jì)與實(shí)現(xiàn)簡(jiǎn)介說(shuō)明。
    發(fā)表于 06-01 09:41 ?26次下載

    基于FPGA的高性能全數(shù)字鎖相環(huán)

    基于FPGA的高性能全數(shù)字鎖相環(huán)
    發(fā)表于 06-08 11:09 ?45次下載

    模擬鎖相環(huán)和數(shù)字鎖相環(huán)區(qū)別

    模擬鎖相環(huán)和數(shù)字鎖相環(huán)的主要區(qū)別在于它們的控制方式不同。模擬鎖相環(huán)是通過(guò)模擬電路來(lái)控制頻率和相位,而數(shù)字鎖相環(huán)是通過(guò)數(shù)字信號(hào)處理技術(shù)來(lái)控制頻率和相位。此外,模擬
    發(fā)表于 02-15 13:47 ?4624次閱讀