打印
[FPGA]

玩转Zynq连载22——[ex03] 基于Zynq PL的PLL配置实例

[复制链接]
417|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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指示灯同步闪烁。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

59

主题

60

帖子

2

粉丝