这篇博文,我将根据实验室的项目产生一个PLL IP核,并根据该IP的数据手册来认识这个IP核。
首先给出数据手册的链接:Xilinx PG065 LogiCORE IP Clocking Wizard v4.2, Product Guide
下面正式给出创建过程:
打开ISE Project Navigator——新建工程(New Project)——New source,选择IP(CORE Generator & Architecture Wizard),然后命名你要产生的IP核,点击Next进入IP核产生向导界面:
选择你的IP核:
选择FPGA Features and Design中的Clocking下面的Clocking Wizard,如下图示:
点击Next,进入Summary界面,这是初步总结你的IP核设计:
点击Finish,进入Clocking Wizard页面,正式开始配置你的时钟:
Clocking Wizard将指导你产生一个你需要的IP核,从这个页面中可以看到有很多选择需要自己选择,我们就是根据这些选择来配置适应自己需求的时钟的,那么这些选择都是什么意思呢?那就需要看数据手册了,如果你安装了默认的PDF浏览器的画,点击该界面的下方的Datasheet,会自动弹出该IP的数据手册,通过查看数据手册就可以知道该IP核的所有信息,指导你了解并配置自己的IP核。
下面我们通过数据手册来理解这些选择的含义;
先介绍时钟特点这一块:
从上到下依次介绍:
频率综合(Frequency synthesis),这个特征就是让你可以有多个不同的输出时钟;
相位校准(Phase alignment),这个特征可以让输出时钟的相位锁定为一个参考值,例如器件的输入时钟引脚。
该特征可以使原语需要的功率总量最小化,但可能是以频率、相移、以及占空比精度为代价的。
动态相移(Dynamic phase shift),这个特征可以让你改变输出时钟之间的相位关系。
动态重构(Dynamic reconfiguration),意思大概是设备配置后,使用这个特征就可以改变原语的编程。
从下面这个界面可以看到,如果选择了Phase alignment之后就不能选择这个特征,这意味着什么呢?
从Clocking Wizard可以看到Jitter Optimization下由三个方式可供选择:
选择Balanced可以使软件为抖动优化(jitter optimization)选择合适的带宽(bandwidth);
最小化输出抖动(Minimize output jitter)这个特征可以最小化输出时钟抖动,但是以牺牲功率为代价,并且可能使输出时钟相位错误。
最大化输入抖动滤波(Maximize input jitter filtering),这个特征让输入时钟的抖动更大,但可以影响输出时钟的抖动。
最小化输出抖动(Minimize output jitter)、最大化输入抖动滤波(Maximize input jitter filtering)不能同时有效。
下面进入输入时钟信息栏,输入时钟频率值,这里假设为25MHz,抖动为默认值。
注意后面还有一个source选项,下拉可见由四个选项:
第一个选择的意思是输入时钟为单端的,有一个IBUFG作为输入时钟缓冲;
选择第一个,光标放在上面不动,可以看到提示信息,意思大概为一个IBUFG嵌入主输入时钟中;
如果选择了这个单端输入,则输入端变为这个样子:
第二个为差分输入端,一个IBUFGDS被嵌入主输入时钟中;
如果选择了这个差分输入端,可见输入端变为这个差分输入的样子:
第三个为全局缓冲,一个BUFG被嵌入主输入时钟中;
第四个就是没有buffer呗。
这一页面就看到这里呗,没说的选默认就是了。
注意:如果你不知道这些buff是什么意思,可以参考这篇博文:【FPGA】IBUFG、IBUFGDS、IBUFDS...(这些到底是啥?)
点击next进入下一页:
该页面可以选择输出时钟的频率(Output Freq),相位(Phase)以及占空比(Duty Cycle),驱动(Drives)等,根据自己的需求选择即可。
点击next,进入下一个页面:
可选择的输入输出端口介绍:
复位,有效时可以异步清除原语的内部状态,并且在释放时使原语重新启动锁定序列;
置位时,表示输出时钟稳定且可被下游电路使用;
置位时,表示所选输入时钟不在切换。
其他的慢慢认识吧。
进入下一页面:
这些是对输入的设置,菜鸟就不要动了,动了可能会出问题,前面Wizard的选择设置可能就失效了。
继续下一页:
这一页是对输入输出时钟的总结,可以更改端口名字,但何必呢?
直接进入下一页:
这一页是一个大总结,对生成的文件进行列表显示。
总算看完了,点击Generate就可以产生这个IP核了。
生成成功后的效果是这样的:
选中这个IP核,如下图,双击View HDL Instantiation Template,就可以得到例化模板了:
例化模板复制下来就可以用了,看这个软件写的多贴心(感动)
到底结束吧,这篇博文有点长了,我还准备写一下IP核的架构呢,算了下一篇博文单独写吧。
先贴出来一个图为下一篇博文引个头;
时钟IP核架构地址来了:
LogiCORE IP Clocking Wizard 之 Core Architecture