ZYNQ PS时钟PL使用的问题

1、最近我在使用PL搭建RGMII 的工程的时候,打算使用PS引出的时钟的时候发现了PS的参考时钟为33.33333Mhz但是通过锁相环出来的100Mhz时钟实际只有:99.99999Mhz

以及需要的125Mhz实际只能到:124.998750Mhz

: [BD 41-238] Port/Pin property FREQ_HZ does not match between /axi_ethernet_0/gtx_clk(125000000) and /axi_ethernet_0_refclk/clk_out2(124998750)

2、当前我的解决办法是使用FPGA自己的系统时钟:

至于为什么没办法输出整数时钟可能还需要去查看PLL 锁相环的设计

### 配置Zynq PS以提供PL时钟的方法 在Zynq器件中,PS(Processor System)向PL(Programmable Logic)提供了多个时钟信号。为了确保这些时钟能够正确地驱动PL中的逻辑电路并满足特定的设计需求,必须合理配置PS端的时钟设置。 #### 使用Xilinx Vivado工具进行配置 1. **创建项目** 打开Vivado集成开发环境,并新建一个工程文件用于设计基于Zynq平台的应用程序。选择合适的板级支持包(BSP),这有助于简化后续硬件描述过程[^2]。 2. **导入IP核** 利用预构建好的IP(Intellectual Property)库来快速搭建系统架构。特别是对于时钟管理部分,可以查找名为`processing_system7`的IP实例,该组件代表了整个PS子系统的模型化表示形式。双击此IP打开其参数编辑界面,在这里可以看到有关于FCLK出口的相关选项[^1]。 3. **设定FCLK属性** `processing_system7` IP允许用户自定义四个独立输出至PL域内的固定频率时钟(Fixed Clocks, FCLK)。具体操作如下: - 进入`Clock Configuration`页面; - 对应每一个FCLK出口(`FCLK_CLK0`, `FCLK_CLK1`, ...)分别指定所需的频率值; - 如果需要的话还可以启用动态重配置模式(Dynamic Reconfiguration Port, DRP),以便运行期间改变某些时钟速率而不必重启整个设备。 4. **应用约束条件** 当涉及到多路异步工作的时钟路径时,则需进一步施加额外的时间关系限定——即所谓的“时钟组”(Clock Groups)概念。通过编写TCL脚本或者直接修改`.xdc`格式的物理综合指导文档(XDC), 可以为每一对关联紧密却彼此间不存在同步机制保障的时钟建立隔离措施,防止潜在的竞争冒险现象发生。 ```tcl # Example of setting up clock groups in XDC file set_property PACKAGE_PIN V18 [get_ports clk_in1] create_clock -name sys_clk -period 10.00 [get_pins processing_sys_7_0/FCLK_CLK0] # Define asynchronous relationship between two clocks set_false_path -from [get_clocks {sys_clk}] -to [get_clocks {another_clk}] ``` 5. **验证与时序分析** 完成上述步骤之后,利用Vivado内置的各种调试辅助手段如Timing Analyzer来进行全面深入的静态时序检验(STA),从而保证所生成的网表既符合预期的功能规格又能达到最佳性能表现水平。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

orange....

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值