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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 9956|回复: 18

[原创] 时序问题

[复制链接]
发表于 2015-1-27 15:44:02 | 显示全部楼层 |阅读模式

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

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

x
既然两个寄存器间的时钟偏移可以提升两个寄存器的最大时钟频率,那么如果我把两个寄存器间的时钟偏移设置非常大的化,岂不是可以使整个系统的时钟频率跑到非常高,接近于1/Thold,但总觉的这样又不对。求大神给我的误区指点。谢谢了。
二:同理如果我两个reg是多周期的话,同样可以把频率提高吗?有什么弊端呢?
发表于 2015-1-27 17:48:31 | 显示全部楼层
本帖最后由 maoqiu 于 2015-1-27 18:39 编辑

同步电路工作的基础假设就是
所有的寄存器在同一个时钟沿发生跳变
即所有的寄存器都是在同一个时钟沿完成数据的更新

usefull skew的方式可以在小幅度调整时序的使用
前提是不影响前后级寄存器的时序配合
相当于挤压后级寄存器的时序收敛窗口来补充给前一级
或者是挤压前级寄存器的时序收敛窗口来补充给后一级

调整同一时钟域不同时钟叶子节点的skew
要确认从电路的功能上
前后级寄存器的行为能不能支持这样的处理
同时要考虑PR的可实现度
 楼主| 发表于 2015-1-28 10:55:50 | 显示全部楼层
回复 2# maoqiu


   我昨天做了一个测试,将CLK用线进行了延迟,就是第一级的寄存器用Clk,那第二级的寄存器用Clkd;assign Clkd=Clk,并且设置禁止优化,查看chip plan发现Clk进入一个LE,经过LE里的LUT后给了后级的寄存器,发现Fmax确实加大了。如果我无限的级联Clk,那我此条路径不是可以跑了上10G了吗?感觉有点搞不懂。
第二个问题,我的第二个REG为什么非要在第一个时钟去采集上级的数据呢?如果我设置为第三个,整个过程还是流水的啊。只是后级的数据延迟了上级数据两个时钟,有什么不妥吗?如果我能保证后级能在第三个时钟采集到数据的话,我想提升系统频率不是轻而易举的事情吗。为什么还有FPGA能跑的最大时钟限制呢?求大神给我指点啊。
发表于 2015-1-28 11:39:58 | 显示全部楼层
本帖最后由 wgej1987 于 2015-1-28 11:45 编辑

你用multi cycle确实可以提高FMAX,但是没有用,打个比方之前FMAX=100M,你一旦第2个时钟采,FMAX=200M,但是你逻辑里你需要两个时钟,最后还是100M,只是timing check的时候有点不一样,治标不治本。1楼你那个结论你不仅仅要考虑当前的setup你还要考虑之前和之后的function。
 楼主| 发表于 2015-1-28 15:26:55 | 显示全部楼层
回复 4# wgej1987

我还是没有理解,如果我的FMAX是100Mhz,正常情况下我发送的时候是100Mhz发送,然后100Mhz的时钟接收,如果我是multpath为2,那我200Mhz发送,200Mhz读取,只是读取到的数据比输入数据延迟了2个时钟,我代码里面还是写posedge CLK ,只是我第一个时钟不读取了,下个时钟读取第一级寄存器第一个时钟,然后再下一个时钟读取的是上级寄存器连续发送的第二个数据,那我操作的频率不就是200Mhz了吗?
发表于 2015-1-28 16:35:02 | 显示全部楼层
本帖最后由 wgej1987 于 2015-1-28 16:45 编辑

对,你的操作频率就是200M了,但是那边组合逻辑大于FMAX延迟你设置了multicyc也能通过sta,但是你设计里,考虑function的时候你得对那个延迟做处理
发表于 2015-1-28 16:49:15 | 显示全部楼层
FMAX这个概念怎么说呢,我感觉可以这么理解,就是你做STA的时候能通过的最大频率,由于有些关键路径通不过的时候就说明这里组合逻辑过长,不能保证在下一个周期才到,我们做同步设计的时候都是以下一个时钟能采到这个前提下写得function。一旦这个大前提不满足了,你可以通过设multicycle来使它通过sta,但是这个时候那个大前提不满足了,你做设计写function的时候就得特别做处理
发表于 2015-1-28 16:52:56 | 显示全部楼层
我们第一步设计的是function不考虑时序,我们做同步func的时候有个假设,下一个时钟一定能才到上个寄存器的数据。然后用sta去保证我们这个假设。当然你也可以设计得时候提出这个一种假设,我们设计中所有的采样都是在第二个沿采样,你也可以在这种假设下设计你的电路,这样你的sta约束就相当于全部加multicycle 2.这样讲也许清楚点
发表于 2015-1-28 16:56:50 | 显示全部楼层
STA为什么一定要check下一个沿的setup而不是下第二个沿的setup是因为我们设计得时候按第一个沿采样这个假设决定的。
发表于 2015-1-28 17:02:35 | 显示全部楼层
你不能只想STA,还要想function。骗点信元。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-25 01:00 , Processed in 0.029871 second(s), 8 queries , Gzip On, Redis On.

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