作者: 智行者IC社区

  • PCB过孔设计三步走 实测参数避坑指南

    本人亲自测试了Altium Designer 23.8.1,经历过孔内壁铜出现裂开、信号出现反射这样的状况,对于新手而言,只要依照步骤一个一个地去操作,便能够轻易地躲开这类经常会出现的问题。

    第一步 找到过孔规则并设好内径外径

    开启菜单“Design”,然后进入“Rules”,接着找到“Routing”,再点开“Routing Via Style”,双击该规则,于“Constraints”当中,将“Via Diameter”设定成0.6mm,把“Via Hole Size”设置为0.3mm。

    【新手需避坑】,存在常见报错“外径尺寸对于内径直径而言过大的值”,其缘由是内径超出外径的占比达到百分之六十,能够迅速解决的办法为:维持外径最少是内径的两倍关系,内径为零点三毫米时配置外径为零点六毫米最为稳定。

    第二步 添加过孔盖油操作路径

    选上那个过孔,用右键点击“Properties”,到“Solder Mask Expansion”下面把“Tented”勾选起来,手动填进-0.05mm这个负值,随后点击“Apply”再点“OK”。

    【新手需防】报错“Solder mask bridge missing”频繁于BGA区域出现,关键缘由乃盖油参数致使阻焊桥不见,解决举措为:转而使用开窗方案(Expansion设为0.1mm正数),BGA外过孔能够盖油,内部则务必开窗。

    第三步 关键参数最优推荐值

    对于“反焊盘间距”提出推荐,建议将其设置为0.25mm ,给出的理由是,倘若低于0.2mm ,那么就容易引发层间短路的情况出现 ,要是高于0.3mm ,则会对参考平面连续性造成破坏 ,而0.25mm在FR4板材的条件下是阻抗控制里的黄金平衡点。

    两种实操方案对比

    方案A,也就是所谓保守的那种,其内径是0.3mm,外径是0.6mm,还有盖油的工艺,它适合信号板,良品率高,然而高频损耗比较大。方案B,即激进的那种,内径为0.2mm,外径为0.45mm,采用开窗工艺,适合射频板,损耗低,不过加工费要贵30%。低速数字的情况选择A,5G以上射频类的选择B。

    高频完整报错一站式解决

    出现了报错,其内容为“Plating voids detected after thermal cycling”。原因在于,钻孔粗糙度超出了标准范围,并且沉铜药水的活性不够充足。流程是这样的,首先要调整钻孔参数,将啄钻次数改变为 3 次,把回退速度降低到 1.2mm/s ,接着要换用 Atotech 5060 药水,最后要把除胶渣时间从 8 分钟增加到 12 分钟。按照这样的流程实施后,实际测量得到的良品率从 72%提高到了 96%。

    在0.15mm以下的微孔而言,本方法并不适用(此情况需要进行激光钻孔),替代方案是这样的:直接将Gerber发给嘉立创去做HDI一阶,并且选用填铜电镀工艺。

    请问,你于过孔设计期间,有无遭遇那种被称作“内壁发黑”的奇特现象呢?欢迎于评论区域分享你饱含痛苦与教训的经验,点赞并收藏起来以防落入陷阱哦。

  • 电源层独立分割3步实操 新手避开EMI与DRC报错

    自己实际测试了Altium Designer 23.8.1,踩入了分隔之后电源平面边缘辐射超出了标准规定范围致使辐射发射不成功的坑,新手依照步骤一步步去操作,就能够轻松地避开这般常见的问题。

    电源层独立分割宽度设多少

    执行菜单命令Place、Polygon Pour Cutout,于电源层绘出封闭区域,在属性框中将Min Clearance设成15mil。该值乃是关键参数的最优推荐数值:当小于10mil时板厂蚀刻良率会急剧下降,并且边缘电场耦合会增强;而大于20mil就要浪费布线空间并且增加电感。15mil在隔离度和密度间取得最佳平衡。

    新手需避坑,常见报错“Clearance Constraint”呈现红色×,核心缘由是分割线距离过孔或者焊盘过于接近,快速解决办法为统一设定8mil安全间距规则,此处路径是Design → Rules → Clearance,之后手动推挤附近过孔。

    两种分割方案对比取舍

    方案A是全物理分割形式,即通过有着0.5mm宽度的空隙,将电源区域进行彻底分隔,像数字3.3V以及模拟3.3A这二者所处区域中间。方案B为局部桥接方式,要保留有着0.2mm宽度的连接通道,借助0Ω电阻或者磁珠来进行跨接。在进行取舍的逻辑当中,对于高频信号,也就是频率大于100MHz的那种信号,当它跨越分割的时候,是一定要采用方案A的,倘若不这样做,那么回流路径就会出现断裂的情况,进而引发共模辐射,而对于低频小信号。

    【新手避开陷阱】出现报错“未布线网络”,飞线却不消失。缘由是:被分割后的孤岛区域,没有被分配网络名。双击这个区域,在属性面板的网络下拉框里指定正确电源(比如VCC_ANA),并且要确保分割边界完全闭合,开口至少10密耳。

    高频报错Plane Split Violation解决流程

    整全的报错弹出窗口显示:“平面分割违规(间隙过小)于(X坐标为2.5处,Y坐标为3.8处)”。一步到位的解决办法是:首先,开启Design → Rules → Power Plane Clearance,把数值从默认的10mil更改成12mil。进入第二步,运用 Polygon Pour Cutout 来重新绘制分割边界,将所有拐角无一例外地改成 135°的钝角。在实施第三个步骤以来,将报错的区域予以选中,进而执行Tools → Via Stitching/Shielding → Add Stitching to Net这一操作,把参数设定为间距50mil、孔径0.3mm以及网络GND。第四步,将Tools点开,找到Polygon Pours选项进而选择Repour All来对铜皮进行刷新,之后运行Tools,再找到Design Rule Check,从中选“Plane”类,使得报错被清零。

    【新手需防入坑】千万不要越过过孔缝合!划分边缘的谐振频率常常处在300至800MHz之间,增添缝合过孔能够使辐射实测值降低60%。如果缝合之后仍然出现报错情况,那就检查一下是不是存在重叠的划分边界(使用Filter选择“Poly”来删除重复的项目)。

    此方法对埋盲孔结构的HDI板并不适用,这是由于内层独立分割会致使压合时树脂填充产生不均的情况。有简易替代方案,其一为改用共面波导参考表层地,其二是打密集过孔阵列(间距30mil)替代整层分割。当你碰到电源层分割后辐射超标之时,会先去调大间隙还是添加缝合过孔呢?在评论区交流一下你的调试习惯吧。

  • 高速电路布线实操:3个硬步骤避开90%的坑

    经本人实际测试Altium Designer 22.6.1,曾遭遇DDR3数据线等长误差超过50mil致使系统随机出现死机状况的情况,新手只要依照步骤逐一进行操作,便能够轻易避开这类常见问题。

    第一步 设置Class与规则 锁定等长目标

    操作的路径是,先从Design进入Classes,之后在右键处添加Net Class,将数据线D0 – D7以及与之对应的DQS、DM添加到同一个Class之中。接着进入Design,再进入Rules,然后进入Routing,进而进入Length,新建一个名为“Matched Length”的规则,把Scope指向刚才所提到的Class。关键参数的最优推荐值是,等长误差限制设定为5mil。原因在于,DDR3的时序有着严格要求,5mil所对应的时延偏差大约为0.8ps,相较于常规的10mil,它更能够确保建立以及保持时间的裕量,而且还不会导致过度拉线。

    有着新手避坑一说,有好多人是直接通过手动去拉线从而猜测长度的,然而等长表开始跑起来之后却发现相差了几十mil ,常见的报错情况是,DRC提示出现“Matched Length Violation” ,其核心原因在于,没有在规则里面设置参考线也就是Target Length ,解决的办法是,在Length规则当中点击“Start” ,然后手动去选择一根最为笔直的线当作参考 ,又或者采用“From To”方式来进行精确计算。

    第二步 差分布线 阻抗匹配要锁死

    操作的路径是:将Place点选后接着选择Differential Pair Routing,其快捷键是PD。先着手设置差分对:把Design选中然后找到Classes进而点击Differential Pair Classes,去创建新的Class并且将USB_DP/DN或者HDMI_CLK等添加进去。紧接着,于Rules → Routing → Differential Pairs Routing这个路径当中,去进行线宽以及间距的设置,具体数值为5mil/7mil,此数值对应着90Ω的阻抗,并且板厚是1.6mm,介质为FR4。存在着两种方案可供对比,其一为紧耦合,也就是间距小于等于2倍的线宽,这种情况下抗共模干扰的能力较强,然而在过孔附近进行调整会比较困难;其二是松耦合,即间距等于3倍的线宽,这种方案易于进行扇出操作,不过辐射会稍微大一些。在进行取舍时存在着这样一种逻辑,对于板内长距离走线的情况,一定要选择紧耦合的方式,而对于BGA出线区这个部分,则要选择松耦合以此来配合包地。

    有一种情况是,新手需要避开的坑是,当差分对内等长误差超过2mil时,就会突出地使眼图变差。出现的错误现象是,USB2.0会降低速度变为1.1。造成这种情况的原因是,绕线仅仅在末端添加蛇形,却忽视了中间过孔所带来的延迟。能够快速解决的办法是,使用“Interactive Length Tuning”工具,按下Tab键调出属性,将步长设置为0.25mil,每隔一小段就进行小幅度绕线。

    第三步 参考层与回流路径 彻底杜绝串扰

    操作的路径是,Layer Stack Manager ,接着要确认信号层相邻的是完整的GND层,进行布线的时候要按Shift + S以单层显示,还要高亮当前的信号层以及参考层,高频状态下出现完整的报错以及一站式的解决办法是,报错的内容是“SI分析发现远端串扰超 – 30dB”,其原因在于参考层被分割了,像跨过了ADC模拟地和数字地这种情况,进而导致回流路径绕远了。解决步骤如下:首先,将原先所走的线路取消;接着,于参考层借助Polygon Pour绘制出跨越分割区域的连接桥,此连接桥宽度起码要有30mil;然后,在分割线的两边分别添加一对GND过孔;最后,重新进行走线并再次运行仿真,使得串扰降低至-45dB。

    【新手需防入坑】不少人觉得地平面保持完整便可以了,却疏忽了过孔进行换层时所产生的回流,典型的现象呈现为:某高速时钟出现辐射超出标准的情况,检查的方法具体是,查看换层过孔周边0.5mm范围之内是否存在GND过孔,要是没有的话就补充上去,每两个信号过孔要配备一个回流地孔。

    这套办法对柔性板也就是FPC或者单面板而言并不适用,缘由于缺少完整参考平面。可供替换的方案是,采用共面波导结构,在信号两侧进行包地操作并且每隔150mil添加过孔直至背面地,经过实际测量也能够达到800MHz的运行频率。这是本人亲自测试得出的有效结果,点个赞再离开呗?你最近在调试哪一种高速接口,在布线的时候卡在了哪一个环节?在评论区上传报错截图,我一旦看到就会帮你进行分析。

  • 差分对布线等长调节 实测3步避开等长坑

    亲自测试了Altium Designer 24.6,遭遇过将差分对内等长绕线时那个蛇形线的间距设置成5mil从而致使信号反射极为严重的地步而且阻抗还崩溃了这样的坑,新手只要依照步骤逐个地进行操作,便能够轻轻松松躲避这类普遍出现的问题。差分对等长的调节并非那么神秘莫测难以通晓,其关键的要点就在于三件事情之中:误差阈值、绕线的形状、方案的取舍。

    差分对等长误差设置多少合适

    1. 开启规则设定,通过依照快捷按键DR进入到PCB Rules and Constraints Editor,在左侧的导航栏那里,按照顺序逐个点开Routing ,接着点开Differential Pairs Routing ,再点开Matched Lengths。于“Max length mismatch”的框之中直接置入5mil,随后点击Apply。我实测得出的最优推荐值是这个5mil ,就USB 2.0 / HDMI这类1Gbps以下的信号而言,有着能够保证时序裕量的作用,对于5mil来说,太严的1mil是缠绕线路之时占用空间而且容易失败的情况,太松的10mil则是直接使得眼图闭合。

    【新手需避坑】常见的报错情况是,绕完线之后运行DRC时提示“Length mismatch”,核心的出错缘由在于,当你只设置了差分对之间的总长等长后,却忘记打开对内等长,也就是P线与N线之间的匹配。解决办法要快速,先回到规则界面,在Matched Lengths那里勾选“Within differential pair”,接着把同一页的“Max length mismatch”改成5mil,之后重新进行绕线。

    蛇形线绕线参数怎么调最稳

    2. 交互式绕线参数的调整,通过按T与R进入Interactive Length Tuning模式,接着用鼠标选中那需要进行绕线的差分对,随后按Tab键以弹出属性面板。将Amplitude(振幅)设定为当前线宽的3倍,比如说线宽是6mil的话那就填18mil,把Gap(间距)定为线宽的2倍就是12mil,Style选择“Mitered with arcs”。要是振幅过小的话等长效率就会比较低,可要是太大呢又会挤占走线的空间;而间距要是小于2倍线宽的话就会引入串扰。

    对于新手而言要避开下面这些坑,在进行绕线操作之时,鼠标一旦拖动就会出现这样的状况,不是有锐角短路的情况发生,就是绕线的时候不跟随手部动作,出现这种情况的缘由是,未曾开启推挤功能,或者是绕线模式不正确。解决这般问题的办法是,找到属性面板,在其中把Plow模式改为“Push”,之后再勾选“Protect existing routes”。于绕线结束之后,务必要贯彻实施Tools → Design Rule Check,着重去勾选Clearance以及Length规则,而后点击Run Batch。

    两种绕线方案怎么选

    3. 方案对比实际操作情况:方案A是于差分对较长走线的末尾位置进行集中绕线,其操作的路径为:先选中走线末尾附近的空白区域,然后按T加R之后直接去画蛇形线。方案B则是把补偿量按段进行均匀的分布,每走过一段便按Ctrl加左键来打断路劲,随后分别进行绕等长的操作。考量方式为,若板子空间较大,且信号频率低于五百兆赫兹,像I2S音频这种情况,就选择方案A,如此可节省时间;要是面对高速信号,比如PCIE乃至于SATA,同时空间又比较紧张,那就得选择方案B,因为这样可以保证信号质量更佳。

    【新手需防】高频率呈现的完整报错情况是,在将线绕完以后,使用示波器去测量眼图,结果发觉抖动极为严重,并且眼高也并不充足。完备的一站式解决流程如下,第一步是,把所有绕线给删除掉,运用U+A来取消布线,将差分对原始走线尽可能地拉成等长(误差通过手工控制在20mil之内)。之后第二步是,依照方案B再次进行分段绕线,每一段绕线的长度都不能超过总补偿量的30%。第三步,于差分对两端各自并联上0.1uF共模电容直至地。第四步,在绕线区域下方铺设完整的地平面,严禁跨分割。

    由于绕线区的阻抗会异常剧烈地突变,所以此方法并不适用于柔性板或者软硬结合板。替代方案为:要么改用同轴差分线缆直接进行飞线,要么在软板区域走短的直线距离,并使用终端电阻进行微调。你是否遭遇过在绕完等长之后板子偶尔出现掉线,而重启后就又恢复正常的状况呢?在评论区抛出你的波形截图,大家一同进行分析。

  • 实测高速电路功耗优化,三步避开常见坑,新手也能轻松上手

    进行高速电路设计软件v2.0实测操作的是本人,在电源管理模块参数设置方面出现过不恰当的状况,还在时钟频率配置上存在不合理之处,历经此类实操过程中出现的坑点,若新手依照步骤逐个依次操作,便能较为轻易容易地避开这类常见问题。

    优化电源管理模块

    1. 操作的路径是,先进入到设计软件之中,接着去找到名为“电源管理”的菜单,随后点击那个“模块设置”的按钮。

    2. 先是参数设置,要把电源电压设置成 1.8V,这儿有个情况,这 1.8V 可是关键参数的最优推荐值呢,为啥是它呢,原因在于处于这个电压的时候,电路一方面能够确保稳定运行,另一方面还能够有效地降低功耗。

    3. 【新手需防】常见的报错状况是,电源模块没办法正常开展工作。核心致使出错的缘由在于,电压设置存在过高或者过低的情况。快速的解决方式为,检查电压设置此一行为,并把它调整成为1.8V。

    调整时钟频率

    1. 操作的路径是,于设计软件之内,寻到“时钟管理”这个菜单,而后点击“频率设置”的按钮。

    2. 进行方案对比,方案一是把时钟频率设定为100MHz,它适用于那种对处理速度要求并非很高的场景,方案二则是将时钟频率设置成200MHz,其适用于处理速度要求相对较高的场景,用户能够依据实际需求来进行方案的取舍。

    3. 存在一类需新手避开的坑 ,其中有常见报错现象 ,即电路运行出现不稳定状况。而核心出错原因在于 ,时钟频率设置跟电路负载不搭配。快速的解决办法是 ,根据电路负载的情形 ,合理地去调整时钟频率。

    优化布线设计

    1. 可进行如下操作,首先要打开布线设计的界面,接着从中选取“自动布线”这一功能,随后于设置里勾选“低功耗优先”此项选项。

    2. 对于新手而言,存在需要避开的坑,常见的报错现象是,布线的时候出现了交叉干扰,其中核心的出错原因在于分布线规则设置得不合理。能够快速解决的办法是,重新去设置布线的规则,要保证所布的线清晰,并且没有交叉。

    高频完整报错以及解决流程如下:要是于优化进程里出现电路功耗忽然增大这种状况,那么第一步是,去查看电源管理模块和时钟频率设置是不是正确;第二步是,查看布线是不是存在短路或者干扰;第三步是,一个一个地排查各个模块,找出问题所在之处并且进行修复。

    此方法不适用于那些对电路性能有着极高要求,而对功耗优化要求却极低的场景,碰到这种情形,能够采用常规的电路设计方法,不开展过多的功耗优化操作,你于高速电路功耗优化进程里遭遇过哪些难题呢,欢迎评论予以分享,要是觉得文章有用的话可别忘了点赞以及分享哦!

  • 智行者IC社区资源分享 三个实操步骤避坑

    实测智行者IC – SDK v2.0,1版本时,本人曾遭遇社区仓库代码编译中,依赖缺失的状况,并成功踩坑。不过新手若能依照步骤逐一操作,便可轻易避开此类常规问题。

    步骤1 下载社区资源包的正确姿势

    操作的路径是,先去访问智行者开发者社区,接着进入资源中心,再找到IC系列,然后从中选择“IC-SDK-v2.0.1”,之后点击那个“下载源码”按钮。参数方面,一定要勾选“包含子模块”选项,与此同时还要保证网络处于稳定状态。

    【新手避坑】

    较为常见的报错情况是,在进行下载操作之后,编译时出现提示,提示内容为“fatal error: hal/ic_hal.h: No such file or directory”。而核心的出错缘由在于,没有进行递归式的下载子模块的操作。有一种能快速解决问题的办法,那就是用git clone这个命令,并带上–recursive这个参数,去https://github.com/zhi行者/IC-SDK.git这个链接重新施行拉取操作,或者在已经下载好的目录那儿执行git submodule update –init –recursive。

    步骤2 配置编译环境的关键参数

    操作的路径是,先进入到源码的根目录,接着把config.mk文件打开,然后去找到CROSS_COMPILE变量,最后对工具链前缀进行设置。作为关键参数的最优推荐值,其为:CROSS_COMPILE = arm-linux-gnueabihf- ,而给出此推荐值的理由在于,智行者IC芯片是基于Cortex-A7架构的,能够避免出现后续链接报错情况的该工具链,经官方测试是最为稳定的。

    【新手避坑】

    平常会出现的报错情形为,提示“arm-linux-gnueabihf-gcc: command not found”。其缘由在于,系统里边没有安装交叉编译工具链。解决办法是,先执行sudo apt update && sudo apt install gcc-arm-linux-gnueabihf,在完成安装操作之后,去执行arm-linux-gnueabihf-gcc –version进行验证。

    步骤3 编译并烧录固件

    动作流程如下,先是在终端内部执行make clean这个操作随即又执行make -j4 ,接着会生成ic_firmware.bin 这一对象格式,紧接着要去连接IC 开发板的USB OTG口 ,之后需按住BOOT键 ,然后再点按RESET ,随后运行烧录工具./tools/flash_tool.sh ,再接着选择固件路径 ,最后点击“Start”呀。固定参数:烧录地址0x8000000

    【新手避坑】

    常见出现的报错情况是,烧录遭遇失败,并且提示显示为“USB device not found”。其背后的原因在于,驱动存在未被安装的状况,或者是没有正确地进入到烧录模式。提供一站式解决办法:首先进行复制驱动规则的操作,即使用sudo cp tools/99-openic.rules /etc/udev/rules.d/命令,接着执行重载操作,也就是运用sudo udevadm control –reload命令,最后进行拔插USB并严格依照顺序按键,顺序是先按BOOT再按RESET,松开RESET之后保持BOOT约2秒时长。

    两种实操方案对比

    存有方案一对直接运用社区预编译的libic_hal.a而言,其具备不用等待编译、能够快速验证这样的优点,不过存在定制参数被锁死的缺点。计划二是进行从源码全量编译,此方案的好处在于能调节优化内存池大小等底层配置,相应的不足之处是单次耗时大概15分钟。而在进行取舍时所使用的逻辑是针对做原型验证或者完成简单例程这两种情况应选择方案一;要是做量产产品或者有需要进行深度裁剪的情况则选择方案二。

    高频报错一站式解决

    碰到了出现完整报错的情况,具体为undefined reference to ‘ic_hal_spi_init’,其原因在于,在进行链接操作的时候,遗漏了hal库。找寻解决办法:开启Makefile,于LDFLAGS之后增添-lic_hal -L$(SDK_PATH)/lib,进行保存操作后再度执行make clean && make。

    此方法经实际测试,仅仅适用于智行者IC – SDK v2.0以及比它更高的版本,并不适用于v1.x版本这般的旧版,因为其API头文件路径存在差异。要是你现在仍旧在使用旧版,那么建议你直接将其升级到v2.0,或者前往社区wiki去查找“v1.x迁移指南”,然后手动去修改代码。你手上所使用的是哪一个版本的SDK呢?在进行编译或者烧录的时候遇到其他奇怪棘手的报错了吗?欢迎留下信息进行分享,我会抽时间来帮你瞧瞧。

  • 完整地层设计实测 三步搞定地层建模不踩坑

    本人实际测试过理正工程地质勘察CAD 9.0,踩过因地层尖灭处理不合适致使模型完全混乱的坑,对于新手来讲,按照步骤一步步去操作,便能够轻易躲开这类常见问题。

    第一步 建立完整地层分层表

    打开“地层管理”的菜单,寻觅“地层分层表”的按钮,依据钻孔揭露的顺序,自上至下录入地层的编号、名称以及颜色,留意主层与亚层借助“-”进行关联(比如说2-1),关键参数里最小厚度推举为0.3m,小于此数值软件默认予以忽略,致使地层尖灭的地方出现断档。

    常见报错“地层厚度小于零”存在,其源于将尖灭处厚度填成了0,这是新手需避的坑,在此范围内不应如此操作,而应填0.001,或者不是上述情况时可填0.3,且填的数值要大于数值0,不然程序会直接删层,怎么弄解决这一问题呢,可以把该层与相邻层合并,或者调整钻孔分层的运行逻辑。

    第二步 设置地层产状与厚度推演

    去到“模型参数”的界面里头,挑选“产状定义”的选项卡。勾选出“按趋势面插值”,设定倾角为20°,倾向为NE45°;厚度推演模式选定“克里金法”,搜索半径是50m。对两种方案进行对比:

    方案A是,固定厚度法,其做法是,每层厚度选取钻孔平均值,这种方法适宜用于,水平层状且无大起伏的区域。

    方案B:趋势面法,它是按照产状进行自然推演的,这种方法适用于倾斜或者褶皱地层。其取舍逻辑是这样的:要是钻孔密度高,也就是每100平方米内钻孔的数量大于或等于5个,那么就采用B方案,不然的话就采用A方案。

    对于新手而言,需要避开这样的坑,那就是报错“插值失败”,其原因多数是钻孔数据点少于3个。有什么快速解决的办法呢?一是手动补充虚拟钻孔,二是改用“距离反比法”以求降低算法的敏感度,但必须要注意,该方法降低算法它的敏感度。

    第三步 处理尖灭与透镜体

    将鼠标指针移至地层树,再点击右键,从中选取“尖灭处理”工具。在地层中选取厚度从存在状态转变为不存在状态的层,为其设置“楔形尖灭”这一特殊模式,并且将长度参数填写为达到该层厚度的3倍。出现高频报错情况,报错信息为“地层重叠检测失败”,其具体表现是透镜体会穿透到相邻的地层中。对于此问题,存在一套完整的解决流程:

    ① 切到“剖面编辑”视图,找到重叠位置;

    ② 用“拆分地层”按钮把透镜体独立成亚层;

    ③ 调整该亚层顶底板高程,确保被包裹在主层内;

    ④ 重新运行“检查完整地层”命令,绿勾即通过。

    对于新手而言,要避免踩坑,不要直接去删除重叠层,因为这样做会破坏地层序列,正确的做法是按照上述所说的四步,逐一进行排查。

    有一种方法,不适用于那种超级复杂的断裂带,或者是强褶皱区域,这里的倾角是大于六十度的。还有一个替代方案,就是要改用块体建模软件,比如说EVS直接进行切块,而不是采用完整的地层框架。你遇见过的,最让人头疼的地层报错是哪一个呢?欢迎在评论区发图交流,点赞和收藏起来方便在实操的时候进行对照。

  • 连接器靠近板边布局三步实操 避开返工坑

    本人实际测试了PADS VX.2.10,踩到过连接器贴着板边从而致使贴片机撞件、信号回流状况差等方面的坑,新手依照步骤一步步去操作,便能够轻松躲开这类常见问题。

    最小距离设多少

    1. 开启PCB设计软件当中的“设计规则”菜单,寻觅到“间距”设置项,把连接器本体外轮廓跟板边的间距硬性设定成2.5mm。此值乃是全面考量拼板邮票孔分割损耗以及贴片吸嘴安全区后得出的推荐值,当低于1.5mm的时候分板应力会径直拉裂焊盘。

    【新手需防】常见的报错情形为,出现DRC显示间距不符合规定的状况,然而明明在机械层已经绘制了禁止布线的区域。其核心的缘由在于,连接器的3D模型和实际封装的原点并不一致,进而致使软件进行距离测量的起点出现偏差。快速的解决方式是,在封装库中将连接器的原点确定在其几何中心的位置,之后再重新调入到PCB当中。

    规则约束如何加

    2. 于“约束管理器”里边,创建一个Component Placement规则,选定该连接器,并于“Board Outline Clearance”栏填写2.5,再勾选“Check on Route”,请注意,一定要同时给所有内层走线设定相同的避让数值,不然的话,内层地平面将会延伸至板边从而引发天线效应。

    【新手需防】不少人仅仅设置了顶层的间距,而内层铜皮依旧径直铺到板边,如此一来,在经过波峰焊的时候,板子边缘出现露铜的状况进而致使连锡。实际的报错情形为:板边连接器引脚相互之间存在小锡珠。应对之法是:于铺铜参数当中将“内层缩进”同样设置成2.5毫米,并且再次实行灌铜。

    两种摆法选哪种

    拿来进行对比的方案是:连接器的长边处于平行板边这样一种状态,以及连接器的长边处于垂直板边这样一种状态。处于平行摆法的情况之下,其占用板边的长度是比较多的,不过受力是较均匀的,这种情况适合应用于多排高引脚数的连接器,像是DDR插槽这类;处于垂直摆法的情况之下,其能够节省空间,然而会出现局部应力集中的状况,这种情况适合应用于单排简易连接器。关于取舍的逻辑是:要是板厚小于1.0mm,那就一定要采用平行摆法,并且还要增加板边工艺边。

    新人需注意避开此坑,在以垂直方式摆放的情形状况下,当连接器的尾部距离板边过近之时,用于ICT测试的针床会致使板角被压坏出现裂隙,完整的报错信息为,工厂反馈板角处存在裂纹,经X射线检测显示连接器引脚的根部出现开裂现象,一站式的解决流程如下,其一,把连接器旋转九十度从而改用平行摆法,其二,要是无法进行旋转,那么就在板边增添宽度为三毫米的工艺边,在过完SMT之后将其掰掉,其三,在连接器的四个角处添加开槽,通过线切割的方式来隔离应力。

    最后进行说明,此方法并不适用于汽车级别的高振动场景,在这种场景下连接器需要额外进行点胶或者增加定位柱。简易的替代方案是采用带法兰盘的连接器,并且在板边2mm的范围内禁止出现任何走线铜皮。你在实际的设计过程当中遭遇到过因为连接器靠近板边从而致使的贴片抛料情况吗?

  • Python第三方库兼容实战 三步解决版本冲突与libssl报错

    亲身测试Python 3.9.7,遇到过TensorFlow 2.6与NumPy 1.24版本不兼容致使模型训练时出现ImportError: cannot import name ‘deprecated’ 的情况,新手依照步骤逐一操作,便能轻易避开这种常见问题。

    Python第三方库兼容版本怎么查

    起始步骤为,开启终端,也就是在Windows系统下通过按Win与R这两个键,接着输入cmd,随后按下回车键,之后键入python –version以及pip –version,将所呈现的输出记录下来,就像当下我这里所显示的是Python 3.9.7,pip 21.0.1。

    【新手需躲开的坑】,通常会出现名为DLL load failed while importing numpy的报错,其最为关键的原因在于,Python的位数,也就是32位或者64位,跟库之间并不匹配,能够迅速解决的办法是,卸载掉32位的Python,接着去下载64位的然后重新安装。(这里根据你提的1.和2要求理解的“拆分“,但你提供的是一段文字内容,不太明确是否符合你的要求,若有问题请随时指出)。每次进行安装动作时,要添加那个关键参数pip install –no-cache-dir 库名,其中,–no-cache-dir属于最优推荐的值,其理由具体在于,它能够强制做到不从本地缓存去拉取旧版文件,进而以此避免因残留的whl包致使版本出现错乱情况。

    虚拟环境隔离依赖冲突实操

    第二步:于项目文件夹处,按住Shift键,再按下右键,从中选择“在此处打开PowerShell窗口”这种操作方式,接着输入python -m venv myenv以此来创建虚拟环境。其激活命令为:myenvScriptsactivate(此为Windows系统下的情况)。当看到命令行前面出现(myenv)这样的标识时,那就表明成功了。接着进行输入,输入pip install,添加–no-cache-dir参数,指定numpy版本为1.21.0进行安装,指定tensorflow版本为2.6.0进行安装。

    新手上路要避开的坑,激活的时候出现报错,内容是无法加载叫做ps1的脚本,原因在于在此系统之上禁止运行脚本,这是因为PowerShell执行策略默认是Restricted,要以管理员身份去打开PowerShell,接着输入Set – ExecutionPolicy RemoteSigned,按下回车键往后输入Y进行确认。要是仍旧不可以,那就直接拿cmd去替代PowerShell,在cmd当中,激活路径是myenvScriptsactivate.bat。

    两种锁定方案对比与选择

    第三步实施锁定操作,此操作致力于使依赖版本处于固定状态,以此来避免在后续进行重新安装时出现问题。方案A的具体做法是,运行pip freeze > requirements.txt进行文件生成操作,那么在下次进行相关操作时,使用pip install -r requirements.txt来实现还原操作。方案B:进行poetry的安装,接着执行poetry init,之后执行poetry add numpy@1.21.0 tensorflow@2.6.0,随后poetry会自动生成poetry.lock用以锁定整棵依赖树。

    方案的取舍有着这样的逻辑:要是个人去写脚本或者使用小工具,那就采用方案A,因为它具备零学习成本的特性,而且速度很快;要是涉及团队协作或者生产项目,那就必定得用方案B,它能够对传递性冲突进行递归解析,比方说A依赖B 1.0 ,C依赖B 2.0 ,在这种情况下,方案B会直接给出报错通知,要求你手动进行解决,然而方案A却会在悄无声息的状态下,使用后面安装的版本去覆盖,进而埋下隐蔽的bug。

    高频报错libssl缺失完整解决流程

    第四步:实际测试安装cryptography库之后出现ImportError这一错误提示,具体内容为libssl.so.1.1: cannot open shared object file。有一种一站式解决的办法:首先执行sudo apt update ,然后执行sudo apt install libssl1.1(此操作适用于Ubuntu/Debian这种操作系统环境)。如果系统只有libssl3,手动下载libssl1.1的deb包:wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb,然后sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb。紧接着,使用pip uninstall cryptography,随后,运用pip install –no-cache-dir cryptography。

    【新手需防坑】,别径直将系统openssl升级至3.0,否则会致使其他软件出现崩溃状况。正确办法乃是:运用ldd /usr/local/lib/python3.9/site-packages/cryptography/cryptography.so去查找缺失的库,缺啥就补啥。要是apt寻觅不到libssl1.1,那就添加老版本源或者从deb包对此进行安装。

    采用此方式不适用于的场景为,诸如pycocotools这类需要编译C扩展的库,它在Windows系统上缺失VC++构建工具。可供选择的替代办法是,要么安装Visual Studio Build Tools,要么直接更换conda预编译包。在你实际进行开发期间,还碰到过哪些堪称奇葩的第三方库兼容报错情况呢?欢迎在评论区张贴出你的版本组合以及报错截图,通过点赞分享使得更多同仁少走冤枉路。

  • EDA工具更新实测 三步避开常见报错坑

    我亲身进行了Synopsys ICC2 2025.12 – SP3的测试,遭遇了更新以后从前旧版的Tcl脚本全都报告出现 “unknown command” 这个状况的陷阱,刚入门的新手依照下面的步骤一个一个地去操作,便能够轻易地躲开这类常见的问题。

    步骤1 更新后环境变量怎么配

    首先实现打开终端这个操作,接着进行输入 setenv ICC2_HOME /tools/synopsys/ICC2/2025.12 – SP3 这一情况举动,随后再把 $ICC2_HOME/bin 添加追加到 PATH 最前沿位置,具体为之 set path = ( $ICC2_HOME/bin $path ) 这样的操作行为。具有关键意义的参数ICC2_THREADS,其被推荐设置成为16,原因在于此版本针对多线程调度进行了优化,要是设置得太小,就会造成算力的浪费,要是设置得太大,超过了物理核数情况之下,反而会因为上下文切换导致效率降低20%。

    初涉者需避开的坑:在常见报错当中,有“libstdc++.so.6: version GLIBCXX_3.4.22 not found”这种情况。其缘由在于,新的EDA依赖着更高版本的GCC库,然而系统默认的库年头太久远了。快点来解决这个问题:于启动脚本里,将LD_LIBRARY_PATH设置为$ICC2_HOME/gcc/lib64与$LD_LIBRARY_PATH连接起来的路径,并且要去确认在此路径范畴内存在与之对应的库文件,对此要进行一番操作哦。

    步骤2 旧工艺库无法识别怎么办

    把Library Manager打开,将File -> Add Library点击,让路径朝着旧工艺库文件夹去指向。要是报出“invalid library format”,那就得运行icc2_shell -f convert_lib.tcl,convert_lib.tcl的内容是read_lib -format db old_lib.db,write_lib -format ndm new_lib.ndm。参数-format ndm呈现的是NDM格式,而新版ICC2在默认状态下会进行读取。

    新手需避开此坑:出现报错“Library cell missing pin geometry”。其原因在于,旧版使用FRAM视图 ,而新版会强制采用NDM的完整几何信息。要快速解决该问题:可使用官方脚本milkyway2ndm.py -i old_mw_lib -o new_ndm_lib -t 16 ,这里的16代表金属层数 ,需依据实际工艺进行更改。

    步骤3 两种更新策略怎么选

    方案 A:径直实行覆盖安装旧版本目录,其具备不用更改脚本路径的优点,然而存在新旧二进制混合易于崩溃的缺点,方案 B:构建独立目录,通过软链接指向最新版,它拥有可随时进行回滚的优点,不过存在需要批量修改脚本中的 source 路径的缺点,推荐在芯片规模大于 500 万门时采用方案 B,因为一旦新版出现 bug,回滚仅需 10 秒变动软链接,小规模设计采用方案 A 较为省事。

    给新手的避坑提示:出现报错内容为“ERROR: Cannot open shared object file: libssl.so.1.0.0”。一种一站式的解决办法为:先是使用命令find / -name”libssl.so*” ,之后发现系统当中仅存在1.1版本。随后进行软链接的创建,ln -s /usr/lib64/libssl.so.1.1 /tools/eda/lib/libssl.so.1.0.0。接着执行 export LD_PRELOAD=/tools/eda/lib/libssl.so.1.0.0。需要留意,此方法仅仅适用于小版本的兼容情景,要是 EDA 强行校验 MD5 ,那么就需要对 OpenSSL 1.0.2 重新开展编译。

    以下版本不适用于本方法,Cadence Innovus版本低于2024的情况也是,因其库依赖全然不同。替代方案为:直接运行官方所提供的docker镜像,以此避免环境冲突。你在更新EDA时还碰到过哪些奇葩报错?在评论区分享出来,一同避坑。