搜索
bottom↓
回复: 14

求教FPGA中高速率数据如何边界或者中间对齐于输出时钟

[复制链接]

出0入0汤圆

发表于 2017-8-17 11:47:38 | 显示全部楼层 |阅读模式
本帖最后由 advantech 于 2017-8-17 15:06 编辑

如题,使用的是ALTERA TIMEQUEST 。这个问题纠结了好久,查了不少资料,ALTERA官方的,其他人写的,也没有做出来。希望朋友们给点帮助。代码如下
module op_test (
            iRST_N,
                                iCLK25M,
                                oData,
                                oCLK125M
                 );
input        iRST_N;
input        iCLK25M;
output [7:0] oData;
output       oCLK125M;

reg    [7:0] oData;

wire  CLK;

pll  u1(
              .areset(~iRST_N),
              .inclk0(iCLK25M),//INPUT CLOCK 25M
              .c0(oCLK125M),//OUTPUT CLOCK 125M
                        .c1(CLK)     //SYSTEM COCK  125M ,
                        );



always @ (posedge CLK or negedge iRST_N)
begin
        if(!iRST_N)
                oData <= 8'b0;
   else
      oData <= oData + 1'b1;  //how to assign this data to edge or centrel of output clock ???

end

endmodule

数据如何与时钟成边界对齐输出,和中间对齐输出。setpu slack 和 hold slack 最好差不多,这样比较平衡。 谢谢拉。

出0入0汤圆

发表于 2017-8-17 17:30:06 | 显示全部楼层
我看你PLL输出两路都是125M的,那只要一路时钟延迟一个周期的相位并作为输出时钟,这样就可以保证时钟的上升沿正好在数据中间。

出0入0汤圆

 楼主| 发表于 2017-8-17 18:51:53 | 显示全部楼层
justin_n 发表于 2017-8-17 17:30
我看你PLL输出两路都是125M的,那只要一路时钟延迟一个周期的相位并作为输出时钟,这样就可以保证时钟的上 ...

这个不一定的吧?我发觉数据延迟至少4ns以上。如果把频率调到200M,那真对不齐了。

出0入0汤圆

发表于 2017-8-17 19:53:40 | 显示全部楼层
fpga的时钟管理器可以配置四个相位时钟,你选其中最合适的做输出打出参考

出20入25汤圆

发表于 2017-8-17 21:54:30 | 显示全部楼层
justin_n 发表于 2017-8-17 17:30
我看你PLL输出两路都是125M的,那只要一路时钟延迟一个周期的相位并作为输出时钟,这样就可以保证时钟的上 ...

要延迟也是半个周期

出0入0汤圆

发表于 2017-8-17 22:14:24 来自手机 | 显示全部楼层
Timequest set_output_delay+pll相位设置

出0入0汤圆

发表于 2017-8-17 22:18:48 | 显示全部楼层
chenchaoting 发表于 2017-8-17 21:54
要延迟也是半个周期

不好意思,是半个周期

出0入0汤圆

发表于 2017-8-17 22:47:09 | 显示全部楼层
justin_n 发表于 2017-8-17 22:18
不好意思,是半个周期

半个周期不就是倒相吗,用反相时钟

出0入0汤圆

 楼主| 发表于 2017-8-18 12:54:16 | 显示全部楼层
jianfengxixi 发表于 2017-8-17 22:14
Timequest set_output_delay+pll相位设置

pll移相是个技术活,移了好多次都不能收敛。

出0入0汤圆

发表于 2017-8-18 17:04:00 | 显示全部楼层
advantech 发表于 2017-8-18 12:54
pll移相是个技术活,移了好多次都不能收敛。


一定要设置timing constraints啊,骚年

出0入0汤圆

 楼主| 发表于 2017-8-19 17:42:59 | 显示全部楼层
jianfengxixi 发表于 2017-8-18 17:04
一定要设置timing constraints啊,骚年

能否发一份已经约束好的ALTERA工程我参考下哦?

出0入0汤圆

发表于 2017-8-19 19:10:59 | 显示全部楼层
看quartus手册啊,骚年

出0入0汤圆

 楼主| 发表于 2017-8-25 16:38:08 | 显示全部楼层
现在有个情况,如果保持时间余量为正,建立时间余量为负,可以使用输出时钟移相解决。在移相前必须锁定布局和布线么?
要是不锁定,移相后建立关系与保持关系发生变化,约束出来的未必是自己想要的结果。这个怎么解决哦?

出0入0汤圆

发表于 2017-8-25 17:00:16 | 显示全部楼层
时钟上升沿和数据变化边沿对齐,使用数据的时钟用DDR输出。
其它情况,移相的时钟用DDR输出。

同时增加Output的约束。

出0入0汤圆

 楼主| 发表于 2017-8-25 17:07:07 | 显示全部楼层
换个问法吧,如果setup slack 为10.1 ns, hold slack为0.1ns. 如何调整setup slack与hold slack 各为5.1ns左右,即平衡两个SLACK值。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 18:08

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表