Versal - 基础3(AXI NoC 专题+仿真+QoS)
目录
1. 简介
2. 示例
2.1 示例说明
2.2 创建项目
2.2.1 平台信息
2.2.2 AXI NoC Automation
2.2.3 创建时钟和复位
2.3 配置 NoC
2.4 配置 AXI Traffic
2.5 配置 Memory Size
2.6 Validate BD
2.7 添加观察信号
2.8 运行仿真
2.9 查看结果
2.9.1 整体波形
2.9.2 事务详情
2.9.3 事务全过程解读
3. IP 介绍
3.1 AXI Traffic Generator
3.1.1 IP 简介
3.1.2 Config Tab
3.1.3 可综合配置
3.1.4 不可综合配置
3.2 AXI BRAM Controller
3.2.1 IP 简介
3.2.2 IP 配置
3.3 Embedded Memory Gen
3.3.1 IP 简介
3.3.2 单端口 RAM
3.3.3 简单双端口 RAM
3.3.4 真双端口 RAM
3.3.5 单端口 ROM
3.3.6 双端口 ROM
3.3.7 工作模式
4. 总结
1. 简介
Basic NoC Designhttps://github.com/Xilinx/Vivado-Design-Tutorials/tree/2024.2/Versal/Memory_and_NoC/NoC_Design_Flows/IPI/Module_01_Basic_NoC_Designhttps://github.com/Xilinx/Vivado-Design-Tutorials/tree/2024.2/Versal/Memory_and_NoC/NoC_Design_Flows/IPI/Module_01_Basic_NoC_Designhttps://github.com/Xilinx/Vivado-Design-Tutorials/tree/2024.2/Versal/Memory_and_NoC/NoC_Design_Flows/IPI/Module_01_Basic_NoC_Designhttps://github.com/Xilinx/Vivado-Design-Tutorials/tree/2024.2/Versal/Memory_and_NoC/NoC_Design_Flows/IPI/Module_01_Basic_NoC_Designhttps://github.com/Xilinx/Vivado-Design-Tutorials/tree/2024.2/Versal/Memory_and_NoC/NoC_Design_Flows/IPI/Module_01_Basic_NoC_Designhttps://github.com/Xilinx/Vivado-Design-Tutorials/tree/2024.2/Versal/Memory_and_NoC/NoC_Design_Flows/IPI/Module_01_Basic_NoC_Designhttps://github.com/Xilinx/Vivado-Design-Tutorials/tree/2024.2/Versal/Memory_and_NoC/NoC_Design_Flows/IPI/Module_01_Basic_NoC_DesignAXI NoC 和 AXIS NoC
- AXI NoC 支持 AXI 内存映射协议
- AXIS NoC 支持 AXI4-Stream 协议
每实例指定了一组连接,这些连接将映射到物理 NoC 上,并为每条连接指定了 QoS 要求。
一个 Block Design 可以包含任意数量的这两种类型的实例。
IP 集成器自动汇总所有逻辑 NoC 实例的连接性和 QoS 信息,形成 NoC 编译器的统一流量规范。
MCs 被集成到 AXI NoC 核心中。一个AXI NoC IP实例可以配置为包含一个、两个或四个集成MC实例。
如果选择了两个或四个MC实例,它们将被配置为形成单一的交错内存。在这种情况下,内存控制器被配置得相同,并映射到相同的地址。
Interleaving 由 NoC 控制。
2. 示例
2.1 示例说明
该设计使用 AXI4 流量发生器读写块 RAM。具体步骤为:
- 使用模拟时钟生成器、AXI4 流量生成器、AXI NoC、AXI4 Block RAM 控制器和内存生成器创建块 RAM 实例。
- 采用自顶向下设计流程,在模块设计画布中实例化 AXI NoC IP。
- 借助 IP 集成器推断 NoC、时钟发生器和互连。
- 创建设计后进行仿真,以验证是否满足带宽要求。
2.2 创建项目
2.2.1 平台信息
1)软件版本为:Vivado 2024.2
2)Versal 器件为:XCVE2302-SFVA784-1LP-E-S
3)创建项目,新建 Block Design
4)添加 IP:AXI NoC IP
2.2.2 AXI NoC Automation
对 AXI NoC IP 进行自动化设计:
- 去掉 CIPS 勾选框
- AXI Tranffic Generator:1
- AXI BRAM Controller:1
- MC Type:None
(注意:Sources 和 Destinations,各选了一个)
得到如下结果:
生成了一些新的 IP:
- Source 端:
- Simulation Trigger For NoC AXI TG
- Performance AXI Traffic Generator
- Destination 端:
- AXI BRAM Controller
- Embeded Memory Generator
- 时钟:
- Simulation Clock and Reset Generator
2.2.3 创建时钟和复位
上一个步骤中生成的 Block Design,没有时钟和复位,执行 Run Connection Automation 可以自动生成。全部使用保持默认设置即可:
结果如下图所示:
生成了两个新的 IP:
- Clock Wizard
- Processor System Reset
Clock Wizard 的输出时钟驱动 Simulation Clock and Reset Generator 的输入时钟。
这有两个目的:
- 在仿真阶段,时钟由 Simulation Clock and Reset Generator 驱动。
- 在 Impl 阶段,时钟由 Clock Wizard 驱动,Simulation Clock and Reset Generator 将直通。
由于 Clock Wizard 的输入时钟和复位源尚未连接,运行连接自动化链接再次变为活动状态继续执行 Run Connection Automation。保持默认即可:
最终的 Block Design 如下:
2.3 配置 NoC
1)NoC 配置决定了设计要使用一组参数:
- 入口和出口端口的数量和类型
- 输入时钟与每个端口的关联
- 入口和出口端口之间的路由连接
- 每个连接所需的 QoS
2)Inputs / Outputs Tab 可查看输入输出端口的配置
在本例中,定义了一个输入和一个输出,均连接到 PL 域,关联时钟为 aclk0。
偶校验:启用从 AXI 主设备到 NMU 连接的偶校验。可用的校验选项有:
- 无:不进行奇偶校验
- 地址:启用 AXI 地址奇偶校验
- 数据:启用 AXI 数据奇偶校验
- 地址和数据:启用 AXI 地址和数据奇偶校验
3)Connectivity Tab
显示哪些 NoC 入口接口(例如 S00_AXI )将路由到哪些出口接口(例如 M00_AXI )。
4)QoS Tab
QoS 选项卡允许您为每个 NoC 连接选择服务质量 (QoS) 设置。第一行显示入口端口 ( S00_AXI ) 的 QoS 设置。请注意,默认的读取和写入流量类别是 BEST_EFFORT。
显示了来自所选入口端口的每个输出连接的 QoS 属性集。在此设计中,只有一个输出连接 ( M00_AXI ) 对应于块 RAM 控制器的 AXI4 端口。这里可以指定所需的读写带宽。默认值 1720 MB/s 就足够了。
2.4 配置 AXI Traffic
Performance AXI Traffic Generator v1.0
1)Non-systhesizable TG Options
2)Number of Write Transactions
执行 100 次传输操作。
2.5 配置 Memory Size
1)更改 BRAM 大小
无法在 Embedded Memory Generator 中直接修改,即使修改后,Validate 之后又会恢复修改之前的值。应当在 Address Editor 中修改。
此页面中, Memory Size(存储器大小)为 4K bytes。
当 validate_bd_design 运行时,该值将传播到:
- AXI BRAM Controller
- Embeded Memory Generator
2)查看 AXI BRAM Controller IP 中的结果
Memory Size = Data_Width × Memory_Depth = 32 bit × 1024 = 4K bytes。
3)查看 Embeded Memory Generator IP 中的结果
Write Width = Read Width = 32 bit。
Memory Size = Width × Memory_Depth = 32 bit × 1024 = 4K bytes。
2.6 Validate BD
NoC Validate the Block Design 会调用 NoC Compiler 来查找 NoC 的最佳配置。
NoC Compiler 执行以下功能:
- 完成逻辑入口和出口端口到物理 NMU 和 NSU 资源的映射
- 在 QoS 约束下,为所有指定连接找到 NoC 的最优路径
- 配置 NoC 内部资源,使其能够实现路由方案
通过单击工具栏上的 Validate Design 图标(F6)来执行验证。
验证后,NoC 查看器显示编译结果,QoS 标签显示达成的服务质量。
2.7 添加观察信号
Vivado 仿真器有一个事务视图功能,可以更清晰地查看 AXI 总线事务的波形。
仿真时,使用事务视图观察流量发生器和 NoC 之间的接口。
在 Block Design 中,选中下图所示的红线部分,右键单击并标记 Mark Simulation。
这会指示仿真器捕获并显示这条线上的 AXI-MM 事务。
仿真前,需要创建一个顶层 HDL wrapper。
2.8 运行仿真
1)仿真设置
注意仿真设置的顶层(design_1_wrapper_sim_wrapper):
2)生成行为 RTL 模型并启动模拟器
进入仿真 GUI:
包含两个
3)运行仿真
4)复位仿真
2.9 查看结果
2.9.1 整体波形
- Outstanding Reads:未完成的读取过程
- Outstanding Writes:未完成的写入过程
2.9.2 事务详情
1)鼠标悬停在某个事务上会弹出一个窗口,显示该事务的详细信息。
2)高亮显示事务流:点击事务的某个部分(比如 “Write Data”)会高亮显示相关的部分。
2.9.3 事务全过程解读
- 红色序号1:Performance AXI Traffic Generator 发起读写事务,数据位宽 512 bit
- 红色序号2:数据通过 AXI NoC 到达 AXI BRAM 控制器,数据位宽是 32 bit
整个写事务,耗时 103.354ns,103.354ns/3.334=31clks 个时钟周期。
写事务过程详细图示:
3. IP 介绍
3.1 AXI Traffic Generator
3.1.1 IP 简介
Performance AXI Traffic Generator,高性能 AXI 流量发生器。
它有两个版本:
- 仅用于仿真的不可综合版本
- 可用于仿真和在硬件中运行的可综合版本
Vivado 中包含两种 AXI 流量发生器:
《AXI Traffic Generator LogiCORE IP Product Guide (PG125)》
《Performance AXI Traffic Generator LogiCORE IP Product Guide (PG381)》
后者提供更多的特性:
- 更精细的流量控制: 可以更精确地控制流量的类型、数量、时序等
- 更灵活的配置选项: 可以根据不同的测试场景进行更灵活的配置
- 对 Versal 器件的: 评估基于 NoC 的解决方案的性能
参考:
Performance AXI Traffic Generator - IP Release Notes and Known Issueshttps://adaptivesupport.amd.com/s/article/75781?language=zh_CNhttps://adaptivesupport.amd.com/s/article/75781?language=zh_CNhttps://adaptivesupport.amd.com/s/article/75781?language=zh_CNhttps://adaptivesupport.amd.com/s/article/75781?language=zh_CN
3.1.2 Config Tab
3.1.3 可综合配置
3.1.4 不可综合配置
3.2 AXI BRAM Controller
3.2.1 IP 简介
参考:《AXI Block RAM (BRAM) Controller v4.1 Product Guide(PG078)》
1)AXI4 BRAM Controller 框图
2)Features
- 支持 32 位、64 位、128 位、256 位、512 位和 1024 位 BRAM 数据宽度。
- 特殊的突发处理: 它将一种叫做“FIXED”的传输方式特殊处理为“INCR”方式,并且不支持“FIFO”方式。这是一种为了简化自身设计而采取的折衷方案。
- 特定的传输长度: 对于不同的传输方式(WRAP、FIXED、INCR),它有预设的连续传输次数(分别为 16、16 和 256 次)。这就像预先设定好每次搬运多少箱货物。
- 支持窄突发: 即使需要传输的数据量小于存储器一次能处理的数据量,它也能有效地进行处理。
- 简单直接: 它只使用基本的通信信号,没有使用一些高级的优化技术(如用户信号、重排序、缓存或缓冲)。
3)Supported Memory Size
| Data Width (Bits) | Memory Depths (Words) |
|-------------------|------------------------------------------------|
| 32 | 512, 1k, 2k, 4k, 8k, 16k, 32k, 64k, 128k, 256k |
| 64 | 512, 1k, 2k, 4k, 8k, 16k, 32k, 64k, 128k, 256k |
| 128 | 512, 1k, 2k, 4k, 8k, 16k, 32k, 64k, 128k |
| 256 | 512, 1k, 2k, 4k, 8k, 16k, 32k, 64k |
| 512 | 512, 1k, 2k, 4k, 8k, 16k, 32k |
| 1024 | 512, 1k, 2k, 4k, 8k, 16k |
| 2048 | 512, 1k, 2k, 4k, 8k |
3.2.2 IP 配置
3.3 Embedded Memory Gen
参考:《Embedded Memory Generator LogiCORE IP Product Guide (PG326)》
3.3.1 IP 简介
Embedded Memory Generator IP 是一个高级存储器构造器,它使用 AMD 器件中的 Block RAM、UltraRAM 和 Distributed RAM 资源生成 Area and Performance-optimized 的存储器。
典型应用包括一下内容:
3.3.2 单端口 RAM
1)定义: 就像一条单行道,只有一个入口/出口。数据只能按顺序写入和读取,不能同时进行读写操作。
2)应用场景:
- 处理器暂存 RAM(Scratch RAM): 用于处理器执行运算时的临时数据存储,速度快,但容量通常不大。例如,在进行复杂的数学计算时,中间结果可以先存放在暂存 RAM 中,运算完成后再取出。
- 查找表(Look-Up Table, LUT): 用于存储预先计算好的数据,通过输入地址直接查找对应的值,提高运算速度。例如,在图像处理中,可以使用 LUT 来快速进行颜色转换。
3.3.3 简单双端口 RAM
1)定义: 像一条有两条独立的入口/出口的通道,可以同时进行读写操作,但通常有一些限制。例如,可能只允许一个端口读,另一个端口写,或者读写操作不能在同一地址进行。
2)应用场景:
- 内容可寻址存储器(Content Addressable Memory, CAM): 与普通 RAM 通过地址查找数据不同,CAM 通过内容查找数据。输入一个数据,CAM 会返回该数据所在的地址。简单双端口 CAM 可以实现快速查找,但写入操作可能需要一些额外的控制。
- FIFO(First-In, First-Out): 是一种先进先出的数据结构,数据从一个端口写入,从另一个端口按相同的顺序读出,就像排队一样。简单双端口 RAM 可以方便地实现 FIFO 功能,用于数据缓冲和传输。
3.3.4 真双端口 RAM
1)定义: 像一条有两条完全独立的双向车道,两个端口可以完全独立地同时进行读写操作,互不干扰。
2)应用场景:
- 多处理器存储: 允许多个处理器同时访问同一块存储空间,实现数据的共享和交换。例如,在一个多核处理器系统中,不同的核心可以通过真双端口 RAM 共享数据,提高系统的并行处理能力。
3.3.5 单端口 ROM
1)定义: 只能读取数据,不能写入数据,数据在出厂前或烧录时就已经确定。类似于一张只读光盘。
2)应用场景:
- 程序代码存储: 用于存储程序的指令代码,处理器从 ROM 中读取指令并执行。
- 初始化 ROM: 用于存储系统的初始化代码和配置信息,在系统启动时加载。
3.3.6 双端口 ROM
1)定义: 有两个独立的读取端口,可以同时被两个不同的设备读取,但数据仍然是只读的。
2)应用场景:
- 在两个处理器/系统之间共享的单个 ROM: 允许多个处理器或系统共享同一份只读数据,例如共享同一份固件代码或查找表,节省存储空间。
3.3.7 工作模式
该 IP 核在 Block Design 中使用的模式。
使用 IP 集成器时有两种模式可用,默认模式是 Memory Controller。
1)存储器控制器模式
- 如果使用 AXI BRAM Controller 或 LMB BRAM Controller,请选择此模式。
- 所有端口参数都将灰显,因为它们是从主设备生成的。
2)独立模式
- 如果您使用自定义接口控制器,请选择此模式。可以选择和更新所有可用的参数。
4. 总结
本示例,使用 AXI4 流量发生器,通过 NoC 读写块 RAM。
- IP 包括:模拟时钟生成器、AXI4 流量生成器、AXI NoC、AXI4 Block RAM 控制器和内存生成器创建块 RAM。
- 通过 IP 集成器推断 NoC、时钟发生器和互连。
- 创建设计后进行仿真,详细分析传输流程和时延。
相关文章:
Versal - 基础3(AXI NoC 专题+仿真+QoS)
目录 1. 简介 2. 示例 2.1 示例说明 2.2 创建项目 2.2.1 平台信息 2.2.2 AXI NoC Automation 2.2.3 创建时钟和复位 2.3 配置 NoC 2.4 配置 AXI Traffic 2.5 配置 Memory Size 2.6 Validate BD 2.7 添加观察信号 2.8 运行仿真 2.9 查看结果 2.9.1 整体波形 2.9…...
Synology 群辉NAS安装(10)安装confluence
Synology 群辉NAS安装(10)安装confluence 写在前面本着一朝鲜吃遍天的原则,我又去了这个github的作者那里翻车的第一次尝试手工创建数据库制作一个新的docker-compose of confluence 不折腾但成功启动的版本 写在前面 在装完jira之后&#x…...
挂载mount
文章目录 1.挂载的概念(1)挂载命令:mount -t nfs(2)-t 选项:指定要挂载的文件系统类型(3)-o选项 2.挂载的目的和作用(1)跨操作系统访问:将Windows系统内容挂载到Linux系统下(2)访问外部存储设备(3)整合不同的存储设备 3.文件系统挂载要做的事…...
NLP深度学习 DAY4:Word2Vec详解:两种模式(CBOW与Skip-gram)
用稀疏向量表示文本,即所谓的词袋模型在 NLP 有着悠久的历史。正如上文中介绍的,早在 2001年就开始使用密集向量表示词或词嵌入。Mikolov等人在2013年提出的创新技术是通过去除隐藏层,逼近目标,进而使这些单词嵌入的训练更加高效。…...
SQL注入漏洞之基础数据类型注入 字符 数字 搜索 XX 以及靶场实例哟
目录 基础数据类型SQL注入 字符类型注入 单引号双引号解释 案例练习: 数字类型注入 案例 搜索性注入: 案例 XX性注入: 语句 案例 基础SQL注入类型分类 基础数据类型SQL注入 字符类型注入 xxx or 11 # select id,email from member where usernamexx or 11 # --…...
苹果AR眼镜:产品规划与战略路线深度解析
随着增强现实(AR)技术的不断发展,苹果公司正逐步推进其AR智能眼镜项目。尽管Vision Pro作为一款高端混合现实设备已经面世,但苹果真正的目标是开发出一款轻便、全天候佩戴且能够取代智能手机功能的AR眼镜。本文将梳理苹果在AR领域的探索历程,并分析其当前的产品状态及未来…...
HashMap讲解
在Java开发中,HashMap 是最常用的数据结构之一,它不仅提供了键值对的快速存储和检索功能,还具备较高的性能和较低的空间占用。但很多开发者对其底层原理并不清楚,今天我们将详细解析HashMap的内部结构,并用通俗的方式解…...
MySQL的复制
一、概述 1.复制解决的问题是让一台服务器的数据与其他服务器保持同步,即主库的数据可以同步到多台备库上,备库也可以配置成另外一台服务器的主库。这种操作一般不会增加主库的开销,主要是启用二进制日志带来的开销。 2.两种复制方式…...
Android View 的事件分发机制解析
前言:当一个事件发生时(例如触摸屏幕),事件会从根View(通常是Activity的布局中的最顶层View)开始,通过一个特定的路径传递到具体的View,这个过程涉及到三个关键的阶段:事…...
240. 搜索二维矩阵||
参考题解:https://leetcode.cn/problems/search-a-2d-matrix-ii/solutions/2361487/240-sou-suo-er-wei-ju-zhen-iitan-xin-qin-7mtf 将矩阵旋转45度,可以看作一个二叉搜索树。 假设以左下角元素为根结点, 当target比root大的时候ÿ…...
Linux C++
一、引言 冯诺依曼架构是现代计算机系统的基础,它的提出为计算机的发展奠定了理论基础。在学习 C 和 Linux 系统时,理解冯诺依曼架构有助于我们更好地理解程序是如何在计算机中运行的,包括程序的存储、执行和资源管理。这对于编写高效、可靠的…...
docker安装emqx
emqx安装 拉取emqx镜像 docker pull emqx/emqx:v4.1.0 运行docker容器 docker run -tid --name emqx -p 1883:1883 -p 8083:8083 -p 8081:8081 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:v4.1.0 放行端口 1、如果要是自己的虚拟机,并且关闭了防火墙&a…...
Docker 仓库管理
Docker 仓库管理 引言 随着容器技术的兴起,Docker 已成为最流行的容器化平台之一。在Docker的生态系统中,仓库(Repository)是至关重要的组成部分。一个有效的仓库管理策略可以帮助开发者更高效地构建、测试、部署和管理容器应用。本文将深入探讨Docker仓库管理的相关知识…...
预测不规则离散运动的下一个结构
有一个点在19*19的平面上运动,运动轨迹为 一共移动了90步,顺序为 y x y x y x 0 17 16 30 10 8 60 15 15 1 3 6 31 10 7 61 14 15 2 12 17 32 9 9 62 16 15 3 4 12 33 10 9 63 18 15 4 3 18 34 15 12 6…...
DVC - 数据版本和机器学习实验的命令行工具和 VS Code 扩展
文章目录 一、关于 DVC二、快速启动三、DVC的工作原理四、VS代码扩展五、安装Snapcraft(Linux)Chocolatey (Windows)Brew (mac OS)Anaconda (Any platform)PyPI(Python)Package (Platform-specific)Ubuntu / Debian (deb)Fedora /…...
[C语言日寄] <stdio.h> 头文件功能介绍
在C语言的世界里,<stdio.h> 是一个极其重要的头文件,它提供了标准输入输出功能,是C语言程序与用户交互的核心工具。今天,我们就来深入探讨 <stdio.h> 的功能、使用注意事项以及它的拓展应用。 功能介绍 <stdio.h…...
c语言中mysql_query的概念和使用案例
在 C 语言中,使用 MySQL 数据库需要用到 MySQL C API。mysql_query() 函数是 MySQL C API 中的一个函数,用于执行 SQL 语句。 概念 mysql_query() 函数的原型如下: int mysql_query(MYSQL *mysql, const char *stmt_str)mysql:…...
「 机器人 」扑翼飞行器的数据驱动建模核心方法
前言 数据驱动建模可充分利用扑翼飞行器的已有运行数据,改进动力学模型与控制策略,并对未建模动态做出更精确的预测。在复杂的非线性飞行环境中,该方法能有效弥补传统解析建模的不足,具有较高的研究与应用价值。以下针对主要研究方向和实现步骤进行整理与阐述。 1. 数据驱动…...
C++ queue
队列用vector<int>好不好 不好 为什么? 因为队列是先进先出 vector没有提供头删(效率太低) 要强制适配也可以 就得用erase函数和begin函数了 库里面的队列是不支持vector<int>的 queue实现 #pragma once #include<vector…...
SpringBoot 配置文件
目录 一. 配置文件相关概念 二. 配置文件快速上手 1. 配置文件的格式 2. properties 配置文件 (1) properties 基本语法 (2) 读取配置文件内容 (3) properties 缺点分析 3. yml配置文件 (1) yml 基本语法 (2) 读取配置文件内容 (3) yml 配置对象 (4) yml 配置集合 …...
【Leetcode 每日一题】119. 杨辉三角 II
问题背景 给定一个非负索引 r o w I n d e x rowIndex rowIndex,返回「杨辉三角」的第 r o w I n d e x rowIndex rowIndex 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 数据约束 0 ≤ r o w I n d e x ≤ 33 0 \le rowIndex \le 33 …...
推荐七节来自NVIDIA、Google、斯坦福的AI课程
英伟达 (1)在 10 分钟内构建大脑 • 探索神经网络如何使用数据进行学习。 • 了解神经元背后的数学原理。 链接:https://learn.nvidia.com/courses/course-detail?course_idcourse-v1:DLIT-FX-01V1 (2)构建视频 A…...
HTML<kbd>标签
例子 在文档中将一些文本定义为键盘输入: <p>Press <kbd>Ctrl</kbd> <kbd>C</kbd> to copy text (Windows).</p> <p>Press <kbd>Cmd</kbd> <kbd>C</kbd> to copy text (Mac OS).</p>…...
HTML5+SVG+CSS3实现雪中点亮的圣诞树动画效果源码
源码介绍 这是一款基于HTML5SVGCSS3实现雪中点亮的圣诞树动画效果源码。画面中的圣诞树矗立在雪地中,天上飘落着雪花。当鼠标滑过圣诞树时,可见到圣诞树上的灯光闪烁,同时左下角探出雪怪模样的半个脑袋,四处张望着。整体画面栩栩…...
Android开发入门
文章目录 JetBrains历史沿革主营业务 KotlinSDKAndroid Studio特点功能 gradle9 Patch图片1. 作用和用途2. 创建9 Patch图片3. 在布局文件中使用9 Patch图片4. 注意事项 mipmap子目录AVD JetBrains JetBrains是一家成立于2000年的捷克软件开发公司,总部位于布拉格&…...
深度学习在金融风控中的应用:突破传统模型的瓶颈
深度学习在金融风控中的应用:突破传统模型的瓶颈 金融风险控制(简称“风控”)是现代金融体系中至关重要的一环,关系到金融机构的稳定性、客户的安全以及整体经济的健康运行。近年来,随着深度学习的迅猛发展,传统的风控模型正面临被颠覆的挑战,新的技术手段和思维方式正…...
Vim安装与配置教程(解决软件包Vim没有安装可候选)
Vim安装与配置教程(解决软件包Vim没有安装可候选)_软件包 vim 没有可安装候选-CSDN博客文章浏览阅读4.4k次,点赞70次,收藏47次。在Linux系统中,当我们使用apt-get install vim命令安装Vim 编辑器时,如果系统…...
探索AI(chatgpt、文心一言、kimi等)提示词的奥秘
大家好,我是老六哥,我正在共享使用AI提高工作效率的技巧。欢迎关注我,共同提高使用AI的技能,让AI成功你的个人助理。 "AI提示词究竟是什么?" 这是许多初学者在接触AI时的共同疑问。 "我阅读了大量关于…...
深入MapReduce——从MRv1到Yarn
引入 我们前面篇章有提到,和MapReduce的论文不太一样。在Hadoop1.0实现里,每一个MapReduce的任务并没有一个独立的master进程,而是直接让调度系统承担了所有的worker 的master 的角色,这就是Hadoop1.0里的 JobTracker。在Hadoop1…...
线段树 算法
文章目录 基础知识适用场景小结 题目概述题目详解300.最长递增子序列2407.最长递增子序列 II 基础知识 线段树和树状数组都只是一个工具来的,题目并不会一下子就告诉你这个题目用到线段树和树状数组,这个取决于你想使用的数据结构以及所要优化的方向 线…...
Redis实战(黑马点评)——redis存储地理信息、位图、HyperLogLog 用法
Redis存储geo数据类型基本介绍 geo 就是 geolocation 的简写形式,代表地理坐标。redis 在 3.2 版本中加入了对 geo 的支持,允许存储地理坐标信息,帮助我们根据经纬度来检索数据。常见的命令有: geoadd:添加一个地理空…...
Flutter_学习记录_基本组件的使用记录
1.TextWidge的常用属性 1.1TextAlign: 文本对齐属性 常用的样式有: TextAlign.center 居中TextAlign.left 左对齐TextAlign.right 有对齐 使用案例: body: Center(child: Text(开启 TextWidget 的旅程吧,珠珠, 开启 TextWidget 的旅程吧&a…...
C语言实现统计数组正负元素相关数据
在编程的世界里,对数组中元素的统计分析是常见的需求。今天,我们就来探讨一段用C语言实现的代码,它能统计数组中负数的个数以及正数的平均值。 代码功能概述 这段C语言代码的主要功能是:首先从用户处获取一个整数 n ,用…...
AJAX RSS Reader:技术解析与应用场景
AJAX RSS Reader:技术解析与应用场景 引言 随着互联网的快速发展,信息量呈爆炸式增长。为了方便用户快速获取感兴趣的信息,RSS(Really Simple Syndication)技术应运而生。AJAX RSS Reader作为一种基于AJAX技术的信息读取工具,在用户体验和信息获取方面具有显著优势。本…...
使用openwrt搭建ipsec隧道
背景:最近同事遇到了个ipsec问题,做的ipsec特性,ftp下载ipv6性能只有100kb, 正面定位该问题也蛮久了,项目没有用openwrt, 不过用了开源组件strongswan, 加密算法这些也是内核自带的,想着开源的不太可能有问题ÿ…...
将5分钟安装Thingsboard 脚本升级到 3.9
稍微花了一点时间,将5分钟安装Thingsboard 脚本升级到最新版本 3.9。 [rootlab5 work]# cat one-thingsboard.shell echo "test on RHEL 8.10 " source /work/java/install-java.shell source /work/thingsboard/thingsboard-rpm.shell source /work/po…...
Linux---架构概览
一、Linux 架构分层的深度解析 1. 用户空间(User Space) 用户空间是应用程序运行的环境,与内核空间隔离,确保系统稳定性。 应用程序层: 用户程序:如 edge、vim,通过调用标准库(如 …...
dnf妖气追踪找门方案
第一种 跟之前一样还是确定boss的 位置,但是妖气追踪有几个boss位置重复的思路就是分两大类第一类就是boss位置不一样的,第二类在boss位置一样的大类 下面再分一一个小类, 这个小类就是boss位置重复的下面判断 第一个门蓝色人的位置 来确定后面门的路线还有一种情况就是在选择…...
【C语言练习题】整数和实数在计算机中的二进制表示
1. 请写出下列十进制整数在计算机中的二进制存储形式(假设为16位整数): 32767: -1: 32768: -2: 答案: 0111111111111111 1111111111111111 1000000000000000 1111111111111110 解…...
OSCP:Windows 服务提权详解
在Windows操作系统中,服务是一种特殊的后台进程,它们通常以较高的权限(如 SYSTEM 或 Administrator)运行。攻击者可以通过控制服务的创建、配置或运行过程实现权限提升(提权)。本文将详细分析Windows服务提…...
寻找两个正序数组的中位数:分治法与二分查找的结合
寻找两个正序数组的中位数:分治法与二分查找的结合 在算法领域,“寻找两个正序数组的中位数” 是一道经典的高频面试题(LeetCode 第 4 题)。它不仅考察基本的数组操作,还涉及二分查找与分治思想的结合。今天ÿ…...
Python-基于PyQt5,json和playsound的通用闹钟
前言:刚刚结束2024年秋季学期的学习,接下来我们继续来学习PyQt5。由于之前我们已经学习了PyQt5以及PyUIC,Pyrcc和QtDesigner的安装,配置。所以接下来我们一起深入PyQt5,学习如何利用PyQt5进行实际开发-基于PyQt5,json和…...
51单片机开发:定时器中断
目标:利用定时器中断,每隔1s开启/熄灭LED1灯。 外部中断结构图如下图所示,要使用定时器中断T0,须开启TE0、ET0。: 系统中断号如下图所示:定时器0的中断号为1。 定时器0的工作方式1原理图如下图所示&#x…...
循序渐进kubernetes-RBAC(Role-Based Access Control)
文章目录 概要Kubernetes API了解 Kubernetes 中的 RBACRoles and Role Bindings:ClusterRoles and ClusterRoleBindings检查访问权限:外部用户结论 概要 Kubernetes 是容器化应用的强大引擎,但仅仅关注部署和扩展远远不够,集群的安全同样至…...
在Scene里面绘制编辑工具
功能要求 策划要在scene模式下编辑棋子摆放。用handle.GUI绘制来解决了。 问题 在scene模式下编辑产生的数据,进入游戏模式后就全不见了。改为executeAlways也没用。我的解决办法是把编辑数据序列化保存到本地。在OnEnable的时候再读取。但是我忽然想到ÿ…...
深入探索 Vue 3 Markdown 编辑器:高级功能与实现
目录 1. 为什么选择 Markdown 编辑器?2. 选择合适的 Markdown 编辑器3. 安装与基本配置安装 配置 Markdown 编辑器代码说明 4. 高级功能实现4.1 实时预览与双向绑定4.2 插入图片和图像上传安装图像上传插件配置图像上传插件 4.3 数学公式支持安装 KaTeX配置 KaTeX 插…...
动手学图神经网络(3):利用图神经网络进行节点分类 从理论到实践
利用图神经网络进行节点分类:从理论到实践 前言 在之前的学习中,大家对图神经网络有了初步的了解。本次教程将深入探讨如何运用图神经网络(GNNs)来解决节点分类问题。在节点分类任务里,大家往往仅掌握少量节点的真实标签,却要推断出其余所有节点的标签,这属于归纳式学…...
具身智能研究报告
参考: (1)GTC大会&Figure:“具身智能”奇点已至 (2)2024中国具身智能创投报告 (3)2024年具身智能产业发展研究报告 (4)具身智能行业深度:发展…...
LabVIEW春节快乐
尊敬的LabVIEW开发者与用户朋友们: 灵蛇舞动辞旧岁,春风送暖贺新年!值此癸巳蛇年新春佳节来临之际,向每一位深耕LabVIEW开发领域的伙伴致以最诚挚的祝福:愿您与家人在新的一年里平安顺遂、阖家幸福,事业如…...
MybatisX插件快速创建项目
一、安装插件 二、创建一个数据表测试 三、IDEA连接Mysql数据库 四、选择MybatiX构造器 五、配置参数 六、项目结构...