日志档案

发表于 2007-7-23 11:53:26

4

标签: FPGA  PLL设计  MegaFunction  

FPGA的PLL模块设计

这篇文章介绍的是基于Altera器件(支持PLL的器件有Stratix III,Stratix II,Stratix II GX,Stratix,Stratix GX,Cyclone III,Cyclone II,Cyclone,HardCopy II,HardCopy Stratix),使用Quartus II(6.1)软件。

 

使用FPGA时,要产生需要的特定频率是一件非常简单的事情。一种方法是自己设计对输入的时钟进行倍频和分频。另一种非常简单的方法,使用FPGA自带的PLL,如果运用MegaFunction图形化的设计方法定制PLL模块,仅需几步即可完成。

 

打开MegaWizard Plug-In Manager,在Installed Plug-Ins下,展开I/O,找到ALTPLL模块。如果你没有选择器件,可以在窗口右边最上选择器件。选择要生成模块的程序语言,输入要生成的模块文件的路径和名字。

 

第二步进入到类似web的设定参数窗口,可以点击各个步骤的链接跳到相应步骤去。右上角的About可以看到这个ALTPLL模块的相关信息,Documentation里有模块用户指南、设计参考等参考文档,还可以生成样例波形作为参考。

 

第一步General/Modes。在General栏里设定器件,速度等级,输入频率,还可以将PLL设置在LVDS模式下(需要器件支持)。在PLL type中设置PLL类型(影响补偿模式)。在Operation mode设置PLL的补偿模式:

Use the feedback path inside the PLL:内反馈模式:

  • ■ In Normal Mode:正常模式,内部被补偿的时钟网络的末端相位与时钟输入管脚相同。
  • ■ In Source-Sychronous Compensation Mode:源同步补偿模式,时钟和数据端的相位相同。
  • ■ In Zero Delay Buffer Mode:零延时驱动器反馈模式,PLL外部的被补偿的时钟专用输出管脚的相位与时钟输入管脚相同。
  • ■ With no compensation:无补偿。

Create an ‘fbin’ input for an external feedback (External Feedback Mode):外反馈模式:fbin反馈补偿输入到PLL。输入时钟管脚和反馈时钟管脚的延迟最小。

Which output clock is to be compensated?:选择要补偿的管脚。

 

下一步(Scan/Lock)设置PLL控制信号:

  • ■ pllena:PLL使能信号
  • ■ areset:异步复位信号
  • ■ pfdena:相位/频率检测器的使能信号
  • ■ locked:PLL的锁定信号输出

 

直接跳到2 Output Clocks。clk c0~c5是5个时钟信号,选中Use this clock来启用他们。选择clk c0,为c0设置参数。最简单的方法是使用Enter output clock frequency直接输入要输出的频率。也可以选择Enter output clock parameters输入multiplication factor(倍频因子)和division factor(分频因子)。输入Clock phase shift(相移),Clock duty cycle(占空比)。More Details可以设置更详细的参数。

 

3 Simulation Library选择模拟时使用的库。

 

4 Summary可以看到将要生成的文件。

 

MegaFunction的ALTPLL模块实际是使用代码,通过调用altera_mf库中的PLL模块实现PLL的。打开生成的.vhd文件可以看到调用情况。

PLL的调用代码及部分注释zip

系统分类: CPLD/FPGA   |   用户分类: FPGA设计   |   来源: 原创   |   【推荐给朋友】

    阅读(1902)    回复(2)  

投一票您将和博主都有获奖机会!

  • cooladai

    2007-7-24 0:35:48

    嗯,我还需要多多努力才行啊

  • dby

    2007-8-15 15:49:21

    那怎么把这个模块拿来用呢?

    是不是和普通模块一个用法

    即:用原理图编辑器的话,当成一般的模块一样,只是输入要接到全局clk上?