EDA Tools:
1、Quartus II 13.1(64-bit)
2、Modelsim SE-64 10.1c
Time:
2016.05.05
-----------------------------------------------------------------------------------
经常看到有人在纠结PLL仿真事项,由于自己也从未试过。特作试验。
一、PLL设置:
----------------------------------------
input signals
----------------------------------------
inclk0:输入时钟,设置27M
areset:异步输入,高有效复位
----------------------------------------
----------------------------------------
output signals
-------------------------------------------------
c0:输出时钟,设置74.25M,且与输入时钟同相
locked:输出锁定,高电平表示输出时钟已经锁住
-------------------------------------------------
二、测试代码如下:
1 `timescale 1ns/1ps 2 3 module tb; 4 5 reg inclk0 = 0; 6 reg areset = 1; 7 8 always #18.519 inclk0 = ~inclk0; 9 10 initial begin11 #10;12 repeat(20) @(posedge inclk0);13 areset <= 0;14 end15 16 wire c0;17 wire locked;18 19 20 pll_74p25m pll_74p25m_inst21 (22 .areset ( areset ),23 .inclk0 ( inclk0 ),24 .c0 ( c0 ),25 .locked ( locked )26 );27 28 29 initial begin30 #10;31 repeat(200) @(posedge inclk0);32 $stop;33 end34 35 36 endmodule
三、仿真波形
简要分析波形:
1、从复位撤销到时钟锁住输出,仅仅经历4个clock(当然,这只是个参考值,不一定所有都是这个数吧);
2、只有在输出时钟出来,locked信号才拉高。所以,可以使用它作为系统的复位信号(或源);
3、同相的参考点是输入时钟的上升沿。
-----------------------------------------------------------------------------------------------
over!