Xilinx FPGA配置clocking时钟动态相位输出

本文介绍在Vivado2017.3环境下,使用Kintex7器件通过动态相位偏移(Dynamic Phase Shift)功能调整时钟输出相位的方法。通过设置ip核并使用psen、psincdec等信号实现相位控制,最终完成相位偏移。文章提供仿真波形,展示相位偏移效果。

开发平台基于Vivado2017.3,器件使用的是Kintex7。

先贴个时序图:

如何动态配置clocking输出时钟相位,首先在ip核设置界面,勾选Dynamic Phase Shift,在左侧接口总览里面可以看到多出来4个信号,psclk:用于相移控制信号的驱动时钟,psen:控制相位偏移的使能信号,psincdec:用于相位正负偏移的信号,1表示正向偏移,0表示负向偏移。最后psdone是相位偏移完成标志信号。权威的接口说明可以自行查阅xilinx 官方手册pg065。

标题

在第二页输出时钟最后勾选Use Fine PS,

标题

关注一下VCO的频率,一个psen高脉冲,输出相位偏移1/56个VCO周期。

标题

然后例化一下,写个testbench,我看clocking这个ip核的example中,psclk的频率设置的是100Mhz。仿真使用的Vivado自带的仿真器,因为Modelsim仿真时,psdone信号死活不拉高,估计是有BUG。

仿真波形如下,一个psen,输出时钟相位偏移20ps。刚好等于1/891Mhz/56

标题
标题
### 使用Vivado中的时钟IP #### 创建项目并配置环境 当使用 Vivado 设计工具进行 FPGA 开发时,创建新项目是第一步。确保选择了合适的版本,比如 Vivado 2020.2 版本,在启动界面点击“create Project”以建立新的工程[^2]。 #### 添加时钟IP 为了利用内置的时钟IP功能,可以在 IP Catalog 中找到 Clocking Wizard 或其他与时钟相关的 IP 。通过搜索框定位所需的时钟组件,并将其加入到设计中。对于复杂的时序需求,Clocking Wizard 提供了灵活的参数设置选项来满足特定的应用场景[^1]。 ```tcl # 打开 IP catalog 并添加 clocking wizard IP set clk_wiz [ create_ip -name clk_wiz -vendor xilinx.com -library ip -module_name my_clk_gen ] ``` #### 配置时钟属性 一旦添加了时钟IP之后,就可以对其进行详细的配置。这包括但不限于输入频率、输出频率以及相位调整等重要参数。这些都可以在图形化界面上直观操作,也可以通过 Tcl 命令行脚本来自动化这一过程。 ```tcl # 设置时钟生成器的具体参数 set_property CONFIG.PRIM_IN_FREQ.VALUE_SRC USER \ [ get_ips my_clk_gen ] set_property CONFIG.CLKOUT1_REQUESTED_OUT_FREQ.Value 100 \ [ get_ips my_clk_gen ] ``` #### 实现主时钟约束 完成上述步骤后,还需要定义适当的时钟约束条件,以确保整个系统的同步性和稳定性。可以通过 XDC 文件指定具体的时钟信号及其特性,如周期时间和抖动范围等。这样做的目的是让综合工具能够理解设计意图,并据此优化布局布线策略。 ```xdc # 定义外部输入时钟 create_clock -period 10.000 -name sys_clk [get_ports sys_clk] # 对于由内部PLL产生的时钟,则需关联至相应端口 create_generated_clock -source [get_pins /my_clk_gen/inst/clk_out1] \ -divide_by 1 -multiply_by 1 -phase 0.0 \ -name pll_clk [get_nets {pll_clk}] ``` #### 编译与验证 最后一步是对整个设计进行全面编译和仿真测试,确认所有设定都按预期工作正常。如果一切顺利的话,便可以获得一个经过良好调校后的时钟网络结构,从而保障后续逻辑电路的设计质量。
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值