vovado 2014.4 IP核之Clocking Wizard实现分频与倍频

本文介绍如何利用IP核ClockingWizard实现时钟信号的倍频和分频,并分享了在仿真过程中遇到的问题及解决办法。此外,还总结了在编写Verilog代码时需要注意的几个常见事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

承接上文,使用逻辑生成分频更直接的办法是使用IP核中的Clocking Wizard。

博主试图生成20MHz的2倍频和2分频,但是怎么调用都不行,后来看了特权同学的资料照写了一个100MHz的倍频和分频例程,是可以实现的。最后发现是仿真时长设置的有问题。频率越低,时长越长才能看到波形。估计是因为逻辑需要采集一定周期的输入时钟才能确保输出时钟的稳定性。


另贴一些之前写逻辑时候的注意事项

1.顶层函数中不能有参数parameter定义。

2.Function中不能有延时操作。

3.在可综合文件中不能有always后空的块。

4.Case语句中若多条语句符合要求,则只执行最靠前的一条,执行完就跳出case语句。

5.函数至少有一个输入变量。

6.启动任务,任务完成后控制就传回启动过程。如果任务内部有定时控制,则启动的时间可以与控制返回的时间不同。

7.函数的定义蕴含声明了与函数同名的、函数内部的寄存器。

8.函数的定义不能包含有任何的时间控制语句,即任何用#,@wait来标识的语句。

9.函数不能递归调用,除非在声明时使用了关键字automatic,那么该函数将成为自动的或可递归的,即仿真器为每一次函数调用动态的分配新的地址空间。


### Vivado 中 IP Clocking Wizard 的使用配置 Clocking Wizard 是 Xilinx 提供的一个重要 IP ,用于生成各种频率和相位的时钟信号。该 IP 支持多种功能特性,包括但不限于倍频分频以及多路输出等[^1]。 #### 创建 Clocking Wizard 实例 在 Vivado 集成开发环境中创建一个新的项目之后,在 IP Catalog 中可以找到名为 `clk_wiz` 或者 “Clocking Wizard”的条目来启动向导程序。通过这个图形界面工具能够方便快捷地完成参数设定工作并自动生成相应的 RTL 文件及约束文件[^2]。 #### 参数设置说明 - **Input Clock Frequency**: 输入源时钟速率; - **Output Frequencies**: 输出目标时钟列表及其对应的精确度要求; - **Phase Shifts (if any)**: 如果需要的话还可以指定各通道间的相对角度偏移量; - **Jitter Specifications**: 对于特定应用场景下可能存在的抖动性能指标也有相应选项可供调整优化[^3]; ```tcl set_property CONFIG.PRIM_IN_FREQ 100 [get_ips clk_wiz_0] set_property CONFIG.CLKOUT1_REQUESTED_OUT_FREQ 50 [get_ips clk_wiz_0] ``` 上述 Tcl 脚本展示了如何利用命令行方式修改已实例化的 Clocking Wizard 组件属性值。这里设置了输入时钟为 100MHz 并请求第一个输出端口提供半个周期即 50MHz 的方波形脉冲序列作为其输出[^4]。 #### 合成实现注意事项 当完成了所有必要的定制化操作后就可以继续执行综合编译流程直至最终下载比特流到 FPGA 设备上运行测试验证效果了。值得注意的是由于内部采用了锁相环技术因此建议用户仔细阅读官方文档了解有关锁定时间等方面的知识以便更好地评估设计裕度[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值