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

【EDA】Multi-Net Routing(多网布线)

第六章:Multi-Net Routing(多网布线)

在VLSI物理设计中,多网布线(Multi-Net Routing)的目标是同时为多个网络(Nets)规划路径,避免布线资源冲突(如导线重叠、拥塞),并优化线长、延迟或拥塞度。第六章聚焦四种经典算法,解决多网共享资源时的竞争问题,以下是详细介绍:

1. Steiner Min-Max Tree算法(斯坦纳最小最大树)

核心目标

为每个网络构建斯坦纳树,确保所有网络的最大边负载(Edge Load)不超过阈值,平衡布线资源使用。

核心思想(基于Steiner Tree with Bounded Edge Load)
  • 单网斯坦纳树:对每个网络,使用1-Steiner算法(第五章)构建最小线长树,同时记录每条边的使用次数(负载)。
  • 负载约束:设置最大边负载阈值(如2.0×HPBB,HPBB为半周长下界),若某网络的树边负载超标,则拒绝该树并重新路由(图6.1-6.6)。
关键步骤
  1. 单网预处理:对每个网络计算斯坦纳树,检查边负载是否超过阈值(如 (15 > 2.0×7) 时拒绝,图6.3)。
  2. 迭代优化
    • 对接受的树,累加边负载;对拒绝的树,使用最短路径(SP)重新路由(图6.7-6.12)。
    • 示例:网络n3首次路由失败(负载超标),通过SP路由成功(图6.9c)。
  3. 结果合并:所有网络路由成功后,生成无超标负载的布线图(图6.12)。
优势与应用
  • 优点:简单高效,适合初步布线筛选;负载阈值确保资源均衡。
  • 缺点:独立处理单网,可能忽略全局拥塞;阈值设置影响结果。
  • 典型场景:FPGA布线,资源有限时优先保证关键网络。

2. 多商品流路由算法(Multi-Commodity Flow Routing)

核心目标

将多网布线建模为流网络问题,最小化总拥塞,允许流量分配到多条路径,优化全局资源利用。

核心思想(基于线性规划/流网络模型)
  • 流网络建模
    • 节点为网格交点,边为导线段,容量为可同时通过的网络数(图6.14b)。
    • 目标函数:最小化总流成本(如线长×流量),约束为边容量和流量守恒。
  • 迭代优化
    1. 最短路径:初始按最短路径路由(图6.16)。
    2. 更新边成本:根据拥塞调整边权重(如增加高负载边的成本),重新路由(图6.17-6.20)。
关键步骤
  1. 构建流网络:定义边容量(如3)、源/汇节点(图6.14a)。
  2. 求解多商品流
    • 使用ILP(整数线性规划)或启发式算法(如Successive Shortest Path),分配各网络流量(图6.15)。
    • 示例:迭代2次后,无溢出边,拥塞度从6降至3(图6.20)。
  3. 结果验证:检查边负载是否在容量内,调整路径直至收敛。
优势与应用
  • 优点:全局优化资源分配,适合复杂拥塞场景;理论上保证最优解(ILP)。
  • 缺点:计算复杂度高(O(K2*N3),K为网络数),需简化模型处理大规模问题。
  • 典型场景:ASIC全局布线,处理数百万网的高密度互连。

3. 迭代删除算法(Iterative Deletion Algorithm)

核心目标

通过迭代删除高拥塞边,逐步优化布线树,减少关键通道的负载,提升整体可布通性。

核心思想(基于拥塞驱动的边删除)
  • 初始生成树:为每个网络生成初始生成树(如最小生成树),计算各通道的密度(边数)。
  • 迭代删除
    1. 删除高密度通道中的边,优先删除对拥塞影响最大的边(图6.26-6.27)。
    2. 重新生成树,避免使用已删除边,直至密度均衡(图6.28-6.29)。
关键步骤
  1. 初始布线:生成含馈通点(Feedthroughs)的生成树,计算通道密度(图6.21-6.23)。
  2. 删除与重构
    • 按密度降序删除边(如通道2密度6→删除边(e,f),密度降至3,图6.27c)。
    • 重新布线被删除边的连接,确保无重叠(图6.28)。
  3. 终止条件:所有通道密度≤容量,或无有效删除。
优势与应用
  • 优点:简单高效,局部优化拥塞;适合标准单元行之间的通道布线。
  • 缺点:可能破坏网络连通性,需谨慎选择删除边。
  • 典型场景:标准单元布局后的通道布线,缓解局部拥塞(如CPU缓存区域)。

4. Yoshimura-Kuh算法(约束驱动的层分配与路径规划)

核心目标

在多层布线中分配网络到不同层,同时规划路径,满足层约束(如优先层、禁止层)和线长优化。

核心思想(基于约束图和层分配)
  • 约束图构建
    • 节点为网络,边表示层分配冲突(如网络1和2不能同层)。
    • 分层约束:如电源网络优先使用底层,信号网络使用高层(图6.30-6.31)。
  • 层分配与路径规划
    1. 排序网络:按关键度排序(如时序关键网络优先)。
    2. 逐层分配:对每个网络,在允许的层中选择路径,更新约束图(图6.32-6.39)。
关键步骤
  1. 约束定义:设定各网络的允许层、优先层(如网络1允许层1-3,优先层2)。
  2. 路径搜索
    • 使用Dijkstra算法在允许层中找最短路径,避免已占用的层资源(图6.33)。
    • 示例:网络1分配到层2,网络3分配到层3,无冲突(图6.32b-c)。
  3. 冲突解决:若层冲突,调整路径或重新分配(如合并网络2和6,图6.35)。
优势与应用
  • 优点:显式处理层约束,适合3D IC或多层布线;支持优先级调度。
  • 缺点:依赖约束定义的合理性,复杂层结构增加计算量。
  • 典型场景:多层PCB或3D堆叠芯片的跨层布线。

5. 算法对比与总结

算法核心目标关键技术适用场景优势局限
Steiner Min-Max Tree单网边负载约束斯坦纳树+负载阈值检查FPGA/小规模多网快速筛选可行树忽略全局拥塞
Multi-Commodity Flow全局拥塞最小化流网络建模+ILP求解ASIC高密度布线全局最优资源分配计算复杂度高
Iterative Deletion局部通道拥塞优化密度驱动的边删除-重构标准单元通道布线简单高效,缓解局部热点可能破坏连通性
Yoshimura-Kuh层约束与路径规划约束图+层分配多层/3D IC布线显式处理层约束依赖约束定义精度
核心技术对比
  1. 单网vs全局
    • Steiner Min-Max Tree和Iterative Deletion处理单网或局部,Multi-Commodity Flow和Yoshimura-Kuh处理全局或多层约束。
  2. 建模方法
    • 流网络(Multi-Commodity Flow)适合数学规划,约束图(Yoshimura-Kuh)适合层分配,启发式(Iterative Deletion)适合快速局部优化。
  3. 约束类型
    • 边负载(Steiner Min-Max Tree)、通道密度(Iterative Deletion)、层资源(Yoshimura-Kuh)、流量容量(Multi-Commodity Flow)。
实际应用选择
  • 小规模设计:Steiner Min-Max Tree快速筛选可行树,结合Iterative Deletion优化通道。
  • 大规模复杂设计:Multi-Commodity Flow全局优化,适合百万网级ASIC;Yoshimura-Kuh处理多层PCB或3D IC的层约束。

6. 关键贡献与挑战

  • Steiner Min-Max Tree:首次提出负载约束下的单网路由,为多网初步筛选提供基础。
  • Multi-Commodity Flow:将网络流理论引入布线,成为全局拥塞优化的黄金标准,尽管计算成本高。
  • Iterative Deletion:简单有效的工程化方法,广泛应用于商用EDA工具(如Cadence Encounter)的通道优化。
  • Yoshimura-Kuh:推动多层布线的约束处理,适应现代3D集成趋势。

第六章的算法覆盖了多网布线的核心挑战:资源竞争、拥塞控制、层约束,从单网筛选到全局优化,为复杂芯片的可靠布线提供了多层次解决方案。随着芯片集成度提升,多网布线的高效算法仍是学术界和工业界的研究热点,尤其在3D IC和先进封装中的应用需求日益增长。

相关文章:

【EDA】Multi-Net Routing(多网布线)

第六章:Multi-Net Routing(多网布线) 在VLSI物理设计中,多网布线(Multi-Net Routing)的目标是同时为多个网络(Nets)规划路径,避免布线资源冲突(如导线重叠、…...

1块智能电表=12路三相监测!ADW600自由拼装,适配多场景,即插即用,改造周期缩短50%!

在这个电力数字化浪潮汹涌的时代,如何高效、精准地管理电能,成为了众多企业关注的焦点。今天,我们要为大家介绍的,正是一款能够引领电能管理新风尚的产品——ADW600智能电表。 ADW600主模块: ADW600从模块:…...

Redis ⑥-string | hash | list

string类型基本介绍 Redis 中的字符串,是直接按照二进制的方式进行存储的。也就是说,在存取的过程中,是不会做任何编码转换的。存的是啥,取的时候就是啥。 Redis 的这个机制,就使得 Redis 非常适合用来存储各种各样的…...

动态规划(1)(java)(面试题)三步问题

题目: 三步问题。有个小孩正在上楼梯,楼梯有 n 阶台阶,小孩一次可以上 1 阶、2 阶或 3 阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模 1000000007。 示例 1: 输入:n 3 输…...

实时交互式AIGC系统开发:打造多模态数字人全栈解决方案

一、实时AIGC系统技术挑战 1.1 核心性能指标 指标 要求 实现难点 端到端延迟 <500ms 多模块流水线优化 多模态同步误差 <100ms 时间戳对齐机制 并发处理能力 100 QPS 分布式推理架构 生成内容一致性 跨模态对齐 联合embedding空间 1.2 系统架构设计 [语音输入] → [ASR]…...

tcp 和http 网络知识

1. 请简述TCP和HTTP的定义与基本概念 TCP&#xff1a;即传输控制协议&#xff08;Transmission Control Protocol&#xff09;&#xff0c;是一种面向连接的、可靠的、基于字节流的传输层通信协议。它为互联网中的数据通信提供稳定的传输机制&#xff0c;在不可靠的IP层之上&a…...

伟世通与火山引擎深度合作 前沿AI智能座舱解决方案亮相上海车展

2025年4月24日&#xff0c;上海 —— 全球领先的汽车电子技术供应商伟世通与字节跳动旗下云服务平台火山引擎在2025上海车展联合举办新闻发布会&#xff0c;正式发布基于AI大模型的下一代智能座舱解决方案。该方案深度融合伟世通高性能域控平台与火山引擎豆包大模型的AI能力&am…...

中国250米土壤质地类型数据

土壤质地指土壤中砂粒、粉粒和黏粒的相对含量和组成。根据土壤质地的不同&#xff0c;可以将土壤分为砂土、壤土、黏土等类型。土壤质地对土壤的物理性质&#xff08;如渗透性、保水性&#xff09;和化学性质&#xff08;如养分含量&#xff09;有重要影响。 本数据集是以250米…...

springboot2.x升级到3.x 惨痛经验总结

一、前言&#xff08;废话&#xff09; 升级的缘由 都是因为&#xff1a;Spring 目录遍历漏洞&#xff08;CVE-2024-38816&#xff09; 可参考文章&#xff1a;springboot 修复 Spring Framework 特定条件下目录遍历漏洞&#xff08;CVE-2024-38816&#xff09; 然后就趁着工…...

【Python】保持Selenium稳定爬取的方法(防检测策略)

selenium 防检测策略的方法汇总&#xff1a; 合理设置延迟&#xff1a;请求间添加随机延迟 (2-10秒) 限制爬取频率&#xff1a;控制每小时/每天的请求量 轮换用户代理&#xff1a;准备至少10个不同的User-Agent 使用住宅代理&#xff1a;优先选择高质量的住宅代理IP 处理验…...

【Linux】进程优先级和进程切换

&#x1f4dd;前言&#xff1a; 这篇文章我们来讲讲进程优先级和进程切换&#xff1a; &#x1f3ac;个人简介&#xff1a;努力学习ing &#x1f4cb;个人专栏&#xff1a;Linux &#x1f380;CSDN主页 愚润求学 &#x1f304;其他专栏&#xff1a;C学习笔记&#xff0c;C语言入…...

基于 Python(selenium) 的今日头条定向爬虫:根据输入的关键词在今日头条上进行搜索,并爬取新闻详情页的内容

该项目能够根据输入的关键词在今日头条上进行搜索,并爬取新闻详情页的内容。 一、项目准备 1. 开发环境配置 操作系统:支持 Windows、macOS、Linux 等主流操作系统,本文以 Windows 为例进行说明。Python 版本:建议使用 Python 3.8 及以上版本,以确保代码的兼容性和性能。…...

AIDL进程间通信

一、项目开启AIDL 在使用AIDL的模块下build.gradle 文件中添加以下代码 android {...buildFeatures {aidl true} }操作完需要rebuild 二、创建aidl服务接口 假设当前所需要的包名为com.jingluo.test_aidl &#xff0c;那么aidl就需要处于同样的路径下&#xff0c;即如下目录…...

线程同步与互斥

系统11. 线程同步与互斥 1. 线程互斥 1-1 进程线程间的互斥相关背景概念 临界资源&#xff1a;多线程执⾏流共享的资源就叫做临界资源临界区&#xff1a;每个线程内部&#xff0c;访问临界资源的代码&#xff0c;就叫做临界区互斥&#xff1a;任何时刻&#xff0c;互斥保证有…...

腾讯一面面经:总结一下

1. Java 中的 和 equals 有什么区别&#xff1f;比较对象时使用哪一个 1. 操作符&#xff1a; 用于比较对象的内存地址&#xff08;引用是否相同&#xff09;。 对于基本数据类型、 比较的是值。&#xff08;8种基本数据类型&#xff09;对于引用数据类型、 比较的是两个引…...

某地农产品交易中心钢网架自动化监测项目

1. 项目简介 本项目规划建设现代物流产业园&#xff0c;新建6万平方米仓库&#xff0c;具体为新建3栋钢构仓库2万平方米&#xff0c;2栋砖混结构仓库1万平方米&#xff0c;3栋交易中心2万平方米&#xff0c;改造现有3栋3层砖混结构仓库1万平方米&#xff0c;配备智能化仓库物流…...

PGSql查看表结构以及注释信息

创建视图 CREATE OR REPLACE VIEW dbo.v_sys_tableinfo AS SELECT pc.relname AS tablename, pa.attname AS columnname, pt.typname AS columntype, CASE WHEN pa.attlen > 0 THEN pa.attlen::integer ELSE pa.atttypmod - 4 END AS columnlength, pa.attnotnull …...

C++23 中 constexpr 的重要改动

文章目录 1. constexpr 函数中使用非字面量变量、标号和 goto (P2242R3)示例代码 2. 允许 constexpr 函数中的常量表达式中使用 static 和 thread_local 变量 (P2647R1)示例代码 3. constexpr 函数的返回类型和形参类型不必为字面类型 (P2448R2)示例代码 4. 不存在满足核心常量…...

Linux服务器上mysql8.0+数据库优化

1.配置文件路径 /etc/my.cnf # CentOS/RHEL /etc/mysql/my.cnf # Debian/Ubuntu /etc/mysql/mysql.conf.d/mysqld.cnf # Ubuntu/Debian检查当前配置文件 sudo grep -v "^#" /etc/mysql/mysql.conf.d/mysqld.cnf | grep -v "^$&q…...

深度学习之卷积神经网络入门

一、引言 在深度学习蓬勃发展的今天&#xff0c;卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;简称 CNN&#xff09;凭借其在图像识别、计算机视觉等领域的卓越表现&#xff0c;成为了人工智能领域的核心技术之一。从手写数字识别到复杂的医学影像分析&a…...

【kafka初学】启动执行命令

接上篇&#xff0c;启动&#xff1a;开两个cdm窗口 注意放的文件不要太深或者中文&#xff0c;会报命令行太长的错误 启动zookeeper bin\windows\zookeeper-server-start.bat config\zookeeper.properties2. 启动kafka-serve bin\windows\kafka-server-start.bat config\serv…...

MoE架构解析:如何用“分治”思想打造高效大模型?

在人工智能领域&#xff0c;模型规模的扩大似乎永无止境。从GPT-3的1750亿参数到传闻中的GPT-4万亿级规模&#xff0c;每一次突破都伴随着惊人的算力消耗。但当我们为这些成就欢呼时&#xff0c;一个根本性问题愈发尖锐&#xff1a;如何在提升模型能力的同时控制计算成本&#…...

【Qt】文件

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Qt 目录 一&#xff1a;&#x1f525; Qt 文件概述 二&#xff1a;&#x1f525; 输入输出设备类 三&#xff1a;&#x1f525; 文件读写类 四&#xff1a;&#x1f525; 文件和目录信息类 五&…...

Linux常见故障:排查思路与错误分析指南

引言 当Linux系统"生病"时&#xff0c;它不会说话但却会通过各种症状"求救"&#x1f198;&#xff01;本文将带你建立系统化的故障排查思维&#xff0c;从磁盘到内存&#xff0c;从网络到服务&#xff0c;全方位掌握Linux系统的"把脉问诊"技巧。…...

基于随机变量的自适应螺旋飞行麻雀搜索算法(ASFSSA)优化BP神经网络,附完整完整代码

3. 麻雀搜索算法 麻雀群体分为两个角色&#xff0c;即发现者和跟随者。它们有三个行为&#xff1a;觅食、跟随和侦察。发现者的任务是寻找食物并告知跟随者食物的位置。因此&#xff0c;发现者需要在一个大范围内搜索&#xff0c;而跟随者的觅食范围通常较小。这是更新发现者位…...

vscode切换Python环境

跑深度学习项目通常需要切换python环境&#xff0c;下面介绍如何在vscode切换python环境&#xff1a; 1.点击vscode界面左上角 2.在弹出框选择对应kernel...

Gradle安装与配置国内镜像源指南

一、Gradle简介与安装准备 Gradle是一款基于JVM的现代化构建工具&#xff0c;广泛应用于Java、Kotlin、Android等项目的构建自动化。相比传统的Maven和Ant&#xff0c;Gradle采用Groovy或Kotlin DSL作为构建脚本语言&#xff0c;具有配置灵活、性能优越等特点。 在开始安装前…...

施工配电箱巡检二维码应用

在过去&#xff0c;施工配电箱的巡检主要依赖于纸质记录方式。巡检人员每次巡检时&#xff0c;都要在纸质表格上详细填写配电箱的各项参数、运行状况以及巡检时间等信息。这种方式在实际操作中暴露出诸多严重问题&#xff0c;信息易出现错误、数据会有造假现象、数据量庞大整理…...

全链路自动化AIGC内容工厂:构建企业级智能内容生产系统

一、工业化AIGC系统架构 1.1 生产流程设计 [需求输入] → [创意生成] → [多模态生产] → [质量审核] → [多平台分发] ↑ ↓ ↑ [用户反馈] ← [效果分析] ← [数据埋点] ← [内容投放] 1.2 技术指标要求 指标 标准值 实现方案 单日产能 1,000,000 分布式推理集群 内容合规率…...

第19章:Multi-Agent多智能体系统介绍

第19章:Multi-Agent多智能体系统介绍 欢迎来到多智能体系统 (Multi-Agent System, MAS) 的世界!在之前的章节中,我们深入探讨了单个 AI Agent 的构建,特别是结合了记忆、上下文和规划能力的 MCP 框架。然而,现实世界中的许多复杂问题往往需要多个智能体协同工作才能有效解…...

【C++游戏引擎开发】第25篇:方差阴影贴图(VSM,Variance Shadow Maps)

一、VSM 的核心思想 1.1 VSM 的核心思想 1.1.2 从深度到概率的转变 VSM 的核心创新在于将阴影判定从深度比较转换为概率估算。通过存储深度分布的统计信息(均值和方差),利用概率不等式动态计算阴影强度,从而支持软阴影并减少锯齿。 1.1.3 深度分布的统计表示 VSM 在阴…...

代码随想录打卡|Day27(合并区间、单调递增的数字、监控二叉树)

贪心算法 Part05 合并区间 力扣题目链接 代码随想录链接 视频讲解链接 题目描述&#xff1a; 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0…...

yum包管理器

1.介绍 yum是一个shell前端软件包管理器,基于RPM包管理,能够从指定的服务器.自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的安装包。 2.yum基本指令 查询yum服务器是否有需要安装的软件&#xff1a; yum list I grep xx软件列表. 安装指定的yum包&…...

Linux多线程技术

什么是线程 在一个程序里的多执行路线就是线程。线程是进程中的最小执行单元&#xff0c;可理解为 “进程内的一条执行流水线”。 进程和线程的区别 进程是资源分配的基本单位&#xff0c;线程是CPU调度的基本单位。 fork创建出一个新的进程&#xff0c;会创建出一个新的拷贝&…...

通过模仿学习实现机器人灵巧操作:综述(上)

25年4月来自天津大学、山东大学、瑞士ETH、南方科技大学、通用 AI 国家重点实验室、爱丁堡大学和中科院自动化所的论文“Dexterous Manipulation through Imitation Learning: A Survey”。 灵巧操作是指机械手或多指末端执行器通过精确、协调的手指运动和自适应力调制&#x…...

LLM数学推导——Transformer问题集——注意力机制——稀疏/高效注意力

Q13 局部窗口注意力的内存占用公式推导&#xff08;窗口大小 &#xff09; 局部窗口注意力&#xff1a;解决长序列内存困境的利器 在注意力机制中&#xff0c;全局注意力需要计算序列中每个元素与其他所有元素的关联&#xff0c;当序列长度 N 较大时&#xff0c;权重矩阵的内…...

Git 入门知识详解

文章目录 一、Git 是什么1、Git 简介2、Git 的诞生3、集中式 vs 分布式3.1 集中式版本控制系统3.2 分布式版本控制系统 二、GitHub 与 Git 安装1、GitHub2、Git 安装 一、Git 是什么 1、Git 简介 Git 是目前世界上最先进的分布式版本控制系统。版本控制系统能帮助我们更好地管…...

系统架构师2025年论文《论软件架构评估》

论软件架构评估 摘要: 我所在的单位是国内某知名医院,2017 年 1 月医院决定开发全新一代某市医院预约挂号系统,我担任本次系统的架构师,主要负责整个系统的架构设计工作。该系统旨在优化医院挂号流程,提高患者就医体验,是医院应对医疗信息化变革和提升服务的重要举措。…...

基于51单片机的超声波液位测量与控制系统

基于51单片机液位控制器 &#xff08;仿真&#xff0b;程序&#xff0b;原理图PCB&#xff0b;设计报告&#xff09; 功能介绍 具体功能&#xff1a; 1.使用HC-SR04测量液位&#xff0c;LCD1602显示&#xff1b; 2.当水位高于设定上限的时候&#xff0c;对应声光报警报警&…...

抓包工具Wireshark的应用解析

一、Wireshark简介 Wireshark&#xff08;前身为Ethereal&#xff09;是一款开源、跨平台的网络协议分析工具&#xff0c;自1998年诞生以来&#xff0c;已成为网络工程师、安全专家及开发者的核心工具之一。它通过网卡的混杂模式&#xff08;Promiscuous Mode&#xff09;捕获…...

在 Java 项目中搭建和部署 Docker 的详细流程

引言 在现代软件开发中&#xff0c;Docker 已成为一种流行的工具&#xff0c;用于简化应用的部署和运行环境的一致性。本文将详细介绍如何在 Java 项目中搭建和部署 Docker&#xff0c;包括配置文件、代码示例以及流程图。 一、整体工作流程 以下是整个流程的概览&#xff1a…...

15.ArkUI Checkbox的介绍和使用

以下是 ArkUI Checkbox 组件的详细介绍和使用指南&#xff1a; 一、Checkbox 基础介绍 功能特性&#xff1a; 提供二态选择&#xff08;选中/未选中&#xff09;支持自定义样式和标签布局支持与数据状态绑定提供状态变化事件回调 适用场景&#xff1a; 表单中的多选操作设置…...

WebUI可视化:第5章:WebUI高级功能开发

学习目标 ✅ 掌握复杂交互逻辑的实现 ✅ 学会自定义界面样式与布局 ✅ 实现安全高效的文件处理 ✅ 优化性能与用户体验 5.1 自定义样式开发 5.1.1 修改主题颜色(以Streamlit为例) 在应用入口处添加全局样式: python import streamlit as st # 自定义主题 st.markdown…...

增加首屏图片

增加首屏图片&#xff08;bg.jpg&#xff09; web-mobile类型打包 //index.html脚本 <div id"myDiv_1111"style"background: url(./bg.jpg) 50% 50%/ 100% auto no-repeat ; width:100%;height:100%;position:absolute;"></div> //游戏内脚本…...

联合体和枚举类型

1.联合体类型 1.1:联合体类型变量的创建 与结构体类型一样&#xff0c;联合体类型 (关键字:union) 也是由⼀个或者多个成员变量构成&#xff0c;这些成员变量既可以是不同的类型&#xff0c;也可以是相同的类型。但是编译器只为最⼤的成员变量分配⾜够的内存空间。联合体的特…...

《AI大模型趣味实战》构建基于Flask和Ollama的AI助手聊天网站:分布式架构与ngrok内网穿透实现

构建基于Flask和Ollama的AI助手聊天网站&#xff1a;分布式架构与ngrok内网穿透实现 引言 随着AI技术的快速发展&#xff0c;构建自己的AI助手聊天网站变得越来越流行。本研究报告将详细介绍如何通过两台电脑构建一个完整的AI聊天系统&#xff0c;其中一台作为WEB服务器运行F…...

kubernets集群的安装-node节点安装-(简单可用)-超详细

一、kubernetes 1、简介 kubernetes&#xff0c;简称K8s&#xff08;库伯内特&#xff09;&#xff0c;是用8代替名字中间的8个字符“ubernete”而成的缩写 云计算的三种主要服务模式——基础设施即服务&#xff08;IaaS&#xff09;、平台即服务&#xff08;PaaS&#xff0…...

【Linux内核设计与实现】第三章——进程管理04

文章目录 8. exit() 进程退出8.1. exit() 系统调用的定义8.2. do_exit() 函数8.2.0. do_exit() 的参数和返回值8.2.1. 检查和同步线程组退出8.2.2. 清理与调试相关的资源8.2.3. 取消 I/O 和信号处理8.2.4. 检查线程组是否已终止8.2.5. 释放系统资源8.2.6. 释放线程和调度相关资…...

Golang | 迭代器模式

迭代器模式&#xff08;Iterator Pattern&#xff09;是一种行为型设计模式&#xff0c;它提供了一种顺序访问聚合对象&#xff08;如列表、树等集合结构&#xff09;中元素的方法&#xff0c;而无需暴露其底层实现细节。通过将遍历逻辑与集合本身解耦&#xff0c;迭代器模式使…...

美颜SDK动态贴纸实战教程:从选型、开发到上线的完整流程

在直播、短视频、社交娱乐全面崛起的当下&#xff0c;美颜SDK早已不再局限于“磨皮瘦脸”&#xff0c;而是逐步迈向更智能、更富互动体验的方向发展。动态贴纸功能&#xff0c;作为提升用户参与感和内容趣味性的关键手段&#xff0c;正在被越来越多的平台采纳并深度定制。本文将…...