原创 reset的处理

2009-5-13 12:08 7390 10 9 分类: FPGA/CPLD
对于reset的处理:
1. 设计:
1.1 对于从芯片pad进来的reset信号,与clock相位无关,所以一定是异步的。在设计时要现将pad引进来的reset同步化,然后更给内部flip-flop使用。synchronizer结构如下:
e2b3b488-b75a-4fc2-abae-b84f717e7342.JPG

1.2 内部逻辑使用异步reset或同步reset设计都可以。但是最好不要混用。

1.3 内部逻辑使用多个时钟域时,reset进入每个时钟后都要用同步器同步。如果是从快速时钟域进入慢速时钟域,reset要增加其assertion宽度,保证对慢速时钟域有效。

1.4 有些人建议在reset之后再启动clock(gating clock),这样做的好处:
  1)meta-stable问题不存在了。
  2)利于STA分析,recovery/removal分析不用做了。
  3)后端工具也不用做所谓的reset tree,省面积,省功耗。
不好之处:
  1)对于同步reset设计无效果。

2. DC综合(DC synthesis)
2.1 对于从pad引进的reset,应该将其设成false_path:
    set_false_path [get_ports reset]

2.2 对于同步后的reset,DC综合室时应将其设置成:
    set_ideal_network [get_pins rst]
  这样DC不会对reset信号进行优化,不会进行DRC检查。
    set_dont_touch_network [get_pins rst]
  这样DC不会对reset信号进行优化。

2.3 如果内部设计是同步reset设计,在读入hdl之前还要设定:
   hdlin_ff_sync_set_reset
  这样DC会将同步reset在combinational逻辑之后在和在一起,输入给flip-flop的D端。

2.4 reset tree的生成,skew balance等工作交给后端处理。

3. STA
3.1 布局布线后做静态仿真,根据reset和clock的关系决定是否检查recovery/removal violation。对于reset时关掉clock的设计,reset动作前后保证没有clock,可以set_false_path。其它就要检查recovery/removal。

3.2 对于同步reset设计,不需要关心recovery/removal,因为reset是连到flip-flop的D端,和其它逻辑一样,做setup/hold检查。

4. P&R
4.1 encounter中处理(参考:http://www.edacn.net/bbs/viewthread.php?tid=52252&page=1)
  1)去掉dont_touch
 
2)设置max_transition/fanout/cap
 
3)优化
 
3)或者用bufferTreeSynthesis为reset信号作buffer tree
 
4)布线
 
5)再做power analysis就没问题了

5. DFT综合
5.1 有内部控制的异步reset时(如子模块的reset由其他模块的寄存器输出控制),由其异步reset的flip-flop不做scan chain插入。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

tengjingshu_112148725 2009-5-12 13:55

内容呢?
相关推荐阅读
用户1049668 2010-12-28 15:56
多时钟域设计和触发器的亚稳态
    目前正在做的东西必须跨时钟域(crossing clock domain),信号非同步的问题很让人头疼。在读资料的时候了解到触发器(flip-flopper)输出会出现亚稳态(meta-sta...
用户1049668 2010-12-17 16:09
为何DC综合后网表文件包含assign语句,如何去除assign语句。
Question:问题:I have a feedthrough in my circuit, and the netlist is showing an assign statement for t...
用户1049668 2010-12-17 14:55
group_path
synopsis DC命令使用group_path可以是DC在编译时使用不同的代价比重。如下命令可以使编译器在编译时对输入端口到寄存器,寄存器到输出端口,输入端口到输出端口三中情况分别做优化。grou...
用户1049668 2010-12-17 14:45
DC compile命令
2.  Synopsys Commands                                        Command Reference                      ...
用户1049668 2010-12-10 10:30
dia软件的逻辑图形库 Logic shapes for DIA
This package is the newly updated logic shapes used in DIA, a opensource diagram program. Unpack the...
用户1049668 2010-11-13 22:52
PLL jitter
Jitter Definitions and Specifications 时钟抖动的定义和规定Jitter is a random variation of the output clock. It...
EE直播间
更多
我要评论
1
10
关闭 站长推荐上一条 /3 下一条