Cadence学习笔记3
设置 PCB 层叠
初始我们有一个两层板,如果需要添加层叠怎么办?
点击进入层叠设置

首先右击 TOP 层下面的空白,然后鼠标右键进行 add layer

然后选择 Plane(一般层就是这个) 就好

然后 add就行
设置光标显示形式
在 setup -> User preference -> Display cursor -> pub cursor就好了

有三种模型可以选择:
- 米 octal

- 小十字 cross
- 大十字 infinite

设置自动保存
setup->User preferences -> File Manegement -> autosave

todo 改变原点位置,显示关闭原点
调整亮度
这直接看图就行了,根据自己想法设定。

显示和隐藏网络面层


如果在 setup -> User Preferences -> Display -> opengl


同样网络就看不到了

Z-copy routekeepin 使用
routekeepin 表示允许布线区域,一般要内缩 20 mil ,内缩 20mil 的好处就是在制板或者后期拼板的过程中都不容易损伤到板子里面线过孔或者其他的一些电气对象。
使用 z-copy 命令绘制 route keepin 区域(line 或者 shape)的时候必须是封闭的,可以是矩形,也可以是划线,但必须要进行封闭。
操作:edit -> z-copy

上面是 shape 的 rectangle
下面看一下是 line 的

导入 orCAD 网络表

注意导入的时候,一定要注意文件夹是这个
我的图片中没有显示,是因为 .已经是 allegro文件夹下面了。
同时在导入的时候,还会出现一个可能的错误,就是没有设置好封装库的路径,所以导入的时候要去检查一下自己封装库路径是否已经设置好了
快速放置封装
PS:放置封装的前提条件是什么?你已经画好了原理图,并且所有元器件都已经画好了封装,如果要尝试放置这个操作的话,可以在网上找一个画好的项目来进行操作,所以上面的导入网络表就很重要,不然无法生成封装之间的关系。

添加 mark 点封装
这个封装其实没有任何电气性质的,只是起下面所说的一些作用,比如打孔,固定螺丝孔之类的,这个也需要自己的封装库内有这个封装。
操作:

点开以后首先要把下面图片中的开关打开:

这样才能去库里进行筛选,直接把原理图中没有的器件加入到 PCB 中。

Mark点封装是电子制造中的一种工艺,用于在PCB(印刷电路板)上精确定位元件。以下是关键点:
定义
Mark点是PCB上的小圆形标记,通常由铜制成,表面镀锡或金,用于辅助设备识别和定位。作用
- 定位:帮助贴片机等设备精确找到元件位置。
- 校准:确保设备与PCB对齐,减少误差。
- 检测:用于自动光学检测(AOI)等环节,提升检测精度。
封装类型
- 单Mark点:用于简单PCB。
- 双Mark点:用于复杂PCB,提供更高精度。
- 多Mark点:用于高密度PCB,进一步提升定位精度。
设计要求
- 尺寸:通常直径1mm左右。
- 位置:对称分布在PCB边缘或角落。
- 材料:高反射率材料,便于设备识别。
应用
广泛应用于消费电子、汽车电子、工业控制等领域,确保高精度组装。总结:Mark点封装通过精确定位和校准,提升PCB组装精度和效率,是电子制造中不可或缺的工艺。
关于栅格大小设置
一般设置为 5mil ,也就是 0.127 mm,这样子设置话比较方便,问就是经验。

显示布局相关的 subclass
PS:因为要进行布局,所以显示布局相关的 class 就好了
一开始导入封装的时候是这样的

所以我们要进行一个清理:
- 清除飞线


- 清除所有 subclass


- 加入需要的 subclass
- 打开板框

- 打开焊盘

- 打开
TOP and Bottom面的丝印
- 打开板框
color 命令使用(需要在底部的 command 区域输入命令)
colorview create命令解释:创建一个当前 subclass 显示的缓存,方便后续直接复现当前显示colorview load命令解释:加载创建的 subclass 显示缓存,直接显示原来缓存好的显示 subclasscolorview restore命令解释:返回上一个 subclass 显示的内容
演示:
1 ===>

2===>



3====>

move 移动命令
移动命令的话主要注意的是选择点击移动的器件以后,光标会在哪里的问题

有四种
- Sym Origin 元器件的原点位置

- Body Center 元器件的几何中心

- User Pick 由用户点击的位置确定,这个的话需要用户点击两次,已经进入的话只要一次。

- Sym pin# 相关 PIN 号所在位置

交互布局
原来交互布局是这样的。
- 首先你要在 OrCAD 中设置允许交互布局
- 在 OrCAD 或者 PCB Editor 中选择的时候才会相互映射。
如下图,我点击原理图中的器件我就可以移动 PCB 中的器件了。

当我点击器件的时候原理图也可以进行反馈

旋转 spin 与 move 命令
注意多个器件同样可以操作
首先简单的旋转,直接在 edit -> spin就可以了点击器件进行旋转了,旋转的控制由鼠标环绕进行完成。这里的旋转是不能进行移动了。

但是我们可以先选择移动,然后移动到位置以后右键器件,然后选择 Rotate 就可以旋转了。

镜像
镜像的话就是把器件进行一个翻转。操作位置:edit -> mirror
原来的样子:


注意点击了 mirror之后需要去选择元器件进行移动,然后再次点击进行放置,后面元器件就会进行镜像了。
fixed 和 unfixed
固定和取消固定是为了防止误操作的选项。把物体固定了以后就不能进行一些移动旋转操作了。

我对 U8 器件进行了固定,我想去移动但是移动不了:

查找器件
直接在 Find 选项框中进行查找就好了,然后软件会帮忙快速定位到器件。

高亮了我查找的器件:

一次性移动不规格区域的多个元器件
首先选择移动命令,edit -> move 然后右键点击 select polygon



绘制 package keepout 区域
有时候绘制板子的时候,我们会要求不允许放置元器件,这个时候 keepout 就要发挥作用了。
Cadence中的keepout区域是PCB设计中的重要概念,主要用于限制特定区域的布局或布线行为,确保设计符合电气和物理规则。以下是对keepout区域的详细解读:
- 定义与作用
keepout区域是设计中禁止放置元件、走线、过孔或其他对象的物理范围。其核心作用是防止信号干扰、满足散热需求、避开机械结构冲突或确保高频信号完整性。- 类型区分
- 布线禁止区:禁止在该区域布线(Route Keepout)
- 过孔禁止区:禁止打孔(Via Keepout)
- 元件禁止区:禁止放置器件(Package Keepout)
- 混合禁止区:可同时设置多种限制条件
- 设置方法
- 物理层设置:通过菜单栏的Shape或Add命令手动绘制多边形区域,指定所在层(如顶层、内层、全层)。
- 约束管理器:在Constraint Manager中定义区域规则,关联特定网络或元件,支持动态规则应用。
- 属性绑定:对已有图形(如铜皮、板框)添加Keepout属性,快速生成对应限制区域。
- 优先级与冲突处理
- 局部keepout规则优先级高于全局规则。
- 不同类规则冲突时,按约束管理器中的层次结构逐级生效(如网络级>板级)。
- 可通过DRC(设计规则检查)实时验证冲突,错误提示会明确违反的规则类型。
- 常见问题与对策
- 规则未生效:检查约束管理器是否启用规则、区域是否绑定正确网络/层。
- 误触发DRC:确认区域边界是否与焊盘/过孔存在公差范围内的重叠。
- 柔性规则需求:使用“软keepout”(如允许短距离穿越)需结合区域规则与间距约束配合实现。
- 高级应用场景
- 高速信号防护:在敏感信号线周围设置带状keepout,控制参考平面连续性。
- 散热管理:禁止在大功率器件散热路径上放置其他元件。
- 拼板设计:在板边设置V-cut或邮票孔区域的keepout,避免布线影响分板工艺。
总结:合理使用keepout区域能显著提升设计可靠性,需结合具体设计需求选择类型和设置方式,并通过DRC验证确保规则正确实施。


看画完以后中间的元器件在的话就会报错,DRC 会检查出来。
批量更新封装
在更新之前,首先要设置好封装库路径,然后在 place 中选择更新元器件,然后选择要更新的元器件,进行更新就好了。

最后点击 Refresh 就好了。
快速重建元器件
如果遇到元器件不小心某些部分(丝印等)被破坏了,可以选择更新元器件恢复回来。
原来的:


删除了某些丝印
进行恢复:


恢复回来了:

器件对齐操作
原来器件的位置:


然后框选中四个,然后进行右键,就可以选择 Align 进行对齐操作,options 中可以选择对齐方式。


测量器件之间的距离
首先选择测量命令,然后选择位置即可,会出现一个 Measure 的框框,其中有信息可以直接查看。

布局模块复用
什么时候会用这个东西呢?
就是在某几个布局原理图类似的时候就可以使用布局。
这里我暂时不演示,因为没有好用的案例。只简单讲述一下大概的过程。
首先进入 setup -> Application Mode -> Placement Edit -> 把复用的模块进行框选 -> 右键-> 选择 Place replicate create -> 然后就会创建一个文件->然后框选要进行复用目标模块 -> 右键 -> place relicate apply -> 选择创建的文件

关于 CM 约束管理器
简单的一个介绍的把,如果具体有需求,具体来进行使用学习

其实就是一些约束,之类的,用到的时候进行修改,约束即可。
Electrical约束类型:
- Electrical:包含电气相关规则(如信号完整性、阻抗控制)。
Physical约束类型:
- Physical Constraint Set:定义物理规则集合(如线宽、过孔类型)。
- Net:针对特定网络的约束(如特殊线宽或间距要求)。
- Region:区域约束(如局部区域的布线或布局规则)。
- Spacing:不同对象间的安全间距(如线到线、线到焊盘)。
- Same Net Spacing:同一网络内部的间距限制(如导线拐角间距)。
- Assembly:装配规则(如元件布局间距、方向限制)。
- Manufacturing:生产相关规则(如钻孔尺寸、阻焊开窗)。
- Properties:对象属性配置(如网络名称、层分配)。
- DRC:设计规则检查(验证设计是否符合所有约束)。
注:列表中重复的“All Layers”通常表示规则适用的层范围(如全局层或特定层),而非独立约束类型。

创建 Net class
创建了 Netclass 以后在约束中的一些属性,可以更随网络变更!插个点,以后有需要在具体来进行
创建Net class(网络类)是指将PCB设计中具有相同特性或需求的一组网络归类,并统一设置设计规则的过程。其核心目的是简化约束管理,确保同类网络的电气、物理规则一致。以下是关键点:
作用与场景
- 统一规则:对同一类的网络(如电源、时钟、差分信号)批量设置线宽、间距、阻抗等参数。
- 高效管理:避免逐个网络配置规则,减少重复操作。
- 特殊需求处理:为高速信号、敏感信号等定制规则组。
创建步骤(以Cadence为例)
- 打开Constraint Manager:在PCB Editor中进入约束管理器(CM)。
- 选择网络:在“Net”或“Electrical”分类下,筛选目标网络(如通过名称或属性)。
- 新建Net class:
- 右键点击网络列表,选择“Create Net Class”。
- 输入类名称(如PWR、CLK、USB_DIFF)。
- 分配网络:将需要归类的网络拖拽到新建的Net class中。
- 绑定规则:为该Net class分配约束集(如线宽、间距、差分对规则)。
常见应用示例
- 电源类(PWR):设置较宽线宽(如20mil)以承载大电流。
- 高速差分类(USB/HDMI):定义阻抗匹配、等长公差和间距规则。
- 时钟类(CLK):限制布线长度、禁止靠近干扰源(通过间距规则)。
注意事项
- 规则优先级:Net class规则优先级高于全局规则,但低于单个网络的独立设置。
- 冲突检查:通过DRC验证不同Net class间的间距、层分配是否冲突。
- 复用性:可将定义好的Net class保存为模板,供后续项目直接调用。
通过创建Net class,可显著提升复杂PCB设计的规范性和效率,尤其适用于多组高速信号或高密度布局场景。
创建 DDR3 差分对
创建DDR3差分对是指在PCB设计中,将DDR3内存接口中的差分信号(如时钟信号CK/CK#、数据选通信号DQS/DQS#)定义为成对的网络,并设置特定的电气与物理规则,以确保信号完整性和时序一致性。以下是具体内容:
为什么需要创建DDR3差分对?
DDR3接口使用差分信号传输数据(如CK/CK#、DQS/DQS#),这类信号具有抗干扰能力强、时序精度高的特点。创建差分对后,设计工具会强制两信号线满足以下要求:
- 等长匹配:两线长度差控制在公差内(如±5mil),避免相位偏移。
- 对称布线:保持线宽、间距、参考平面一致,确保阻抗匹配(通常100Ω差分阻抗)。
- 同步走线:并行布线,减少串扰和延迟差异。
在Cadence中创建DDR3差分对的步骤
- 识别差分信号对
- 在原理图或PCB中确认DDR3的差分信号网络名称(如DQS0_P/DQS0_N)。
- 进入Constraint Manager
- 打开Allegro PCB Editor的约束管理器(Tools > Constraint Manager)。
- 定义差分对规则集
- 在Electrical Constraint Set中新建规则集(如DDR3_DIFF)。
- 设置参数:
- 差分阻抗(如100Ω,需参考叠层计算结果)。
- 相位公差(如±5mil,控制两线长度差)。
- 布线间距(如线间3W规则,即间距≥3倍线宽)。
- 绑定差分对网络
- 在Net > Differential Pair中,选择目标网络(如DQS0_P和DQS0_N)。
- 右键点击Create Differential Pair,命名并关联规则集(如DDR3_DIFF)。
- 配置Xnet(跨器件网络)
- 若差分对经过端接电阻/电容,需合并为Xnet:
- 在Signal Analysis > Xnet中定义跨接器件模型。
- 确保端接前后的网络统一视为完整路径。
- 若差分对经过端接电阻/电容,需合并为Xnet:
- 设置等长组(Match Group)
- 在Electrical > Relative Propagation Delay中,将差分对加入同一等长组。
- 定义组内最大长度差(如±10mil),确保时序同步。
- 布线与验证
- 使用差分对布线工具(如Auto-interactive Diff Pair Routing)完成走线。
- 运行DRC检查,查看Electrical DRC中的差分对违规项(如相位超差、间距不足)。
关键注意事项
- 阻抗控制:差分阻抗需与PCB叠层设计匹配,避免反射和信号衰减。
- 参考平面连续性:确保差分线下方有完整参考层(如GND),减少阻抗突变。
- 等长优先级:差分对内等长 > 与其他信号的等长,优先满足差分对自身公差。
- 端接处理:靠近接收端放置端接电阻,避免信号振铃。
常见问题与解决
- DRC报错“Phase Tolerance Violation”:检查两线长度差,使用Tuning工具(如Delay Tune)蛇形绕线调整。
- 阻抗不连续:避免差分对换层时缺少伴随过孔(如地孔),换层处添加回流过孔。
- 串扰干扰:与其他高速信号(如地址线)保持3倍线宽间距,或通过屏蔽地线隔离。
通过正确创建和约束DDR3差分对,可显著提升信号质量,确保DDR3接口在高频下的稳定工作。
设置区域规则
设置区域规则是指在PCB设计中,为特定区域(如高密度布线区、散热区或敏感信号区)定义独立于全局的设计规则,确保该区域内的布局布线符合特殊需求。以下是关键内容:
定义与作用
通过区域规则,可局部调整线宽、间距、过孔类型或禁止特定操作(如布线、打孔)。例如:在CPU周围设置更严格的线距以防止干扰,或在散热片下方禁止放置元件。
设置步骤(以Cadence为例)
- 绘制区域形状
- 使用PCB Editor的Shape命令(如Z-Copy或Add Rectangle)绘制多边形区域,定义作用范围。
- 绑定规则类型
- 在Constraint Manager中,选择Physical或Spacing规则集,右键创建新区域约束(如Region_Constraint)。
- 指定规则参数(如区域内线宽4mil,线距3mil)。
- 关联区域与约束
- 在Constraint Manager的“Region”分类下,将绘制好的物理区域与规则集绑定。
- 支持多层规则(如仅在顶层应用特殊间距)。
- 优先级配置
- 区域规则默认优先级高于全局规则,可通过调整约束管理器中的顺序修改优先级。
常见应用场景
- 高速信号区:在差分对或时钟线周围设置更小线距,控制串扰。
- 散热区域:禁止在散热路径上布线,或限制元件高度。
- 连接器周边:增加焊盘与走线的安全间距,防止装配冲突。
- 拼板工艺区:在V-cut或邮票孔附近设置禁止布线区域。
注意事项
- 规则冲突:若区域规则与网络类(Net Class)规则冲突,需在约束管理器中明确优先级。
- 层设置:确保区域规则仅应用于目标层(如All Layers或指定信号层)。
- DRC验证:完成布线后必须运行DRC,检查区域规则是否被正确遵守。
- 动态更新:修改区域形状或规则后,需同步更新约束管理器并重新验证。
通过灵活使用区域规则,可针对复杂设计中的局部需求进行精细化控制,平衡全局效率与特殊场景的可靠性。
创建 Xnet
创建Xnet是指在PCB设计中,将跨越无源元件(如电阻、电容、磁珠)的多个物理网络合并为一个逻辑网络,从而统一管理端到端的电气规则(如时序、阻抗、等长)。以下是关键内容:
作用与场景
- 跨元件信号路径:例如,信号从驱动端经过端接电阻后到达接收端,Xnet将其视为单一网络,便于时序分析。
- 统一规则管理:对跨越元件的路径设置整体约束(如总长度、延迟),而非分段控制。
- 信号完整性优化:仿真时识别完整路径,准确评估反射、串扰等影响。
创建步骤(以Cadence为例)
- 识别目标网络
- 确认需合并的网络路径(如U1引脚→电阻R1→U2引脚)。
- 定义元件模型
- 在Constraint Manager的Signal Analysis > Xnet Models中,为电阻/电容指定模型(如理想电阻、具体阻值)。
- 生成Xnet
- 右键点击主网络(如U1的引脚网络),选择Create Xnet,工具自动合并跨元件的网络。
- 验证Xnet是否包含正确分支(如两端网络及中间元件)。
- 绑定约束规则
- 为Xnet分配电气约束集(如时序延迟、差分对规则),而非单独设置各物理网络。
关键注意事项
- 元件模型准确性:电阻/电容的模型参数(如阻值、容值)需与实际一致,否则时序计算会偏差。
- 拓扑结构影响:Xnet仅支持简单串联结构(如驱动→电阻→接收),复杂分支需手动调整。
- 仿真与验证:使用Sigrity等工具仿真时,需确保Xnet路径被完整识别,避免分段分析。
常见问题与解决
- Xnet未生成:检查元件模型是否正确定义,或网络连接是否断开。
- 时序超差:通过绕线工具调整Xnet总长度,而非仅修改单段网络。
- 阻抗不连续:在跨元件处优化参考平面,确保阻抗一致性(如电阻下方保留完整地平面)。
通过创建Xnet,可简化高速信号(如DDR、PCIe)的约束管理,确保端到端信号质量与时序可靠性。
设置规则开关
设置位置:

这里一般全选

全部勾选

一般全部不选

相关文章:
Cadence学习笔记3
设置 PCB 层叠 初始我们有一个两层板,如果需要添加层叠怎么办? 点击进入层叠设置 首先右击 TOP 层下面的空白,然后鼠标右键进行 add layer 然后选择 Plane(一般层就是这个) 就好 然后 add就行 设置光标显示形式 在 setup ->…...
Linux系统下如何部署svmspro平台
上传svmspro服务 rz回车后选择svmspro.zip上传如果提示rz命令未找到,请先运行 yum install -y lrzsz 安装将svmspro.zip解压出来,并拷贝到/usr/目录下,命令如下: unzip svmspro.zip//解压程序包cp svmspro /usr/ -r//将svmspro文件…...
vue3:八、登录界面实现-忘记密码
一、页面效果 二、实现 1、视图层 <el-form-item class"flex flex-between"><el-checkbox label"记住密码" v-model"remember" /> </el-form-item> 参考 Checkbox 多选框 | Element Plus 2、逻辑层 首先设置记住密码的变…...
el-table树形表格合并相同的值
el-table树形表格合并相同的值 el-table树形表格合并相同的值让Ai进行优化后的代码 el-table树形表格合并相同的值 <style lang"scss" scoped> .tableBox {/deep/ &.el-table th:first-child,/deep/ &.el-table td:first-child {padding-left: 0;} } …...
Apache Tomcat漏洞,对其进行升级
我们付出一些成本,时间的或者其他,最终总能收获一些什么。 升级背景: 近日,新华三盾山实验室监测到 Apache 官方修复了一个远程代码执行漏洞 (CVE-2025-24813) ,其CVSS3 漏洞评分为 7.5 。 影响范围 9.0.0.M1 ≤…...
工程实践:如何使用SU17无人机来实现室内巡检任务
阿木实验室最近发布了科研开发者版本的无人机SU17,该无人机上集成了四目视觉,三维激光雷达,云台吊舱,高算力的机载计算机,是一个非常合适的平台用于室内外巡检场景。同时阿木实验室维护了多个和无人机相关的开源项目。…...
时序优化学习笔记
0.代码对应的底层调用 if-else的判定条件需要LUT实现,累加器的进位需要靠CARRY实现。 1.逻辑级数的概念 简单来讲就是组合逻辑串联的个数 逻辑级数查询命令 report_design_analysis -logic_level_distribution -logic_level_dist_paths 5000 -name design_analy…...
OSPF-3 1类LSA Router LSA
前面两期我们介绍了OSPF的邻居与邻接建立的关系及失败因素和原因 这章我们来说说OSPF是如何通过不同的LSA去描述拓扑的信息以及路由信息 一、概述 OSPF通过不同的LSA来构成LSDB链路状态数据库,再通过SPF算法来计算出最优的最短路径 二、LSA的分类 类型名称描述传播范围1类…...
纳米压印技术制备AR眼镜的参考步骤
纳米压印技术(Nanoimprint Lithography, NIL)在 AR(增强现实)眼镜中的应用主要集中在光学元件的制造上,例如衍射光栅、波导和微透镜阵列等。以下是使用纳米压印技术制备 AR 眼镜光学元件的详细步骤: 1. 设…...
FX-std::list
std::list 是 C 标准库中的一个双向链表容器,定义在 <list> 头文件中。它支持在任意位置高效地插入和删除元素,但不支持随机访问。以下是 std::list 的基本用法和一些常见操作: 1. 包含头文件 #include <list> 2. 定义和初始化…...
【清华大学第七版】DeepSeek赋能家庭教育的实操案例(批改作文+辅助语文/数学/科学学习+制定学习计划)
我用夸克网盘分享了「DeepSeek完整资料合集」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。 链接:https://pan.quark.cn/s/621259e4af15 近日,清华大学发布了《…...
HCIA-ACL实验
前提条件:实现底层互通 转发层面 1、基本ACL ①要求PC3不能访问网段192.168.2.0的网段,PC4和客户端能正常访问服务器 ②AR2配置 acl 2000 rule deny source 192.168.1.1 0 匹配流量 int g 0/0/0 traffic-filter inbound acl 2000 接口调用…...
【Gee】项目总结:模仿 GIN 实现简单的 Golang Web 框架
文章目录 Gee 项目回顾Gee 项目总结Golang 已经具备基础的 web 功能,为什么还需要 web 框架?作为 web 框架,Gee 框架完成了哪些功能?如何用 Gee 来构建 web 项目? Gee 项目回顾 上个月月末我按照 Geektutu 的教程&…...
DeepLabv3+改进10:在主干网络中添加LSKBlock|动态调整其大型空间感受野,助力小目标识别
🔥【DeepLabv3+改进专栏!探索语义分割新高度】 🌟 你是否在为图像分割的精度与效率发愁? 📢 本专栏重磅推出: ✅ 独家改进策略:融合注意力机制、轻量化设计与多尺度优化 ✅ 即插即用模块:ASPP+升级、解码器 PS:订阅专栏提供完整代码 目录 论文简介 步骤一 步骤二…...
词向量:优维大模型语义理解的深度引擎
★ 放闸溯源 优维大模型「骨架级」技术干货 第二篇 ⇓ 词向量是Transformer突破传统NLP技术瓶颈的核心,它通过稠密向量空间映射,将离散符号转化为连续语义表示。优维大模型基于词向量技术,构建了运维领域的“语义地图”,实现从…...
编译原理:语法分析程序【附源码和超详细注释】
目录 一 、实验目的 二 、实验内容及步骤 三、程序分析 1. 需求分析 2. 功能分析 1. LL(1)文法功能分析 2. 算符优先文法功能分析 3. 信创分析-主要针对能力提升中国产操作系统上开发内容。 四、源代码 1. LL(1)文法代码 2. 算符优先文法 五、测试结果 1. LL(1)文…...
Go vs Rust vs C++ vs Python vs Java:谁主后端沉浮
一、核心性能对比(基于TechEmpower基准测试) 语言单核QPS延迟(ms)内存消耗适用场景Rust650,0000.1245MB高频交易/区块链C++720,0000.0932MB游戏服务器/实时渲染Go230,0000.45110MB微服务/API网关Java180,0001.2450MB企业ERP/银行系统Python12,0008.5220MBAI接口/快速原型技术…...
使用Flask和OpenCV 实现树莓派与客户端的视频流传输与显示
使用 Python 和 OpenCV 实现树莓派与客户端的视频流传输与显示 在计算机视觉和物联网领域,经常需要将树莓派作为视频流服务器,通过网络将摄像头画面传输到客户端进行处理和显示。本文将详细介绍如何利用picamera2库、Flask 框架以及 OpenCV 库ÿ…...
fs的proxy_media模式失效
概述 freeswitch是一款简单好用的VOIP开源软交换平台。 在fs的使用过程中,某些场景只需要对rtp媒体做透传,又不需要任何处理。 在fs1.6的版本中,我们可以使用proxy_media来代理媒体的转发,媒体的协商由AB路端对端处理ÿ…...
Linux 命名管道
文章目录 🚀 深入理解命名管道(FIFO)及其C实现一、命名管道核心特性1.1 🧩 基本概念 二、💻 代码实现解析2.1 📁 公共头文件(common.hpp)2.2 🖥️ 服务器端(s…...
HDU 学数数导致的
题目解析 首先,数对是有序的,<1,2>和<2,1>被视为不同的两组数字。 其次,数对<p,q>的p和q可以相等。 子序列为 p 0 p q,观察到,中间要出现一个0。那么,我们只需要找到第一个 p 满足与前…...
pjsip pjsua_media_config 结构体说明
clock_rate 描述:设置会议桥(conference bridge)的时钟频率(采样率)。 默认值:0(使用默认值 PJSUA_DEFAULT_CLOCK_RATE,通常为 16kHz)。 作用:影响音频的采样率,常见值有 8000(8kHz)、16000(16kHz)、48000(48kHz)等。snd_clock_rate 描述:设置音频设备的时钟…...
软件/硬件I2C读写MPU6050
MPU6050简介 6轴:3轴加速度,3轴角速度 9轴:3轴加速度,3轴角速度和3轴磁场强度 10轴:3轴加速度,3轴角速度和3轴磁场强度和一个气压强度 加速度计具有静态稳定性,不具有动态稳定性 欧拉角&…...
c++ union使用笔记
c union使用笔记 一、联合的简单使用二、联合与枚举结合三、匿名联合(Anonymous Union)四、关键注意事项五、C17 扩展:std::variant C联合(union)是一种特殊的数据结构,允许在相同内存位置存储不同的数据类…...
Android中的Wifi框架系列
Android wifi框架图 Android WIFI系统引入了wpa_supplicant,它的整个WIFI系统以wpa_supplicant为核心来定义上层接口和下层驱动接口。 Android WIFI主要分为六大层,分别是WiFi Settings层,Wifi Framework层,Wifi JNI 层ÿ…...
react(一):特点-基本使用-JSX语法
初识React React是一个用于构建用户界面的 JavaScript 库,由 Facebook 开发和维护。 官网文档:React 官方中文文档 特点 1.声明式编程 2.组件化开发 3.多平台适配 开发依赖 开发React必须依赖三个库: 1.react:包含react所必…...
【Go】无法访问 proxy.golang.org 进行依赖下载
golang.org/x/net/context: golang.org/x/netv0.37.0: Get "https://proxy.golang.org/golang.org/x/net/v/v0.37.0.zip": dial tcp 142.251.215.241:443: connect: connection refused解决方案: 使用国内的 Go 代理,如 goproxy.cn 或 gopro…...
鸿蒙 @ohos.arkui.observer (无感监听)
鸿蒙 ohos.arkui.observer (无感监听) 在鸿蒙开发中,ohos.arkui.observer 模块提供了一种强大的无感监听机制,允许开发者监听组件的状态变化、滚动事件、页面切换等事件。这些功能对于实现复杂的交互逻辑和优化性能非常有帮助。本文将详细介绍 ohos.ark…...
一键爬取b站视频
同学们。废话不多说, b站视频素材多, 二次加工就归你, 三话不说爬起来, 犯法违纪咱不干 代码 import json import requests from bs4 import BeautifulSoup import re# 目标网址bvnane"BV1hUQEYCEyY" pp("0&q…...
【含文档+PPT+源码】基于Python的图书管理系统的设计与实现
项目介绍 本课程演示的是一款基于Python的图书管理系统的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 带你从零开始部署运行本套系统 该项目附…...
