当前位置: 首页 > 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;通过分析电路中所有寄存器之间的路径延迟以检查电路的传输延迟是否会导致触发器的建立时间…...

Laravel8.5+微信小程序实现京东商城秒杀方案

一、商品秒杀涉及的知识点 鉴权策略封装掊口访问频次限制小程序设计页面防抖接口调用订单创建事务使用超卖防御 二、订单库存系统方案&#xff08;3种&#xff09; 下单减库存 优点是库存和订单的强一致性&#xff0c;商品不会卖超&#xff0c;但是可能导致恶意下单&#xff…...

Git——本地仓库链接并推送到多个远程仓库

步骤 1. 新建仓库init 或 删除已有仓库远程链接 // 1.新建init git init// 2.已有仓库&#xff0c;查看链接的远程仓库 git remote -v// 3.已有远程连接仓库&#xff0c;需要删除连接 git remote rm origin(或对应远程仓库名) 2.新建远程仓库 在gitee、github等托管平台创建…...

llama-factory 系列教程 (七),Qwen2.5-7B-Instruct 模型微调与vllm部署详细流程实战

文章目录 介绍llama-factory 安装装包下载模型 微调模型数据集训练模型 微调后的模型推理 介绍 时隔已久的 llama-factory 系列教程更新了。本篇文章是第七篇&#xff0c;之前的六篇&#xff0c;大家酌情选看即可。 因为llama-factory进行了更新&#xff0c;我前面几篇文章的实…...

Spring Boot的理解

一、什么是Spring Boot? Spring Boot是一个用于构建基于Spring框架的应用程序的开源框架。它简化了Spring应用程序的开发过程&#xff0c;使开发者能够更容易地创建独立运行的、生产级别的Spring应用程序。Spring Boot提供了许多功能和约定&#xff0c;可以帮助开发者快速搭建…...

QT QFormLayout控件 全面详解

本系列文章全面的介绍了QT中的57种控件的使用方法以及示例,包括 Button(PushButton、toolButton、radioButton、checkBox、commandLinkButton、buttonBox)、Layouts(verticalLayout、horizontalLayout、gridLayout、formLayout)、Spacers(verticalSpacer、horizontalSpacer)、…...

系统性能定时监控PythonLinux

系统性能定时监控 1.系统监控概述 ⽤Python来编写脚本简化⽇常的运维⼯作是Python的⼀个重要⽤途。在Linux下&#xff0c;有许多系统命令可以让我们时刻监控系统运⾏的状态&#xff0c;如 ps &#xff0c; top &#xff0c; free 等等。要获取这些系统信息&#xff0c;Python…...

python学习——列表的相关操作

在 Python 中&#xff0c;列表&#xff08;list&#xff09;是一种非常灵活的数据结构&#xff0c;可以用来存储一系列的元素。以下是列表的一些常见操作&#xff1a; 文章目录 创建列表访问元素修改元素列表切片添加元素删除元素列表推导式其他操作pop基本用法指定索引使用场…...

HTML CSS 魔法秀:打造翻转卡片登录注册页面

这段 HTML 和 CSS 代码创建了一个具有翻转卡片效果的登录和注册页面。下面是对重点标签和 CSS 样式的解释和总结&#xff1a; 一键复制 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"…...

Web day04 SpringBoot

目录 1.Spring概念&#xff1a; 2. spring程序快速入门&#xff1a; 3.HTTP协议&#xff1a; 特点&#xff1a; 基于TCP 协议&#xff1a; 基于请求响应模型&#xff1a; HTTP协议是无状态协议&#xff1a; 请求协议&#xff1a;为浏览器向服务器发出的消息 获取请求数据…...

selinux和防火墙实验

1 、 selinux 的说明 SELinux 是 Security-Enhanced Linux 的缩写&#xff0c;意思是安全强化的 linux 。 SELinux 主要由美国国家安全局&#xff08; NSA &#xff09;开发&#xff0c;当初开发的目的是为了避免资源的误用。 系统资源都是通过程序进行访问的&#xff0c;如…...

ClamAV 在 CentOS 的开发版本 `clamav-devel`

是的&#xff0c;ClamAV 在 CentOS 上有开发版本&#xff08;通常称为 clamav-devel&#xff09;&#xff0c;它包含了开发 ClamAV 应用程序所需的头文件和库文件。以下是如何在 CentOS 上安装 ClamAV 及其开发版本的步骤。 ### 1. **安装 EPEL 仓库** ClamAV 通常在 EPEL&am…...

C++《二叉搜索树》

在初阶数据结构中我学习了树基础的概念以及了解了顺序结构的二叉树——堆和链式结构二叉树该如何实现&#xff0c;那么接下来我们将进一步的学习二叉树&#xff0c;在此会先后学习到二叉搜索树、AVL树、红黑树&#xff1b;通过这些的学习将让我们更易于理解后面set、map、哈希等…...

⭐️ GitHub Star 数量前十的工作流项目

文章开始前&#xff0c;我们先做个小调查&#xff1a;在日常工作中&#xff0c;你会使用自动化工作流工具吗&#xff1f;&#x1f64b; 事实上&#xff0c;工作流工具已经变成了提升效率的关键。其实在此之前我们已经写过一篇博客&#xff0c;跟大家分享五个好用的工作流工具。…...

uni-app中的样式尺寸单位,px,rpx,vh,vw

uni-app 支持less、sass、scss、stylus等预处理器。 尺寸单位 uni-app 支持的通用 css 单位包括 px、rpx px 即屏幕像素rpx 即响应式 px&#xff0c;一种根据屏幕宽度自适应的动态单位。以 750 宽的屏幕为基准&#xff0c;**750rpx 恰好为屏幕宽度。**屏幕变宽&#xff0c;r…...

跳表(Skip List)

跳表&#xff08;Skip List&#xff09; 跳表是一种用于快速查找、插入和删除的概率型数据结构&#xff0c;通常用于替代平衡二叉搜索树&#xff08;如 AVL 树或红黑树&#xff09;。跳表通过在有序链表的基础上增加多层索引&#xff0c;使得查找操作的平均时间复杂度降低&…...

103.【C语言】数据结构之建堆的时间复杂度分析

1.向下调整的时间复杂度 推导 设树高为h 发现如下规律 按最坏的情况考虑(即调整次数最多) 第1层,有个节点,最多向上调整h-1次 第2层,有个节点,最多向上调整h-2次 第3层,有个节点,最多向上调整h-3次 第4层,有个节点,最多向上调整h-4次 ... 第h-1层,有个节点,最多向上调整1次 第…...

数字信号处理实验报告四:IIR数字滤波器设计及软件实现

1.实验目的 (1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法; (2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。 (3)掌握IIR数字滤波器的MATLAB实现方法。 (3)…...

Flutter:encrypt插件 AES加密处理

1、pubspec.yaml导入插件 cupertino_icons: ^1.0.8 # 密码加密 encrypt: 5.0.3encrypt封装 import package:encrypt/encrypt.dart; /// 加密类 class EncryptUtil {static final EncryptUtil _instance EncryptUtil._internal();factory EncryptUtil() > _instance;Encrypt…...

软银集团孙正义再度加码OpenAI,近屿智能专注AI人才培养

11月28日凌晨&#xff0c;全球最大财经CNBC报道&#xff0c;软银集团创始人兼CEO孙正义再次向人工智能领域的领军企业OpenAI投资了15亿美元。软银对OpenAI的投资已不是首次。就在上个月&#xff0c;软银已在OpenAI的上一轮融资中注入了5亿美元的资金。但他一直寻求获得OpenAI更…...

windows11下的Ubuntu(WSL)中安装界面测试ROS

症状&#xff1a;我在WSL(Ubuntu)中我自己的用户名下面安装好了ROS,输入命令行能用&#xff0c;就是不弹出窗口。 首先到windows应用商店安装Ubuntu,我这里安装的是20.04,然后安装对应的ROS&#xff08;Noetic版本&#xff09;. 然后windows安装VcXsrv. Ubuntu安装xfce4。 …...

Stable Diffusion 3详解

&#x1f33a;系列文章推荐&#x1f33a; 扩散模型系列文章正在持续的更新&#xff0c;更新节奏如下&#xff0c;先更新SD模型讲解&#xff0c;再更新相关的微调方法文章&#xff0c;敬请期待&#xff01;&#xff01;&#xff01;&#xff08;本文及其之前的文章均已更新&…...

【CSS】设置文本超出N行省略

文章目录 基本使用 这种方法主要是针对Webkit浏览器&#xff0c;因此可能在一些非Chrome浏览器中不适用。 基本使用 例如&#xff1a;设置文本超出两行显示省略号。 核心代码&#xff1a; .ellipsis-multiline {display: -webkit-box; -webkit-box-orient: vertical; /* 设置…...

Python绘画:蛋糕

Python绘画&#xff1a;蛋糕 &#x1f438; 前言 &#x1f438;&#x1f40b; 效果图 &#x1f40b;&#x1f409; 代码 &#x1f409; &#x1f335;&#x1f332;&#x1f333;&#x1f334;&#x1f33f;&#x1f340;☘️&#x1f331;&#x1f343;&#x1f38b;&#x1f…...

使用wget在清华镜像站下载Anaconda报错ERROR 403: Forbidden.

问题描述 使用wget在清华镜像站下载Anaconda报错ERROR 403: Forbidden. Resolving mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)… 101.6.15.130, 2402:f000:1:400::2 Connecting to mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.15…...

道可云人工智能元宇宙每日资讯|第三届京西地区发展论坛成功召开

道可云元宇宙每日简报&#xff08;2024年11月27日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 工信部等十二部门印发《5G规模化应用“扬帆”行动升级方案》 11月25日&#xff0c;工业和信息化部等十二部门印发《5G规模化应用“扬帆”行动升级方案》。《方案》…...

web安全之信息收集

在信息收集中,最主要是就是收集服务器的配置信息和网站的敏感信息,其中包括域名及子域名信息,目标网站系统,CMS指纹,目标网站真实IP,开放端口等。换句话说,只要是与目标网站相关的信息,我们都应该去尽量搜集。 1.1收集域名信息 知道目标的域名之后,获取域名的注册信…...

Google Earth Engine APP(GEE) ——基于多种机器学习多源遥感不同变量组合下的森林地表生物量模型预测APP

目录 Arguments: Returns: ui.Select Arguments: Returns: ui.Chart Arguments: Returns: ui.Chart Arguments: Returns: Classifier Arguments: Returns: Classifier Arguments: Returns: Classifier 本代码的主要功能是将我们提前准备好的森林生物量样本点上传到…...

Redis开发02:redis.windows-service.conf 默认配置文件解析与注解

文件位置&#xff1a;redis安装目录下的 redis.windows-service.conf &#xff0c;存放了redis服务的相关配置&#xff0c;下面列举出默认配置的含义&#xff1a; 配置项含义bind 127.0.0.1限制 Redis 只监听本地回环地址&#xff0c;意味着只能从本地连接 Redis。protected-m…...

webrtc 3A移植以及实时处理

文章目录 前言一、交叉编译1.Pulse Audio webrtc-audio-processing2.交叉编译 二、基于alsa进行实时3A处理1.demo源码2.注意项3.效果展示 总结 前言 由于工作需要&#xff0c;硬件3A中的AEC效果实在太差&#xff0c;后面使用SpeexDSP的软3A&#xff0c;效果依旧不是很好&#…...

Android so库的编译

在没弄明白so库编译的关系前,直接看网上博主的博文,常常会觉得云里雾里的,为什么一会儿通过Android工程cmake编译,一会儿又通过NDK命令去编译。两者编译的so库有什么区别? android版第三方库编译总体思路: 对于新手小白来说搞明白上面的总体思路图很有必…...

Reachy 2,专为AI与机器人实验室打造的卓越开源双臂移动操作平台!

近期&#xff0c;花粉机器人&#xff08;POLLEN ROBOTICS&#xff09;隆重推出Reachy 2仿生机器人——下一代开源操作平台&#xff0c;为AI与机器人实验室带来理想的双臂移动操作科研平台&#xff01; Reachy 2的仿生性&#xff1a; 》拥有两个基于Maxon无刷电机的仿生7自由度…...

Jest 测试异步函数

异步编程的发展历史 异步函数,就不用我描述了,JS是单线程的,所以没有办法处理异步问题,但是可以通过其他的机制实现 回调函数 例如,我们写一个定时器,在函数fetchData中,有一个延时处理的函数,但是,你有不能等他,如果他是一年呢? 所以,我们给他一个回调函数,来等他执行完返回处…...

linux安全管理-防火墙配置

1. 开启系统防火墙 1、检查内容 检查操作系统是否开启防火墙&#xff1b; 2、配置要求 操作系统开启防火墙&#xff1b; 3、配置方法 systemctl status firewalld ##查看系统防火墙运行状态 systemctl start firewalld ##启动防火墙 systemctl restart firewalld ##重启防火墙…...

Blender 运行python脚本

Blender 运行python脚本 步骤 1&#xff1a;打开 Blender 首先&#xff0c;打开 Blender 软件。你可以从官方网站 [blender.org]( 下载最新的 Blender 版本&#xff0c;并按照安装向导进行安装。 步骤 2&#xff1a;打开“文本编辑器”面板 在 Blender 的默认布局中&#xff…...

Three.js CSS2D/CSS3D渲染器

在Three.js开发过程中&#xff0c;有时需要将 HTML 元素与 Three.js 渲染的 3D 场景相结合&#xff0c;这就需要用到 CSS2DRenderer 和 CSS3DRenderer。本文将详细介绍这两种渲染器的原理及其应用 一、CSS2DRenderer 渲染器 概述 CSS2DRenderer 渲染器用于在 3D 场景中渲染纯…...

centos7 yum install 失败,mirrorlist.centos.org连接不上

由于centos7停止支持,导致mirrorlist.centos.orgdns解析都是失效啦,yum命令没法安装程序. 换一个镜像源就好 sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/…...

BGP协议路由黑洞

一、实验环境 1、分公司与运营商AS自治系统内运行IGP路由协议OSPF、RIP或静态路由&#xff0c;AS自治系统内通过IBGP路由协议建立BGP邻居关系。 2、公司AS自治系统与运营商AS自治系统间运行EBGP路由协议。 3、通过loopback建立IBGP与EBGP邻居关系&#xff0c;发挥loopback建立…...

学习ASP.NET Core的身份认证(基于Session的身份认证1)

ASP.NET Core使用Session也可以实现身份认证&#xff0c;关于Session的介绍请见参考文献5。基于Session的身份认证大致原理就是用户验证成功后将用户信息保存到Session中&#xff0c;然后在其它控制器中从Session中获取用户信息&#xff0c;用户退出时清空Session数据。百度基于…...

《Docker Registry(镜像仓库)详解》

一、引言 在容器化技术日益普及的今天&#xff0c;Docker 已成为众多开发者和企业的首选工具。而 Docker Registry&#xff08;镜像仓库&#xff09;作为 Docker 生态系统中的重要组成部分&#xff0c;负责存储和分发 Docker 镜像。本文将深入探讨 Docker Registry 的概念、功能…...

Mybatis

1 什么是MyBatis MyBatis是一个优秀的持久层框架&#xff0c;它对JDBC操作数据库的过程进行封装&#xff0c;使开发者只需要关注 SQL 本身&#xff0c;而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、 结果集检索等JDBC繁杂的过程代码 。…...

uniapp学习(010-3 实现H5和安卓打包上线)

零基础入门uniapp Vue3组合式API版本到咸虾米壁纸项目实战&#xff0c;开发打包微信小程序、抖音小程序、H5、安卓APP客户端等 总时长 23:40:00 共116P 此文章包含第114p-116p的内容 文章目录 H5配置文件设置开始打包上传代码 安卓设置模拟器启动设置基础配置设置图标启动界面…...

IPGuard与Ping32结合,提供企业级数据加密与防泄密解决方案,全面保障敏感数据安全

随着数字化转型的深入推进&#xff0c;企业面临着日益复杂的安全挑战。如何在确保数据流通的同时&#xff0c;保障企业的核心资产不被泄露&#xff0c;是每个企业必须面对的难题。为此&#xff0c;Ping32与IPGuard联合推出了一套全面的企业级数据加密与防泄密解决方案&#xff…...

爬虫与反爬-旋转验证码突破方案(知名短视频、TK海外版 及 某东等等)

概述&#xff1a;文本对旋转验证码进行了突破及讲述了实现原理&#xff0c;代码使用纯算法 OpenCV&#xff0c;使用代价较小同时不用安装一大堆AI训练相关的模组&#xff0c;方便且能够快速上手 当前亲自验证了能够支持的网站&#xff1a;国内知名短视频平台、海外版 以及 某东…...

霍夫变换:原理剖析与 OpenCV 应用实例

简介&#xff1a;本文围绕霍夫变换相关内容展开&#xff0c;先是讲解霍夫变换基本原理&#xff0c;包含从 xy 坐标系到 kb 坐标系及极坐标系的映射等。接着介绍了 cv2.HoughLines、cv2.HoughLinesP 概率霍夫变换、cv2.HoughCircles 霍夫圆变换的函数用法、参数含义、与常规霍夫…...

虚拟机之间复制文件

在防火墙关闭的前提下&#xff0c;您可以通过几种不同的方法将文件从一个虚拟机复制到另一个虚拟机。这里&#xff0c;我们假设您想要从 IP 地址为 192.168.4.5 的虚拟机上的 /tmp 文件夹复制文件到当前虚拟机&#xff08;192.168.4.6&#xff09;的 /tmp 文件夹下。以下是几种…...

漏洞管理与补丁管理详解:系统安全的基石

文章目录 漏洞管理与补丁管理详解&#xff1a;系统安全的基石什么是漏洞管理&#xff1f;什么是补丁管理&#xff1f;漏洞管理与补丁管理的联系与区别实施漏洞管理与补丁管理的最佳实践 漏洞管理与补丁管理详解&#xff1a;系统安全的基石 在网络安全的防护体系中&#xff0c;…...

ArrayList与LinkedList的区别是什么?

ArrayList与LinkedList是Java集合框架中实现List接口的两种常见类&#xff0c;它们各自具有独特的数据结构和特点&#xff0c;适用于不同的应用场景。 一、底层数据结构 ArrayList和LinkedList的底层数据结构是它们之间最本质的区别。 ArrayList&#xff1a; ArrayList是基于…...

《Java-数组》

《Java-数组》 1.数组介绍 概念&#xff1a;数组是一种容器&#xff0c;用来存储同种数据类型的多个值。注意&#xff1a;数组容器在存储数据的时候&#xff0c;需要结合隐式转换考虑&#xff1b; 2.数组的定义和初始化 2.1数组定义 定义格式1&#xff08;常用&#xff09…...

Docker 实战:搭建本地 Registry 私有镜像仓库及批量导入脚本

前言&#xff1a;在我之前的博客中&#xff0c;我分享了 Harbor 仓库搭建的详细操作步骤。然而&#xff0c;在实际的生产环境中&#xff0c;并非每个 Docker 环境都需要部署一个规模庞大的 Harbor 仓库。有时&#xff0c;一个轻量级的本地 Registry 私有镜像仓库会更为便捷。本…...