求助!如何学习STA以及解决时序问题?
想请教各位前辈,有关于此方面的中文资料吗?或者对我提出的具体问题不吝赐教
其实我的问题归结起来,就是两点:
第一,如何进行时序分析,或者如何看时序报告?
第二,针对出现的时序约束失败,如何修改使之时序收敛?
谢谢各位了
建立时间不足?这种情况一般是你设计的代码组合电路太长,已经无法满足你的时序要求,最好的方法是重新评估代码,在中间插入寄存器,降低组合电路的长度。纯粹靠约束不靠谱。一般的代码工作在300MHz的频率是没问题的。
或者你有换钟区域处理的不好。
我组合电路用的很少啊,都是always块,唯一用的就是判断条件和assign语句里有组合逻辑
还有,怎样插入寄存器?在哪插入寄存器,求前辈指点
新人很多都学不到位,前辈领着做一遍我就会了
典型的时序分析流程是怎样的?
前辈你好,我查看了时序报告器,凡是setup 不满足的都是data path delay过大,有些甚至已经比相应的时钟周期还要大这种情况应该怎么解决?
解决方法具体一点,你说的那些抽象的我都不会做
谢谢啦
always块可以描述组合逻辑,也可以描述时序逻辑。而且always描述时序逻辑的时候是保证了输出信号是寄存器输出,并不能保证你的时序逻辑中的组合逻辑延时满足要求;设置时序约束就是为了让工具能够帮你检查各个路径是否能够满足你的时序要求;要解决这个问题还是需要你找到关键路径,看看问题的根源在哪里;对症下药;至于学习STA的话,我可以推荐书给你看,X家的官方手册也是很不错的。
前辈你好,时序报告中的元件路径名应该怎么理解啊?比如 data_switch_1_to_2_A_channel/fifo_generator_v9_3_2ch/U0/xst_fifo_generator/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.mem/gbm.gbmg.gbmga.ngecc.bmg/gnativebmg.native_blk_mem_gen/valid.cstr/ramloop[0].ram.r/v6_noinit.ram/SDP.SIMPLE_PRIM36.ram (RAM)
其中,data_switch_1_to_2_A_channel是我的一个模块,fifo_generator_v9_3_2ch是我底层例化的一个FIFO,但是后边的那些名字我就搞不清楚了。怎样理解这个路径?
这个路径对应的元件(RAM)具体指代程序中的哪一部分?
主要看保持时间,建立时间能不能满足
求推荐时序约束的书!
http://bbs.eetop.cn/thread-187129-1-1.html 这个
下载了!没勇气看下去!还的慢慢看!有国产的讲时序约束的书吗?看了xilinx的user guide还是一头雾水!没有实际约束过!
一般都看国外的
Constraining Designs for Synthesis and Timing Analysis A Practical Guide to Synopsys Design
Constraints (SDC)
