ZYNQ 可编程差分晶振Si570使用

本文介绍了ZYNQ平台上Si570可编程晶体振荡器的使用方法,包括其内部结构、频率计算原理、I2C寄存器的读写,以及通过VIO进行频率观测的程序配置流程。重点讨论了如何通过计算和配置RFREQ、HSDIV和N1参数来改变输出频率,并通过I2C接口与Si570交互。

1,vivado工程:2, Si570内部结构:

其输出就是由晶振内部振荡器产生的固定频率为 f XTAL 的时钟经过 1 次倍频和 2 次分频而获得。输出时钟频率
f out 的计算公式为:

晶振内部振荡器产生的时钟频率 f XTAL ≈114.285000000MHz。需要说明的是,f XTAL 不是一个完全准确的值,由于生产工艺的限制,对于每一个晶振,f XTAL 都会存在细微的差别。RFREQ 是 38bit 的倍频系数,其高 10bit为整数,低 28bit 为小数。由于 f DCO 的可设置范围为 4.85G~5.67GHz,因而倍频系数 RFREQ 也有一个固定的范围。此外,HSDIV 为 3bit 的分频系数,N1 为 7bit 的分频系数,两者均为整数。在 Si570 上获取所需要频率的时钟就是通过 I2C 接口对上述公式中的 RFREQ、HSDIV和 N1 共 3 项参数进

ZYNQ平台上配置差分信号涉及硬件设计和软件配置两个方面。差分信号常用于高速通信场景,例如时钟信号、TMDS(Transition Minimized Differential Signaling)等,以提高信号完整性和抗干扰能力。以下是ZYNQ差分信号的配置方法: ### 1. 硬件设计阶段 在硬件设计阶段,需要在原理图和PCB设计中正确布局差分对。ZYNQ系列FPGA支持差分I/O标准,例如LVDS、TMDS等,因此在设计时需注意以下几点: - **差分对布线**:确保差分对的走线长度匹配,并保持对称,以减少信号失真。 - **引脚分配**:选择支持差分信号的引脚对,并在约束文件(如XDC)中定义差分对关系。 - **终端匹配**:根据所使用的差分标准,可能需要在接收端添加终端电阻(如100Ω)以实现阻抗匹配[^2]。 示例XDC约束文件中定义差分对的语句如下: ```tcl set_property -dict { PACKAGE_PIN H17 IOSTANDARD LVDS } [get_ports { diff_p }]; set_property -dict { PACKAGE_PIN H18 IOSTANDARD LVDS } [get_ports { diff_n }]; create_diff_pair diff_p diff_n -name DP1 ``` ### 2. IP核配置 在Vivado中使用IP Integrator进行系统设计时,某些IP核(如Clocking Wizard、HDMI接口等)会涉及差分信号的配置。例如: - **差分时钟输入**:当使用差分时钟源时,需要配置IBUFDS或IBUFGDS原语来接收差分时钟信号,并将其转换为单端时钟信号[^3]。 - **差分输出配置**:对于差分输出信号,可以使用ODDR(Output Double Data Rate)和OBUFDS(Output Buffer Differential Signaling)来驱动差分对[^4]。 以下是一个使用IBUFDS和OBUFDS的Verilog示例: ```verilog // 差分时钟输入 IBUFDS #( .IOSTANDARD("LVDS") ) ibufds_inst ( .I(clk_p), .IB(clk_n), .O(clk_single_ended) ); // 差分信号输出 ODDR #( .DDR_CLK_EDGE("SAME_EDGE"), .INIT(1'b0), .SRTYPE("SYNC") ) oddr_inst ( .Q(data_p), .D1(data_in1), .D2(data_in2), .C(clk), .CE(1'b1), .R(1'b0), .S(1'b0) ); OBUFDS obufds_inst ( .I(data_p), .O(data_p_diff), .OB(data_n_diff) ); ``` ### 3. 综合与实现阶段 在综合和实现阶段,工具会根据约束文件和逻辑设计自动处理差分信号的映射和优化。可以通过以下方式验证差分信号的配置: - **布局布线报告**:查看布局布线后的报告,确认差分对是否正确连接并满足时序要求。 - **时序分析**:使用时序分析工具检查差分信号路径的延迟和抖动是否在可接受范围内。 - **ILA调试**:通过ILA(Integrated Logic Analyzer)对差分信号进行在线调试,确保信号逻辑正确[^4]。 ### 4. 软件驱动配置 在ZYNQ的PS端(Processing System)配置完成后,通常需要编写驱动程序或使用设备树(Device Tree)配置差分外设(如HDMI)。例如,在HDMI接口中,TMDS时钟和数据通道通常由差分信号组成,设备树中需定义这些差分通道的映射关系。 示例设备树中定义HDMI接口的片段如下: ```dts hdmi@0 { compatible = "xlnx,vc-axi4s-hdmi-tx-1.0"; reg = <0x0 0x10000>; xlnx,video-mode = <0x0>; xlnx,enable-tmds = <0x1>; clocks = <&clkc 0x1a>; clock-names = "video_ref_clk"; }; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

寒听雪落

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

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

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

打赏作者

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

抵扣说明:

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

余额充值