PLL详细设计方案

1.      PLL简介:

PLL(Phase Locked Loop)为锁相回路或锁相环,用来统一整合时脉讯号,使内存能正确的存取资料。PLL用于振荡器中的反馈技术。

锁相环是一种反馈电路,其作用是使得电路上的时钟和某一外部时钟的相位同步。PLL通过比较外部信号的相位和由压控晶振(VCXO)的相位来实现同步的,在比较的过程中,锁相环电路会不断根据外部信号的相位来调整本地晶振的时钟相位,直到两个信号的相位同步。

2.      PLL规格:

输出

100M

20M

80M

 

3个时钟频率

3.      实现原理

使用ALTERA PLL例化得到。

 

4.      Verilog HDL源代码

Verilog HDL代码为:

modulePLL_Inst (

              //input

              sys_clk        ,

              sys_rst_n      ,

 

              //output

              clk_100M       ,

              clk_20M        ,

              clk_80M       

              // data_out

              );

 

//inputports

 

input                    sys_clk             ;    //system clock;

input                    sys_rst_n           ;   //system reset, low is active;

 

 

//outputports

 

output                   clk_100M            ;   //output clock 100M; 

output                   clk_20M             ;    //output clock 20M; 

output                   clk_80M             ;    //output clock 80M; 

//output                   clock_enbale        ;

 

//regdefine

 

//wiredefine

 

wire                     clk_100M_tmp        ;   //wire clock 100M; 

wire                     clk_80M_tmp         ;   //wire clock 20M; 

wire                     clk_20M_tmp         ;   //wire clock 80M; 

 

wire                     clk_100M            ;   //wire clock 100M; 

wire                     clk_80M             ;    //wire clock 20M; 

wire                     clk_20M             ;    //wire clock 80M; 

 

 

//parameterdefine

parameterWIDTH = 8;

parameterSIZE  = 8;

 

/*******************************************************************************************************

**                              Main Program   

** 

********************************************************************************************************/

 

//instancethe PLL

PLL   PLL_U0   (

                     .areset  (sys_rst_n        )             ,

                     .inclk0  (sys_clk          )             ,

                     .c0      (clk_100M_tmp     )             ,

                     .c1      (clk_20M_tmp      )             ,

                     .c2      (clk_80M_tmp      )             ,

                     .locked  (clock_enbale     )            

                     );

 

 

//enbalethe clock when the pll is locked

 

assignclk_100M = (clock_enbale == 1'b1)? clk_100M_tmp : 1'b0;

assignclk_80M  = (clock_enbale == 1'b1)?clk_80M_tmp  : 1'b0;

assignclk_20M  = (clock_enbale == 1'b1)?clk_20M_tmp  : 1'b0;

 

endmodule

//endof RTL code   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值