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

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

Video在线视频

Video

下一节:Video

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

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

下面我们来看最重要的时序分析部分

那么在设计流程里面

时序分析是不可忽略的一个过程

但也往往是被很多初学者忽略的过程

时序分析结果起什么作用呢

如果一个电路时序上出了建立时间的错误

那么电路有可能说工作的慢一点

如果时序的分析结果说

有保持时间的错误

那有可能会导致这个电路完全就不能工作

所以时序分析这个过程是非常重要的

时序分析大概有以下几个方面

首先Quartus这个软件

或者说在我们这门课里边

我们只介绍标准的最简单的这个单时钟的

时序分析

然后我们来看一下

怎么去进行时序的约束

包括全局的以及局部的这个约束

后面的话我们再去看一下时序分析的模型

首先我们来回顾一下时序分析的基础

静态时序分析的基本模型

我们来看一下这些幻灯片

下面这张电路的一个时序图

我们电路通常包括四种类型的时序电路

时序路径

电路的核心部分是从一个D触发器

或者说一组D触发器的输出

经过一系列的云图送到另一组D触发器的输入

这是第一类时序路径

那么它的起点是从原D触发器

SOURCE的D触发器时钟开始

经过原D触发器的输入端输出数据

经过一堆数据云图

送到目标D触发器的数据端

这是第一条时序路径

第二类时序路径是输入路径

从芯片的输入管腿经过一系列的云图

一系列的组合逻辑电路

送到芯片内部的D触发器

这是输入路径

相类似的

还有第三类路径

就是输出路径

芯片内部的D触发器

经过在时钟的上升沿把数据送到D触发器的

输出端

然后经过组合逻辑

送到芯片的输出端

对于输入路径和输出路径

我们外部的驱动电路

以及外部接受数据的这个电路

我们都认为它跟我们内部电路共用的

是同一个时钟

所以我们外部电路

是由一个D触发器来接收数据

外部电路是由一个D触发器

输出数据给我们

所以这三条路径

内部路径 输入路径及输出路径

都是由同一个时钟源来驱动的

这是这三个路径

另外还有一个组合逻辑

有些芯片存在一条组合逻辑路径的延时

输入信号经过一系列的组合逻辑电路

没有跟时钟有任何关系

直接就送到了芯片输出

这是组合逻辑路径

我们把这四类路径归纳起来

可以看出所有的路径时序分析的时候

它的起点一定都是来自于输入管脚

或者说来自于时钟端

所有的目标输出的这个管脚

目标点一定是输出端口

或者是这个时序期间的这个数据输入端

这是四类时序路径

我们的所有分析工具

也都是针对这四类路径来进行静态时序分析

那么具体有两种方法

静态时序分析

一种是这个自动化的方法

就是傻瓜似的

我们按一下这个编译按钮

所有的综合布局布线 时序分析这个工作

软件都会帮我们去全部做了

第二种方法是我们手动的

菜单里边的某些操作

也可以启动手动的这个时序分析

我们在大型的设计里边

我们会采用手动的方式来进行

那么既可以用菜单操作来进行时序分析

也可以用一些Tcl脚本的

这种来设置怎么去进行约束

以及到底做什么样的时序分析

那么根据分析的结果

我们还可以去做一些详细的设置

包括为了改进芯片的速度

改进芯片的时序性能

我们可以选用这个更高等级的芯片

来让这个芯片工作的时序性能更好

我们来看一下时序分析的结果

我们需要关注的时序分析的结果

那么在综合

或者说报告里边

在这个编译的报告里边

有专门的时序分析结果

大概有几大类

我们需要关注的

一个是这个

我们时序分析约束的设置

我们的设置是不是正确

对于简单的设计呢

因为刚才已经说了

简单的设计

单时钟的设计

软件会自动帮我们提取出时钟相关的信息

所以连设置我们都可以不用设它会帮我们做好

那么我们要看一下Summary

看一下我们芯片报告的总结

是不是满足要求

然后详细的报告大概分为这么几个方面

有这个

我们看幻灯片左边列出来的

一个是关于内部时钟率的分析

芯片的建立时间

和保持时间的这个报告

对于输入路径的建立时间和输入路径保持时间的报告

对于输出路径

通常我们只要看这个输出的TCU

这样的一个报告就可以了

对于组合路径

有一个TPD这样一个组合路径延时报告

主要有这么几个方面的报告

对于单时钟率

或者说标准的分析

那么软件可以自动来进行

在每次编译的时候

软件就自动进行了这个时序这个分析

那么对于单时钟域

或者说这个异步时钟域

如果这些异步时钟率都是完全独立的

一些异步时钟率的话

软件可以自动的帮我们时钟率提取出来

那么对于每个异步时钟率

它当作一个单时钟域来处理

这些工作都可以去自动进行

那么软件分析的话呢

包含刚才所说的这四大类

一个是内部时序逻辑

内部路径的一个分析

第二是输入路径的分析

第三个是输出路径的分析

我们来看一下内部的时序路径的这样模型

是我们刚才前面复习模型里面更准确的

一个表述

这是我们的原触发器

内部时序路径里边的两组触发器

原触发器及目标触发器

经过一个内部的组合逻辑路径B有一个延时

从芯片外部输入的信号

clock

经过路径C的延时

物理的任何连线都可以延时

我们需要把它准确的建模出来

对于输入的路径C

有一个C的延时

那么对于目标D触发器

那么它可能会经过一个路径E的延时

由于时钟信号连接到两组D触发器的路径不同

所以这两组路径的延时C和E也有可能不同

那么下面我们把整个的时序路径给它描述一遍

时钟上升沿到来以后

数据会经过一个clock_q的延时

输入数据会被打到J端

打到D触发器的输出端

然后经过一个路径B的延时

送到目标D触发器

目标D触发器在它的时钟沿往回倒推一个建立时间

目标D触发器要求在setup时间之前

这个数据就已经是稳定的

所以的话

整个时序路径的延时

我们可以看到

是一个Clock_q的延时

加上一个数据路径的延时TCU

加上一个数据路径的延时B

然后加上一个建立时间的延时TSU

这是标准的路径延时

整个这条路径的延时不能超过时钟周期

不能超过一个时钟周期

这是我们标准的电路描述

那么如果再进一步考虑到两条时钟路径的差

那么我们可以看

如果目标路径E等于原始的这个C的这个延时的话

我们可以看出这个东西近似是一个理想的时钟网络

所有的时钟沿到达这个时刻

到达这个时刻是相等的

所以的话呢

时钟抖动

我们说这个时钟之差

甚至叫一个时钟抖动

或者说clock_q

那么它就可以忽略不计

那么如果E的延时比C的延时大

也就是说明

这个同一个时钟信号到达目标的

这个时钟要晚一点

晚一点的效果呢

相当于是拉长了时钟周期

那么这时候的话呢

对于我们这个路径的延时

就有更大的余量了

可以让路径算的更慢一点

这是比较好的情况

最坏情况呢

worst case是什么情况呢

也就是说这条E的路径啊

比C的路径短

目标继存器的时钟要比预期的提前到来

那这时候就对我们B的约束

B的延时留出更小了

所以的话呢

这个地方的clock_q的描述就应该是一个E减C

如果E比C小的话

我们的时钟路径所允许的时间周期

就更短

这就是我们时钟周期的描述

是TCO加B加TICU

再扣掉一个时钟抖动

那么我们的芯片的最高工作频率

就是时钟周期的倒数

我们来看一下建立时间setup的

分析一个报告结果

软件可以给出详细的每一条路径

所谓的静态时序分析

就是要把网表里面的每一条路径都要去算一遍

计算完了以后呢

这些路径的信息是按照一个从大到小

这个方式给他列出来的

因为我们关注的

首先关注的是worst case

就是最长的那条路径

最坏的那个路径

那么我看一下

这个报告结果里面有这么多列

我们显示的是建立时间的这个报表

时序分析的建立时间的报表

第一列是延时

最长的关键路径大概是八个纳秒的延时

对应的倒数以后芯片的工作频率

大概是150M

125M赫兹左右

另外呢

还给出了这条延时路径的详细信息

是从哪个节点到哪个节点的这个延时路径

那么这里面呢

给出了原节点

目标节点的信息比较清楚

它会给出目标节点的详细的这个信息

包括是哪个设计层次

从顶层再往下一步一步的往下底层层次的

某个节点的某个管脚

详细的信息都可以给我们列出来

这样的话

我们可以进一步的分析

这条路径到底是我们设计里面的哪一条路径

然后我们怎么去对设计进行优化

我们下面来详细的看一下这条路径

那么在这张图里边

我们可以看到

我们的最坏路径是这么一个路径

我们可以用

相应的操作列出这条路径相关的详细信息

我们先在这个状态窗口里面去观测一下这条信息

这是我们列出来的关于这条路径的详细信息

我们左下角是刚才所看到的

时序分析的一个模型图

我们要对照这个模型图里面去看一下CEB

TCU

以及TICU都是什么信息

我们看一下

首先在第一行列出了我们这条路径的

这个最长的继存器到继存器之间的延时

也就是B里面的延时

大概是7.445纳秒之间

然后下面我们列出了最短的

从时钟的最短的时钟路径

对于E

我们关心的是最短的

然后对于

这是目标继存器

对于原继存器C来说

我们关心的是最长的longest时钟路径

是3.7

那么因为我们这里面芯片非常小

我们设计非常小

所以原路径和目标路径

它的延时几乎是相等的

所以的话时钟抖动为0

可以忽略不计

然后我们关心的是TCU和clock

TCU大概是0.384个纳秒

最终芯片的建立时间

D触发器的建立时间TCU是0.18个纳秒

所以在这条信息里边

可以给出详细的这些值

那么根据咱们的公式

把所有这些值加起来

然后也就是

路径的延时加起来就是我们这个芯片的

或者这条路径所决定出来的芯片最高工作频率

我们还可以把刚才的

B这条路径的更详细的信息全部列出来

列出B路径

把刚才前面的加号点开以后

可以把路径的详细信息都看出来

那么路径的延时呢

包含两部分延时

一个是互连线的延时

第一列是互连线的延时

第二部分是单元的这个延时

根据这两部分延时可以算出每一个元器件

这条时序路径B上的每一个元器件的

总延时是多少都可以看出来

另外的话还给出了这个元器件它的扇出系数

我们都知道

当一个器件的扇出越大的时候

它所对应的延时也就越大

对应的还有节点相关信息

它的目标节点

它的原节点及连接到下一个目标节点的名字

都可以列出来

我们可以去关注

就像我们在S综合的时候

我们可以把这条路径在图形的方式全部给它

在图形的方式全部列出这条路径的情况

我们会看怎么去用图形的方式列出来

然后去观测

是因为穿越设计的层次太多了

还是说路径太长了

还是具体是什么情况

从而决定我们怎么去优化

最后一部分给出一个总的报告

在这条路径里边

互连线的延时是多少

总的互连线的延时

以及总的cell的延时是多少

然后给出相关的这个比例

那么这样的话

我们就可以看出这条关键路径B里边

是由于互连线太长了造成的延时太大了

还是说我们的逻辑太复杂了

造成的延时太大

给出这些信息以后

去进一步优化我们设计

我们可以用相关的菜单操作方式

用Technology viewer方式里边去显示出

我们这条路径

这是Technology viewer的用处

前面我们会讲

在这儿详细的去看一下

那么这里面我们给出了路径B的

worst case这条B路径的路径图

或者详细的结构图

我们可以看出

在这个路径里边它是经过一个什么样的

一条路径

经过了十多个单元

才从输入的D触发器传递到输出的D触发器

这个逻辑偏复杂

有一点复杂

然后我们在定位到具体的每一个元器件

我们可以看到这个元器件具体是什么信号

什么类型的元器件

以及这个元器件相应带来的延时是多少

从而通过这种方式我们可以去关注

这条关键路径是怎么产生的

我们就可以决定

如果说关键路径的长度太长的话

我们就应该采用适当的手段把关键路径打断

如果关键路径的逻辑太复杂的话

我们也要通过相应的逻辑优化的方式

采用更简单的逻辑去设计这条关键路径

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笔记与讨论

也许你还感兴趣的课程:

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