静态时序分析的三种分析模式(简述)

2023-11-20

  经过跟行业前辈的探讨和参考一些书籍,本文中的“个人理解”部分有误,即:

  (个人理解:)在一个库中,尽管电路器件单元已经被综合映射,但是工具可以通过改变周围的环境来得到不同的单元延时,所以即使是同一个库,调用工艺参数不一样的情况下,其单元延时是不同的,因此就有了最快路径和最慢路径。 (这里有误)。

  对于一个综合好的电路网表,在一个确定的pvt环境下(即只读入一个库的情况下)、约束好了端口的transition和load,那么电路网表中的某个器件的延时是唯一确定的(从库查表得到)。ovc模式下一个器件才有两个延时值。

  因此下面的库分析(延时分析)过程中,存在认识错误,请读者们注意!!!以后我会专门写一篇文章来更正的。

  学习数字设计(数字IC设计、FPGA设计)都必须学习静态时序分析(Static Timing Analysis ,STA)。然而静态时序时序分析是一个比较大的方向,涉及到的内容也比较多,如果要系统得学习,那得花费不少的心思。这里来记录一下关于静态时序分析的三种分析模式,这里的记录只是记录一下学习笔记,或者说是随笔,而不是系统地学习STA。本文是来自于前天遇到了一道静态时序分析的题目,感觉有点疑惑,于是发到群里请求解答。经过一番讨论、查找资料之后,真相渐渐露出水面。

  先看一下题目:

           

 

 

一、时序路径分析模式及相关概念

  1.最快路径和最慢路径

  在求解这道题目之前,先来介绍一下时序路径分析模式及相关概念。

①最快路径(early- path):指在信号传播延时计算中调用最快工艺参数的路径;根据信号的分类可以分为最快时钟路径和最快数据路径。

②最慢路径(late path):指在信号传播延附计算中调用最慢工艺参数的路径;分为最慢时钟路径和最慢数据路径。

  (个人理解:)在一个库中,尽管电路器件单元已经被综合映射,但是工具可以通过改变周围的环境来得到不同的单元延时,所以即使是同一个库,调用工艺参数不一样的情况下,其单元延时是不同的,因此就有了最快路径和最慢路径。(这里理解有误)

注意:

    与数据路径不同,最快时钟路径、最慢时钟路径的选择在建立时间分析和保持时间分析中是不同的。

1)建立时间分析最快时钟路径和最慢时钟路径如下图所示:

           

在建立时间分析中,最快时钟路径是指时序路径中时钟信号从时钟源点到达终止点时序单元时钟端口的延时最短捕获时钟路径,而最慢时钟路径是指时序路径中时钟信号从时钟源点到达始发点时序单元时钟端口的延时最长发射时钟路径

 

2)保持时间分析最快时钟路径和最慢时钟路径如下图所示:

           

在保持时间分析中,最快时钟路径是指时序路径中时钟信号从时钟源点到达达始发点时序单元时钟端口的延时最短发射时钟路径,而最慢时钟路径是指时序路径中时钟信号从时钟源点到终止点时序单元时钟端口的延时最长捕获时钟路径

 

  2.分析模式

  静态时序分析工具提供3种分析模式进行静态时序分析,不同的设计需求通过选择对应的时序分析模式从而可以在合理的时序计算负荷范围内得到接近于实际工作的时序分析结果。这三种模式是:单一分析模式(single mode)、最好-最坏分析模式(BC-WC mode)、全芯片变化分析模式(OCV模式)

  我查阅了一些资料,在Synopsys公司的静态时序分析工具PrimeTime在早期的userguide中是有说明的,例如2010.06版本中:

           

但是在最近两三年的版本中,却忽略了BC_WC模式,变成了其他三种模式,比如2015.12版本中:

           

虽然在user  guide中没有明确写出BC_WC模式,但是这种模式还是存在的,也就是还是可以使用这种模式的。

 

  在Cadence的时序分析分析工具Encounter Timing System的2013.01的版本中,也是支持这三种分析模式的:

            

             

  上面的工具默认的都是单一模式。回到题目中,查了一下,这道题目是5、6年前(甚至更早)的了,算是很经典的一道题目。很显然,题目要求的是在BC_WC模式先分析建立时间和保持时间。在求解题目之前,先来看一下这三种模式是如何分析建立时间和保持时间的。

  对于PT的2010.06版本:

            

             

              

对于PT的2015.12版本:

              

可以看到,2015.12并没有给出WC-BC模式的描述,但是是支持的。

 

  对于ETS:没有给出表格,但是和PT的差不多。

 

下面就来介绍这三种模式下是如何分析路径延时的,这里只进行介绍建立时间的分析,看情况介绍保持时间。

 

二、单一分析模式(工具默认的模式)

  1.模式介绍

在该模式下,工具只会在指定的一种工作条件下检查建立时间和保持时间,该工作条件可能是最好的、典型的、最坏的中的一种,但只能是单一的一种,

 

而这里不进行配置:

 

(1)建立时间分析

对于触发器到触发器时序路径的建立时间的要求,转换成单一分析模式下建立时间的基本计算公式如下:

        发送时钟最慢路径延时+最慢数据路径延时≤捕获时钟最快路径延时+时钟周期-终止点时序单元建立时间

  进行建立时间检查时,始发点触发器的发射时钟路径延时、终止点触发器捕获时钟路径沿和从始发点到终止点的数据路径延时都是基于单一工作条件下所计算的路径延时。这是工作单一的一个库中,也就是工具在同一工艺进程、温度、电源下,调用其他不同的工艺参数,得到最快、最慢的时钟路径和数据路径。这是路径值是确定的。例如下面例子中(时间单位为ns):

             

假设上述电路是在典型库中进行综合的,那么在分析建立时间的时候,工具通过调用不同的工艺参数,得到最慢的发射时钟路径、最慢的数据路径和最快的捕获时钟路径:

  时钟周期=4

  发射时钟最慢延时 = U1+U2 = 0.8+0.6 = 1.4

  最慢数据路径延时 =3.6

  最快捕获时钟延时 = U1+U3 = 1.3

  时序单元FF2的建立时间要求查库得到0.2

因此 :建立时间的slack为:

          1.3 + 4-0.2 - 1.4 - 3.6 = 0.1

 

(2)保持时间分析

保持时间的计算思路是一样的,这里只给出保持时间需要满足的公式,不再举具体例子。单一模式下要满足的保持时间要求如下所示:

        发射时钟最快路径延时 + 最快数据路径延时≥捕获时钟最慢路径延时 + 终止点时序单元保持时间

 

  2.题目计算

  对于前面的题目,由于题目的要求是在WC-BC模式下,但是假如是在单一模式,我们来看看该如何分析:

单一库下工具提取到延时信息的理解如下:

             

下面分析题目中的路径:

              

对于F1和F2之间的建立时间分析如下所示:

  时钟周期 = 2*4 = 8

  最慢发射时钟路径(延时) = C1max + C2max = 1

  最慢数据路径 = F1cqmax+L1max = 0.7+7 = 7.7

  最快捕获时钟路径 = C1min + C2min + C3min = 0.6

  F2的D端口建立时间 = 0.3

因此建立时间slack 为 :

    8 +0.6 - 0.3 -  1 - 7.7 = -0.4 (建立时间违规)

 

对于F1和F2之间的保持时间分析如下所示(题目没有要分析这条路径的保持时间):

  最快发射时钟路径:C1min + C2min = 0.4

  最快数据路径:F1cqmin+L1min = 3.2

  最慢捕获时钟:C1max + C2max + C3max = 1.5

  F2保持时间 = 0.1

因此保持时间slack为:

    0.4+3.2 - 1.5 - 0.1 = 2

 

同理可以分析单一模式下F3-F4路径的保持时间:

  最快发射时钟路径:C1min + C2min = 0.4

  最快数据路径:F3cqmin + L2min = 0.4

  最慢捕获时钟:C1max + C2max + C4max+C5max = 2

  F2保持时间 = 0.1

  因此保持时间slack为:

    0.4 + 0.4 - 2 - 0.1 = -1.3(保持时间违规)

 

 

三、最好-最坏分析模式(BC-WC)

  1.模式介绍 

  对于最好-最坏分析模式,静态时序分析工具会同时在PVT环境中的最好的和最坏的工作环境下检查建立时间和保持时间。也就是说,使用这个方式的时候,至少需要读入两个库(环境),一个用来设置最好的工作环境(或者说延时最小),一个用来设置最坏的工作环境(或者说延时最大)。

(1)建立时间分析

  最好-最坏分析模式中建立时间的基本计算公式与单一分析模式下建立时间的基本计算公式一致,不同点在于计算建立时间所使用的工作环境不同,在计算建立时间过程中静态时序分析工具调用逻辑单元的最大(max)延时时序库,并用来检查时序路径最大延时是否满足触发器建立时间。

例如对下面电路进行建立时间分析:

             

  时钟周期 = 4

  发射时钟最慢路径延时(max库)=U1单元延时(max库)+U2单元延时(max库)=0.7+0.6=1.3

  最慢数据路径延时(max库)=3.5

  最快数据路径延时(max库) =1.9

  捕获时钟最快路径延时值(max库) = U1单元延时(max库)+ U3单元延时(max库)=0.7+0.5=1.2

  建立时间要求(max库) = 0.2

因此触发器之间路径的建立时间slack为:

      1.2 + 4 - 0.2 -1.3 - 3.5 = 0.2

 

(2)保持时间分析

  同样,最好-最坏路径分析模式中保持时间的基本计算公式与单一分析模式下保持时间的基本计算公式一致。不同点在于计算保持时间所使用的工作环境不同。在计算保持时间过程中,静态时序分析工具调用逻辑单元的最小(min)延时时序库,并用来检查时序路径最小延时是否满足触发器保持时间的约束。 即进行保持时间检查时,始发点触发器的发射时钟延时、终止点触发器捕获时钟延时和从始发点到终止点的数据路径延时都是基于最好工作条件下所计算的路径延延时

例如对下面电路进行保持时间分析:

             

  时钟周期 = 4

  发射时钟最快路径延时(min库)=U1单元延时(min库)+U2单元延时(min库)=0.5+0.4=0.9

  最快数据路径延时(min库)=1

  最慢数据路径延时(min库) =2.3

  捕获时钟最慢路径延时值(min库) = U1单元延时(min库)+ U3单元延时(min库)=0.5+0.3=0.8

  保持时间要求(min库) = 0.1

因此触发器之间路径的保持时间slack为:

    0.9+1-0.8-0.1 = 1 (保持时间不违规)

 

  2.题目计算

  对于我们的题目,就是要求我们在BC-WC模式下进行分析建立时间和保持时间。现在就来分析一下。

首先我们分析工具提取到延时信息:

           

 这里我们需要注意,本来我在读入max库的时候,应该有会得到max库下的单元延时的最大最小值;在读入min库的时候后,会得到min库下单元的最大最小值。题目中相当于只有一个库下单元延时的最大最小值,这个库取了max库的最大延时,同时取min库的最小延时。因此在进行WC分析的时候,我们就将max库中的单元延时最大和最小值看做相等进行处理,即max库中单元只有一个固定延时值(即上面的max列表里面)。同理BC分析的时候,min库中的单元也只有一个延时值(即上面的min列表里面)。

下面就对时序路径进行分析:

               

对于F1-F2路径的建立时间分析如下所示:

  时钟周期 = 2*4 = 8

  最慢发射时钟路径(max库) = C1max + C2max = 1

  最慢数据路径(max库) = L1max = 7

  最快捕获时钟路径(max库) = C1maxmin + C2maxmin + C3maxmin=C1max + C2max + C3max = 1.5   (maxmin表示max库下的最快路径)

  F2的D端口建立时间 (max库)= 0.3

因此建立时间slack 为 :

    8 +1.5 - 0.3 -  1 -0.7- 7 = 0.5

 

对F3-F4路径的保持时间分析如下所示:

  最快发射时钟路径(min库):C1min + C2min = 0.4

  最快数据路径(min库):F3cqmin + L2min = 0.4

  最慢捕获时钟(min库):C1minmax + C2minmax + C4minmax+C5minmax =C1min + C2min + C4min+C5min=0.8   (minmax表示min库下的最慢路径)

  F2保持时间 = 0.1

因此保持时间slack为:

    0.4 + 0.4 - 0.8 - 0.1 = -0.1(保持时间违规)

 

 

四、OCV分析模式

  在芯片变化相关工作模式下,与最好-最坏分析模式一样,静态时序分析工具也会同时在PVT境中的最好的和最坏的工作环境下检查建立时间和保持时间,也就是要读入两个库。

  1.基本的OCV模式:

(1)建立时间的分析

  OCV分析模式中建立时间的基本计算公式与其他分析模式下建立时间的基本计算公式一致,不同点在于计算最快路径和最慢路径所使用的工作环境不同,在计算建立时闻过程中静态时序分析工具调用时序单元的最大延时时序库来计算最慢路径的延时,同时调用逻辑单元的最小延时时序库来计算最快路径的延时,只检查时序路径的延时是否满足触发器建立时间的约束。

  进行建立时间检查时。始发点触发器的发射时钟采用的是最坏条件下最慢时钟路径,终止点触发器的捕获时钟采用的是最好条件下最快时钟路径,而从始发点到终止点的数据路径的延时则是在最坏条件下最慢数据路径延时。

例如:

             

  时钟周期 = 4

  发射时钟最慢路径延时(max库)=U1单元延时(max库)+U2单元延时(max库)=0.7+0.6=1.3

  最慢数据路径延时(max库)=3.5

  捕获时钟最快路径延时值(min库) = U1单元延时(min库)+ U3单元延时(min库)=0.5+0.3=0.8

  建立时间要求(max库) = 0.2

因此触发器之间路径的建立时间slack为:

      0.8 + 4 - 0.2 -1.3 - 3.5 =- 0.2(时序违规)

 

·保持时间:类似,不进行详细描述

 

(2)题目计算

  对于我们的题目,假设要在基本的OCV模式下进行计算,我们来看一下:

首先库的分析WC-BC模式一样,不重复说明:

       

然后对时序路径进行分析:

           

对于F1-F2路径的建立时间分析如下所示:

  时钟周期 = 2*4 = 8

  最慢发射时钟路径(max库) = C1max + C2max = 1

  最慢数据路径(max库) = F1cqmax+L1max = 0.7+7 = 7.7

  最快捕获时钟路径(min库) = C1min + C2min + C3min= 0.6

  F2的D端口建立时间 = 0.3

因此建立时间slack 为 :

    8 +0.6 - 0.3 -  1 -7.7= -0.4  (建立时间违例)

 

对F3-F4路径的保持时间分析如下所示:

  最快发射时钟路径(min库):C1min + C2min = 0.4

  最快数据路径(min库):F3cqmin + L2min = 0.4

  最慢捕获时钟(max库):C1max + C2max + C4max+C5max =2

  F2保持时间 = 0.1

因此保持时间slack为:

    0.4 + 0.4 - 2 - 0.1 = -1.1(保持时间违规)

 

  对于上面的题目,在基本的OCV模式中计算分析建立时间时,公共路径C1、C2在计算最慢发射时钟路径时,使用的是max库的最慢延时;而在计算最快捕获时钟路径的时候使用的是min库的最快延时。也就是说,该分析把公共路径的输出,当做两个不同传播延时的信号进行延时计算。然而在芯片实际工作时,公共路径的输出是一个信号驱动后续的发射时钟和捕获时钟,上面的检查分析太过于悲观,不太符合实际,因此延伸到下面两种模式。

 

  2.考虑时序减免的OCV模式:

  时序减免〔timing derate)的作用是很据减免(derating)系数,静态时序分析工具会在时序路径的每级逻辑门、连线和端口上都加上或减去一个原来延时值乘以减免系数值的延时作为最终的延时结果。设置时序减免值的目的是使时序分析结果更加符合实际情况。

使用这种方式需要设置derating系数,系数值需要通过实际工程经验总结出来,这里不进行深入探讨,而且题目中没有给出该系数,因此不进行深入介绍。

 

  3.考虑时钟路径悲观移除(CPPR)的OCV模式:

  可以分为 不考虑时序减免和考虑时序减免情况,这里不进行介绍,感兴趣可以参考有关资料。

 

其他先进的分析模式如AOVC、POCV等,涉及内容较多,就不写了,感兴趣可以参考有关资料。

 

 

参考资料:

《集成电路静态时序分析与建模》,刘峰,2016

《PrimeTime  User Guide》,synopsys,2015

《PrimeTime  Fundamentals User Guide》,synopsys,2010

《Encounter Timing System User Guide》,cadence,2013

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

静态时序分析的三种分析模式(简述) 的相关文章

  • 获取360画报图片

    在使用360画报时 有时看到喜欢的图片想保存下来 却不知道怎么保存 今天跟大家分享一下方法 1 360画报文件都在C Users Administrator AppData Roaming 360browser bkinfo这里面 但是不是
  • 前端实现导出excel表格(合并表头)

    需求 勾选行导出为excel表格 合并表头 一 安装插件 npm install save file saver xlsx 运行项目报如下警告的话 运行npm install xlsx 0 16 0 save 来降低版本号 最初我安装的版本
  • hive的3种数据存储格式

    hive有textFile SequenceFile RCFile三种文件格式 其中textfile为默认格式 建表时不指定默认为这个格式 导入数据时会直接把数据文件拷贝到hdfs上不进行处理 SequenceFile RCFile格式的表
  • 数据库列名无效原因

    1 原因可能是列名没有加中括号 2 可能是SQL语句中的列名与建表时的列名不一致 3 看看是不是
  • 出现使用选项-std=c99或-std=gnu99来编译您的代码错误或者如何让Linux内核编译驱动模块时支持C99

    最近在Linux系统下编译嵌入式代码时出现问题 问题如下图 然后发现问题出在这 use option std c99 or std gnu99 to compile your code 上面的意思是 使用选项 std c99或 std gn
  • Notepad++ 列操作

    在网上找到一篇关于socket编程的文章 想把其中的代码直接拷贝下来运行测试 但是人家网站做的不够人性化 每行的开头都有行号 直接拷贝就要一行行的删除 甚是麻烦 想到linux下的vi编辑器可以完成列操作 windows下应该也有相关软件可
  • kali之vulhub,medium_socnet

    目录 一 部署环境 二 进行主机发现 arp scan进行扫描 三 使用nmap扫描发现的靶机IP 1 全端口扫描 看服务 2 查看端口所用服务版本 3 登录ip地址看一下 四 扫目录 dirsearch脚本 和windous御剑类似 1
  • Linux进程间通信--使用命名管道

    Linux进程间通信 使用命名管道 一 什么是命名管道 命名管道也被称为FIFO文件 它是一种特殊类型的文件 它在文件系统中以文件名的形式存在 但是它的行为却和之前所讲的没有名字的管道 匿名管道 类似 由于Linux中所有的事物都可被视为文
  • OpenCV-Python中的标量Scalar是什么

    前往老猿Python博客 https blog csdn net LaoYuanPython 一 标量的常规含义 在百度百科中标量是这样定义的 标量 scalar 亦称 无向量 有些物理量 只具有数值大小 而没有方向 部分有正负之分 物理学
  • Windows驱动开发(一)第一个驱动程序

    首先我们需要了解 在操作系统中 是分两种权限的 一种是内核态 我们也称为0环 一种是用户态 称之为3环 而在我们的电脑中 驱动程序是运行在内核态的 这意味着和操作系统内核是在同一权限的 而普通的应用程序的权限是最低的 高权限谁不想拥有呢 因
  • Qt:鼠标事件(鼠标移动事件、鼠标按下事件、鼠标释放事件、进入窗口区域、离开窗口区域)

    鼠标事件 本质是重写重写QWidgt中虚函数 以下程序是获取鼠标坐标 mylabel h ifndef MYLABEL H define MYLABEL H include
  • IntelliJ IDEA(Community版本)本地模式的下载、安装及其使用

    对于初学者来说可以先使用免费的社区版本练练手 ideaIC 2017 3 5 gt 社区版 ideaIU 2017 3 5 gt 旗舰版 一 IntelliJ IDEA Community版本 下载 下载链接 https www jetbr
  • parser解析中的-与_

    import argparse parser argparse ArgumentParser description 解析命令行参数 parser add argument echo s parser add argument echo d
  • [python] 使用Jieba工具中文分词及文本聚类概念

    前面讲述了很多关于Python爬取本体Ontology 消息盒InfoBox 虎扑图片等例子 同时讲述了VSM向量空间模型的应用 但是由于InfoBox没有前后文和语义概念 所以效果不是很好 这篇文章主要是爬取百度5A景区摘要信息 再利用J
  • Nginx 官方rpm包下载地址

    运维更换地方需求保存的地址 centos http nginx org packages rhel 7 x86 64 RPMS
  • 怎么用好免费的ChatGPT

    最近 ChatGPT因其出色的表现而备受关注 网友们纷纷赞叹不已 然而 在国内目前还没有相应的使用途径 本文旨在向大家介绍如何免费使用ChatGPT 并教你如何善用它来提升个人效率 在下文中 我们将提供详细指南 让您能够充分利用ChatGP
  • 利用正则表达式对手机号、身份证、姓名脱敏(**模糊化)

    var phone 13623021456 var idcode 440582199612056666 var name 陈妹 var name1 陈美美 var name2 欧阳美美 phone phone replace 3 4 1 2
  • 【无线电力传输】12 V 直流风扇无线电力传输系统的实现(Simulink)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Simulink仿真实现 1 概述 经过实现 我们成功地开发出了一种无线电
  • shell脚本,一次性启动kafka集群

    版本centos6 5 64位操作系统 已配置JDK1 8 三个节点 在s121节点上可以免密登录到另外两个节点 另外kafka0 9 0 1的安装目录相同 修改了主机名 并在每个节点的hosts文件中设置了映射 脚本内容 bin bash
  • 关于git存储空间的注意

    摘自 https blog csdn net weixin 30411819 article details 97716808 utm medium distribute pc relevant none task blog BlogCom

随机推荐

  • 解决vxe-table复选框翻页选中问题

    解决vxe table复选框翻页选中问题 根据vxe table官方文档 想要保留勾选中的数据 我们的代码中需要设置 row id 和 checkbox config中的 reserve 属性 vxe table官方文档 简单写下html部
  • thinkphp 6.x 任意文件写入漏洞

    目录 前言 一 复现 二 漏洞分析 前言 提示 这里可以添加本文要记录的大概内容 ThinkPHP v6 0 0 6 0 1 存在任意文件操作漏洞 主要原因是调用了session的进行了文件的写入 导致的漏洞 补丁对传入的 sessionI
  • API接口开发简述简单示例

    作为最流行的服务端语言PHP PHP Hypertext Preprocessor 在开发API方面 是很简单且极具优势的 API Application Programming Interface 应用程序接口 架构 已经成为目前互联网产
  • vue3.0删除node_modules 无用的依赖

    安装插件 npm i depcheck 查看无用的插件 npx depcheck 对应删除 npm uninstall kd layout
  • C++/C++11中变长参数的使用

    C C 11中的变长参数可以应用在宏 函数 模板中 1 宏 在C99标准中 程序员可以使用变长参数的宏定义 变长参数的宏定义是指在宏定义中参数列表的最后一个参数为省略号 而预定义宏 VA ARGS 则可以在宏定义的实现部分替换省略号所代表的
  • docker 安装tomcat遇到问题

    docker 安装 tomcat 启动 tomcat docker pull tomcat 8 默认启动 docker run d p 7788 8080 tomcat 8 进入容器 docker exec it 541d6c30c295
  • Spring源码分析refresh()第二篇

    invokeBeanFactoryPostProcessors方法 这个方法比较重要 实例化和调用所有已注册的BeanFactoryPostProcessor bean 如果有已经注入的BeanFactoryPostProcessor 则优
  • JavaScript 高级应用第一弹

    文章目录 Gorit 带你学全栈 JavaScript 高级应用 第一弹 一 数组篇 1 1 展开表达式 1 2 返回一个新数组 1 2 1 map 1 2 2 filter 1 2 3 concat 1 3 索引相关问题 1 4 返回 b
  • Qt 中遇到QLabel::setPixmap() 设置图片不起作用(图片被替换后还是显示替换前的图片)解决方法

    1 问题 当使用下面的命令设置图片后 第一次会成功显示图片 当我删除当前图片后并且用另一张图片重命名成先前删除的图片时 再次刷新显示还是先前删除的图片资源 重启软件又正常显示修改后的图片 ui gt label gt setPixmap Q
  • 3.[mybatis]的查询源码分析(执行流程、缓存、整合spring要点)

    目录 1 装饰器模式 2 sqlSession的创建 open 2 1 newExecutor 3 selectOne分析 3 1 二级缓存 3 2 一级缓存 4 数据库查询核心分析 queryFromDatabase 4 1 Simple
  • Wave x Incredibuild

    Wave 公司简介 Wave 是一家虚拟娱乐公司 致力于帮助艺术家和粉丝通过协作创造出世界上最具互动性的现场表演体验 Wave 整合了最顶尖的现场音乐 游戏和广播技术 将现场音乐表演转化为沉浸式虚拟体验 便于观众通过 YouTube Twi
  • java 模拟库存管理系统

    本案例要求编写一个程序 模拟库存管理系统 该系统内容主要包括 商品入库 商品显示 和删除商品功能 此程序用手机举例 此管理系统分别为两个类Phone 和Test类 Phone类 确定四个变量 类 1 生成空参数构造方法 2 全部参数的构造方
  • 经典的期货量化交易策略大全(含源代码)

    1 双均线策略 期货 双均线策略是简单移动平均线策略的加强版 移动平均线目的是过滤掉时间序列中的高频扰动 保留有用的低频趋势 它以滞后性的代价获得了平滑性 比如 在一轮牛市行情后 只有当价格出现大幅度的回撤之后才会在移动平均线上有所体现 而
  • 引介

    转载自 https ethfans org posts rlp encode and decode RLP编码和解码 RLP Recursive Length Prefix 递归的长度前缀 是一种编码规则 可用于编码任意嵌套的二进制数组数据
  • sqli-labs第26~28关

    第26关 查看源码 黑名单 过滤了 or and 空格 s 代表正则表达式中的一个空白字符 可能是空格 制表符 其他空白 即 s 用于匹配空白字符 我们常见的绕过空格的就是多行注释 但这里过滤了 不太行啊 将空格 or and 等各种符号过
  • [设计模式]模板方法模式(Template Method)

    1 意图 定义一个操作中的算法的骨架 而将一些步骤延迟到子类中 TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤 2 动机 其实就是如意图所描述的 算法的骨架是一样的 就是有些特殊步骤不一样 就可以
  • java一行代码实现RESTFul接口

    一 介绍spring data rest Spring Data REST是基于Spring Data的repository之上 可以把 repository 自动输出为REST资源 目前支持 Spring Data JPA Spring
  • vue3 vue-router 钩子函数

    全局路由守卫 vue router4 0中将next取消了 可写可不写 return false取消导航 undefined或者是return true验证导航通过 router beforeEach to from gt next是可选参
  • 大数据案例--电信日志分析系统

    目录 一 项目概述 1 概述 二 字段解释分析 1 数据字段 2 应用大类 3 应用小类 三 项目架构 四 数据收集清洗 1 数据收集 2 数据清洗 五 Sqoop使用 1 简介 2 Sqoop安装步骤 3 Sqoop的基本命令 六 数据导
  • 静态时序分析的三种分析模式(简述)

    经过跟行业前辈的探讨和参考一些书籍 本文中的 个人理解 部分有误 即 个人理解 在一个库中 尽管电路器件单元已经被综合映射 但是工具可以通过改变周围的环境来得到不同的单元延时 所以即使是同一个库 调用工艺参数不一样的情况下 其单元延时是不同