【国产FPGA高云GW1N-4系列开发板测评】——9、内部OSC和rPLL的IP核测试
[复制链接]
本帖最后由 gs001588 于 2022-1-8 12:16 编辑
【国产FPGA高云GW1N-4系列开发板测评】——9、内部OSC和rPLL的IP核测试
GW1N-4、GW1N-4B等系列,内部是自带OSC的。本意是想测试一下内部OSC IP核,顺便测一下频率。但是在测试过程中发现一点问题,一直很困扰,具体是什么问题呢,在贴尾。
测试过程中使用了OSC和rPLL两种IP核。其中OSC只有一个,不能添加超过一个,否则编译时会报错;rPLL有多个,可以按需添加,本工程添加了4个rPLL,生成不同频率的时钟,实际使用过程中同时只用两个。
在主菜单的“Tools”菜单下,选择调用“IP Core Generator”,弹出IP核生成器。使用到的OSC和rPLL两种IP核,如下图中红色框框出部分。
在右测的OSC说明信息部分,有提到“GW1N-4/GW1N-4B/GW1N-4D/GW1NR-4/GW1NR-4B/GW1NR-4D/GW1NRF-4B is about 210MHz”,到底是不是210MHz呢,我们来测试一下。这里假定外部有源晶振的时候是准确的。
双击上图中左侧“OSC”项,例化生成OSC模块,分频系数选择2,因为最小是2,这样的话得到时钟大约为105HHz;熟悉VHDL,因此语言选择VHDL,与主工程保持一致;其余选项,路径文件、文件名,模块名称可根据个人喜好随意来,按默认设置也没问题。
同样步骤例化生成rPLL模块,修改输入时钟频率为50MHz,输出频率为100MHz。相同方法,再例化添加其余时钟的rPLL模块,文件名和模块名要修改一下。本工程中共例化了50MHz、100MHz、125MHz、200MHz。其中100MHz用于逻辑分析仪采样时钟,200MHz综合时时序不满足报警告,实际测试效果不稳定。
测量原理为,用标准时钟生成基准1秒周期,在1秒内对OSC的时钟数进行计数,用内嵌逻辑分析仪进行观察计数波形,那么最大计数乘以2即为实际OSC的时钟频率。
实际使用外部CLK_50M时钟和rPLL生成的CLK_50M2来测试,得到的结果有差别,暂时未能找到出差错原因。
实际测量,使用外部CLK_50M时钟时,计数值为102.95M左右,乘以2为205.9MHz。
外部CLK_50M时钟,采样波形1
外部CLK_50M时钟,采样波形2
外部CLK_50M时钟,采样波形3
实际测量,使用经rPLL后的CLK_50M2时钟时,计数值为103.40M左右,乘以2为207MHz。
经rPLL后的CLK_50M2时钟,采样波形1
经rPLL后的CLK_50M2时钟,采样波形2
经rPLL后的CLK_50M2时钟,采样波形3
直接使用外部CLK_50M时钟和使用经rPLL后的CLK_50M2时钟,得出的OSC时钟频率有两种结果,206MHz和207MHz,那么必然有一种是有问题的。
有可能使用外部CLK_50M时钟时得到的1秒周期,实际不到1秒;或者使用使用经rPLL后的CLK_50M2时钟得到的1秒周期,实际可能大于1秒。
从原理图来看,有源晶振的输出时钟信号,直接接到了FPGA的输入管脚,之间没有串小电阻,可能会有电压过冲或振铃现象。
用示波器观察晶振输出时钟(OSC网络),峰峰值4.399V,最大值3.793V,最小值-605.3mV。受示波器带宽限制,如果用高带宽示波器测试的话,得到的过冲可能更严重。
本实验测试得到内部OSC频率大约为206或207MHz,与说明信息中的210MHz接近,基本实现了实验目的。
但是也带来了新的疑问,使用的两种方法,到底哪种测的结果正确?导致不同结果的原因到底出自哪里?
原理图中有源晶振直接到FPGA,这种接法一般不推荐使用,个人设计时一定要串个小电阻(22到100欧姆之间)。
本实验工程文件附件:
prj_osc.rar
(528.17 KB, 下载次数: 21)
|