当前课程知识点:IC设计与方法 >  6、Quartus工具 >  g)Quartus综合及分析(4) >  Video

返回《IC设计与方法》慕课在线视频课程列表

Video在线视频

Video

返回《IC设计与方法》慕课在线视频列表

Video课程教案、知识点、字幕

建立时间的分析

决定了器件的最高工作频率

或者说关键路径的最大的延时

保持时间的分析决定了

器件是不是能够正常工作

如果违反保持时间的约束的话

那么这个器件完全不能工作

左边这张图

左下角这张图是保持时间分析的一个原理

那么在分析原理之前

我们再说一下建立时间和保持时间分析的

实际工程原理

刚才我们已经总结了一下

如果建立时间为例的话

那么说明

这个我们设计的芯片没办法工作到预期的

指定工作频率

但如果我们把芯片的工作频率降D

比如说我们设计目标是100M

我们把它降到50M

降到40M

降到10M

哪怕10M赫兹

这个芯片可能就能够工作起来了

对于我们实际做完的芯片

实际做完的FPA

或者可编程器件的设计

也是一样的道理

我们刚做完一个系统以后

发现它在100M的工作频率上工作不正常

我们把频率降D

降到50M 10M

甚至降到1M赫兹

这个电路能够工作了

从这个现象来看

基本上可以确定是建立时间为例

但对于保持时间来说就是另一种现象了

如果设计的是保持时间为例的话

那么不管我们怎么改变

哪怕是降到1赫兹这个芯片仍然不会工作

所以对于保持时间的分析

非常的重要

一定要确保我们的设计保持时间不能违例

左下角这张图是保持时间工作的这个时序图

我们来看一下

电路结构还是一样的结构

那么对于保持时间呢

对于它的分析

我们可以从右边这张图分析

时序图来分析

可能更清楚一点

对于左边的这个元器分析

源寄存器在时钟到来的时候

在时钟沿到来的时候

那么它会经过一个clock_out的时间

然后再经过一个组合逻辑B的时间

经过一个clock_q的时间经过组合逻辑B的时间

把新的数据产生出来

送给目标寄存器

对应的时序图的这部分

经过一个clock_q+B的时间产生新的数据

我们建立时间的分析目的是保证这段新的数据

能够在规定的时间内到达目标寄存器

那对于保存时间分析呢

要求的是这段时间

也就是说

刚才说了

经过clock_q加上B的这个时间以后

新的数据就会产生

那么在新的数据产生之前

这段时间

原来的数据

那么对于我们目标寄存器有一个保持时间的要求

也就是说在时钟沿到来之前和到来之后

到来之前是建立时间的要求

到来之后的话

应该说这一段期间内

要求数据保持不变

这是对原来的要求

如果说当我们的clock_q特别快

然后B的延时也特别小

就意味着这个数据变化会往前挪

那么如果太快的话

也就是说源寄存器里边保存的这个数据

还没有在目标寄存器的保持时间要求范围内

与上一次的数据发生变化的话

那么电路就没办法稳定工作了

所以对于保持时间要求就是说tco+B的时间不能太短

原则以上不能太短

必须要有一定的时间让这段时间超过th

那么这是一个

我们说的理想情况

理想情况这个时钟沿

目标寄存器的时钟沿跟原始时钟沿是对齐的

更恶劣的情况就是目标寄存器的

时钟沿稍微滞后了一点时间

也就是说

C这个原寄存器的这根线比较短

目标寄存器的这个线比较长

最恶劣的情况下

这个时钟沿往后挪了

本来这个目标寄存器可能只有一个比较小的时间

但加上这个时间以后

整个th时间的范围就变大

所以如果总结到公式上来说

对于保持时间的约束公试要求就是

TCO加上B要大于B减C加上TH

这就是保持时间的要求

我们在分析报告里面

同样可以去看quartus工具对保持时间分析的结果

我们在左边时序分析的结果里面

选择保持时间

然后这边

就可以在状态窗口里边列出保持时间分析的结果

我们可以看到在这个分析结果里边

所有的分析都是红的

红的就表示error

就是说

我们这个设计保持时间是为例的

那么在这里面呢

直接就可以看到出错的原因

它没有给出具体的细节

出错的原因就是clock skew比这个data delay还要大

我们回到上一节看一下

正常工作的时候

clock skew就是时钟抖动一定要小于TCU加B

在这张原始图里边

E-C一定要小于TCO+B

才可能工作

在刚才这个设计里面呢

clock skew已经大于了TCO+B

根本就不可能工作了

所以这里面整个保持分析的结果就是特别错的

我们可以打开以后看一下细节

那么在这里面我们看一下

第一部分报告的是最大的时钟抖动

是1.018纳秒

那么最大的时钟抖动是什么呢

是指的它考虑静态时序分析

考虑的是最恶劣的情况

什么是最恶劣的情况

也就是E路径最长 C路径最短

E路径最长代表的是最长的

时钟路径到目标寄存器的时钟路径是最长

C路径最短表示的是到原寄存器的路径最短

最短路径

第一个是3.5纳秒

一个是2.5纳秒

那么它们之差是1.018纳秒

也就是时钟抖动大概在1纳秒这个量级

那么我们再看一下其它的几个参数

TCO是多少

clock_q是0.099

这个1.018已经大于0.099了

所以这个电路根本就不可能稳定的工作

这个里面还给出其它的信息

比如说这个寄存器到寄存器的delay是0.6

也就是路径B的延时是0.648

然后这个最短的路径延时是0.648

每个寄存器的hold time

可编程器件里的设计比较好

所以它本身对hold time要求就没有要求

但是由于时钟抖动带来了我们这个设计为例

换句话说

对于这样情况我们怎么办

我们寄希望说

在布局布线的时候

看看有没有可能对于这条关键路径

或者特别恶化的路径

去改变一下时钟抖动

让E减C能够小于这两个值相加

这样设计就可以稳定工作了

换个角度来说

我们这样的错误

不一定去修改原始的设计

通过修改布局布线的要求

这个有可能满足我们的设计需求

让原来不能工作的芯片

能够工作起来

最关键的建立时间和保持时间分析做完了以后

我们还应该再分析一下这个输入路径和输出路径

这些也需要满足时序的一些要求

我们来看一下输入路径的分析

由于输入路径和内部的路径一样

我们同样要去分析

建立时间和保持时间

这是输入路径的模型

输入路径的模型部分

我们认为芯片外部输入的

外部给出来的数据是给到通过一个组合逻辑电路

然后给到我们内部寄存器

我们这个内部寄存器有它自己的

建立时间和保持时间的要求

那么对于外部的输出电路

它送给我们的时候

把我们整个这一块电路

整个一整块电路

包括端口进来的组合逻辑电路

包括这个D触发器和这个时钟网络的延时

整个的一大块电路

会看成一个新的D触发器

对于外部的数据源而言

那么它会把我们整个一大部分

看成是一个D触发器

所以我们要把这个虚拟的D触发器的

新的建立时间和保持时间给它计算出来

我们先来看一下建立时间

原来的这个D触发器

那么它要求在时钟的有效沿到来的时候

在TSU这个D触发器之前

这个数据是稳定的

那么现在由于这块组合逻辑电路

那么会带来一定延时

所以相当于TSU变大了

也就是说虚拟的这个D触发器的TSU是什么呢

是组合路径的延时

加上我们原来的建立时间

整个这一条延时加起来

这段时间就必须是稳定的

这就是由于我们这样一个电路结构

对外部电路它给我们数据的时候一个新的要求

就是TSU

数据路径

加上内部的TSU

那么我们在考虑时钟路径的这个影响

那么这不是一个理想时钟

而是时钟上也会有延时

相当于我们的这个D触发器它的

时钟沿被往后滞后了

那么往后滞后是一件好事

对吧

往后滞后对于数据路径来说

可以再慢一点送出来

所以时钟的delay带来的是好处

把这个时钟考虑进去以后

整个新的TSU就是data delay

这块组合逻辑电路的

数据延时减掉这个输入时钟线的延时

然后再加上内部触发器的延时

建立时间

那么对于保持时间的分析

对于这块电路的保持时间分析

那么跟刚才的建立时间是一样的

本身D触发器有一个保持时间的要求

那么由于这个数据路径的延时

数据路径的延时

带来的是恶劣的影响

数据路径会在数据上增加额外的延时

那么使原来的保持时间所要求就减小了

如果时钟延时改善的话

时钟延时会对保持时间会有一个改善

所以的话呢

在保持时间分析的时候

这个数据延时

在建立时间分析是数据延时减时钟延时

保持时间分析的时候

是时钟延时减掉数据延时

再加上内部的原来的保持时间

就是新的保持时间的结果了

我们再来看一下输出路径分析的

这个原理或者公式

那么假如我们电路的输出结构是这么一个结构

有一个D触发器

它的输出经过一个输出的组合逻辑电路

然后再送到输出端

那么我们可以看到

相对于这个D触发器而言

相对于这个D触发器而言

实际的数据输出相当于是原来的TCO

加上一个data delay

才真正的输出

也就是整个路径输出延时是这么长

如果我们把整个这一大块部分虚拟成一个新的

D触发器的话

那么它的新的D触发器的延时

内部延时加上数据延时

再看一下时钟线

在最快的情况下

时钟线会带来一个延时

也就是说

这个输出D触发器的时钟信号就比预期的

理想时钟信号到达要晚

那么时钟信号到达的晚

导致产生的数据信号更晚

对吧

所以整个新的TCU

时钟的延时加上内部D触发器的延时

加上输出组合逻辑电路的延时

这些总的延时是我们新的输出电路的延时

这样呢

就会算出在时钟沿到来之后

真正的我们的数据是要

经过这三者之和才能产生出来

那么对于后几个数据装置

那么它就按照这个数据来计算

在数据组合装置设计的时候

它应该留出多少余量

才能够让我们的整个系统正常的工作

我们下面再来看一下

对于输入和输出路径时序分析的一个结果

左边可以看到输入和输出路径结果有三条

TSU TCU和TH

TSU和TH对应的是输入路径

TCU对应的是输出路径

我们选择TSU建立时间

输入的路径建立时间看一下结果

跟前面的内部逻辑的这个方式是相类似的

软件会帮我们把所有的路径分析一遍

然后把最坏的情况放在最前边

我们看一下第一行

那么会显示出每一条路径建立的时间

大概是三个纳秒

然后这条路径是什么呢

也就是说从每一个

从哪一个输入输入管脚

我们说输入的路径都是一个pin到一个内部寄存器

所以从某个输入管脚到芯片内部的某一个寄存器

然后在这条路径它的时钟信号是相对哪个时钟信号

哪个时钟域

这个时钟域这条路径的情况下

它的建立时间是多少

我们可以看到

对于输入路径的建立时间

这种虚拟的D触发器的建立时间

要远大于内部的D触发器的建立时间

本身芯片内部的一个器件的建立时间

大概都是在0.1 0.2 0.3纳秒的量级

到了输入输出管脚以后

芯片的这个建立就变成了几个纳秒

那从这一点我们可以看到

如果我们想设计一个高性能电路的话

那么我们要尽可能把所有的数据传递路径

设计到芯片内部去

也就是说

我们的内核运算逻辑和数据保存部分

尽可能的用芯片内部的

这样呢

整体电路的性能就会很高

如果用到了芯片外部的SRAM的话

那整个芯片数据通路的性能就会大幅降D

因为io电路它的原始是非常大的

总结一下

我们这就讲完了时序分析的几个内容

包括芯片内部建立时间

芯片内部的时序分析

包括建立时间的分析和保持时间的分析

对于输入和输出路径

我们也涉及到输入路径的建立时间和保持间的分析

以及输出路径的建立时间

输出延时的分析

那么这些分析对于一个工程设计来说

非常非常重要

那么如果这些时序特性没法满足设计要求的话

一般来说我们没有必要再去做门集仿真了

必须要修改RTL级的设计

直到时序满足以后

我们才能够进入到后续的门级仿真这个过程

IC设计与方法课程列表:

课程准备:Quartus II软件的下载

-软件下载说明

--Quartus II软件下载教程

1、集成电路的发展

-a) 集成电路的应用及市场

--1-1集成电路应用及市场

-a) 集成电路的应用及市场--作业

-b)集成电路的制造过程

--1-2 集成电路的制造过程

-b)集成电路的制造过程--作业

-c)从CPU的发展看IC的进展

--1-3从CPU的发展看IC的进展

-c)从CPU的发展看IC的进展--作业

-d)从行业的发展看IC的进展

--Video

-d)从行业的发展看IC的进展--作业

-e)从ISSCC看IC的发展方向

--讲课视频

-e)从ISSCC看IC的发展方向--作业

2、数字集成电路设计方法

-a)数字系统的实现方法 (ASSP/FPGA/ASIC的对比)

--讲课视频

-a)数字系统的实现方法 (ASSP/FPGA/ASIC的对比)

-b)组合逻辑电路

--Video

-2、数字集成电路设计方法--b)组合逻辑电路

-c)时序逻辑电路(1)

--2-3时序逻辑电路的设计方法 (一)

-d)时序逻辑电路(2)

--2-3时序逻辑电路的设计方法 (二)

-2、数字集成电路设计方法--d)时序逻辑电路(2)

3、Verilog语法

-a)Verilog的历史和学习要点

--讲课视频

-b)端口、信号及数据类型

--讲课视频

-b)端口、信号及数据类型--作业

-c)逻辑电平及数据操作

--讲课视频

-3、Verilog语法--c)逻辑电平及数据操作

-d)Assign 语句

--3-1-4assign语句

-e)Assign 举例

--3-1-5 Assign 举例

-f)Always

--3-1-6 Always

-f)Always--作业

-g)阻塞与非阻塞赋值

--Video

-3、Verilog语法--g)阻塞与非阻塞赋值

-h)D触发器的描述

--Video

-i)时序电路的设计

--Video

-i)时序电路的设计--作业

-j) 面向测试的Verilog语法(1)

--3-3-1面向测试的Verilog语法(1)

-k) 面向测试的Verilog语法(2)

--3-3-2 面向测试的Verilog语法(2)

-k) 面向测试的Verilog语法(2)--作业

4、电路设计实例

-a)电路设计实例1

--Video

-b)电路设计实例2

--讲课视频

-b)电路设计实例2--作业

-c)电路设计实例3

--讲课视频

5、Modelsim仿真工具

-Modelsim仿真

--Modelsim仿真

6、Quartus工具

-a)综合及相关基本概念

--Video

-a)综合及相关基本概念--作业

-b)综合及优化

--Video

-c)门级仿真

--门级仿真

-d)Quartus综合及分析(1)

--讲课视频

-e)Quartus综合及分析(2)

--讲课视频

-e)Quartus综合及分析(2)--作业

-f)Quartus综合及分析(3)

--Video

-g)Quartus综合及分析(4)

--Video

-g)Quartus综合及分析(4)--作业

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。