自从召集2020届校招同行加入新建立的“IC/FPGA校招笔试面试交流群“,见识到了很多关于建立时间和保持时间分析的题目,在为别人解答疑惑,以及别人为自己解答疑惑的同时,自己对于知识的理解更加深刻了。

对于建立时间而言,从单独的对触发器的建立时间和保持时间的分析到了对电路(系统)的建立时间到保持时间的分析,前者是核心,后者是扩展,后者建立在前者的基础之上进行推到得到,同时也是芯片内部实际遵循的时序规则。

注:下面博文中的蓝色字体均为链接!

以下图片均来自互联网以及群内讨论。

对于触发器的建立时间和保持时间,可见之前的博文:

从这篇博文上,我们可以知道建立时间和保持时间的概念,建立时间就是时钟有效沿到来之前数据必须保持稳定的时间,而保持时间就是时钟有效沿到来之后数据必须保持稳定的时间,如果不满足建立时间或保持时间,就会导致时序违规,这对电路的功能实现是有很大影响的。

我们还可以了解到Tco这个时序参数,它的名字是数据输出延时,它是对于触发器而言的,含义是从触发器的时钟有效开始,数据从输入到输出之间的延迟。(触发器的数据输入到输出是有一段时间的,所以有这么一个说法,采样反应更快的触发器可以改善时序)


从博文: 谈谈周期约束中可以知道时钟偏斜对于建立时间和保持时间的影响,例如正时钟偏斜对于建立时间的满足是有帮助的,而对保持时间的满足是有害的。

我们还可以得知,对于组合逻辑的延迟,也即触发器之间的门延迟,不能太大,也不能太小,太大会导致(关键路径)建立时间不满足,太小会导致(关键路径)保持时间不满足。


例题一:

有了这些基础,我们从最简单的考题分析:IC/FPGA笔试题分析(五)

这个题目堪称经典中的经典,因为从这个题目是标准的建立时间和保持时间考题,并从中可以总结出系统最大时钟频率以及建立时间和保持时间需要满足的公式。

我们知道系统周期需要满足的条件是:

Tcycle + Tskew > Tco + Tgate + Tsu;

代入上面的条件,得知

Tcycle + T5 > T1 + T2 + T3 + T4 + Tsetup

上面的时钟路径是存在偏斜的,而且是正时钟偏斜,则对于保持时间的满足更加的困难,需要满足:

Thold + Tskew < Tc0 + Tgate

代入上面的条件,得: Thold + T5 < T1 + T2 + T3 + T4


例题二:

在上题的基础上,你也许会分析触发器的建立时间和保持时间应该满足的关系了,可是考题也许会变了法的考你,如下:

求系统的最高频率?

就一个触发器,我怎么办呢?

仔细看来,这是一个触发器到自身的反馈,可以看做两个触发器之间进行数据传输,其实也就是如此。

需要明白的是,由于时钟到达这个触发器的时间一致,所以不存在时钟偏斜。

给出系统周期满足的关系:

Tcycle > Tco + Tgate + Tsu = 6 + 2 + 2= 10ns

所以时钟最大频率可以为100MHz。


例题三:

如果都是分析触发器的建立时间和保持时间就好了,可惜不是这样的,套路来了:

如下图,将框内的电路作为一个寄存器,那么其有效的建立时间和保持时间是多少?

这个题目猛地一看就让人懵逼了,我还曾因项目调试不顺利,遇到这个题目,心态炸裂过。。。(年轻)

求框内电路的有效建立时间和保持时间,给出了框内触发器的建立时间和保持时间以及其他一些逻辑的延迟,我们就以触发器的建立时间和保持时间为准来倒逼整个电路的建立时间和保持时间,一切还都是为了让触发器满足时序要求。

有效建立时间分析:

假设电路的有效Setup为Tsetup_valid:

对于D触发器而言,其本身的建立时间是2ns,也就是说数据必须在时钟有效沿到达之前2ns保持稳定,这样到达D端后就一定是稳定的数据了。

这个电路的数据来自于IN,时钟来自于CLK;

考虑时钟路径延迟影响:

时钟CLK要早于触发器的时钟1ns到达,因此对于D触发器建立时间的满足是有害的,电路有效建立时间

Tsetup_valid = Tsetup - 1ns = 1ns(因为数据需要提前1ns稳定下来)

考虑数据路径延迟影响:

Tsetup_valid = Tsetup - 1ns + 2ns = 3ns;(经过组合逻辑后的数据需要在时钟有效沿之前Tsetup时间稳定下来)

有效保持时间分析:

和建立时间分析套路一致,对于D触发器而言,数据需要在时钟有效沿到来之后保持Thold时间。

考虑时钟延迟的影响:

考虑到电路时钟对于触发器时钟早到1ns,所以电路有效保持时间Thold_valid = Thold + 1ns = 3ns;

考虑路径延迟影响:

数据需要经过一段组合逻辑之后才能保持稳定,因此电路的有效保持时间为:

Thold_valid = Thold + 1ns - 2ns = 1ns。


例题四:

下面这个题目和上面题目相差无几:

求电路的固有建立时间和保持时间和上一题的有效建立时间和保持时间是一个意思的。

因此固有建立时间为Tsu_valid = Tsu - T_offset + Tpd + Tpd1 = 2 - 1.2 + 1.2 + 0.9 = 2.9ns

固有保持时间为:Th_valid = Th + T_offset - Tpd - Tpd1 = 1.5 + 1.2 - 1.2 - 0.9 = 0.6ns.

而系统的最高频率呢?

先求系统的最小周期,考虑两个触发器之间的路径:

Tmin = Tco + Tpd + Tsu = 1.8 + 1.2 + 2 = 5ns,那么系统最高频率为200MHz。


例题五:

这个题目让求setup time margin,意思大概就是建立时间裕量,就是系统周期减去Tco,Tgate以及Tsu之后还可以有多少裕量,那,Tco,Tgate以及Tsu当然要用最大的来代入,因为要保证系统在最恶劣的情况下,能有多少裕量。

因此:

Tmargin = 10ns + 0.6ns - 0.2ns - 0.65ns - 0.35ns - 0.45ns = 8.95ns

其中0.6ns - 0.2ns表示的是时钟偏斜量,可见是时钟整偏斜,有利于时钟裕量。


总结开来,最难的部分应该是求电路的固有建立时间和保持时间了吧,建立时间和保持时间是一对冤家,利你不利它,如果你分析了建立时间,那么保持时间相反就可以了,例如逻辑门延迟不利于系统建立时间(+),那么不利于系统保持时间(-),时钟延迟有利于系统建立时间(-),则不利于系统保持时间(+)。

可以当做偏方服用。

IC/FPGA笔试/面试题分析(七)建立时间和保持时间类型考题汇总分析相关推荐

  1. IC/FPGA笔试/面试题分析(八)近期IC/FPGA笔试面试讨论群题目汇总解析

    背景:IC前端设计/FPGA笔(面)试交流群,欢迎同行加入 自从开始邀请同行加入笔试面试交流群之后,目前已经有40多位同行加入,大家踊跃发言,各抒己见,让各自受益匪浅. 今天的这篇博文是将近期部分题目 ...

  2. IC/FPGA笔试/面试题分析(九)关于FIFO最小深度计算的问题

    IC/FPGA逻辑设计笔试题中最常见的体型莫过于FIFO最小深度的计算了,以前看到过计算FIFO最小深度,需要代入公式,直到看到这篇文档,才觉得使用逻辑分析的方法来看更能让人理解的更为深刻. 文档把计 ...

  3. IC/FPGA笔试/面试题分析(十一)基础概念(三态门等)

    上篇博文写了一些有关CMOS门电路的基础内容,相信认真看完,一定能画出各种CMOS门电路:CMOS门电路,这些是最常考的基础内容. 下面简单介绍一下其他概念题目: 1. 解释一下Vih,Vil,Vol ...

  4. IC/FPGA笔试/面试题分析(十)CMOS门电路

    目录 CMOS介绍 CMOS非门 CMOS与非门 CMOS或非门 CMOS或门 CMOS与门 CMOS与或式 CMOS或与非 CMOS介绍 MOS管分为NMOS和CMOS,二者成对出现在电路中,且二者 ...

  5. (8)FPGA面试题触发器满足建立时间和保持时间的原因

    1.1 FPGA面试题触发器满足建立时间和保持时间的原因 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题触发器满足建立时间和保持时间的原因: 5)结束语. ...

  6. 【机密】数字IC后端笔试面试题库(附知识星球活动)

    [机密]数字IC后端笔试面试题库(附知识星球活动) 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 最近很多公司的校招都陆续开始了,不知道今年应届生的小伙伴 ...

  7. IC/FPGA校招笔试题分析(三)

    还有1天就要进行某瓦科技的面试了,今天晚上赶紧复习下上次它的笔试题: 1.一个四位十六个状态的格雷码计数器,起始值为1001,经过100个时钟脉冲作用之后的值为(). 首先,算出100个脉冲后跑了多少 ...

  8. 计算机七年级学情分析,七年级信息技术计算机操作系统教案学情分析.doc

    七年级信息技术计算机操作系统教案学情分析.doc 七年级信息技术计算机操作系统教案学情分析 篇一:人教版七年级信息技术教学计划及教案 人教版七年级上册信息技术教学计划 执教:李卫霞 一.学情分析 七年 ...

  9. IC/FPGA校招笔试题分析(四)再看Moore状态机实现序列检测器

    参加了几次笔试,发现序列检测器是常考的内容,而之前认为序列检测器真的很简单,但是这次X疆的笔试题做完之后,我怀疑自己了. 画状态转移图的时候,我开始犹豫了,我怕我会没考虑全,甚至有点晕. 人家又问: ...

最新文章

  1. 用初次训练的SVM+HOG分类器在负样本原图上检测HardExample
  2. Linux 文件系统基础
  3. .Net Core with 微服务 - Polly 服务降级熔断
  4. 带Prometheus的Spring Boot和测微表第4部分:基础项目
  5. TypeScript `unknown` 类型
  6. React-router 4 按需加载的实现方式及原理(Code Splitting)
  7. Apache 分割日志
  8. JS 实现 DIV 遍历并随机替换DIV内容
  9. linux下dns视图配置
  10. conda和pip卸载包的注意事项
  11. 【Android自动化测试】Robot Framework+adb框架(三)——L3公共层
  12. 华为计步器下载手机版_华为健运动计步器
  13. 神经网络中epoch、batch、batchsize
  14. Sonarqube代码审查平台
  15. 孤单是对你最好的惩罚
  16. RedHatAS4U3下实现南北互通的DNS配置
  17. java从入门到精通二十三(Servlet)
  18. sx1268 中文_SX1268LORAHAT用户手册
  19. 软件开发方案主要包括哪几个阶段
  20. 模仿jva的逻辑写个kotlin实体类。

热门文章

  1. linux开机关机命令
  2. Linux下简单的邮件服务器搭建
  3. 病毒周报(071029至071104)
  4. Atlas学习手记(5):使用服务端定时控件TimerControl
  5. postgis 导出 栅格_【FME HOWTO系列】08 导入数据库表、栅格数据、矢量数据
  6. franze kafka 游戏_The Franz Kafka Videogame
  7. 计算机二级的考试c模板,2013年9月全国计算机等级《二级C++》上机模考试卷(5)
  8. python name is not defined_PythonNameError: global name 'NAME' is not not defined这个问题怎么解决?...
  9. ios如何看idfv_iOS获取各种数据方法整理以及IDFA与IDFV使用环境
  10. python输入星期几_Python练习实例31 | 输入首字母,判断是星期几