微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > FPGA跨时钟相位对齐问题

FPGA跨时钟相位对齐问题

时间:10-02 整理:3721RD 点击:
背景描述:这个项目是电源管理芯片的闭环控制部分,采用模拟+数字混合设计,数字部分用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,很小心的一个模块一个模块的替换,还是找不到问题所在。



   我不知道为什么一定要对其,对于这种手动分频后的时钟,相位肯定是有偏差的,可以看成是不同的时钟域。那你的数据在各个时钟域传输的时候做隔离就好了,一般用FIFO做数据的时钟域隔离。控制信号可以通过控制信号脉冲长度或者握手方式跨时钟域。


谢谢你的解答,解决了我的前两个疑问。还有另外一个解决方法,就是整个系统都采用204M时钟,将12M和200K转换成204M的时钟使能。

闭环控制系统的调试不同于开环。
闭环是一个整体,不能单纯替换某一个模块去解决。而是在现有的闭环系统中,在错误点查找真正引入的不合理的误差量

你先要明白自己的asic设计中,是否需要这三个时钟同步?如果必须同步,FPGA综合一样可以实现这三个时钟的同步。不过204M对FPGA综合要求有点高了,如果可以建议FPGA实现时等比例降频


请指点,FPGA综合如何做到同步呢?目前手头上有xilinx的V4和V6。

用时钟使能的方法不是很好嘛?204MHz对V6来说没问题

时钟使能挺好,环路的问题只能自己研究了。

更新一下调试进度:
修改时钟架构,整个系统仅使用一个204MHz时钟,另外两个时钟12M和200K采用时钟使能处理。
综合后的timing没有问题(现在用的V4)。
排除了timing的问题,但是环路的问题仍然还没找到原因,继续debug

学习了,还没玩这么高级的。

你是要用算法控制LDO的输出么?FPGA输出的控制结果与定点化的平台是否一致

值得一看看, 那就看看


FPGA输出pwm信号,通过调整pwm信号的占空比,控制DCDC开关管的打开和关闭时间,以达到精确跟踪控制电源输出纹波的目的。



   顶,缺金币。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top