推荐答案
测试一下
题目
如果到达某个寄存器的timing path存在hold违例,下面哪些方法可以修复违例?
A、在该寄存器的数据端增加buffer以增大数据延迟
B、在该寄存器的时钟端增加buffer以增大时钟延迟
C、在前一级寄存器的时钟端增加buffer以增加前一级寄存器时钟的延迟
D、在该寄存器与前一级寄存器之间增加latch
参考答案与知识点
参考答案
正确答案为 A、C、D。
- 选项A:在该寄存器的数据端增加buffer以增大数据延迟,这是最直接的修复hold违例方法。hold违例意味着数据到达太快,无法满足保持时间要求,增加数据路径上的延迟可以推迟数据到达时间,使数据在时钟沿之后仍然保持稳定,从而消除hold违例。
- 选项C:在前一级寄存器的时钟端增加buffer以增加前一级寄存器时钟的延迟。这会使得前一级寄存器的时钟沿到来变晚,导致其输出的数据也相应延迟,相当于增加了数据路径的延迟,同样可以推迟数据到达当前寄存器的时间,有助于修复hold违例。需要注意这种方法可能引起setup违例,但就修复hold而言是有效的。
- 选项D:在该寄存器与前一级寄存器之间增加latch。latch是电平敏感的存储单元,插入后可以引入一个半周期的延迟(若使用正确相位),从而有效增加数据路径的延迟。虽然latch本身也有时序约束,但通过精心设计可以用于修复hold违例,是一种常用的工程方法。
- 选项B:在该寄存器的时钟端增加buffer以增大时钟延迟。这会使得时钟到达更晚,导致数据相对时钟更早到达,实际上会加剧hold违例,因此不能用于修复。
易错点:混淆setup和hold的修复方向,或认为只有数据路径加buffer一种方法。注意时钟偏移的利用可以改变数据与时钟的相对关系。
涉及知识点
- hold违例的成因
- 修复hold违例的基本方法
- 时钟偏移对时序的影响
- buffer和latch在时序修复中的作用