1 概述
本实例通过PLL产生的不同频率的时钟,分别驱动3个LED指示灯闪烁一样的频率。本实例的重点其实不是LED,而是IP核的应用,当然,仅以PLL IP核为例。
2 模块化设计
参考文档《玩转Zynq-基础篇:基于FPGA的模块化设计.pdf》。
3 PLL IP核添加配置
3.1Vivado标准IP核概述
我们常说的IP核,也就是知识产权(Intellectual Property),是那些己验证的、可重利用的、具有某种确定功能的设计功能模块。IP核一般分为软IP(soft IP core)、固IP(firm IP core)和硬IP(hard IP core)。软IP是用某种高级语言来描述功能块的行为,但是并不涉及用什么电路和电路元件实现这些行为。固IP除了完成软IP所有的设计外,还完成了门电路级综合和时序仿真等设计环节,一般以门电路级网表形式提交用户使用。硬IP则是完成了综合的功能块,已有固定的拓扑布局和具体工艺,并己经经过工艺验证,具有可保证的性能。设计深度愈深,后续工序所需要做的事情就越少,但是灵活性也就越小。
在Xilinx的FPGA器件中,IP核设计是非常重要并且必不可少的一部分,应该说,前述的软IP、固IP和硬IP,在我们Zstar板载的Zynq上都能够找到踪影。而对于Vivado来说,对于Xilinx或者其第三方合作伙伴提供的,已经集成在Vivado工具界面中供设计者调用的IP,我们姑且可以称之为标准IP核;而对于Vivado未集成的,第三方或者用户自己开发设计的IP核,我们则称之为用户自定义IP核。
对于Vivado中集成的IP核,可以点击Vivado菜单Window --> IP Catalog查看。
在Vivado主视窗中,IP Catalog --> Cores中,列出了Vivado已经集成的分类IP核,点击各个分类前的+号,可以查看具体分类下都有哪些可用的IP核。
对于一般的IP核,先找到所需要的IP核,然后双击IP核弹出配置页面,配置完成后输出各类IP核相关设计文件,在用户设计中只要例化IP核模块就可以了。
下面我们以zstar_ex04实例的PLL IP核的配置为例,看看如何添加配置Vivado中集成的标准IP核。
3.2 PLL IP核配置实例
如图所示,点击Flow Navigator面板下的“Project Manager -> IP Catalog”。
图 IP Catalog菜单
如图所示,弹出的IP Catalog面板中列出了所有Vivado自带IP核的分类列表。
图 IP Catalog面板
如图所示,在“FPGA Features and Design -> Clocking”分类展开后,可以看到名为Clocking Wizard的IP核,通过这个IP核,我们可以配置一个PLL用于对FPGA外部输入时钟做各种分频或倍频处理。点击Clocking Wizard后将弹出相应的配置页面。
图 Clocking Wizard IP核
弹出的第一个配置页面如图所示,这里的Primitive可以选择“PLL”,然后在时钟频率(Input Clock Information)的Primary一行中设定我们的输入时钟频率(Input Frequency)为25MHz即可。
图 Clocking Options配置页面
接着在Output Clocks配置页面中,如图所示,勾选clk_out1/2/3这3个时钟,分别设置其输出频率为25MHz、50MHz、100MHz。同时勾选控制信号reset和locked的,并且它们是高电平有效(Active High)。
图 Output Clocks配置页面
接下来几个页面不需要做配置更改,直接点击OK完成PLL的配置。
配置生效后,我们可以切换到Sources面板下方的IP Sources这个子页面中,如图所示,出现了名为clk_wiz_0的IP核,即我们刚刚配置添加的IP核。可以点击展开它,在“Instantiation Template”下方的“clk_wiz_0.veo”文件就是例化模板,可以双击打开它。
图 查看例化模板
如图所示,可以复制这个PLL的例化模板,在我们的工程中相应修改外部接口。
图 PLL例化模板
关于这里PLL模块的接口定义如表所示。
信号名
|
方向
|
功能描述
|
clk_in1
|
输入
|
PLL模块的输入时钟信号,即所有输出时钟的基频。
|
clk_out1
|
输出
|
PLL模块的输出时钟1。
|
clk_out2
|
输出
|
PLL模块的输出时钟2。
|
clk_out3
|
输出
|
PLL模块的输出时钟3。
|
reset
|
输入
|
PLL模块的输入复位信号,高电平有效。
|
locked
|
输出
|
PLL的锁定指示信号,高电平有效。即该信号高电平时,表示PLL输出时钟都已经正常输出。
|
注:方向是相对PLL模块而言的。
4 PLL IP核的移植
参考文档《玩转Zynq-工具篇:Vivado中IP核的移植.pdf》。
5 板级调试
参考文档《玩转Zynq-环境篇:XilinxPlatformCableUSB下载器使用指南》,将...\project\zstar_ex03\zstar.runs\impl_1路径下的zstar.bit文件烧录到Zynq中。
看到的效果D1、D2和D3这3颗LED指示灯同步闪烁。
此内容由EEWORLD论坛网友ove学习使我快乐原创,如需转载或用于商业用途需征得作者同意并注明出处