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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: dzkxybx

[求助] fpga timing analysis

[复制链接]
发表于 2010-11-3 17:41:32 | 显示全部楼层



不能说肯定没有,不过你要是非要往这个方向想的话
恩,万一你成功了,麻烦告诉我你怎么做的。谢谢
发表于 2010-11-4 10:27:40 | 显示全部楼层
回复 10# dzkxybx


    单口也要有空满标志,空满标志是读写指针比较(或运算)出来的,既然你读写是两个时钟域,比较就跨时钟域了,窃以为还是要同步的。这只是初步想法,你要能解决请详细点说出来大家学习下
 楼主| 发表于 2010-11-4 11:42:19 | 显示全部楼层


回复  dzkxybx


    单口也要有空满标志,空满标志是读写指针比较(或运算)出来的,既然你读写是两个 ...
鬼舞十七的蛇 发表于 2010-11-4 10:27




    读写操作不是2个时钟同时作用的,ram工作的时候,肯定只有一个稳定时钟作用。
    假如我芯片有2个功能都要用ram,且2个功能不会同时工作,但他们跑的时钟是不一样的,为节省ram,我才想复用。
    但由于我只是用一个mux去选了一下2个时钟,导致quartus做时序分析的时候出现了时序不满足的情况。
发表于 2010-11-4 13:00:39 | 显示全部楼层
1. 只用一个MUX去gate clock,时序很有可能有问题。即使report timing没报出来。如果非要这么做的话,结合你的读写时序,最好在输出时钟的下降沿切换。
2. 对clock switch处设置set_false_path.
3. 对mux前的两个clock设置 set_clock_groups -exclusive -group {clk_a} -group {clk_b}
发表于 2010-11-4 19:28:30 | 显示全部楼层
我是来学习的
发表于 2010-11-4 21:37:11 | 显示全部楼层
学习了 谢谢
 楼主| 发表于 2010-11-10 17:18:31 | 显示全部楼层


1. 只用一个MUX去gate clock,时序很有可能有问题。即使report timing没报出来。如果非要这么做的话,结合你 ...
nan123chang 发表于 2010-11-4 13:00




有些日子没上来了, 谢谢大家的意见!
我已经对mux前的2个clock都set_false_path了,而且set_clock_groups这个命令好像功能和set_false_path差不多(个人理解,有错误的话请指出)。
这几天,我分别对2种clock的路径进行了分析,发现有一条路径是15M的clock走,而30M的clock不走,但他确不能满足30M的clock的timing,所以我索性把那条路径整个都set_false_path了。我以为这样的话如果执行15Mclock的function,那条路径完全能满足timing要求,而如果执行30Mclock的function,那么那条路径根本就不用分析了,因为他不会有机会走到。不知道各位觉得这么做会不会有其他问题。
我有个同事建议我用set_case_analysis来做,但好像不行,是不是quartus的那个STA工具不支持这个功能呢?
发表于 2010-11-11 08:38:40 | 显示全部楼层


有些日子没上来了, 谢谢大家的意见!
我已经对mux前的2个clock都set_false_path了,而且set_cloc ...
dzkxybx 发表于 2010-11-10 17:18




set_clock_groups与互设set_false_path一样。
把路径设为set_false_path估计是有问题的,因为这样的话,这条路径的时序将不被分析,那又如何保证能满足15M呢?
quartus不支持set_case_analysis语法。
按你前面说法,两个clock和对应的信号都是在最后的memory interface处进行MUX的,那你所说的那条路径又是如何存在?
 楼主| 发表于 2010-11-11 10:07:05 | 显示全部楼层


set_clock_groups与互设set_false_path一样。
把路径设为set_false_path估计是有问题的,因为这样的 ...
nan123chang 发表于 2010-11-11 08:38




    谢谢~
    没有做约束之前,timing不满足是因为有这样一条data path:memory的output信号,经过一些组合时序逻辑之后又回到了memory的input。而这条路径在15M的时候会用到,在30M的时候不会用到,而且STA report文档上写了他的FMAX是28M,不满足30M。所以我想set_false_path之后,满足15M应该是没问题的,至于30M,因为他不会有机会用到这条路径,所以即便不满足也应该不成问题了。
    我目前能想到的只有这个方法了。FPGA上不能更改instance的位置来缩短走线,ASIC应该能通过布局来满足这个时序吧?虽然这不是我的工作内容了,但我还是比较担心的,因为可能ASIC上30M会变60M,相差的太大了,会不会怎么布局都满足不了呢。。
发表于 2010-11-11 12:40:06 | 显示全部楼层


谢谢~
    没有做约束之前,timing不满足是因为有这样一条data path:memory的output信号,经过 ...
dzkxybx 发表于 2010-11-11 10:07


(1) ASIC做到30M应该没有问题。
(2) FPGA也可以使用logiclock来更改instance的位置。
(3) 若ASIC只是使用到30M的话,可以如下试试:
    (a) 更改QuartusII的综合适配的effort。
    (b) logiclock锁定适配区域。
    (c) 优化那条data path上的组合逻辑。
(4) 若ASIC使用到60M的话,个人觉得实现比较困难,可以尝试更改设计,将这条data path切割为pipeline,其它地方的时序估计也要相应的改一改。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-29 02:00 , Processed in 0.023750 second(s), 7 queries , Gzip On, MemCached On.

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