在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 7169|回复: 16

[求助] FPGA跨时钟相位对齐问题

[复制链接]
发表于 2016-4-26 10:41:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
背景描述:这个项目是电源管理芯片的闭环控制部分,采用模拟+数字混合设计,数字部分用FPGA进行验证。
系统需要三个时钟,clk204m, clk12m, clk200k。
asic设计实现时这样做的:
clk204m进行16分频产生clk12m,然后clk12再进行64分频产生clk200k。

FPGA验证时是这样做的:
FPGA外部接36M晶振,内部通过DCM产生clk204m,其他两个时钟就使用代码的分频逻辑产生。

问题描述:
因为设计的前提是这三个时钟相位必须对齐,但是FPGA又无法做到这一点(或者可以做到,只是我还没想到办法?),所以经常会跑飞。

问题求助:
1)对于目前这个时钟架构,FPGA可以做到三个时钟相位对齐吗(使用的virtex4)?
2)有必要修改设计的时钟树吗?如果要改,建议如何修改?
3)闭环系统调试中,如何查找问题?比如采用算法1时,环路控制的相当好,纹波很小。然后采用算法2,纹波变大,如何确定是哪里导致出问题的呢?因为检查算法2中任何一个环节的数据,都是变差的。实际测试中,从算法1到算法2,很小心的一个模块一个模块的替换,还是找不到问题所在。。。
发表于 2016-4-26 13:32:08 | 显示全部楼层
回复 1# atomdust


   我不知道为什么一定要对其,对于这种手动分频后的时钟,相位肯定是有偏差的,可以看成是不同的时钟域。那你的数据在各个时钟域传输的时候做隔离就好了,一般用FIFO做数据的时钟域隔离。控制信号可以通过控制信号脉冲长度或者握手方式跨时钟域。
 楼主| 发表于 2016-4-26 15:01:38 | 显示全部楼层
回复 2# harry_hust

谢谢你的解答,解决了我的前两个疑问。还有另外一个解决方法,就是整个系统都采用204M时钟,将12M和200K转换成204M的时钟使能。
发表于 2016-4-28 17:32:51 | 显示全部楼层
闭环控制系统的调试不同于开环。
闭环是一个整体,不能单纯替换某一个模块去解决。而是在现有的闭环系统中,在错误点查找真正引入的不合理的误差量
发表于 2016-4-28 18:53:47 | 显示全部楼层
你先要明白自己的asic设计中,是否需要这三个时钟同步?如果必须同步,FPGA综合一样可以实现这三个时钟的同步。不过204M对FPGA综合要求有点高了,如果可以建议FPGA实现时等比例降频
 楼主| 发表于 2016-4-28 19:08:26 | 显示全部楼层
回复 5# 杰克淡定

请指点,FPGA综合如何做到同步呢?目前手头上有xilinx的V4和V6。
发表于 2016-4-29 15:22:55 | 显示全部楼层
用时钟使能的方法不是很好嘛?204MHz对V6来说没问题
发表于 2016-4-29 15:26:58 | 显示全部楼层
时钟使能挺好,环路的问题只能自己研究了。
 楼主| 发表于 2016-4-29 16:37:19 | 显示全部楼层
更新一下调试进度:
修改时钟架构,整个系统仅使用一个204MHz时钟,另外两个时钟12M和200K采用时钟使能处理。
综合后的timing没有问题(现在用的V4)。
排除了timing的问题,但是环路的问题仍然还没找到原因,继续debug
发表于 2016-4-30 16:30:25 | 显示全部楼层
学习了,还没玩这么高级的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-28 08:08 , Processed in 0.041269 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表