QuartusII调用 PLL_IP核方法(Mega Wizard)
【基本信息】
要求:调用PLL—IP核,50Mhz晶振输入,输出四路时钟不同信号:100Mhz,25Mhz,50Mhz(90°相位),50Mhz(20%占空比)。
芯片型号:cyclone Ⅳ EP4CE10F17C8
平台工具:Quartus II 15.0 (64-bit)、Modelsim SE-64 10.4
【PLL_IP核简介】
IP核:ASIC或FPGA中预先设计好具有某种功能的电路模块,参数可修改,目的在于提高开发效率。
QuartusII软件下IP核调用方式:Mega Wizard插件管理器(常用)、SOPC构造器、DSP构造器、Qsys设计系统例化。

PLL(Phase Lockded Loop,锁相环)常用IP核之一,可对输入时钟信号进行任意分频、倍频、相位、占空比调整。Altera 模拟锁相环,优点:信号稳定度高,相位连续可调,延时连续可调;缺点:受温度、电磁辐射影响,可能失锁。
【PLL_IP核配置】
进入QuartusII,直接打开Mega Wizard插件管理器或者打开工具菜单栏下IP—catalog,PLL-ALTPLL。

1、配置第一步进行参数/模式设置。

注意模式区别:
源同步:使用于高速数据接口,若数据和时钟同时到达输入管脚,那么在 I/O 单元输入寄存器的数据与时钟端口,数据与时钟之间的相位关系保持不变。
无补偿:PLL 不对任何时钟网络进行补偿 (允许延迟),相对 PLL 时钟输入,PLL 内部以及外部时钟输出均有相位偏移。
标准:内部时钟是与输入时钟管脚相位对齐 ,若连接外部时钟输出管脚,则外部时钟输出管脚会产生相对于时钟输入管脚的相位延迟 ,标准模式的时钟最好作用在寄存器上。
零延迟缓冲:外部时钟输出管脚与时钟输入管脚是相位对齐的,没有延迟,作用输出不建议作用寄存器。
2、配置信号输入和锁定输出设置:

3、Bandwidth/CSS和时钟切换这些高级属性配置跳过即可。
4、PLL Reconfiguration动态/动态相位重配置跳过。
5、输出时钟信号配置(重点),共可输出五路信号,输出勾选使能,按需配置频率、占空比、相位。

配置完成,继续下一步,如果采用modelsim外部仿真软件的话,可以看到所需的仿真库。

最后确认页面,左边图可看到PLL_IP产生了四路时钟信号和一路锁定信号,时钟信号参数类型很清楚。最后需要勾选inst.v实例化文件,方便后面调用IP核。

【PLL_IP核调用】
1、IP核调用
pll_ip_inst.v文件就是PLL_IP核实例模块,这里简单写个顶层文件调用即可,可以通过引脚配置上机测试下输出。
`module ip_pll(
input sys_clk,
output clk_100Mhz ,
output clk_25Mhz ,
output clk_50Mhz_90deg ,
output clk_50Mhz_20DC ,
output locked_sig
);
pll_ip pll_ip_inst (
.inclk0 ( sys_clk ),
.c0 ( clk_100Mhz ),
.c1 ( clk_25Mhz ),
.c2 ( clk_50Mhz_90deg ),
.c3 ( clk_50Mhz_20DC ),
.locked ( locked_sig )
);
endmodule
对工程文件全编译,可以看到(下图),芯片资源的使用情况,EP4CE10F17C8有两个PLL,其他逻辑电路没有使用。

2、使用技巧
PLL_IP编辑好,后期修改有两种方式:第一种是在Quartus主页左上方Project Navigator-IP Components双击打开目标IP核,还有一种就是在Mega Wizard插件管理器,选择编辑现有IP核。

如果不小心把IP核删除了,只需重新添加目标IP核文件,后缀.qip(主文件)添加应用。需要复制现有IP核,只需打包IP核文件,后缀包括.v;inst.v;.qip;.ppf;greybox_tmp五个文件,然后添加应用到工程文件。
【PLL_IP核仿真】
在仿真结果中,首先可以观察到锁相环的锁定过程。在这个过程中,锁相环的输出信号(locked信号)会保持低电平状态,表示锁相环尚未锁定,各时钟信号输出会处于不定态,它们的值会随机变化或保持不变。稳定后,很明显看到频率、相位、占空比的调整情况。

Ps:如需要工程重要的文件,在个人博客首页Gitee仓库内可以得到。
QuartusII调用 PLL_IP核方法(Mega Wizard)的更多相关文章
- 高介分类:核方法与支持向量机(SVM)
数据模型:并不是简单地二维数据,多个维度或者对象的数据聚合起来 { persion1's attr1:value1,...,persion1's attrN:va ...
- SNF快速开发平台MVC-EasyUI3.9之-WebApi和MVC-controller层接收的json字符串的取值方法和调用后台服务方法
最近项目组很多人问我,从前台页面传到后台controller控制层或者WebApi 时如何取值和运算操作. 今天就都大家一个在框架内一个取值技巧 前台JS调用代码: 1.下面是选中一行数据后右键点击时 ...
- js调用php和php调用js的方法举例
js调用php和php调用js的方法举例1 JS方式调用PHP文件并取得php中的值 举一个简单的例子来说明: 如在页面a.html中用下面这句调用: <script type="te ...
- c# 调用c++DLL方法及注意事项
引用命名空间 using System.Runtime.InteropServices 调用方法: 一.静态加载 用DllImprot方式来加载c++DLL.如下格式: //对应c++方法 //voi ...
- JavaScript调用函数的方法
摘要:这篇文章详细的介绍了Javascript中各种函数调用的方法及其原理,对于理解JavaScript的函数有很大的帮助! 一次又一次的,我发现,那些有bug的Javascript代码是由于没有真正 ...
- WPF中实例化Com组件,调用组件的方法时报System.Windows.Forms.AxHost+InvalidActiveXStateException的异常
WPF中实例化Com组件,调用组件的方法时报System.Windows.Forms.AxHost+InvalidActiveXStateException的异常 在wpf中封装Com组件时,调用组件 ...
- Android NDK 初探,生成so文件以及调用so文件方法
因为最近业务上涉及安全的问题 然后有一些加密解密的方法和key的存储问题 本来想存储到手机里面,但是网上说一般敏感信息不要存储到手机Sdcard上 而且我这个如果从网络建立通信获取的话,又太耗时,所以 ...
- Office word 2013中直接调用MathType的方法
Office word 2013中直接调用MathType的方法 | 浏览:4403 | 更新:2014-02-20 14:45 | 标签: word 使用Office word 2013的用户肯定早 ...
- Lua 调用 Opencv 的方法
Lua 调用 Opencv 的方法 最近想用 Lua 调用 Opencv 进行相关像素级操作,如:bitwise_and 或者 bitwise_or,从而完成图像 IoU 的计算. 那么,怎么用 Lu ...
- asp.net 手工调用 WS(Get)方法:
asp.net 手工调用 WS(Get)方法: 通过手工HttpWebRequest,HttpWebResponse来模拟调用.核心代码:string strurl="http://loca ...
随机推荐
- CSS:注册页面的编写练习
最终效果图: html文件: <!-- * @Qusetion: * @Author: 一届书生 * @Date: 2020-04-07 08:17:36 * @LastEditTime: 20 ...
- leetcode:1380. 矩阵中的幸运数
1380. 矩阵中的幸运数 给你一个 m * n 的矩阵,矩阵中的数字 各不相同 .请你按 任意 顺序返回矩阵中的所有幸运数. 幸运数是指矩阵中满足同时下列两个条件的元素: 在同一行的所有元素中最小 ...
- 基础 IO (Linux学习笔记)
基础IO 1.重谈文件 空文件在磁盘也要占据空间 文件 = 内容 + 属性 文件操作 = 对文件内容+对属性 or 对文件内容加属性 标定一个文件,必须使用文件路径加文件名[唯一性] 如果没有指明对应 ...
- 力扣438(Java)-找到字符串中所有字母异位词(中等)
题目: 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引.不考虑答案输出的顺序. 异位词 指由相同字母重排列形成的字符串(包括相同的字符串). 示例 1: ...
- 五分钟学会使用 go modules(含在家办公使用技巧)
导读:go modules 是 golang 1.11 新加的特性.如今 1.13 都已经发布了第 7 个小版本了,几乎所有大项目均已开始使用,这自然也包括 Kubernetes 生态中的众多项目.笔 ...
- [FAQ] 修改了Dockerfile 之后,运行 docker-compose up --force-recreate 时还是报之前构建时的错误?
因为 Docker Compose 的 --force-recreate 选项只会强制重新创建容器,而不会重新构建镜像. 因此,如果你修改了Dockerfile,需要确保重新构建新的镜像. 你可以 ...
- [GPT] 网页中某些dom内容是通过 js 数据异步渲染的,nodejs 怎么获取网页解析这些数据
要处理使用JavaScript异步渲染内容的网页,您可以在 JavaScript 蜘蛛中使用 Puppeter 或 Playwright 等无头浏览器来获取网页,然后与动态渲染的内容进行交互. 下 ...
- [PHP] 有关PHP浮点数默认显示位数 precision 以及如何调整
PHP 以浮点数显示的有效位数默认是 14 位.-1 表示将使用一种增强的算法来四舍五入这些数字. 如果想显示更长的浮点位数,可以设置如:ini_set('precision', 40); 有两点需要 ...
- K8s集群中部署SpringCloud在线购物平台(一)
一.安装k8s高可用集群 主机名 IP 配置 网络 master控制节点 192.168.10.10 centos 7.9 4核4G 桥接 node1工作节点 192.168.10.11 centos ...
- vue3 快速入门系列 —— 状态管理 pinia
其他章节请看: vue3 快速入门 系列 pinia vue3 状态管理这里选择 pinia. 虽然 vuex4 已支持 Vue 3 的 Composition API,但是 vue3 官网推荐新的应 ...