当前位置: 首页 > news >正文

fpga 时序分析基础

   

目录

触发器的动态参数

同步时序电路分析

1. 时钟脉冲的特性

2. 同步时序电路分析

Timing Analyzer的应用

异步时序与亚稳态问题


时序分析就是对时序电路进行时序检查,通过分析电路中所有寄存器之间的路径延迟以检查电路的传输延迟是否会导致触发器的建立时间或者保持时间违例,检查触发器的异步端口信号变化是否满足恢复时间和撤除时间的要求,以及分析时钟的传输延迟以检查时钟树的偏移和延时等情况。通过时序约束文件,告诉EDA软件,该设计应该达到的时序指标,指导EDA软件优化布局布线以达到时序设计要求。

   时序分析包括静态时序分析和动态时序分析两种类型。

  静态时序分析(Static Timing Analyzier,简称STA)就是采用穷尽分析方法来提取出整个电路存在的所有时序路径,计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足时序要求,通过对最大路径延时和最小路径延时的分析,找出违背时序约束的错误。静态时序分析不需要输入向量就能穷尽所有的路径,且运行速度很快、占用内存较少,不仅可以对芯片设计进行全面的时序功能检查,而且还可利用时序分析的结果来优化设计,因此静态时序分析已经越来越多地被用到数字集成电路设计的验证中。

触发器的动态参数

1. 建立时间

  建立时间(setup time)是指时钟脉冲的有效沿到来时,触发器的输入信号必须提前到达并且保持稳定的最短时间,用tSU表示。

2. 保持时间

   保持时间(hold time)是指时钟脉冲的有效沿作用后,触发器的输入信号还必须维持稳定的最短时间,用tH表示。

3. 时钟到输出时间

  时钟到输出时间(clock-to-output time)是指从时钟的有效沿开始算起,到触发器完成状态更新的延迟时间,用tCO表示。

   触发器的异步复位信号与时钟脉冲之间关系用恢复时间和撤除时间两个参数来定义。

4. 恢复时间和撤除时间

   恢复时间(recovery time)是指在时钟脉冲的有效沿到来之前,异步复位信号应该恢复无效状态的最短时间,用trec表示。    撤除时间(remove time)是指在时钟脉冲的有效沿作用之后,异步复位信号应该保持无效状态的最短时间,用trem表示。

同步时序电路分析

   同步时序逻辑电路内部所有的寄存器共享同一个时钟源,寄存器的状态更新在严格的时钟控制下完成的。为了避免同步电路产生时序违例,同步电路中时钟脉冲的周期与触发器的建立时间、保持时间之间应满足一定的关系。

1. 时钟脉冲的特性

   在实际的数字系统中,时钟脉冲受到传输路径、线路负载以及环境温度等因素的影响,会出现时钟偏斜、时钟抖动和占空比失真等现象。

  设时钟CLK1和CLK2来源于同一时钟CLK。正偏斜是指CLK2滞后于CLK1,即tSKEW>0,如图所示。负偏斜是指CLK2超前于CLK1,即tSKEW <0。

  时钟偏斜(clock skew)是指同源时钟到达两个寄存器时钟端的时间差异,用tSKEW表示,分为正偏斜和负偏斜两种类型。

   时钟抖动(clock jitter)是指时序电路中某些触发器的时钟周期发生了变化,分为周期抖动和周期间抖动两种。    周期抖动(period jitter)是指时钟脉冲的周期相对于理想周期的偏差。对周期抖动进行差分运算,就可以得到周期间抖动(cycle-cycle jitter)。

   占空比失真是指时钟信号在传输过程中由于时延等因素的影响,造成脉冲宽度发生了变化,即脉冲高电平和低电平持续时间的比例发生了改变。在高速电路中,由占空比失真引起的问题很普遍。例如,DDR系列片外高速存储器在时钟的上升沿和下降沿都需要对信号采样,占空比失真会改变系统的时序裕量,造成数字信号的失真。

2. 同步时序电路分析

 将FF1称为源寄存器(source register),将CLK1称为源时钟或者发送时钟,同时将CLK1的有效沿称为发送沿(launch edge);

  发起沿和捕获沿两者相差一个时钟周期。

  设同步时序电路时钟脉冲的周期用tCYCLE表示。

  将FF2称为目的寄存器(destination register),将CLK2称为目的时钟或者捕获时钟,同时将CLK2的有效沿称为捕获沿(capture edge)。

(1)建立时间裕量分析

  用tSU_SLACK表示目的寄存器的建立时间裕量,收tSU_SLACK可以表示为 tSU_SLACK =tCYCLE-(tCO+tLOGIC)-tSU

  当tSU_SLACK≥0时,说明目的寄存器的输入数据D2相对于CLK2的接收沿到达触发器并且稳定的时间满足触发器建立时间的要求。

  考虑到时钟CLK2与CLK1之间存在正偏斜时,如图所示,则建立时间裕量可表示为: tSU_SLACK =tCYCLE-(tCO+tLOGIC)-tSU+tSKEW

   由于tSKEW>0,因此建立时间裕量tSU_SLACK增加,说明正偏斜对建立时间是有益的。

(2)保持时间裕量分析

  如果不考虑时钟偏斜,在时钟CLK2的有效沿作用后,新的数据D2需要经过tCO+tLOGIC时间才到达目的寄存器的输入端,如图所示。因此,要求触发器的保持时间为tH时,如果tCO+tLOGIC≥tH,即满足保持时间要求。

  如果用tH_SLACK表示目的寄存器的保持时间裕量,则tH_SLACK可以表示为:tHOLD_SLACK=tCO+tLOGIC-tH

  考虑时钟CLK2与CLK1之间存在正偏斜时,如图所示,则保持时间裕量tH_SLACK可表示为:tHOLD_SLACK=tCO+tLOGIC-tHOLD-tSKEW

   由上述分析可知:时钟发生正偏斜时对建立时间有益,但对保持时间有害;反之,如果时钟发生负偏斜时则对保持时间有益,但对建立时间有害。因此,对于同步时序电路,最好是使时钟脉冲无偏斜,即tSKEW=0,这样对建立时间和保持时间都没有影响,这就要求同步时序电路中所有触发器的时钟不但来源于同一时钟,并且时钟网络具有良好的特性。

(3)最高工作频率分析

  当tSU_SLACK=0时,对应的时钟脉冲周期最小,此时时序电路的工作频率最高。由于tSU_SLACK =tCYCLE-(tCO+tLOGIC)-tSU,令tSU_SLACK=0时,即可以推出该同步时序电路可靠工作时,时钟脉冲的最小周期为                  

 tCYCLE(min)=tCO+tLOGIC+tSU

因此电路工作的最高时钟频率为                  

 fmax=1/tCYCLE(min)=1/(tCO+tLOGIC+tSU)

Timing Analyzer的应用

   Timing Analyzer是内嵌于Quartus Prime开发环境中的时序分析工具,能够提取同步电路中存在的所有时序路径,计算信号在这些路径中的传输延迟时间,根据指定的时序约束检查信号的建立时间和保持时间是否满足设计要求,通过对最大路径延时和最小路径延时的分析,找出违背时序约束的错误。   应用Timing Analyzer进行时序分析的基本流程如图所示,分为建立和综合工程、指定时序需求、在工程中添加.sdc约束文件,重新编译工程以及查看时序分析报告等主要步骤。

module HC160(clk,rd_n,ld_n,ep,et,d,q,co);input wire clk;input wire rd_n,ld_n,ep,et;input wire [3:0] d;output reg [3:0] q;output wire co;// 进位逻辑assign co = (( q == 4'b1001 ) & et );      // 计数过程always @( posedge clk or negedge rd_n )  if ( !rd_n ) q <= 4'b0000;           else if ( !ld_n )q <= d;else if ( ep & et )if ( q == 4'b1001 )q <= 4'b0000;  elseq <= q + 1'b1; endmodule

1.建立和编译工程

   全编译完成后,展开Tasks任务栏下Timing Analyzer中的Clocks项,可以看到图所示的时钟参数设置:表示在未指定时序约束的情况下,Timing Analyzer默认计数器的时钟周期(Period)为1ns,频率(Frequency)为1000MHz,在0时刻上升(Rise)、在0.5ns时刻下降(Fall),即时序分析默认计数器模块的时钟为1000MHz的方波。

2.指定时序约束

(1)启动Timing Analyzer。

(2)创建Timing Netlist。

  选择Netlist菜单下的“Create Timing Netlist”命令将弹出生成时序网表对话框。修改Input netlist栏下Post-fit为Post-map,点击OK后生成时序分析网表。

  返回Timing Analyzer窗口后,可以看到Timing Analyzer窗口左侧的task子窗口中的Create Timing Netlist前已经打“√”,如图所示,表示时序网表生成成功。

(3)指定时序需求。

  选择Constraints菜单栏下的Create Clock命令,弹出生成时钟对话框。

  在Clock name栏中填入clk400”,周期栏填入“2.5”,在Waveform edges的Rising和Falling栏中不填入任何数值(默认占空比为50%),将时钟clk400设置为400MHz的方波。

   点击对话页中的List图标显示工程所有的端口名,选中clk后移至右侧的selected name栏中,如图所示,再点击OK图标返回Create Clock对话页,即将设置的时钟clk400与HC160的时钟clk关联起来。

(4)更新Timing Netlist。

  点击“Read SDC File”可以查看生成的约束文件信息,再点击图中的“Update Timing Netlist”更新时序网表文件。

3.添加约束文件到工程中

   在Quartus Prime主界面下,选择Project菜单下的Add/Remove Files in Project命令,在弹出的添加和删除文件对话页中选择浏览图标,查找生成的时序约束文件HC160.out.sdc。

4.重新编译工程

   在Quartus Prime主界面下,选择Processing菜单栏下的Start Complication命令或者直接点击主界面中的图标启动全编译过程。

5.查看时序分析报告

   全编译完成后,展开Tasks任务栏下Timing Analyzer中的Clocks项。在时钟约束下,三种时序分析模型的分析结果如表示。从表中可看出,两种慢速模型的建立时间裕量为负值转变为正值,表示计数器模块HC160在FPGA中能够稳定地工作在400MHz时钟下,而且能够测量的最高工作频率也有所提高。

   修改时钟频率为500MHz,重新建立约束文件进行分析,可以看到计数器模块HC160仍然能够稳定地工作在500MHz时钟下。

异步时序与亚稳态问题

   异步时序逻辑电路内部寄存器的时钟脉冲来自两个及以上的时钟源,而且时钟源之间没有确定的关系。  对于右图所示的时序电路,当时钟CLK1与CLK2来自不同的时钟源时,为异步时序逻辑电路。   相应地,把信号从源寄存器FF1传输到目的寄存器FF2,称为跨时钟域(clock domain crossing,缩写为CDC)传输。

   信号在跨时钟域传输时,由于源寄存器的时钟和目的寄存器的时钟之间相位没有确定的相位关系,所以源寄存器发出数据后,数据有可能在任何时刻到达另一个时钟域的目的寄存器,因此无法保证信号能够满足目的寄存器建立时间和保持时间的要求。

    如果信号不能在建立时间和保持时间的窗口内保持稳定,那么目的寄存器的输出有可能进入非0非1(介于VOHmin和VOLmax之间)的不确定状态,如图所示,这个状态称为亚稳态(metastability)。相应的,把目的寄存器脱离亚稳态进入稳态的时间称为决断时间(resolution time),用tmet表示。经过决断时间后,目的寄存器的输出稳定到0还是1是随机的,与输入信号没有必然的关系。

亚稳态概率=(建立时间+保持时间)/时钟周期

   亚稳态是触发器固有的特性。除了降低时钟频率和选用更好的器件外,还可以通过改善时钟脉冲的质量,采用边沿陡峭的时钟信号等措施,以减小建立时间和保持时间窗口的宽度。    在基于FPGA的数字系统设计中,主要通过以下三种技术手段来减小亚稳态传播的概率:    (1)引入同步器来减小单bit信号亚稳态传播的概率,实现异步信号与目的时钟域的同步;    (2)应用异步FIFO实现多bit数据跨时域的传输;    (3)应用异步复位同步释放信号来改善纯异步复位信号的特性。

应用同步释放电路改善异步复位信号的特性

  异步复位信号不受时钟的控制,具有直接快速的优点。但是,当异步复位信号的释放时间不满足触发器的恢复时间和撤除时间要求时,有可能产生亚稳态。

   改进方法是应用异步复位信号对系统内部所有的寄存器复位后,释放时再经过时钟脉冲进行同步。这样做的好处是既能够应用异步复位信号对系统进行快速复位,又避免了异步复位信号直接释放时带来的亚稳态风险。

  根据上述工作原理,描述异步复位同步释放电路模块的Verilog代码参考如下:

module async_rst_sysn_recover (input  wire clk,input  wire async_rst_n,output wire rstn_sync_out);// 内部变量定义reg sync_rst_reg0,sync_rst_reg1;// 描述输出	  assign rstn_sync_out = sync_rst_reg1;// 描述异步复位同步释放逻辑always @ ( posedge clk or negedge async_rst_n ) beginif ( !async_rst_n ) begin     // 异步复位sync_rst_reg0 <= 1'b0;sync_rst_reg1 <= 1'b0; endelse begin                     // 同步释放sync_rst_reg0 <= 1'b1;sync_rst_reg1 <=  sync_rst_reg0; end  end  	
endmodule

相关文章:

fpga 时序分析基础

目录 触发器的动态参数 同步时序电路分析 1. 时钟脉冲的特性 2. 同步时序电路分析 Timing Analyzer的应用 异步时序与亚稳态问题 时序分析就是对时序电路进行时序检查&#xff0c;通过分析电路中所有寄存器之间的路径延迟以检查电路的传输延迟是否会导致触发器的建立时间…...

python学习——二维列表的列表生成式

二维列表的列表生成式允许你生成一个列表&#xff0c;其中每个元素本身也是一个列表。这在处理矩阵或表格数据时非常有用。 以下是如何使用列表生成式来创建二维列表的示例&#xff1a; 文章目录 基本语法示例1. 创建一个 3x3 的单位矩阵2. 创建一个 4x4 的乘法表3. 创建一个 …...

【错误❌】——槽函数定义好但未初始化

public slots:void onClose(); 初始化即可成功&#xff1a;...

OpenCV相机标定与3D重建(6)将3D物体点投影到2D图像平面上函数projectPoints()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::fisheye::projectPoints 是 OpenCV 库中用于鱼眼镜头模型的函数&#xff0c;它将3D物体点投影到2D图像平面上。这个函数对于模拟或者理解鱼眼…...

【Linux】剧幕中的灵魂更迭:探索Shell下的程序替换

&#x1f3ac; 个人主页&#xff1a;谁在夜里看海. &#x1f4d6; 个人专栏&#xff1a;《C系列》《Linux系列》《算法系列》 ⛰️ 一念既出&#xff0c;万山无阻 目录 &#x1f4d6;一、进程程序替换 1.替换的演示 ❓替换与执行流 ❓程序替换≠进程替换 2.替换的原理 …...

38 基于单片机的宠物喂食(ESP8266、红外、电机)

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STC89C52单片机&#xff0c;采用L298N驱动连接P2.3和P2.4口进行电机驱动&#xff0c; 然后串口连接P3.0和P3.1模拟ESP8266&#xff0c; 红外传感器连接ADC0832数模转换器连接单片机的P1.0~P1.…...

Unity中的数学应用 之 角色移动中单位化向量的妙用 (小学难度)

最近准备从简单到困难跟几个教程用以加强自己的业务能力&#xff0c;相信很多小伙伴都做过胡闹厨房这一个案例&#xff0c;其实这个案例比较初级&#xff0c;但是也包含了很多平常可能注意不到小细节&#xff0c;所以我就以它为举例&#xff0c;拓展其中的数学知识 CodeMonkey教…...

设置ip和代理DNS的WindowsBat脚本怎么写?

今天分享一个我们在工作时&#xff0c;常见的在Windows中通过批处理脚本&#xff08;.bat 文件&#xff09;来设置IP地址、代理以及DNS 相关配置的示例&#xff0c;大家可以根据实际需求进行修改调整。 一、设置静态IP地址脚本示例 以下脚本用于设置本地连接&#xff08;你可…...

字符串分割转换(Java Python JS C++ C )

题目描述 给定一个非空字符串S,其被N个‘-’分隔成N+1的子串,给定正整数K,要求除第一个子串外,其余的子串每K个字符组成新的子串,并用‘-’分隔。 对于新组成的每一个子串,如果它含有的小写字母比大写字母多,则将这个子串的所有大写字母转换为小写字母; 反之,如果它…...

【Maven】项目创建

3. Maven的应用 本章主要内容&#xff1a; 使用 Maven 创建 JavaSE 项目使用 Maven 创建 JavaWeb 项目&#xff0c;在本地部署 Tomcat 测试导入 Maven 项目 3.1 基于Maven开发JavaSE的项目 3.1.1 流程 1、File—>new—>Project—>Empty Project Location&#xff1…...

number的++和--运算 C#

number10 请计算num number --number - number number就是先对number运算&#xff0c;然后再给number赋值--number 先给number赋值&#xff0c;再拿来运算 using System;class Program {static void Main(string[] args){int number 10;int a, b, c, number1, number2;…...

浅谈网络 | 应用层之HTTPS协议

目录 对称加密非对称加密数字证书HTTPS 的工作模式重放与篡改 使用 HTTP 协议浏览新闻虽然问题不大&#xff0c;但在更敏感的场景中&#xff0c;例如支付或其他涉及隐私的数据传输&#xff0c;就会面临巨大的安全风险。如果仍然使用普通的 HTTP 协议&#xff0c;数据在网络传输…...

2、Three.js初步认识场景Scene、相机Camera、渲染器Renderer三要素

三要素之间关系&#xff1a; 有了虚拟场景Scene&#xff0c;相机录像Camera&#xff0c;在相机小屏幕上看到的Renderer Scene当前空间 Mesh人在场景 Camera相机录像 Renderer显示器上 首先先描述下Scene&#xff1a; 这个场景为三要素之一&#xff0c;一切需要展示的东西都需…...

Deepwave 声波正演和弹性波正演

Deepwave Deepwave 调用 scalar 方法实现声波和弹性波正演。 ######## 声波正演 ###################### import torch import numpy as np import deepwave from deepwave import scalardevice torch.device(cuda if torch.cuda.is_available()else cpu)## Set observation…...

【WRF-Urban】多层建筑能源参数化模型概述:原理

【WRF-Urban】多层建筑能源参数化模型概述&#xff1a;原理 1 概述1.1 原理1.2 使用步骤 2参考 多层建筑能源参数化&#xff08;Multi-layer Building Energy Parameterization, BEP&#xff09;模型是一种用于模拟城市环境中多层建筑群的能量交换和微气候影响的参数化模型。该…...

基于Qt实现的自定义树结构容器:设计与应用

在Qt框架中&#xff0c;尽管其提供了许多强大的容器类&#xff08;如 QList, QMap, QTreeWidget 等&#xff09;&#xff0c;但缺少一个通用的、灵活的树结构容器&#xff0c;直接支持多层级数据管理。为了满足这些需求&#xff0c;本文设计并实现了一个可复用的自定义树结构容…...

网络命令Linux

目录 一&#xff0c;Linux 二&#xff0c;CMD 一&#xff0c;Linux ping www.baidu.com 测试联网 -c 2 次数&#xff0c;ping几次 &#xff0c; -i 间隔 -W timeout 超时时间&#xff0c;等待响应的超时时间 ss -lntup |grep -w 22 netstat -lntup |grep -w 22 lsof -i:22 ls…...

简单的Activiti Modoler 流程在线编辑器

简单的Activiti Modoler 流程在线编辑器 1.需求 我们公司使用的流程是activiti5.22.0&#xff0c;版本有些老了&#xff0c;然后使用的编辑器都是eclipse的流程编辑器插件&#xff0c;每次编辑流程需要打开eclipse进行编辑&#xff0c;然后再导入到项目里面&#xff0c;不是特…...

【NodeJS】Express写接口的整体流程

前提条件 开发 Node.js&#xff0c;首先就必须要安装 Node.js。推荐使用 nvm&#xff0c;它可以随意切换 node 版本。下载 nvm&#xff0c;具体可以看本人另一篇文章&#xff1a;nvm的作用、下载、使用、以及Mac使用时遇到commond not found:nvm如何解决。 nvm官方&#xff1…...

Oracle 锁表的解决方法及避免锁表问题的最佳实践

背景介绍 在 Oracle 数据库中&#xff0c;锁表或锁超时相信大家都不陌生&#xff0c;是一个常见的问题&#xff0c;尤其是在执行 DML&#xff08;数据操作语言&#xff09;语句时。当一个会话对表或行进行锁定但未提交事务时&#xff0c;其他会话可能会因为等待锁资源而出现超…...

关于 vue+element 日期时间选择器 限制只能选当天以及30天之前的日期

业务需求&#xff0c;需要实现选择当天以及30天之前的日期&#xff0c;于是我想到的是利用picker-options去限制可选范围 代码如下 <el-date-pickerv-model"searchData.acceptTime"type"datetimerange"value-format"yyyy-MM-dd hh:mm:ss"styl…...

租辆酷车小程序开发(二)—— 接入微服务GRPC

vscode中golang的配置 设置依赖管理 go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn,direct GO111MODULEauto 在$GOPATH/src 外面且根目录有go.mod 文件时&#xff0c;开启模块支持 GO111MODULEoff 无模块支持&#xff0c;go会从GOPATH 和 vendor 文件夹寻找包…...

如何在 Ubuntu 22.04 上安装 Metabase 数据可视化分析工具

简介 Metabase 提供了一个简单易用的界面&#xff0c;让你能够轻松地对数据进行探索和分析。通过本文的指导&#xff0c;你将能够在 Ubuntu 22.04 系统上安装并配置 Metabase&#xff0c;并通过 Nginx 进行反向代理以提高安全性。本教程假设你已经拥有了一个非 root 用户&…...

MySQL 用户与权限管理

MySQL 是一种广泛使用的关系型数据库管理系统,支持多用户访问和权限控制。在多用户环境下,数据库安全至关重要,而用户和权限管理是数据库管理中最基础也是最重要的一部分。通过合理地创建和管理用户、分配和管理权限、使用角色权限,可以有效地保护数据库,确保数据的安全性…...

【Web前端】如何构建简单HTML表单?

HTML 表单是 Web 开发中非常重要的组成部分。它们是与用户交互的主要方式&#xff0c;能够收集用户输入的数据。表单的灵活性使它们成为 HTML 中最复杂的结构之一&#xff0c;但若使用正确的结构和元素&#xff0c;可以确保其可用性和无障碍性。 表单的基本结构 HTML 表单使用…...

Spring Boot 3 集成 Spring Security(3)数据管理

文章目录 准备工作新建项目引入MyBatis-Plus依赖创建表结构生成基础代码 逻辑实现application.yml配置SecurityConfig 配置自定义 UserDetailsService创建测试 启动测试 在前面的文章中我们介绍了 《Spring Boot 3 集成 Spring Security&#xff08;1&#xff09;认证》和 《…...

书生大模型实战营第四期-入门岛-4. maas课程任务

书生大模型实战营第四期-入门岛-4. maas课程任务 任务一、模型下载 任务内容 使用Hugging Face平台、魔搭社区平台&#xff08;可选&#xff09;和魔乐社区平台&#xff08;可选&#xff09;下载文档中提到的模型&#xff08;至少需要下载config.json文件、model.safetensor…...

Spring ApplicationListener监听

【JavaWeb】Spring ApplicationListener-CSDN博客 ApplicationEvent以及Listener是Spring为我们提供的一个事件监听、订阅的实现&#xff0c;内部实现原理是观察者设计模式&#xff0c;设计初衷也是为了系统业务逻辑之间的解耦&#xff0c;提高可扩展性以及可维护性。事件发布…...

K8s调度器扩展(scheduler)

1.K8S调度器 筛选插件扩展 为了熟悉 K8S调度器扩展步骤&#xff0c;目前只修改 筛选 插件 准备环境&#xff08;到GitHub直接下载压缩包&#xff0c;然后解压&#xff0c;解压要在Linux系统下完成&#xff09; 2. 编写调度器插件代码 在 Kubernetes 源代码目录下编写调度插件…...

IntelliJ IDEA 中,自动导包功能

在 IntelliJ IDEA 中&#xff0c;自动导包功能可以极大地提高开发效率&#xff0c;减少手动导入包所带来的繁琐和错误。以下是如何在 IntelliJ IDEA 中设置和使用自动导包功能的详细步骤&#xff1a; 一、设置自动导包 打开 IntelliJ IDEA&#xff1a; 启动 IntelliJ IDEA 并打…...

启动wordpress mu功能/百度网盘app下载安装官方免费下载

单例模式&#xff1a; 单例模式&#xff0c;它是指在设计一个类时&#xff0c;需要保证在整个运行期间针对该类只存在一个实例对象。 class BBC{private static BBC bbcnew BBC(); private BBC(){} //私有化构造方法public static BBC getBBC(){return bbc;} }类的构造…...

设计的很好的网站/临沂网站建设

最近有空研究了一下基于Opencv的视频人数统计。总结了一下&#xff0c;视频人数统计系统的工作流程主要包括以下几个部分&#xff1a; 1.视频捕获 从视频源&#xff08;摄像头或视频文件&#xff09;获取到视频图像数据。 2.目标提取&#xff08;背景建模、前景分析&#xff…...

的网站建设/在线的crm系统软件

文章目录0、打包配置&#xff08;Artifacts&#xff09;1、tomcat 的使用2、配置注释模板3、配置快捷键模板0、打包配置&#xff08;Artifacts&#xff09; Project -> Structure -> Artifacts 1、tomcat 的使用 1.在下拉列表中&#xff0c;点击Edit Configuration […...

开锁都在什么网站做/淘宝seo搜索引擎原理

1、循环 1.1、for循环 语法结构&#xff1a; for(初始化变量; 条件表达式; 操作表达式 ){//循环体 } 名称作用初始化变量通常被用于初始化一个计数器&#xff0c;该表达式可以使用 var 关键字声明新的变量&#xff0c;这个变量帮我们来记录次数。条件表达式用于确定每一次循…...

网站建设的好处论文/seo优化师

提要光线在图形学中可以简单地用向量来表示&#xff1a;r(t) o td, o表示光线的出发点&#xff0c;d表示光线的方向&#xff0c;通常是单位向量&#xff0c;r表示光线在t时刻的位置。光线求交在图形学中有着非常重要的应用&#xff0c;比如Global Illumination,collision det…...

网站备案完成通知书/企业网站建设需求分析

react-native之黄色警告Remote debugger is in a background tab which may cause apps to perform slowly. Fix this by foregrounding the tab (or opening it in a separate window).百度了一圈也没找到问题&#xff0c;感觉有点摸不着头脑 原来&#xff0c;只要把那个chrom…...