紫光展锐时序分析题目

图中电路共有三种器件:MUX,BUFFER,DFF,请分析并回答问题。

假设各电路的传出延时为:

TVIN:max delay:8ns;min delay:4ns

TBUF:max delay:2ns;min delay:1ns

TMUX:max delay:3ns;min delay:1ns

DFF:

Tclk-Q:max delay:4ns;min delay:1ns

TSETUP:4ns;THOLD:1.5ns

1)请问本电路是否存在hold time问题?如果有,请修改电路在不影响功能的前提下fix hold time问题。

2)请指出本电路setup time的关键路径,并求最高工作频率是多少?

解析:这道题目是典型的时序分析计算题,在计算时,我们需要用到在加油站|FPGA时序分析看这篇就够了(大疆逻辑岗)中所推导出的时序分析理论公式。从题干中给出的条件我们就应该有一定的敏感性,题目中没有给出时钟的频率,这也就意味着无法根据时序分析理论公式判断出建立时间是否违例,只能判断保持时间是否违例。再来看两个问题,果不其然,第一问是让判断保持时间违例,第二个是让求最高工作频率。再来看题目中分别给出的每个参数的max delay和min delay,分别对应的慢速模型和快速模型,在分析建立时间时是应该用慢速模型,在分析保持时间时应该用快速模型。

1)题目中有两个寄存器F1和F2,和之前的时序分析理论模型不同,F1寄存器和F2寄存器之间有反馈回路且回路中还有逻辑电路,以及F2到F2自身也有反馈回路且回路中还有逻辑电路。所以我们要分别以F1和F2为对象来计算它们的保持时间余量。我们应该将快速模型参数代入保持时间余量公式:holdtime stack = ((Tco + Tdata) -△T) - Th中进行计算。

①当以F1为对象来分析F1到F2时,其保持时间余量holdtime stack(F1-F2) = ((Tco2 + Tdata) -△T) - Th= ((Tclk-Q + TMUX) - (TBUF - 0) - THOLD= ((1 + 1) - (2 - 0)) - 1.5ns = -1.5ns ≤ 0

②当以F2为对象来分析F2到F1时,其保持时间余量holdtime stack(F2-F1) = ((Tco1 + Tdata) -△T) - Th= ((Tclk-Q +( TBUF + TMUX)) - (0 - TBUF))- THOLD = ((1 + (1 + 1)) - (0 - 1)) - 1.5ns = 2.5ns ≥ 0

③当以F2为对象来分析F2到F2时,其保持时间余量holdtime stack(F2-F2) = ((Tco2 + Tdata) -△T) - Th= ((Tclk-Q +( TMUX + TBUF + TMUX))- (0 - 0)) - THOLD = ((1 + (1 + 1 + 1)) - (0 - 0)) - 1.5ns = 2.5ns ≥ 0

因为以F1为对象分析出的保持时间余量为负数,所以以F1为对象的保持时间违例,我们能做的就是在F2到F1之间的路径中加入两个BUF,既能满足以F1为对象的保持时间的时序要求又不影响电路的功能。

④另外题目中还给出了TVIN的值,所还要再计算相对于外部输入数据的保持时间余量holdtime stack(VIN) = ((Tdelay + Tdata) -△T) - Th= ((TVIN + TMUX) - (TBUF - 0) - THOLD= ((4 + 1) - (2 + 2 - 0)) - 1.5ns = -0.5ns ≤ 0,这样在不影响电路功能的情况下还需要在VIN到F1之间再加一个BUF。

综上两种加入BUF的情况,统一将BUF插入到MUX M1与寄存器F1之间的位置,就可以同时解决两处的保持时间违例了。

2)第二问是要指出setuptime关键路径(critical path),那什么是关键路径呢?关键路径简单的理解就是延迟最大的那条路径,所以我们要找出setup time中延迟最大的那条路径,这条路径决定了系统中时钟所能工作的最大频率。而关于建立时间相关问题的计算,我们应该将慢速模型参数代入建立时间余量公式:setuptime stack = (Tclk - (Tco + Tdata) + △T) -Tsu中进行计算。要求出频率,在理想情况下建立时间余量为0,但是往往要大于0,即(Tclk- (Tco + Tdata) + △T) -Tsu≥ 0,根据这个关系可以得出时钟的周期Tclk ≥ (Tco+ Tdata) - △T + Tsu

和第一问一样,同样有三条内部路径需要分析(因为题目中没有给外部时钟,所以不用考虑相对于外部输入数据的建立时间)。然后对比,找出延时最大的那条路径就是关键路径,并用此路径求出时钟的最高工作频率。

①当以F1为对象来分析F1到F2时,其路径如下所示,(Tco1+ Tdata) - △T + Tsu = ((Tclk-Q + (TBUF + TMUX))-(0 - TBUF) + TSETUP = ((4 + (2 + 3)) - (0 - 2)) + 4ns =15ns

②当以F2为对象来分析时F2到F1,其路径如下所示,(Tco2+ Tdata) - △T + Tsu = ((Tclk-Q + TMUX) - (TBUF- 0) + TSETUP = ((4 + 3) - (1 - 0)) + 4ns = 10ns

③当以F2为对象来分析F2到F2时,其路径如下所示,(Tco2+ Tdata) - △T + Tsu = ((Tclk-Q + (TMUX + TBUF +TMUX)) - (0 - 0) + TSETUP = ((4 + (3 + 2 + 3))- (0 - 0)) + 4ns = 16ns

综上所示,延时最长的为③,所以在理想情况下最高工作频率是Tclk ≥ 16ns = 62.5MHz。

  • 3
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值