分类: 技术文档

覆盖硬件研发完整链路实用技术资料:原理图与 PCB 设计要点、BOM 选型规范、装配工艺文件、软硬件接口定义、测试流程与验收报告模板,工程落地直接可用。

  • Altium Designer 铺铜避坑 3个硬步骤跟着做就对了

    本使用者亲身测试Altium Designer 23.8.1,遭遇了铺铜之后挪动元件便出现大面积报错,且规则无论怎样都未能生效这个妨碍。新手依照下面三步逐一进行操作,便能够轻易躲开这类常见的问题。

    铺铜前先锁死间距和线宽规则

    1. 轻触菜单栏之中的“设计”之后再点“规则”,于左侧的树形菜单那儿寻觅到“Routing”之下的“Width”,接着双击“Width_1”。把“最小宽度”设定成0.2mm,将“首选宽度”设定成0.25mm,把“最大宽度”设定成0.3mm。而这个0.25mm乃是兼顾信号完整性以及制板良率的黄金那般的值:要是太细就容易出现断线的状况,要是太粗就会占据空间并且容易引发串扰。

    【新手需防坑】,常见的报错情形为铺铜之后规则并未生效,会报出“Clearance Constraint”,核心缘由在于“优先级”未能调整妥当:你对Width规则做了修改,然而系统有可能依旧在运用默认的0.254mm规则。解决的办法如下:在规则界面右侧的“优先级”框体里头,将Width_1借助上下箭头提升至最顶端。

    铺铜参数这样选才能一次成型

    2. 进行如下操作,将点菜单中的选项置于“放置”,再选择“多边形铺铜”,接着运用十字光标框出相应的铺铜区域。于弹出的对话框里面,针对“铺铜类型”,如同散热条件优良且适配多数电源板那般选取“实心铜” ,至于“网格铜”,它适用于柔性板或者对热应力较为敏感的高频板,其网格线宽为0.2mm、间距是0.3mm。在“连接方式”方面,给大焊盘选择“直接连接”,为贴片焊盘选用“十字连接”以此来防止立碑。角度固定45度,勾选“移除死铜”。

    将“网络”选项里的“连接到网络”勾选上,并且指定正确的GND或者VCC网络,若忘记选,那铺铜就会是孤立的一大块,不会跟任何焊盘连通,铺出来就全是报错“Un-Routed Net”,对新手算避坑提示吗?

    DRC报错一站式解决流程

    3. 铺铜之后,按T与D(或者是“工具”这个选项再进入“设计规则检查”),会弹出DRC窗口。出现频率最高的是“Clearance Constraint Violation”呈现大面积飘红之状。其解决流程是:率先按L来调出视图配置,关闭掉所有的层,只保留“Top Layer”以及“Bottom Layer”,借助S以及C来选中所有报错的目标。接着按Y开启过滤面板,挑选出“违例对象”,一并删除。随后返回规则界面,将“间距”之中的“最小间距”由0.2mm更改为0.254mm(制板厂普遍能够制作的极限数值),再度铺铜。

    新手需避坑,千万别手动逐个去改报错的线,那样既费时间,还容易出现遗漏。这个一站式流程的核心在于“批量删除违例对象”以及“放宽间距0.254mm”,经实际测试,它能够解决90%的铺铜后DRC冲突。

    当那以上的三步全部完成之后,通常情况下的双层板以及四层板基本上是不会出现较为严重的问题的。不过需要留意的是:此方法并不适用于射频板或者阻抗控制板(其中间距以及线宽是必须要严格依据叠层进行计算的,绝对不可以随意地给定为0.25mm),而且同样也不适用于超高频信号(大于2GHz)的实心铺铜情况(这种情况会引发涡流)。其替代方案是首先运用SI9000计算出来精确的线宽,然后再按照“网格铜+20度角”的方式来进行铺铜。你在进行铺铜操作的时候最为头疼的是哪一个报错呢?在评论区贴上图片,我来帮你查看查看。

  • PCB电源分割3步实操 避开回流断路坑

    实测Altium Designer 24.0.1的是我,我踩过因分隔带太窄致使12V与3.3V短路从而烧板的坑,新手只要跟着步骤一步步去操作,便能够轻松避开这类常见问题。

    步骤1 进入内电层并画出隔离带

    操作的路径是:在PCB界面当中,去到右下角的Panels那里,接着进入View Configurations,然后勾选内电层,比如说Internal Plane 1,随后点击Active Route,再选择Place,进而选择Line。参数的设置是:线宽为15mil,利用Keep-Out层去绘制闭合的轮廓,以此把不同的电源区域完完全全地隔开。

    规避新手常遇问题,铺铜之后出现DRC给出提示为“Short Circuit Between Nets”的报错现象,出错缘由是隔离带宽度小于板厂最小蚀刻能力,一般是8mil如此,并且在电压差大的时候铜箔残留致使微短路发生,解决办法是将隔离带最小值设置成15mil,对于高压差,像24V与1.8V这种情况要加宽到20mil。

    步骤2 为分割区域指定独立电源网络

    操作的路径是,先双击被分割之后的铜皮区域,接着会弹出Properties面板,然后在Net栏那里进行下拉,从中选择对应的网络,像VCC_12V或者VDD_3V3这样的,之后点击Apply,再按下快捷键T+G+A从而重新铺铜。一定要保证每一块区域都独立地去分配网络。

    新手需避坑,报错现象是铺铜完成后区域却不显示铜皮,仅剩下边框。出错原因在于未分配网络或者网络名拼写有误。快速解决办法是,打开PCB面板,选择Nets,检查高亮网络是否覆盖整个分割区,要是不覆盖,那就重新画边框并指定正确的网络名。

    关键参数推荐值:隔离带宽度15mil

    原因是,在常规的FR – 4板卡之中,当铜厚为1oz的时候,板厂所做出的保证是,最小线距为6mil,然而电源分割是涉及不同电压平面的,针对这个情况,15mil是能够承受50V以内压差且不存在击穿风险的,与此同时,还要为过孔以及走线留出一定余量,经过实际测量,压降小于1%。

    两种实操方案对比

    方案A:进行单点连接,此连接是在分割带中间跨接0Ω电阻或者磁珠,这种方式适用于模拟与数字电源需要隔离噪声的场景,这样做能够阻断高频串扰。

    方案B,呈现出完全分离且无连接的状态,这种状态适用于完全独立供电的情形,像是电池与USB供电进行切换的状况,在此种状况下无需任何跨接。

    取与舍呈现的逻辑是,对于噪声敏感类型的情况,要选择方案A;而在空间受到限制并且电压差异大的情形下,要选取方案B,不过一定要确保返回地平面是完整的。

    高频完整报错一站式解决

    报错的信息是,Altium DRC发出了“Un-Routed Net Constraint (VCC_5V)”这样的提示。

    完整解决流程:

    1. 把DRC在线检查关掉(通过快捷键T加上P ,先后进入PCB Editor ,再进入General ,将Online DRC的勾选取消)。

    2. 转至单层样式(Shift+S),仅呈现电源层面,凭借手动方式核查分割边界是否封闭。

    3. 察觉边框处存在0.3mm的缺口,运用Place Line进行补全操作,随后重新开展网络分配工作。

    4. 强制重铺全部铜皮,通过按T、G、A组合键来进行,之后开启DRC在线检查,也就是要重新勾选Online DRC。

    5. 进行运行操作,经由Tools指向Design Rule Check,随后勾选“Un-Routed Net”,在运行之后报错状况得以消失。

    这个方法不适用哪些场景

    倘若你所拥有的板子层数多于8层,并且其内部存在高速差分线,像是PCIe 4.0这种,它跨越了分割带的边缘,那么上述提及的分割方式将会对回流路径造成破坏,进而致使信号眼图出现塌陷的情况。有一种简易的替代方案是,要让电源层维持完整不进行分割,转而采用表层的局部电源岛,再加上多个过孔连接到内电层,并且使用磁珠来做单点连接。

    你认为自身于电源分割之际最为头疼的报错是哪一类呢,欢迎于评论区予以分享,点赞数量超过100我便会再度撰写一篇有关高速信号跨分割的完整实战教程。

  • PCB设计常犯的3个低级错误 手把手教你避开

    有本人亲自进行的关于Altium Designer 22.6.1的实际测试,经历过在进行差分对等长绕线之后阻抗径直飞走的状况,对于新手而言,只要依照步骤循序渐进地开展操作,便能够轻易地躲开这类常见的问题情况。

    设置线宽与阻抗匹配

    找寻到规则管理器之中的Design Rules,而后进入Routing Width,着手去新建一个网络类,将差分对线宽设定为0.127mm(5mil),同时把线距设定为0.127mm。此参数面向板厚1.6mm、铜厚1oz、介电常数4.2的FR4板材而言,能够实现90Ω差分阻抗的稳定控制。

    针对新手而言,需要避开的坑是,常见的报错呈现为“Impedance Mismatch”这样的警告,其缘由在于,你仅仅对线路宽度进行了更改,却没有变动参考层之间的距离。能够快速达成解决的办法是,在Layer Stack Manager当中,将相邻参考层的厚度调节为统一的0.2mm,之后再次运行SI仿真进行验证。

    过孔盖油还是开窗

    开启Place Via,设定过孔内径为0.3mm、外径为0.6mm。对两种方案予以对比:方案A盖油,即勾选“Tented”复选框,此适合BGA密集区域用以防止短路;至于方案B开窗,也就是不勾选它,这适合测试点或者散热孔。BGA下方必定得采用盖油,不然锡珠会胡乱滚动;电源模块周围采用开窗,以便于万用表勾测。

    新手要避开这个坑,报错“Via Tent Missing”表明工厂遗漏了盖油,其缘由是Gerber没有输出阻焊层,前往File Fabrication Outputs Gerber,去确认“Include Solder Mask”打了钩,并且Via Tent对应的层选中了Top/Bottom Solder Mask。

    修复高频短路报错

    报错之中最为常见的完整形式呈现为“Short-Circuit Between Net GND and Net VCC on Pad R1-2”。存在着一站式解决的流程 ,首先要按下Shift+S进行单层高亮 ,依据报错坐标朝着两边去寻找 ,大概有八成的可能性是旁路电容下方的焊盘出现连锡情况。运用快捷键Ctrl+H来选择整个网络 ,查看哪一个铜皮呈现出异常的凸起。当找到之后切换到PCB Editor ,借助Slice Tracks工具沿着焊盘边缘切除0.2mm ,之后再次运行DRC。

    菜鸟需防踩雷要点:千万别直接去删除铜皮然后重新绘制,因为这样极易遗漏掉隐蔽的过孔。正确的操作方法是,先进行Tools Design Rule Check然后Batch Run,接着记录下所有产生冲突的坐标 做完这些操作之后再去批量修正,修正完毕后再次运行Clearance规则,一直到绿色对号出现为止。

    这一招针对于两层板以及四层板而言极为有效,然而要是你所运用的是六层以上的背板,并且内层存在埋盲孔,那么DRC误报的几率将会大幅度增高。替代的办法是直接将ODB++导出,交付给工厂去进行飞针测试,千万别自己一味去死磕。你碰到过哪一种报错是修改了三次依旧没能摆平的呢?在评论区抛过来,我来帮你瞅瞅。

  • PCB设计项目经验 实测这3步避开99%的坑

    本人实际测试了Altium Designer 22.6.1,遭遇过因差分线阻抗不连续致使信号反射的情况,新手依照下面三步逐一进行操作,便能够轻松躲开这类常见问题。

    1 规则管理器设置线宽与间距

    去往Design那里,朝着Rules方向,进入Routing范畴,找到Width选项,开启新建规则指令,规则名为“DDR_Data” ,进行勾选操作,勾选Where The First Object Matches,再转向Net Class之处,勾选DDR_DATA。设定最小线宽为5mil ,将优选线宽设成5.5mil,最大线宽界定于6mil。切换到位于同一页面的Clearance ,实施新建规则行为,把间距设置成6mil。

    【新手防错】,常见的报错情形为“Clearance Constraint Violation”,其核心缘由在于没有把DDR数据组专门设置间距规则,进而致使默认间距10mil和线宽产生冲突。快速的解决方式为:在Clearance规则里将优先级调整到最高,并且勾选“Only apply to same net class”。

    2 关键参数过孔孔径最优推荐值

    钻孔为12mil,焊盘是24mil,过孔孔径推荐12mil/24mil。原因在于,10mil 以下时,PCB 工厂会加收50%工程费,况且沉铜容易出现断裂情况;15mil 以上的话,会对内层走线空间造成挤占,四层板电源分割存在困难。该数值在成本、良率以及布线密度之间达成了平衡。

    3 两种铺铜方案对比取舍

    整层(信号层)被实心铜皮覆盖,此为方案A。网格铜,其线宽是8mil且间距为12mil,这是方案B。

    对于大于100MHz的高速数字信号,采用方案A,其回流路径最短,不过热风枪拆焊时需350℃预热30秒。针对模拟小信号,也就是音频、ADC参考这类,采用方案B,它能减小对地寄生电容,然而网格间隙会使阻抗稍有增加。取舍的逻辑是,当时钟频率超过50MHz时,一律选择A,不然则依据散热需求选择B。

    4 导出Gerber前运行DRC

    进行这样的操作:从Tools那里,前往Design Rule Check,接着去Run DRC。把“Report violations that are not shown in violation details”进行勾选。将电气间距误差设定为正负0.5mil,线宽误差也设定为正负0.5mil。然后点击“Run”从而生成报告。

    对于那些新手而言,需要避开这样的坑,存在一种高频且完整出现的报错情况,即显示“Un-Routed Net Constraint”,然而呢数据线已然明晰地连接起来了。其中缘由在于,线路的走向并没有成功连接到达焊盘的中心位置,或者是由于设置了禁止布置线路的区域,也就是Keepout但存在错误的遮拦状况。全过程搞定:开启View而后进入Board Planning Mode,按压数字键“2”从而切换至2D布局,按下“O”以开展优先选项,选定“Highlight net when clicking on violation”,点击违规清单就能够让飞线位置自动高亮显示,通过手动补画一段线便能消除。

    5 完整解决报错“Missing Plane Connect”

    报错的情况呈现为,内电层焊盘挨近的周围区域显示出绿色的十字叉形状。其缘由在于,焊盘跟电源层之间所设置的间距过大了,也就是大于15mil,进而致使没办法进行热连接。解决的办法是,先进入Design选项,接着找到Rules选项,再点击Plane选项,然后选择Power Plane Connect Style,在这里新建一条规则,把Conductor Width修改为12mil,将Connect Style选定为Relief Connect,把Expansion调整为10mil。在进行更新操作之后,再次去重新铺铜,其操作步骤为:Tools→Polygon Pours→Repour All,随后报错的情况消失不见。

    针对柔性PCB(FPC)或者埋盲孔设计,此方法并不适用,原因在于柔性板过孔需要借助加固胶进行填充。可供替代的方案为:将过孔改用直径是0.3mm的铆钉,并且与厂家取得联系,对阻焊桥工艺予以确认。

    你在对PCB项目进行实际测量的时候,碰到过最为离谱的DRC报错是哪一种情况?欢迎在评论区通过截图的方式来分享,要是点赞数量超过一百,那么下期就来讲一讲DDR等长蛇形线其手动调优的技巧。

  • KiCad专属技巧实测:3个硬核步骤避开敷铜和ERC的坑

    我的实际测试是针对KiCad 8.0.5,我掉进过由于敷铜管理器参数设置错误致使整板短路的大坑,新手只要按照步骤一步步完成操作,便能够很容易地躲开这类平常会出现的问题。

    步骤1 原理图符号库路径与环境变量设置

    启动之后依次进行如下操作,打开被称为偏好设置的选项,找到并进入管理符号库表的界面,点击添加库这个按钮,此时在“库路径”栏内键入${KICAD_SYMBOL_DIR}/my_symbols,务必固定勾选“相对路径”这一选项。另外,要把环境变量KICAD_SYMBOL_DIR设置成你所指定的库根目录,比如说D:kicad_libs。

    【新手需留意避免踩坑】,常见会出现报错,即“符号找不到:无法将库文件打开”。而其核心缘由在于,绝对路径在更换电脑之后会失效,有能够快速解决的方法,那便是统一采用系统环境变量去替代盘符,在重启KiCad之后变量会自动开始生效。

    步骤2 原理图ERC电气规则检查的关键参数

    展开执行检查,进行电气规则检查这事,去点击设置规则,在点击中找到“未连接的引脚”这一项,把该项的严重级别给改成错误。推荐的参数值是这样的,电源输出引脚允许悬空这种情况设为“警告”,除此之外在其余方面默认设置为错误。理由在于,要避免那种会漏查真实断线的状况,同时还要放过那些故意不进行连接的测试点这一情况。

    【新手避开陷阱】,出现报错“引脚驱动冲突”,大多是因为电源输出脚直接连接了另外一个输出脚。能够快速解决的办法是:在两者之间添加零欧电阻,或者改成电源输入脚,然后使用放置→全局标签来统一网络名。

    步骤3 PCB敷铜填充模式与热焊盘参数

    将敷铜区域属性打开,然后选定填充模式,从中选择实心填充,接着设置最小宽度为0.254mm,再清除间距为0.2mm。对两种方案予以对比:一种是实心填充,其散热效果良好,适合大电流情况;另一种是网格填充,具备抗热应力特性,适合柔性板。对于厚板或者功率层要采用实心填充方式,而薄板或者弯曲部位则采用网格填充方式。

    以下是新手需避开的坑,高频出现且完整的报错为:“敷铜之后出现DRC报错,内容是孤岛铜皮以及短路”。有一种一站式解决办法,即先选中敷铜,接着按E进行编辑属性操作,然后勾选移除孤岛铜皮这一选项,随后把热焊盘连接条数量改变为4条,这里要注意默认数量是2条,最后依照B进行重新填充。

    专门针对KiCad 5.x以及更早版本的情况,此方法并不适用了(其界面当中是没有相对路径选项的)。要是你现在还在使用更为陈旧的版本,那么还有替代的方案:直接把库文件夹复制粘贴到工程的子目录当中,每次都通过人工手动的方式去添加绝对路径。你在使用KiCad的时候,通常是在哪一个步骤上会出现卡住的情况呢?把它放到评论区里,大家一起去解决。

  • PCB Layout技巧 这几个布线坑新手一踩一个准

    进行 Altium Designer 24 实测的本人,曾踩过差分信号等长绕线结束后发现阻抗全然不匹配的坑,新手依照步骤一步步去进行操作,便能够轻松躲开这类常见问题。

    怎么设置PCB阻抗匹配参数

    通过操作开启Layer Stack Manager,于层叠结构当中将Top层铜厚设定为1oz,针对介质层且是FR4的其高度予以修改将其改成6.6mil。此后选择点击Impedance Calculator,挑选出微带线模型,把目标阻抗填写为50欧姆,如此一来线宽会自行计算得出4.2mil。

    新手需避开的坑:常见的报错在于算出来的线宽小于3mil,而工厂无法制作。其核心缘由是未勾选“Include surface roughness”选项,倘若表面粗糙度未被考虑进去,便会致使阻抗偏低。解决的办法是勾上此选项,接着将Dk值从4.2调高至4.5,如此线宽就能回归到4mil左右。

    PCB走线拐角选45度还是圆弧

    比如说DDR时钟这类高频信号线,在进行走线操作的时候,要通过按Shift+空格切换到圆弧模式,将半径设定成线宽的两倍也就是8.4mil。而普通的I2C信号,采用45度拐角便可以,直接按下快捷键P+T,接着按键空格来进行切换。

    新手需留意避坑之处:在圆弧拐角的地方,常常会出现报锐角错误的情况,给出的报错提示是 “Acute angle violation”。其缘由在于,圆弧的起始点以及结束点,并未与网格对齐,进而致使生成了一段长度不到 2mil 的短线段。可取的解决办法是,将网格捕捉功能关闭掉,手动去拉一下圆弧的两端,使得它能够实现平滑过渡。

    差分对等长绕线公差控制

    开启Route之中的Interactive Diff Pair Length Tuning,将目标长度公差设定为5mil,把振幅挑选成15mil,把间隙维持在线宽两倍也就是8.4mil。在走线之际按Tab键把Max length更改成比最短的那一根多出5mil,软件会自行绕线。

    刚接触的新手要避开这个坑:绕完线路之后去跑DRC,显示“Un-Routed Net”错误,可明明看上去是连上了的。其核心原因在于,在进行等长绕线的时候,软件自动添加了泪滴,而这泪滴把走线给挤断了。快速解决的办法是,在Tools菜单里,将Teardrops全部去掉,再次去跑一遍等长,完成之后再手动添加泪滴。

    最优推荐值为关键参数,其中差分对内等长公差属5mil ,其理由在于,此值相较于常规的10mil更为严格,能够确保信号上升沿于1ns以内的时序偏差小于5%,且针对1.5Gbps的LVDS信号已进行实测,结果完全没问题。

    将两种方案予以对比,走线拐角究竟是采用45度,还是运用圆弧呢?45度拐角具备节省空间、改线迅速的特点,适宜于空间较为紧张的板子;圆弧拐角则有着反射小、损耗低的特性,更适合2.4G以上的射频信号或者USB3.0。其取舍的逻辑颇为简单:倘若速率低于500M,并且板子尺寸受到限制,那就选择45度,不然的话就采用圆弧。

    在高频情形下,完整出现报错,内容为:“DRC报Sliver violation”,于此种状况下,出现了整板绿油开窗异常的情况。一站式解决流程:首先按下’L’ 将View Configuration打开以使DRC Errors呈现高亮显示状态并定位至报错点周边区域;紧接着运用Place菜单里的Slice Polygon Pour把细长铜皮裁减,裁减完毕后依照’T+G+A’进行重新灌铜操作;最终于Design Rule Check中将Minimum Sliver宽度由0.5mil调整为1mil,之后再次运行DRC便全部通过了。

    对四层以上,且板厚小于0.8mm的HDI板而言,这套方法不太适用,原因在于介质层太薄,致使阻抗不好控制。替代方案为,用共面波导模型取代微带线,将参考层从第二层改成同层地铜,把距离设成线宽的1.5倍,如此便能稳住50欧姆。

    画板之际,你所遭遇的最为奇特荒谬的DRC报错究竟是何种情况呢,于评论区域展示出来,大家一同规避风险,若认为具备价值,点个赞并分享给共事的伙伴吧。

  • 阻抗控制参数调节避坑指南

    我经过实际测试,针对ROS Melodic与Franka Emika Panda机器人,曾遭遇因阻抗参数设置不合适,进而致使末端出现剧烈震荡的情况,对于新手而言,只要依照步骤逐个进行操作,便能够轻易避开此类常见的问题。

    阻抗控制参数怎么调最稳

    第一步 找到刚度矩阵设置界面

    点开机器人控制软件,接着依次进入“Configuration”,再进入“Impedance Control”,然后进入“Stiffness Matrix”菜单,把平动刚度的初始数值设定成1200N/m,将转动刚度设定为50Nm/rad。

    【新手避坑】

    常见出现的报错情况是,在机器人启动以后,其末端呈现出高频抖动的现象,并且还伴随着 有“Joint limit exceeded”这样的警告出现。核心的导致出错的原因在于,刚度参数被设置得过高,也就是超过了2000N/m,从而致使系统响应发生过冲。能够快速解决问题的办法是,马上把刚度数值降低到800N/m,在保存之后重新启动控制器。

    第二步 配置阻尼系数缓冲震荡

    向“Damping Ratio”输入框之内,填进去0.7(无量纲这个形式),去确认“Bandwidth”的参数它让其保持在15Hz不变。要是系统不存在响应这种情况,那就手动去点击“Apply to All Axes”的按钮以此来同步六维力数据。

    【新手避坑】

    常出现的现象是,当机器人接触物体的时候,它会突然之间就弹开了,而且力控时绘制的曲线有出现类似毛刺的情况。导致出错的原因在于,阻尼系数比0.3要低,致使系统处于一种欠阻尼的状态。解决的办法是,要逐步地去增加阻尼一直到1.2,并且要观察力传感器的实时曲线,直到曲线变为平滑状态。

    两种阻抗控制方案如何取舍

    方案A 基于力的在线调节

    将“Adaptive Gain”在“Force Control”这个选项卡中勾选,把力阈值设定成5N,系统会自动去调整阻抗参数,其优点是适合像打磨、装配这类会出现变接触情况的场景,力控误差在±0.8N。

    方案B 离线预置参数表

    借助“Load Preset”将CSV文件导入,使刚度固定为1200N/m、阻尼为0.7、质量是3kg。其优点在于:在搬运码垛等固定轨迹场景中响应速度快20ms。取舍的逻辑为:若接触环境变化巨大则选A,要是重复精度要求很高就选B。

    第三步 验证质量矩阵与惯性参数

    去到“Dynamics”子菜单里面,把虚拟质量设定成3.0kg,让惯性张量对角元素全都变成0.01kg·m²。把“Enable Gravity Compensation”勾选上,以此来抵消除自重干扰。

    【新手避坑】

    经常出现的错误提示为:“Impedance control unstable at singularity”完整的解决步骤是:首先,查看末端负载有没有超过5kg;接着,把质量参数下调到1.5kg;然后,开启“Singularity Avoidance”算法;最后,再次规划笛卡尔路径躲开奇异位形。

    此方法不适用于那种精密装配的情况,也就是间隙小于0.05毫米的场景,也不适用于高速轨迹的场景,即速度大于1米每秒的那种,建议去改用直接力控制或者导纳控制的方案。你在进行调参的时候有碰到过奇怪的震荡现象吗?请在评论区贴出报错的截图,我会帮你分析参数组合是不是合理。

  • EDA工具对比实测:Altium和KiCad到底该选谁

    本人实际测试了Altium Designer 24.2.1以及KiCad 8.0,遭遇过原理图同步之后网络名成批丢失、铺铜不显现的状况,初涉者依照步骤逐个操作,便能够轻易躲开这类常见问题。

    如何把AD工程干净迁移到KiCad

    步骤1:导出AD的网表和封装库

    通过将AD工程予以开启,于菜单栏之处点击File,接着点击Assembly Outputs,随后点击Netlist,把格式选为Protel,最终将其存制成.NET文件。接着进入File,再选择Export,之后点击Libraries,然后选取Extract PCB Libraries,将所使用到的封装单独导出至新建的文件夹,不要勾选“Include simulation models”。

    【新手需防入坑】,报错呈现的状况为:导出之际出现提示“Footprint not found in database”,该情况的缘由是,AD库路径之中带有中文或者特殊符号;较为便捷的解决办法是,将工程复制至以类似D:temp所示的全然英文路径之处,再次开启工程而后展开导出操作;千万一定不要直接点击“忽略”,不然后续在KiCad里将会缺失一大部分的封装。

    步骤2:KiCad里新建项目并导入网表

    找到KiCad并将其打开,点击File之后选择New Project这一选项,路径同样要选择为完全英文的形式。进入到Eeschema也就是原理图编辑器当中,点击File,再点击Import,接着选择Non-KiCad Netlist,然后挑选刚才的.NET这个文件。当进行导入操作时,会弹出名为“Netlist format”的窗口,此时需要勾选Protel/Altium。随后点击Read Netlist,接着再点击Update PCB。

    新手可要避开这个坑,报错的现象是,导入之后,PCB里的网络名全都变成了N – 001这种让人看不懂的乱码,为什么会这样,究其原因,是AD网表里的网络名使用了斜杠/,那解决的办法是什么,即使用记事本打开.NET文件,将里面的/全部替换成下划线_,保存好了之后再度导入,一次替换大概要花费30秒的时间,这样做能够保住九成以上的网络。

    关键参数该填多少

    推荐的差分对线宽线距的值是,4.5mil的线宽加上5.5mil的间距,其阻抗大约是90Ω正负10%。原因是,这是在FR4板材1.6mm厚、1oz铜厚的情况下,100MHz以内信号时最稳定的组合。要是高于5mil就容出现串扰,要是低于4mil制板厂的良品率会下降20%。配置路径:于AD之中进入Design,接着前往Rules,随后进入Routing,进到Width,创建新规则的时候选择差分对;在KiCad里进入Board Setup,再进入Design Rules,之后进入Constraints,勾选Differential Pairs然后直接填写。

    两种工具的实际取舍

    方案A:Altium Designer全流程(适合中小公司、交期紧的项目)

    好处是,自身所带的3D库齐全完整,BOM导出能够一键生成,高速信号推挤运行状况流畅。坏处是,正版授权的费用高昂(年费大概为2万)。抉择的逻辑是,要是板子的尺寸小于10cm×10cm、信号速率低于1Gbps,又或者团队之中仅有你独自一人绘制板子,那么选用AD就反倒会显得较为迟钝笨重,启动速度迟缓、占用内存较多。

    方案B:KiCad + 外挂插件(适合开源项目、个人DIY)

    长处是:具备免费特性,可在多个平台使用,借助Git进行管理较为便捷。短处是:差分对要想实现绕等长必须得手动去调整,不存在自动泪滴功能。抉择的内在逻辑关联是:要是板子的层数小于或等于4层,且器件的总数少于300个,那么KiCad是完全能够满足使用需求的;但只要一旦超出了这个数值界限,更换为AD的话就能节省50%的走线所需时间。

    高频报错一站式解决

    报错的情况是这样的,在KiCad导入AD封装的时候,出现了这样的提示,“Footprint ‘SOIC – 8’ 没有被定义任何焊盘形状” ,就像这样报错。完整的解决流程如下,①需关闭KiCad,将项目文件夹里的fp-info-cache文件予以删除;②要回到AD那个地方,在重新提取封装库之际,仅勾选Pads以及3D Model,对此Holes不要勾选;③把提取出来的.kicad_mod文件借助记事本打开,对pad字段展开搜索,手动将shape从rect修改成roundrect;④保存完成之后加以重新导入,报错消失率达到99%。全程大约8分钟,比重新画封装快3倍。

    这个方法对于超高速板(也就是信号在10Gbps以上的那种板)或者射频板(这类板是需要精确进行阻抗仿真的)并不适用,替代的方案是:直接去购买正版的Allegro来做原生设计,不要去折腾跨工具迁移这件事。你在实际当中用过哪一款EDA翻过那种最让人无语的车呢?在评论区交流交流,给后来的人多避开几个坑。

  • Mentor Xpedition高级功能 三个硬核布线步骤实测

    亲身经历对Mentor Xpedition VX.2.做出实际测试,遭遇过在进行差分对等长绕线期间,因自动推挤致使网络长度没能符合规定要求的那类状况,对于刚开始接触的新手而言,只要依照步骤逐个依次去开展操作,就能够较为容易轻巧地躲避开此类较为常见容易出现的问题。

    1 设置差分对等长误差容限

    操作的路径是,Setup之后是Constraints,Constraints之后是Net Class/Matched Length。要选中目标差分对,在“Matched Length”这个选项卡里面,把Tolerance即误差容限设置为5mil。点按Apply之后,接着进入Route > Tune > Differential Pair Tuning,勾选“Use DRC Limits”。

    新手避坑

    出现频率较高的报错是:“Net length mismatch exceeds tolerance” ,缘由在于:默认的误差容限是0mil ,进行绕线操作时只要稍微存在一点偏差就会出现报错情况。解决的办法是:依照上述步骤把容限调整到5mil(此为推荐数值 ,兼顾SI以及布线密度) ,与此同时检查绕线模式是不是“Accordion” ,防止过度绕线。

    2 手动绕线与自动调线方案对比

    对线路进行操作时所遵循的路径是:Route这个选项之后接着选择Tuning ,有一种方案是方案A ,其具体做法是通过使用手动去让线路进行缠绕 ,要选择Tune这个选项然后再挑选Manual这一项 ,在操作过程中要一直按住Ctrl键 ,然后点击线段进行拖动 ,所拖动造成的幅度是要控制在线路宽度的3倍这个范围之内的 ,比如说若线路宽度为4mil ,那么绕线所形成的幅度就应当是12mil ,还有一种方案是方案B ,这一方案采用的是自动调整线路 ,具体做法是选择Tune这个选项之后再选择Auto该项 ,然后将整段网络用框选的方式选中。

    【新手避坑】

    适合关键时钟信号的方案A,能够精准控制回波损耗,不过耗时,适合批量数据线的方案B,速度快但有可能产生锐角,取舍逻辑是,信号频率大于500MHz就使用手动,不然就用自动,常见错误为自动调线后产生锐角,快速解决办法是切回手动模式,利用“Slide”功能推平。

    3 解决“差分对内等长失败”报错

    操作的途径是这样,情形是碰到报错“未能达成相位匹配”,首先要去点击“分析”然后选择“设计审核”,再去勾选“相位容差”,进而查看究竟是哪一段超出了标准范围。接着步入Edit > Place > Via Pattern,于超标段的两端各自增添一对地过孔(参数设定为:孔径10mil,焊盘20mil),间距维持在线宽的2倍的状态。

    【新手避坑】

    读报错,将其定位至网络,打开Layer Visibility ,关掉非信号层,经发现乃是回流路径断裂所致,添加地过孔之后,再次运行Tune > Phase Match ,把阈值设定为±2ps时,运行DRC ,绿色通过,全程无需重启软件,此为完整一站式解决流程。

    以上方法不适用的场景是,当PCB叠层呈现不对称的状况,或者板材的Dk值波动幅度超过10%的时候,仅仅添加过孔是没有效果的。其替代方案为,改用同轴电缆跳线,或者重新计算层叠结构,并且使用Polar SI9000再次提取参数。

    你于运用Xpedition进行等长操作之际,可曾碰到过在完成绕线之后,却反倒致使串扰超出标准限定的情形呢?欢迎于评论区域分享你所采用的解决办法,为本文点赞并加以收藏,待下次遭遇时,直接将其翻找出来,依照着去做。

  • EDA工具定制三步实操 避开配置报错

    我亲身进行了Synopsys VCS 2023.12 – SP1的实测,在定制仿真环境的时候,遭遇了Makefile和gcc版本不匹配的那种坑点,新手只要依照步骤逐个去操作,便能够轻易避开此类常见的问题。

    定制化编译脚本路径怎么配

    开启终端,步入相应界面,抵达项目根目录所在之处,接着去执行这样的操作,即设置环境变量为“VCS_HOME”,其具体内容是“/tools/synopsys/vcs/2023.12 – SP1”。接着,对 synopsys_sim.setup 文件加以编辑,把 WORK > DEFAULT 写入其中,并且将 DEFAULT : ./worklib 也写入该文件。关键的参数VCS_ARCH_OVERRIDE进行了设置,其最终被设定成为linux64 ,而这一数值是必然要跟操作系统架构保持极为严格的一致程度的,不然的话,编译的过程就会出现挂掉的情况。

    针对于新手需要避开的坑,存在着这样一种常见的报错情况,那就是出现Unknown platform ‘linux’ ,其原因在于VCS默认对系统进行探测的时候是针对32位系统的,然而当前所处的系统却是64位,在整个核心环节出现错误的关键在于没有对架构进行强制指定。

    EDA工具编译选项如何调

    使vcs以-full64模式运行,采用-sverilog方式,开启-debug_access+all调试,配合-lca,伴随此-lca开启高级特性,同时配合-kdb,让-kdb生成知识数据库,最后运行-l compile.log。将推荐的-j8并行编译线程数的最优值设定为8,原因在于要与常见的8核服务器相匹配,如此一来既能使编译速度达到最大化,又不会引发内存竞争冲突。与此同时,需把CFLAGS设置为-O2 -m64 -fPIC标准。

    新手需避坑,出现报错,报错内容为gcc: error: unrecognized command line option ‘-m64’,原因在于系统gcc版本低于4.8,而低于4.8的版本不支持-m64,核心出错点呢是EDA工具要求高版本gcc。解决的办法是进行这样的操作,即安装gcc 9.3.0,然后在vcs命令之前添加CC=/usr/local/gcc-9.3/bin/gcc,同时还要添加CXX=/usr/local/gcc-9.3/bin/g++。

    做方案对比,存在两种定制环境方案,方案A是借助-cpp去指定g++路径,方案B是对Makefile里的C_COMPILER变量进行修改。方案A适宜单次临时编译,方案B适宜长期项目统一管理。选择方案B用于团队协作更合适,如此可以避免让每个人手动添加参数。

    生成可执行文件避坑指南

    运行./simv -l run.log ,添加 +ntb_random_seed=12345 以及 +UVM_TESTNAME=test_basic。其中关键参数 +ntb_random_seed 的最优推荐数值是 12345 ,原因在于能够确保随机的稳定性 ,并且便于重现错误。跑完后检查run.log里有没有UVM_ERROR

    新手要避免踩坑,这里有个高频且完整的报错情况,报错内容是,Error有个中括号括起来的DEFINE_UNDEFINED报错:Macro这个词后面跟着单引号引起来的MY_MACRO,它是没被定义的,这种情况会给出报错提示。一步一步的解决开展进行方面,过程是这样的:首先,将compile.log打开,其后去搜MY_MACRO;接着呢,要把缺失定义的模块找寻出来;然后,编译命令那里加上+define+MY_MACRO=1;还有一种方式,要么是去创建vcs_custom.vh,通过用-vcs_custom_define去导入;最后,再次进行编译运行。

    本方法在标准Linux x86_64服务器之下适用于VCS定制仿真,不适用于Windows WSL以及32位的老旧系统,原因在于路径解析与库依赖方面存在很大差异,替代方案为在WSL里借助Docker封装完整的EDA环境或迁移至CentOS 7虚拟机。

    在定制 EDA 工具期间,你所碰到的最为离奇古怪的报错情形是怎样的呢?欢迎来到评论区予以分享,记得点赞收藏以防迷失路径哦。