可以复制上一个实例cy4ex7的整个工程文件夹,更名为cy4ex8。然后在quartus ii中打开这个新的工程。
cyclone iv的pll输入一个时钟信号,最多可以产生5个输出时钟,输出的频率和相位都是可以在一定范围内调整的。
下面我们来看本实例如何配置一个pll硬核ip,并将其集成到工程中。如图8.18所示,在新建的工程中,点击菜单“toolsàmegawizard plug-in manager”。
图8.18megawizard菜单
如图8.19所示,选择“creat a new custommegafunction variation”,然后点击next。
图8.19 新建ip核向导
接着选择我们所需要的ip核,如图8.20所示进行设置。
●在“select a megafunction from the list below”下面选择ip核为“i/o à altpll”。
●在“what device family will you be using”后面的下拉栏中选择我们所使用的器件系列为“cyclone iv e”。
●在“what type of output file do you want to create?”下面选择语言为“verilog”。
●在“what name do you want for the output file?”下面输入工程所在的路径,并且在最后面加上一个名称,这个名称是我们现在正在例化的pll模块的名称,我们可以给他起名叫pll_controller,然后点击next进入下一个页面。这里它所在的路径,实际上是我们在工程文件夹cy4ex8下面创建的ip_core文件夹和其下的pll文件夹。
图8.20 选择altpll为ip核
接着来到了pll的参数配置页面,如图8.21所示进行设置。然后点击next进入下一个页面。
●在“what device speed grade will you be using?”后面选择“8”,即我们使用的器件的速度等级。
●在“what is the frequency of the inclk0 input?”后面选择“25mhz”,即我们输入到该pll的基准时钟频率。
图8.21 pll的general配置页面
input/lock页面中,如图8.22所示进行设置,接着点击next进入下一个页面。
●勾选“create an ‘areset’ input to asynchronously reset the pll”,即引出该pll硬核的’areset’信号,这是该pll硬核的异步复位信号,高电平有效。
●勾选“create ‘locked’ output”,即引出该pll硬核的’locked’信号,该信号用于指示pll是否完成内部初始化,已经可以正常输出了高电平有效。
图8.22 pll的input/lock配置页面
bandwidth/ss、clock switchover和pllreconfiguration页面不用设置,默认即可。直接进入ouputclocks页面,如图8.23所示,这里有5个可选的时钟输出通道,通过勾选对应通道下方的usethis clock选项开启对应的时钟输出通道。可以在配置页面中设置输出时钟的频率、相位和占空比。这里是 c0通道的设置。
●勾选“use this clock”,表示使用该时钟输出信号。
●输入“enter output clock frequency”为“12.5mhz”,表示该通道输出的时钟频率为12.5mhz。
●输入“clock phase shift”为“0 deg”,表示该通道输出的时钟相位为0 deg。
●输入“clock duty cycle(%)”为“50.00%”,表示该通道输出的时钟占空比为50%。
图8.23 pll的clk c0配置页面
和c0的配置一样,我们可以分别开启并且配置c1、c2、c3,这些时钟虽然这个例程暂时用不上,但是后续的例程将会使用到。
●c1的时钟频率为25mhz,相位为0deg,占空比为50%。
●c2的时钟频率为50mhz,相位为0deg,占空比为50%。
●c3的时钟频率为100mhz,相位为0deg,占空比为50%。
配置完成后,最后在summary页面,如图8.24所示,勾选上*_inst.v文件,这是一个pll例化的模板文件,一会我们可以在工程目录下找到这个文件,然后打开它,将它的代码复制到工程中,修改对应接口即可完成这个ip核的集成。
图8.24 pll的summary配置页面
点击finish完成pll的配置。工程中若弹出如图8.25所示的对话框,勾选“automaticallyadd quartus ii ip files to all projects”选项后,点击yes。
图8.25 添加ip核文件到工程
此时,我们可以来到pll文件夹下,如图8.26所示,打开pll_controller_inst.v文件,它是这个pll ip核的例化模板。
图8.26 pll ip核生成文件
pll_controller_inst.v如图8.27所示。复制文件中的内容,将()内的信号名改为我们连接到这个模块的接口信号名就可以了。
图8.27 pll ip核例化模板
融合ECA机制与DenseNet201水稻病虫害识别方法
海康威视发布高光谱水质多参数监测仪 索尼2021第三季度营业利润涨15%
Python社区的指导委员会治理方案引领社区走向何方
新唐科技2Vrms线路驱动器简介
华为正式发布智慧屏S系列
FPGA学习:PLL硬核IP的配置和创建
2017年中国LED封装市场前十出炉 木林森超过日亚化学跃居第一
三相用电不平衡的危害?
IBM云计算服务助力NOVIS拓展全球业务
机器视觉检测设备的优势及应用
电源开关轻触开关拨动开关集成库合集
正弦波发生电路原理
怎样用Arduino读取和写入外部EEPROM的数据
Tina Linux图形系统开发指南
德索fakra线束耐高压性能要采取的4个措施
比特币价格飙升单价突破2000美元 全因勒索病毒助力?
三星华为暂停向高通支付专利费 要求重新谈判费率
常州移动始终战斗在一线,守护常州市民网络无忧
HM-JSD土壤紧实度测量仪技术参数
应用于新型固态微波炉中的开关电源解决方案