HDL/FPGA學習筆記二十五:Vivado PLL IP核的使用
一、PLL IP核配置
當我們需要用到分頻或者倍頻的時候,就需要使用Vivado中的 PLL IP核來獲得我們想要的時脈頻率。下面簡單說明一下如何配置PLL IP核。
1、查詢 PLL IP核
2、指定用於分頻的輸入頻率
3、設定輸出頻率、相位以及佔空比
4、設定locked訊號的名字
Locked訊號是用來觀察pll輸出時鐘是否和輸入時鐘鎖定。當鎖定時,這個Locked訊號就變為高電平。
5、如果需要,可以在此對之前的設定進行修改並覆蓋
詳細還可以參考這篇文章:
https://blog.csdn.net/weixin_42151221/article/details/103351855
二、例項
1、RTL程式碼
module pll_test(
input sys_clk, //system clock 50Mhz on board
input rst_n, //reset ,low active
output clk_out //pll clock output J8_Pin3
);
wire locked;
/PLL IP call
clk_wiz_0 clk_wiz_0_inst
(
.clk_in1(sys_clk), // IN 50Mhz
// 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
2、模擬程式
`timescale 1ns / 1ps
module vtf_pll_test;
// Inputs
reg sys_clk;
reg rst_n;
// Outputs
wire clk_out;
// Instantiate the Unit Under Test (UUT)
pll_test uut (
.sys_clk(sys_clk),
.rst_n(rst_n),
.clk_out(clk_out)
);
initial begin
// Initialize Inputs
sys_clk = 0;
rst_n = 0;
// Wait 100 ns for global reset to finish
#100;
rst_n = 1;
// Add stimulus here
end
always #10 sys_clk = ~ sys_clk; //5ns一個週期,產生50MHz時鐘源
endmodule
3、模擬結果
可以看到,當輸出頻率穩定之後,locked
訊號會拉高。一般在使用的時候,都會把locked
訊號作為使用該輸出時鐘的模組的復位訊號,因為此時PLL
輸出給該模組的時鐘才算穩定,才預示著真正可以開始正常工作了。
相關文章
- HDL/FPGA學習筆記八:verilog中task與function的使用FPGA筆記Function
- Vivado使用技巧(8):Core Container打包IP核AI
- FFT Vivado IP核實現FFT
- QuartusII呼叫 PLL_IP核方法(Mega Wizard)
- Vivado使用技巧(26):HDL編寫技巧
- FPGA的時鐘IP核知識點FPGA
- Vivado使用技巧(7):使用IP核自帶Testbench進行模擬
- IP核:XDMA學習
- Vivado使用技巧(10):編輯與改寫IP核原始檔
- Nginx效能優化(學習筆記二十五)Nginx優化筆記
- FPGA學習筆記03——UART串列埠FPGA筆記串列埠
- IP協議學習筆記協議筆記
- Vivado使用技巧(24):HDL/XDC中設定綜合屬性
- Vivado使用技巧(11):設定FPGA配置模式FPGA模式
- Vivado DDS IP核使用和模擬(一、單通道訊號發生器)
- modelsim 獨立模擬vivado的IP核及模擬指令碼指令碼
- Python零基礎學習筆記(二十五)——裝飾器Python筆記
- Vivado開發環境,將COE檔案加入IP核ROM中開發環境
- Python機器學習筆記:SVM(2)——SVM核函式Python機器學習筆記函式
- numpy的學習筆記\pandas學習筆記筆記
- Vue學習筆記之Webpack的使用Vue筆記Web
- innodb學習筆記(一) aio的使用筆記AI
- Egg 學習筆記 - 外掛的使用筆記
- Beautiful Soup庫的使用(學習筆記)筆記
- 【學習筆記】Go Modules 使用筆記Go
- webpack 學習筆記:使用 lodashWeb筆記
- TCP/IP學習筆記之協議和郵件TCP筆記協議
- Docker 與 K8S學習筆記(二十五)—— Pod的各種排程策略(上)DockerK8S筆記
- Android學習筆記(建立Menu,Intent的使用)Android筆記Intent
- 深度學習入門筆記——Transform的使用深度學習筆記ORM
- 深度學習入門筆記——DataLoader的使用深度學習筆記
- Jest 測試框架使用的學習筆記框架筆記
- Intel OpenVINO for FPGA(2019 R1.1)使用筆記1IntelFPGA筆記
- Git 簡單使用學習筆記Git筆記
- MySQL學習筆記---入門使用MySql筆記
- webpack 學習筆記:使用 babel(上)Web筆記Babel
- webpack 學習筆記:使用 babel(下)Web筆記Babel
- Gin學習筆記01 框架使用筆記框架