第一步,用ise建立工程 ,這裡不再贅述
第二步,建立pll工程,必須建立ip核工程才可以呼叫pll。ip核在tools目錄下。這裡需要注意在配置完選型,需要將語言修改為verilog。
第三步,雙擊clocking,進行需求配置。
第四步,老師課內配置如下
注意,沒有使用pll中的復位,只是使用了鎖存位即locked
第五步,將生成的ipcord記住所在檔案位置,找到.xco檔案新增到工程中。接著要使用模組就需要有乙個頂層模組。new source新增格式為verilog module 找到ip核下的.veo檔案這個屬於例化模板。new source 檔案需要用到一下語言。例化到new模組中。
clk_div_4 instance_name
(// clock in ports
.clk_in1(clk_in1), // in
// clock out ports
.clk_25m(clk_25m), // out
.clk_25m_90(clk_25m_90), // out
.clk_100m(clk_100m), // out
.clk_33(clk_33), // out
// status and control signals
.locked(locked)); // out
附本人的new source程式
module div_4_25m(
input wire sclk,
input wire rst_n,
output wire clk_25m,clk_25m_90,clk_100m,clk_33m,
output wire locked
);clk_div_4 instance_name
(// clock in ports
.clk_in1(sclk), // in
// clock out ports
.clk_25m(clk_25m), // out
.clk_25m_90(clk_25m_90), // out
.clk_100m(clk_100m), // out
.clk_33(clk_33m), // out
// status and control signals
.locked(locked)); // out
endmodule
第六步,對模組進行**,檢查是否達到要求。
附本人當時寫的測試檔案(直接使用ise新增**檔案會簡單很多)
`timescale 1ns/1ns
module tb_clk_25mm;
reg sclk;
wire clk_25m,clk_25m_90;
wire clk_100m,clk_33m;
wire locked;
initial
begin
#200 sclk=0;
endalways #10 sclk=~sclk;
clk_25mm clk_25mm_inst(
.sclk (sclk),
.clk_25m (clk_25m),
.clk_25m_90 (clk_25m_90),
.clk_100m (clk_100m),
.clk_33m (clk_33m),
.locked (locked)
); endmodule
PLL 鎖相環 電路原理
最近在看系統時鐘,網上找了幾篇關於鎖相環資料,拼了一篇文件,覺得自己看明白了,分享出來 一 pll 鎖相環 電路原理 在通訊機等所使用的振盪電路,其所要求的頻率範圍要廣,且頻率的穩定度要高。無論多好的lc振盪電路,其頻率的穩定度,都無法與晶體振盪電路比較。但是,晶體振盪器除了可以使用數位電路分頻以外...
PLL 鎖相環 電路原理
最近在看系統時鐘,網上找了幾篇關於鎖相環資料,拼了一篇文件,覺得自己看明白了,分享出來 一 pll 鎖相環 電路原理 在通訊機等所使用的振盪電路,其所要求的頻率範圍要廣,且頻率的穩定度要高。無論多好的lc振盪電路,其頻率的穩定度,都無法與晶體振盪電路比較。但是,晶體振盪器除了可以使用數位電路分頻以外...
學習日記 PLL鎖相環
pll 就是用乙個壓控振盪器 vco voltage controlled oscillator 產生乙個振盪頻率,經過 n 倍分頻 n 包括 1 的正整數 後在鑑相器上與被鎖的已知頻率比較,比較結果波形通過低通濾波產生乙個電壓,然後用這個電壓控制 vco 去改變振盪頻率,直到分頻的振盪頻率與已知頻...