FPGA设计时序分析概念之Timing Arc

2023-12-09 10:44

本文主要是介绍FPGA设计时序分析概念之Timing Arc,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.1 Timing Arc概念

1.2 Timing Arcs的类型

1.3 Timing Sense(时序感知)

1.4 参考资料


1.1 Timing Arc概念

    在时序工具对设计进行时序分析时,经常会看到一个概念Timing Arch(时序弧)。Timing Arc是一个信号一个单元Cell的输入引脚Pin到该单元输出引脚Output Pin间的路径。对于一个单元Cell,可以存在多个时序弧,通过时序弧的信息,我们可以计算每一段路径的时延从而进行时序分析以及优化。

1.2 Timing Arcs的类型

    时序弧分为单元弧Cell Arc和线弧Net Arc,单元弧有分为组合逻辑弧和时序逻辑弧

    组合逻辑弧:信号从组合逻辑单元的输入引脚到输出引脚的路径

    时序逻辑弧:信号从时序逻辑单元(如触发器FF和锁存器Latch)的时钟输入引脚Clock Pin到输出引脚,或者是时钟输入引脚到时序单元的其他输入引脚,下图中ck到D之间的时序弧即是用于setup、hold分析,CK到Q的路径为时序单元内部的传输时延。

    线弧:一个单元的输出引脚到另一个单元输入引脚之间的路径即为线弧Net Arcs,线弧引起信号在时序路径中的Net中存在传输时延。

1.3 Timing Sense(时序感知)

    Timing Sense时序感知是时序弧中源引脚到目的引脚的边沿传输变换,可以分为三类:Positive unate,Negative unate和Non unate,Timing Sense也可称为Unateness(单边性)

    Positive unate arc: 如果源引脚的上升沿切换能引起目的引脚的上升沿切换,则该段弧即为正级弧。如AND与门单元,OR或门单元,缓冲器BUFFER以及所有的Net arc都属于Positive Unate arcs。

以AND门为例,AND逻辑门真值表如下图

分析如下:

A=0,B为0-》1时,输出Y不会变化,一直为0

A=1,B为0-》1时,输出也是上升沿切换

B=0,A为0-》1时,输出Y不会变化,一直为0

B=1,A为0-》1时,输出也是上升沿切换

上升沿切换图如下

下降沿切换如下图

因此,AND存在4个时序弧:上升沿时,输入引脚A,引脚B到输出Y,下降沿时输入引脚A,引脚B到输出Y.

    Negative unate arc:如果源引脚的上升沿切换能引起目的引脚的下降沿切换,则该段弧即为负级弧。如NAND与非门单元,NOR或非门单元以及反相器都属于Negative Unate arcs。

    以或非门为例,真值表如下图

分析如下

A=0,B为0-》1时,输出Y下降沿切换

A=1,B为0-》1时,输出Y不变,为0

B=0,A为0-》1时,输出Y下降沿变换

B=1,A为0-》1时,输出Y不变,为0

上升沿切换如下

下降沿切换如下

    同样地,NOR存在4个时序弧:上升沿时,输入引脚A,引脚B到输出Y,下降沿时输入引脚A,引脚B到输出Y,和Positive unate arc不同的是输出边沿切换与输入相反。

    Non Unate arc:如果源引脚的边沿切换与目的引脚的边沿切换无相同或相反的关系,则该段弧即为Non-unate时序弧。如XOR异或门单元

异或门的真值表如下图

分析如下:

A=0,B为0-》1时,输出Y上升沿变换

A=1,B为0-》1时,输出Y下降沿变换

B=0,A为0-》1时,输出Y上升沿变换

B=1,A为0-》1时,输出Y下降沿变换

上升沿切换图如下图

下降沿变换图

通过这种变化关系,可以知道输出的边沿变换无法仅仅看一个输入引脚的变换。对于B上升沿的切换,输出Y还和输入A有关,A的值会影响输出Y是同边沿还是反边沿切换

1.4 参考资料

https://www.vlsi-expert.com

这篇关于FPGA设计时序分析概念之Timing Arc的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/473488

相关文章

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景

python中Hash使用场景分析

《python中Hash使用场景分析》Python的hash()函数用于获取对象哈希值,常用于字典和集合,不可变类型可哈希,可变类型不可,常见算法包括除法、乘法、平方取中和随机数哈希,各有优缺点,需根... 目录python中的 Hash除法哈希算法乘法哈希算法平方取中法随机数哈希算法小结在Python中,

Java Stream的distinct去重原理分析

《JavaStream的distinct去重原理分析》Javastream中的distinct方法用于去除流中的重复元素,它返回一个包含过滤后唯一元素的新流,该方法会根据元素的hashcode和eq... 目录一、distinct 的基础用法与核心特性二、distinct 的底层实现原理1. 顺序流中的去重

关于MyISAM和InnoDB对比分析

《关于MyISAM和InnoDB对比分析》:本文主要介绍关于MyISAM和InnoDB对比分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录开篇:从交通规则看存储引擎选择理解存储引擎的基本概念技术原理对比1. 事务支持:ACID的守护者2. 锁机制:并发控制的艺

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI