Vivado中PLL IP核例化

更多精彩内容,请微信搜索“FPGAer俱乐部”关注我们。

在开发PL时一般都会用到分频或倍频,对晶振产生的时钟进行分频或倍频处理,产生系统时钟和复位信号,这是同步时序电路的关键,这时就需要使用到时钟向导IP,下面就介绍一下在vivado中进行PL开发时调用IP的方法。
    首先打开vivado,新建一个RTL项目。
    点击导航窗口上的IP Catalog 选项,如图一所示:

图一
     在search处搜索自己想要的IP核的名字,例如输入clock就会找到Clocking Wizard 这个IP核,如图二所示:
图二
    双击Clocking Wizard 这个IP核,就能弹出配置窗口,按自己的需要配置好IP核后,点击ok,会出现下面的窗口,如图三所示:
图三
    点击Generate,生成IP核,然后在source窗口就会出现一个文件,如下图4所示:
图四
    然后我就按照一般的写verilog的方法对这个IP进行例化,就是打开clk_wiz_0.v文件,将里面的端口定义复制到顶层文件当中,然后进行例化,但是这样做始终会报错,在顶层文件中不能识别这个IP,如下图五所示,注意下图红色标记部分,照理说是正确例化了,但是顶层文件那儿始终是问号。
图五
    然后我又重新生成了一次IP核,还是不行,经过查阅资料,我终于找到了正确的例化方法,在生成IP核后,在source窗口的下方会出现一个IP source的标签,如下图六所示:
图六
    点击这个标签,然后你就会发现你生成的IP核,展开它,然后展开Instantiation Template,你会发现一个*.veo文件,双击打开它,把里面的没被注释的程序复制到顶层文件中,如图七所示:
图七
      保存好顶层文件后,你会发现,我们生成的IP核就成了顶层文件的下级文件了,问号也就消失了,IP核成功添加,如图八所示:
图八

本文转载自:http://xilinx.eetrend.com/article/12726,如涉及侵权,请私信小编删除。

============华 丽 的 分 割 线============


想加入我们FPGA学习交流群吗?可以长按或扫描以下二维码,审核通过后我们邀请您加入

这些微信群旨在打造一个提供给FPGA工程开发人员及兴趣爱好者(统称“FPGAer”)进行技术交流、答疑解惑和学习的平台。而且我们也将会通过网络举办FPGA技术讲座,分享相关研究文献 



了解更多FPGA知识可以长按或扫描以下二维码关注FPGAer俱乐部



### VivadoPLL IP 的配置与使用 在 FPGA 设计中,Vivado 提供了强大的工具来帮助用户完成 MMCM 和 PLL 的配置。以下是关于如何在 Vivado 中配置和使用 PLL IP 的具体说明。 #### 配置 PLL IP 为了创建并配置 PLL IP,在 Vivado 软件中可以按照以下方式操作: 1. **打开 IP Catalog** 在 Vivado 主界面中,导航到左侧栏中的 `IP Catalog`,输入关键词 `clock` 或者直接搜索 `Clocking Wizard` 来定位所需的 IP [^3]。 2. **启动 Clocking Wizard 工具** 找到 `Clocking Wizard` 后双击它以启动该向导程序。这一步会引导用户进入具体的配置页面。 3. **设置基本参数** 在 Clocking Wizard 界面中,需要定义以下几个主要部分: - 输入时钟频率 (`Input clock frequency`)。 - 输出时钟的数量及其各自的目标频率、相位偏移以及占空比等属性[^2]。 4. **高级选项调整** 如果设计需求涉及更复杂的场景,则可以通过进一步探索如下特性来进行微调: - 使用锁存信号(Locked Signal),用于指示 PLL 是否已成功锁定至目标状态。 - 设置重置行为模式,比如异步还是同步复位机制[^4]。 #### 实 PLL IP 当完成了上述所有必要的设定之后,下一步就是将所生成的 HDL 文件集成进整个项目当中去。下面展示了一个典型的 Verilog 代码片段作为子: ```verilog // Example instantiation of a PLL core generated by the Xilinx Vivado tool. clk_wiz_0 your_instance_name ( // Clock outputs: these are driven from internal oscillators within the PLL block. .clk_out1(your_clk_output_signal_1), .clk_out2(your_clk_output_signal_2), // Control/status inputs & outputs: .resetn(system_reset_n), // Active low asynchronous reset signal applied to all clocks inside this module. .locked(pll_lock_status), // Indicates whether or not the feedback loop has achieved phase lock. // Primary reference input port(s). .clk_in1(reference_clock_input) // External source feeding into the primary path through which synchronization occurs. ); ``` 这段模板展示了如何实Vivado 自动生成的一个名为 `clk_wiz_0` 的模块,并连接各个端口到实际硬件资源上。 #### 总结 通过以上步骤即可顺利完成基于Xilinx平台下的PLL初始过程;同时借助于图形的交互流程极大简了传统手动编写RTL描述文件的工作量。最终得到满足特定应用场景下对于频率转换等方面严格要求的理想解决方案[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值