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

VIVADO中单bit信号的跨时钟域处理(快时钟到慢时钟)

VIVADO中单bit信号的跨时钟域处理

同步触发器的约束,确保软件布局布线时把同步的触发器放到同一个SLICE中

目录

前言

一、快时钟的脉冲到慢时钟的同步方法一

1、正确结果

2、源时钟脉冲展宽组合逻辑输出不加触发器的风险

3、目的时钟采样组合逻辑输出不加触发器的风险

二、快时钟的脉冲到慢时钟的同步方法二

三、约束打拍触发器

总结


前言

        本文介绍了两种单bit信号快时钟的脉冲到慢时钟的同步的方法。两种方法均可以把快时钟的脉冲同步到慢时钟。除此之外还在考虑线延迟的情况下结合仿真图片说明了组合逻辑输出不加触发器会带来的风险,文字加仿真图片可以帮助读者理解电路。最后还介绍了同步触发器的约束,确保软件布局布线时把同步的触发器放到同一个SLICE中,以降低MTBF(平均无故障时间)。


提示:创作不易,有帮助请一键三连!

一、快时钟的脉冲到慢时钟的同步方法一

1、正确结果

        显然快时钟的脉冲的周期比慢时钟的脉冲的周期小,一个很直接的想法就是对源时钟的脉冲信号展宽为宽脉冲,然后在目的时钟域打拍进行同步。这个思路是对的,但是需要注意在源时钟展宽时和在目的时钟形成脉冲时要用时序电路!(原因继续往下文阅读),还有就是扩宽的脉冲尽量比目的时钟的宽度宽1.5倍,这样既覆盖了目的时钟的一个周期,又保持了足够的裕量。

        先贴出正确的代码、电路图和仿真结果。快时钟的周期为10ns,慢时钟的周期为12ns。

module pulse_fast2slow(input clk1,  //快时钟 input clk2,  //慢时钟  input in_pulse,output reg out_pulse);reg pulse_buf1;
reg pulse_buf2;
reg wide_pulse;
always @(posedge clk1)  
beginpulse_buf1 <= in_pulse; pulse_buf2 <= pulse_buf1;wide_pulse <= pulse_buf1 | pulse_buf2;
endreg new_pulse_buf1;
reg new_pulse_buf2;
reg new_pulse_buf3;
always @(posedge clk2) 
beginnew_pulse_buf1 <= wide_pulse;new_pulse_buf2 <= new_pulse_buf1;new_pulse_buf3 <= new_pulse_buf2;out_pulse <= ~new_pulse_buf3 & new_pulse_buf2;
endendmodule

电路图太大,拆成两部分,如下,标红框的地方一定要用时序电路,不可直接将或门或者与门输出的信号不经过触发器直接给后级电路,可能会有风险。(解释见下文)

以上是正确的结果,可见源时钟脉冲扩宽, 目的时钟采样后成功同步了脉冲。

2、源时钟脉冲展宽组合逻辑输出不加触发器的风险

如图所示,即去掉或门后面触发器,直接将或门输出接到另外一个时钟域,会有风险。

对应代码变化如下:

reg pulse_buf1;

reg pulse_buf2;

wire wide_pulse;

always @(posedge clk1)  

begin

    pulse_buf1 <= in_pulse;

    pulse_buf2 <= pulse_buf1;

end

assign wide_pulse = pulse_buf1 | pulse_buf2;

考虑走线的延时,如下图所示,pulse_buf1_reg和pulse_buf2_reg的Q端到或门的输入I0和I1的延时不一致时,或门的输出就是下图倒数第二个信号的两个高电平夹着一个低电平,如果将或门的输出接了触发器,就是下图最后一个信号的正确波形。所以这就是为什么前文提到要用时序电路的原因,如果或门输出不接触发器,目的时钟直接采样,就有可能采到中间凹下去的那个低电平,甚至还有可能造成亚稳态。

3、目的时钟采样组合逻辑输出不加触发器的风险

如图所示,即去掉与门后面触发器,直接将与门输出接到输出,会有风险,分析和前面的一样。

图中第一个画圈处new_pulse_buf2_reg的Q端延时2ns到与门输入的I1端,第2个画圈处new_pulse_buf3_reg的Q端延时3ns到与门输入的I0端,对比与门的输出和与门后接触发器的输出,可见与门直接输出脉冲宽度只有75-62=13ns,比时钟周期多了一个ns,而触发器的输出84-72=12ns和周期12ns刚好对的上。这种延时下与门直接输出比时钟周期多1个ns,其实如果后面的电路都是这个clk2时钟区域的话,倒不会有风险,因为即使脉宽是13ns,后级电路不管是上升沿还是下降沿采样都只能采到一次高电平。

下面改了延时的大小。图中第一个画圈处new_pulse_buf2_reg的Q端延时7ns到与门输入的I1端,第2个画圈处new_pulse_buf3_reg的Q端延时1ns到与门输入的I0端,对比与门的输出和与门后接触发器的输出,可见与门直接输出脉冲宽度只有73-67=6ns,比时钟周期少了6ns,而触发器的输出84-72=12ns和周期12ns刚好对的上。这种情况下如果后级电路是下降沿采样就不能到高电平了。

所以说,目的时钟采样组合逻辑输出也最好加一级触发器,不然电路可能会有风险。综上所述,快时钟的脉冲同步到慢时钟时最好是组合电路的输出加一级触发器。

二、快时钟的脉冲到慢时钟的同步方法二

       方法一这种脉冲扩展方法的有效性取决于快时钟(CLKA)和慢时钟(CLKB)之间的频率关系。如果两者的时钟周期比例发生变动,原先设计的脉冲宽度可能无法满足要求。若未同步调整扩展逻辑,则可能导致信号捕获失败或亚稳态风险,就需要重新修改代码。还有一种方法是源时钟域将脉冲信号转化为电平信号,目的时钟域去检测电平信号的变化,从而恢复脉冲,这种方法就不会受快时钟(CLKA)和慢时钟(CLKB)之间的频率关系的影响。显然这种方法也适用于慢时钟的脉冲到块时钟的同步。

        正确的代码、电路图和仿真结果如下。快时钟的周期为10ns,慢时钟的周期为12ns。注意代码最后是异或^,方法一是&。

module pulse_fast2slow(input clk1,  //快时钟 input clk2,  //慢时钟  input in_pulse,output reg out_pulse);//方法二
reg wide_pulse=0;
always @(posedge clk1)  
beginif(in_pulse)wide_pulse <= !wide_pulse;
endreg new_pulse_buf1;
reg new_pulse_buf2;
reg new_pulse_buf3;
always @(posedge clk2) 
beginnew_pulse_buf1 <= wide_pulse;new_pulse_buf2 <= new_pulse_buf1;new_pulse_buf3 <= new_pulse_buf2;out_pulse <= new_pulse_buf3 ^ new_pulse_buf2;
endendmodule

可见,快时钟的脉冲成功同步到了慢时钟。从功耗的角度来说,应该采用方法一,从资源的角度来说,应该采用方法二。两种方法都是正确的,自己看哪种适合就用哪种吧!

三、约束打拍触发器

经过前面的分析,可以得出一个结论,那就是同步器中的触发器延迟越小越好,毫无疑问,同一个SLICE中的两个触发器走线肯定是最短的,所以我们希望软件布局布线时把同步的触发器放到同一个SLICE中,这样可以降低MTBF(平均无故障时间)。如果不加约束,new_pulse_buf1,new_pulse_buf2,new_pulse_buf3不是放到同一个SLICE中,如下图所示。

施加约束,即

(* ASYNC_REG="TRUE" *)reg new_pulse_buf1,new_pulse_buf2,new_pulse_buf3;

这样new_pulse_buf1,new_pulse_buf2,new_pulse_buf3就是放到同一个SLICE中的了。ASYNC_REG属性的作用对象为寄存器,寄存器添加该属性后,即表明寄存器的数据输入口D接收的是来自异步时钟触发器的数据或是该寄存器在一个同步链中属于同步寄存器。ASYNC_REG在异步跨时钟域中经常被使用。

需要注意的是在附加了ASYNCREG属性后,在综合的过程中将不会优化该寄存器及其周边逻辑。所以会发现加了约束的WNS是18.739,比没加约束的WNS18.758要小一点。


总结

        本文介绍了两种单bit信号快时钟的脉冲到慢时钟的同步的方法。两种方法均可以把快时钟的脉冲同步到慢时钟。

相关文章:

VIVADO中单bit信号的跨时钟域处理(快时钟到慢时钟)

VIVADO中单bit信号的跨时钟域处理 同步触发器的约束&#xff0c;确保软件布局布线时把同步的触发器放到同一个SLICE中 目录 前言 一、快时钟的脉冲到慢时钟的同步方法一 1、正确结果 2、源时钟脉冲展宽组合逻辑输出不加触发器的风险 3、目的时钟采样组合逻辑输出不加触发器…...

解决 Windows10 下 UWP 应用无法使用本地代理

从Micorsoft Store下载的应用默认不允许使用本地代理(或者说就不允许访问localhost) 但是可以借助于系统自带的 CheckNetIsolation 工具来突破该限制 操作 找出要修改的应用 SID 在注册表 HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Cur…...

实验三 进程间通信实验

一、实验目的 1、了解什么是信号。 2、熟悉LINUX系统中进程之间软中断通信的基本原理。 3、理解进程的同步关系。 4、掌握用信号实现进程间的同步操作。 5、了解什么是管道。 6、熟悉UNIX/LINUX支持的管道通信方式。 二、实验内容 1、阅读下列程序&#xff0c;执行程序…...

NHANES指标推荐:TyG-WHtR

文章题目&#xff1a;Can cardiovascular health and its modifiable healthy lifestyle offset the increased risk of all-cause and cardiovascular deaths associated with insulin resistance? DOI&#xff1a;10.1186/s12933-025-02674-z 中文标题&#xff1a;心血管健康…...

Winddows11官网下载安装VMware Workstation Pro17(图文详解)

Winddows11安装VMware17 1、官网下载2、安装3、总结 1、官网下载 官网地址 点击Products&#xff0c;滑到最下面&#xff0c;选择SEE DESKTOPP HYPERVISORS 选择 DOWNLOAD FUSION OR WORKSTATION 自动跳转到下面哪个服界面&#xff0c;注册 输入邮箱地址和图片下面的文字…...

YOLO训练时到底需不需要使用权重

1. 预训练权重的作用与本质 预训练权重&#xff08;Pretrained Weights&#xff09;是在大规模数据集上训练得到的模型参数。这些权重能够学习通用的特征模式&#xff0c;如边缘、纹理、形状等&#xff0c;从而帮助模型更快收敛并提高泛化能力。YOLO提供的官方预训练权重通常基…...

2025最新软件测试面试八股文(答案+文档+视频讲解)

1、你的测试职业发展是什么&#xff1f; 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&#xff0c;按如何做好测试工程师的要点去要求自己&…...

SpringBoot整合AOP

没事做个Demo案例&#xff0c;首先看下项目结构&#xff1a; 第1步&#xff0c;导入依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency> 第2步…...

第16章:MCP服务端项目开发实战:对话系统

第16章:MCP服务端项目开发实战:对话系统 对话系统,尤其是聊天机器人和虚拟助手,是 AI Agent 最广泛的应用领域之一。然而,传统的对话系统常常面临挑战,如难以维持长对话连贯性、缺乏个性化交互、无法有效利用对话中积累的知识等。MCP(Memory, Context, Planning)框架为…...

JavaScript 页面刷新:从传统到现代的全面解析

在 Web 开发中&#xff0c;"刷新"是一个基础但极其重要的功能。本文将全面探讨页面刷新的实现方式&#xff0c;从传统方法到现代最佳实践&#xff0c;深入解析每一种方案的原理和适用场景&#xff0c;并给出实用代码示例。 一、理解页面刷新的本质 在 Web 开发中&am…...

2025年Google Play审核策略全面解析

大家好&#xff0c;我是老妙&#xff0c;出海十余年的老司机&#xff0c;目前在死磕google play上架这一块。 目前来说&#xff0c;上架这一块不管是合规产品还是不合规产品&#xff0c;都建议使用有在架包的老号&#xff0c;更稳定&#xff0c;上架的审核时间更短&#xff0c…...

使用PHP对接印度尼西亚股票市场

在本篇文章中&#xff0c;我们将介绍如何使用PHP语言与StockTV API接口对接&#xff0c;获取并处理印度尼西亚&#xff08;Indonesia&#xff09;的股票市场数据。我们将以查询IPO信息和查看涨跌排行榜为例&#xff0c;展示具体的操作流程。 准备工作 首先&#xff0c;确保您…...

第54讲:总结与前沿展望——农业智能化的未来趋势与研究方向

目录 一、本板块内容回顾:人工智能助力农业的多元化应用 ✅ 精准农业与AI ✅ 农业金融与AI ✅ AI与农业政策 ✅ 农业物联网与AI 二、前沿趋势与研究方向:迈向智能、可持续农业的未来 1. AIGC(生成式AI)在农业中的应用 2. 数字孪生农业:虚拟与现实的无缝对接 3. A…...

Go语言中包导入下划线的作用解析

在Go语言的代码中&#xff0c;有时会看到类似以下的导入语句&#xff1a; import _ "github.com/mattn/go-sqlite3"这种以下划线_开头的导入方式&#xff0c;显得有些特别&#xff0c;尤其是对于新手来说&#xff0c;可能会感到困惑&#xff0c;为什么要这样写&…...

Linux学习笔记之动静态库

相信点进这篇帖子的你一定在动静态库的学习中遇到了很多问题。笔者由于曾经囫囵吞枣地学习库的相关知识&#xff0c;导致在实际应用中漏洞百出。所以写下这篇帖子&#xff0c;为大家解答一些疑惑&#xff0c;同时也加强自己的学习印象。 一、库的理解 什么是库&#xff1f;我…...

生成运算树

目录 题目题目描述示例输入输出算法标签: 二叉树, d f s dfs dfs, 模拟, *递归下降算法思路代码*后续 A C AC AC代码 题目 题目描述 在某种脚本语言里&#xff0c;有一个形如 x(api-xn)eps 的运算表达式&#xff0c;该表达式由以下元素构成&#xff1a; 操作数&#xff1a;…...

为什么要提出Null-text Inversion

在传统扩散模型的反转过程中&#xff08;如DDIM Inversion&#xff09;&#xff0c;文本提示&#xff08;Prompt&#xff09;确实不直接影响反转过程&#xff0c;但Null-text Inversion的优化动机源于反转-重建后的图像在后续编辑时对文本的依赖性。以下分步骤详细解释&#xf…...

centos离线安装ssh

一、在有网络的环境中准备RPM包 1.在一台与离线机器相同版本和架构的CentOS系统上&#xff0c;安装必要工具&#xff1a; sudo yum install -y yum-utils 2.创建目录存放RPM包&#xff1a; mkdir /tmp/ssh_rpms 3.下载SSH相关包及其依赖 yumdownloader --resolve --destd…...

数据库安装和升级和双主配置

备份和导入数据 ./mysqldump -u root -p123321 test > test.sql rsync -av test.sql root192.168.0.212:/usr/local/mysql/ ./mysql -uroot -p test < …/test.sql sudo tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ sudo ln -sfn /usr/loca…...

React 的 useEffect 清理函数详解

React 的 useEffect 清理函数详解 useEffect 是 React 中用于处理副作用&#xff08;side effects&#xff09;的 Hook&#xff0c;清理函数&#xff08;Cleanup Function&#xff09;是 useEffect 中返回的一个函数&#xff0c;用于清理或撤销副作用。清理函数的主要目的是确…...

C++ Lambda 表达式

Lambda 表达式的完整语法如下&#xff1a; [capture](parameters) mutable -> return_type { body }[capture]&#xff08;捕获列表&#xff09;&#xff1a;指定外部变量如何被 Lambda 表达式捕获&#xff08;按值或按引用&#xff09;。 (parameters)&#xff08;参数列…...

MATLAB 中的图形绘制

一、线图 plot 函数用来创建x和y值的简单线图。 x 0 : 0.05 : 30; %从0到30&#xff0c;每隔0.05取一次值 y sin(x); plot(x,y,LineWidth,2) %若&#xff08;x&#xff0c;y&#xff0c;LineWidth&#xff0c;2&#xff09;可变粗 xlabel("横轴标题") ylab…...

深度解析 Kubernetes 配置管理:如何安全使用 ConfigMap 和 Secret

目录 深度解析 Kubernetes 配置管理&#xff1a;如何安全使用 ConfigMap 和 Secret一、目录结构二、ConfigMap 和 Secret 的创建1. 创建 ConfigMapconfig/app-config.yaml&#xff1a;config/db-config.yaml&#xff1a; 2. 创建 Secretsecrets/db-credentials.yaml&#xff1a…...

【UVM项目实战】异步fifo—uvm项目结构以及uvm环境搭建

本文章同步到我的个人博客网站&#xff1a;ElemenX-King&#xff1a;【UVM项目实战】异步fifo—uvm项目结构以及uvm环境搭建 希望大家能使用此网站来进行浏览效果更佳&#xff01;&#xff01;&#xff01; 目录 一、异步FIFO1.1 异步FIFO的定义1.2 亚稳态1.3 异步FIFO关键技术…...

【含文档+PPT+源码】基于SpringBoot+Vue的移动台账管理系统

项目介绍 本课程演示的是一款 基于SpringBootVue的移动台账管理系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3.该…...

C语言——函数

C语言——函数 函数的概念 函数&#xff1a;也叫子程序。C语言中的函数就是一个完成某项特定任务的一小段代码。C语言函数分类&#xff1a; 按照用户使用&#xff1a;库函数&#xff0c;自定义函数 按照参数的形式&#xff1a;无参函数&#xff0c;有参函数 按照是否有返回值…...

网络安全 | F5 WAF 黑白名单配置实践指南

关注&#xff1a;CodingTechWork 引言 在现代网络安全架构中&#xff0c;F5 Web Application Firewall (WAF) 是保护 Web 应用免受攻击的重要工具。F5 WAF 提供了强大的黑白名单功能&#xff0c;结合 Data Group 和 iRules&#xff0c;可以实现更灵活、更高效的流量控制策略。…...

黑马 redis面试篇笔记

redis主从 version: "3.2"services:r1:image: rediscontainer_name: r1network_mode: "host"entrypoint: ["redis-server", "--port", "7001"]r2:image: rediscontainer_name: r2network_mode: "host"entrypoint:…...

报错_NoSuchMethodException: cn.mvc.entity.User.<init>()

org.springframework.beans.BeanInstantiationException: Failed to instantiate [cn.mvc.entity.User]: No default constructor found; nested exception is java.lang.NoSuchMethodException: cn.mvc.entity.User.<init>() 添加一个无参的构造器即可&#xff01; pub…...

【无人机】无人机遥控器设置与校准,飞行模式的选择,无线电控制 (RC) 设置

目录 1、遥控器校准 1.1、校准步骤 2、飞行模式选择&#xff0c;遥控器通道映射 2.1、配置步骤 1、遥控器校准 在校准无线电系统之前&#xff0c;必须连接/绑定接收器和发射器。绑定发射器和接收器对的过程是特定于硬件的&#xff08;有关说明&#xff0c;请参阅 RC 手册&…...

基于 EFISH-SBC-RK3588 的无人机环境感知与数据采集方案

一、核心硬件架构设计‌ ‌高性能算力引擎&#xff08;RK3588 处理器&#xff09;‌ ‌异构计算架构‌&#xff1a;集成 8 核 CPU&#xff08;4Cortex-A762.4GHz 4Cortex-A551.8GHz&#xff09;&#xff0c;支持动态调频与多任务并行处理&#xff0c;单线程性能较传统四核方案…...

上岸率85%+,25西电先进材料与纳米科技学院(考研录取情况)

1、先进材料与纳米科技学院各个方向 2、先进材料与纳米科技学院近三年复试分数线对比 学长、学姐分析 由表可看出&#xff1a; 1、材料科学与工程25年相较于24年上升10分&#xff0c;为290分 2、材料与化工&#xff08;专硕&#xff09;25年相较于24年下降20分&#xff0c;为…...

10天学会嵌入式技术之51单片机-day-7

第十六章 UART通信 16.1 UART 概述 16.1.1 前置基础 想要理解和使用 UART&#xff0c;需要先了解一些通讯领域的术语&#xff0c;如下 。 &#xff08;1&#xff09;串行通讯和并行通讯 串行通讯和并行通讯是数据传输的两种主要方式&#xff0c;两者的区别如下。 &#xff…...

w~视觉~合集3

我自己的原文哦~ https://blog.51cto.com/whaosoft/12327888 #几个论文 Fast Charging of Energy-dense Lithium-ion Batteries Real-time Short Video Recommendation on Mobile Devices Semantic interpretation for convolutional neural networks: What makes a ca…...

AI在论文评审中的应用与工具推荐

一、AI在论文评审中的核心应用场景 内容质量评估与逻辑校验 • 核心论点识别&#xff1a;AI可快速定位论文核心创新点&#xff0c;并验证其与文献综述、实验数据的逻辑一致性&#xff08;如知网研学的“文献矩阵分析”功能&#xff09;。 • 方法论合理性检测&#xff1a;自动识…...

怎样记忆Precision、Recall?

首先&#xff0c;明确符号&#xff1a; TP(True Posive)&#xff1a;标签为正&#xff0c;预测为正 TN(True Negative)&#xff1a;标签为负&#xff0c;预测为负 FP(False Positive)&#xff1a;标签为负&#xff0c;预测为正 FN(False Negative)&#xff1a;标签为正&#xf…...

【刷题】第三弹——二叉树篇(上)

文章目录 一.相同的树二. 另一棵树的子树三. 翻转二叉树四. 对称二叉树五. 平衡二叉树六. 二叉搜索树七. 二叉树的遍历 一.相同的树 检查两棵树是否相同 思路: 1.先比较结构 结构不一样直接false 2.结构一样,在比较值 public boolean isSameTree(TreeNode p, TreeNode q) {if…...

【Canvas与标志】红黄渐变阴影太极图

【成图】 120*120的png图标 大小图&#xff1a; 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>红黄渐变阴影太极图 Draft1&l…...

express的中间件,全局中间件,路由中间件,静态资源中间件以及使用注意事项 , 获取请求体数据

Express 中间件系统 的详细讲解&#xff0c;包括全局中间件、路由中间件、静态资源中间件、请求体解析中间件&#xff0c;以及使用注意事项&#x1f447; &#x1f310; 一、什么是中间件&#xff08;Middleware&#xff09;&#xff1f; 中间件是 函数&#xff0c;在请求到达…...

大数据去重

实验4 大数据去重 1.实验目的 通过Hadoop数据去重实验&#xff0c;学生可以掌握准备数据、伪分布式文件系统配置方法&#xff0c;以及在集成开发环境Eclipse中实现Hadoop数据去重方法。 2.实验要求 了解基于Hadoop处理平台的大数据去重过程&#xff0c;理解其主要功能&…...

高功率激光输出稳定性不足?OAS 光学软件来攻克

法布里珀罗干涉仪设计案例 简介 法布里珀罗干涉仪作为一种高分辨率光学仪器&#xff0c;基于多光束干涉原理构建。其核心结构由两块高度平行的反射镜组成谐振腔&#xff0c;当光进入该谐振腔后&#xff0c;会在镜面间进行多次反射。在这一过程中&#xff0c;透射光会形成干涉条…...

基于大模型的结肠癌全病程预测与诊疗方案研究

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 二、结肠癌概述 2.1 流行病学特征 2.2 发病机制与危险因素 2.3 临床症状与诊断方法 三、大模型技术原理与应用现状 3.1 大模型的基本原理 3.2 在医疗领域的应用情况 3.3 在结肠癌预测中的潜力分析 四、术前…...

【Hive入门】Hive查询语言(DQL)完全指南:从基础查询到高级分析

目录 1 Hive查询执行架构全景 2 SELECT基础查询详解 2.1 基本查询结构 2.2 条件查询流程图 3 聚合函数与GROUP BY实战 3.1 聚合执行模型 3.2 GROUP BY数据流 4 排序操作深度解析 4.1 ORDER BY执行流程 4.2 排序算法对比 5 高级技巧与注意事项 5.1 嵌套查询与CTE 5.…...

【学习笔记】文件包含漏洞--相关习题

第一关 伪协议 用代码执行命令查看目录所含文件&#xff0c;发现flag.php 法一 题目代码含有include&#xff0c;写入文件包含指令&#xff1a; php://filter/readconvert.base64-encode/resourceflag.php 解码即可得到flag。 法二 法三 法二可以用php&#xff1a;//input&…...

蓝桥杯 20. 压缩变换

压缩变换 原题目链接 题目描述 小明最近在研究压缩算法。他知道&#xff0c;压缩时如果能够使数值很小&#xff0c;就能通过熵编码得到较高的压缩比。然而&#xff0c;要使数值变小是一个挑战。 最近&#xff0c;小明需要压缩一些正整数序列&#xff0c;这些序列的特点是&a…...

BY免费空间去掉?i=1

BY免费空间去掉?i1 使用说明 支持域名&#xff1a;tae.dpdns.org 前提绑定主机&#xff0c;申请主机–控制面板选择–子域名&#xff0c;绑定xxx.tae.dpdns.org子域名 默认开启DDoS防御&#xff0c;无防火墙规则&#xff0c;建议用.htaccess来防御 默认去掉访问统计?i1 …...

中篇:深入剖析 L2CAP 与 ATT 协议模块(约5000字)

引言 在 BLE 协议栈中,L2CAP 与 ATT 承担了关键的数据分发、协议复用与属性访问职责。对多协议并存和大数据场景的应用,深入理解这两层协议的分片重组、流控机制、MTU/MTU 协商和 ATT 操作流程,对于提升系统性能与稳定性至关重要。本篇将全面拆解 L2CAP 与 ATT 的原理与实战…...

【C语言】C语言结构体:从基础到高级特性

前言 在C语言的世界里&#xff0c;结构体是一种强大而灵活的自定义数据类型&#xff0c;它能够将不同类型的数据组合在一起&#xff0c;形成一个逻辑上的整体。从简单的数据聚合到复杂的内存对齐优化&#xff0c;再到高效的位段操作&#xff0c;结构体在系统编程、嵌入式开发和…...

电控---JTAG协议

一、物理层架构与信号特性 1. 引脚定义与电气规范 核心引脚&#xff1a; TCK&#xff08;测试时钟&#xff09;&#xff1a;频率范围0.1MHz至50MHz&#xff08;如Xilinx Spartan-6支持25MHz&#xff09;&#xff0c;上升沿采样数据。TMS&#xff08;测试模式选择&#xff09;…...

FreeRTOS【3】任务调度算法

重要概念 在运行的任务&#xff0c;被称为"正在使用处理器"&#xff0c;它处于运行状态。在单处理系统中&#xff0c;任何时间里只能有一个任务处于运行状态。 非运行状态的任务&#xff0c;它处于这 3 中状态之一&#xff1a;阻塞(Blocked)、暂停(Suspended)、就绪…...