【经验分享】硬件工程师需要知道的DFM可制造性设计

news2024/9/27 21:29:10

最近,有硬件工程师朋友找我讨论DFM,也就是可制造性设计。Design for Manufacturability。

什么是可制造性设计,看一张图很容易明白:

过大的PCB,无法上产线批量生产,极大的PCB面积浪费,自然是失败的可制造性设计了。

当然人家只是为了搞笑,真的可制造性设计在这里:

作为一名硬件工程师,是一定要掌握可制造性设计的,也就是必须掌握DFM。

DFM贯穿了从设计到生产的全流程,如下:

1、画原理图:

2、根据原理图,画PCB:

3、根据PCB文件,生成Gerber生产文件,然后给到PCB工厂:

4、PCB工厂根据Gerber生产文件,把PCB板生产出来:

5、最终在焊接厂完成PCBA的焊接组装:

很多硬件工程师,会忽略上述的第3步,导致在DFM设计中踩坑,进而在第4步、第5步的生产制造环节酿成悲剧。

比如PCB的孔径设置过小,造成可制造性问题:

在DFM可制造性设计方面,行业现状是工程师设计完后,用CAM350简单预览一下生成的Gerber文件,或者根本没有检查就直接发给PCB工厂制板了。

这就导致了大量的设计隐患流入到生产端,最终导致生产制造困难。

说说我与可制造性设计的三个小故事吧!

故事一·大公司的经历

刚毕业的时候进入了大公司,成为一名硬件工程师。

公司有Layout工程师,硬件工程师不用自己画PCB,只要画好电路原理图,提交给Layout工程师就可以:

Layout工程师完成PCB设计后,导出Gerber生产文件,给到PCB工厂去生产PCB:

在上述大公司的流程里,作为硬件工程师的我对PCB的Gerber生产文件及其确认过程一无所知。

公司够大的时候,人人都是一颗螺丝钉,倒也不容易出问题。

故事二·中小型公司的经历

后来跳槽,去了一家中小型公司。

公司规模不大,没有Layout工程师,PCB的Layout设计都是外发第三方公司:

第三方公司完成后输出PCB源文件和Gerber文件:

硬件工程师要自己检查Gerber文件,最后给到PCB工厂生产:

说实在的,自己第一次拿到Gerber文件时是比较懵的,以前都不知道有这回事。

当时怎么检查Gerber文件呢,用CAM350:

故事三·创业公司的经历

再后来去到创业公司,什么都得自己来,必须当一名全能型战士。

自己画原理图,自己Layout,自己导出Gerber,自己检查。

还好后来有了专业的DFM软件,在这个EDA(电子设计自动化)软件的帮助下,淡定多了。

创业公司也没钱,用的是华秋的DFM软件,简单好用,重点免费!

这款软件是为电子工程师量身定做的PCB可制造性设计分析软件,可以一键分析Gerber文件和PCB文件中的设计隐患,并给出合理的优化建议。

下面来看看这款DFM软件。

启动软件,界面很简洁:

打开以前做过的一款产品的Gerber文件,也可以直接打开PCB文件,点击左上角的“一键DFM分析”:

这块板是2层板,经过软件分析,很快生成一份“生产报告”:

查看生产报告,“描述与建议”给得贴心而专业:

发现问题,用红色感叹号提醒:

有了这份报告,工程师就可以逐一核实,然后修改设计文件了。

下面再分析一款产品,这款产品是电脑服务器主板,双CPU,12层板,够复杂的,看华秋DFM是否能扛住:

点击左上角的“一键DFM分析”后,在这个画面停顿了好久,一直显示“分析准备中”,也没有别的提示,以为卡死了:

了大概5分钟,有了进度提示。再大概10分钟后,总算跑完了:

还算不错,毕竟12层板啊!

通过这款软件,可以学到不少DFM可制造性分析的知识点:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/438916.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Batch 指南

SpringBatch 介绍 目前,Spring Batch是批处理框架界为数不多的优秀框架(Java语言开发)。 Spring Batch 是一个轻量级的、完善的批处理框架,旨在帮助企业建立健壮、高效的批处理应用。 Spring Batch是Spring的一个子项目,使用Java语言并基于Spring框架为基础开发,…

.Net 6.0 部署Linux+Nginx +PM2教程

今天带大家将本地.Net6.0项目部署到Linux系统中,其中有用到Nginx反向代理和PM2进程管理工具,希望本偏文章能对你有所帮助,成为你成功路上的垫脚石! 背景: 在.Net 5.0横空出世之后,.Net已经支持夸平台了,身为一名合格的码农,你敢说你不会用Linux? 哈哈哈开个玩笑,因为工作最近接…

Idea启动运行报错:Error:java: 无效的源发行版: 13

最近在做Springboot项目时,常常出现上述错误,小编也不知道怎么回事,到网上找了这个方面的解决办法,但是却发现根本解决不了,最终通过小编多次尝试,终于发现,为什么会报这个错误。(应该是Java版本…

基于广泛数据增强的新型白质束ONE-SHOT分割

文章目录 One-Shot Segmentation of Novel White Matter Tracts via Extensive Data Augmentation摘要方法One-Shot分割的广泛数据增强 实验结果 One-Shot Segmentation of Novel White Matter Tracts via Extensive Data Augmentation 摘要 探索了新WM束的One-Shot分割问题由…

Kubernetes 如何保障容器可用性?一文介绍探针的使用

有时候,应用因为无限循环或死锁而停止响应,为确保应用在这种情况下可以重新启动,需要有一种机制检查应用程序的运行状况,而不是依赖应用程序内部的检测。 K8s 主要提供了三种探针来针对这种机制: 存活探针&#xff1a…

Swift之深入解析内存安全

一、内存安全 一般来说,Swift 会阻止代码中的不安全行为。例如,Swift 会保证变量在被使用前已经初始化,在释放某变量后其内存也会变得不可访问,以及检查数组索引是否存在越界错误。Swift 还通过要求修改内存中位置的代码具有对该…

通达信缠论顶底分型选股公式(一笔优化版)

在前文《缠论底分型选股公式,处理了包含关系》中介绍了缠论底分型,并编写了选股公式。底分型条件比较容易满足,因此产生的信号比较多。有热心网友提出,可以用顶底分型构成一笔过滤信号。 缠论一笔的构成条件:两个相邻…

砷化镓,锑化铟的能带结构

目录 回顾 正课 1.锑化铟的能带结构 2.砷化镓的能带结构 3.混合晶体的能带结构 回顾 从结合力上看由共价键和离子键混合 化合物半导体从结构上来说具有闪锌矿结构 三五族半导体的能带结构: 1.导带结构 2.价带结构 3.禁带宽度 正课 能带结构的共同特征&#…

docker容器与网络模式|磁盘使用|内存使用|清理

docker容器与网络模式|磁盘使用|内存使用|清理 一 docker 网络模式二 docker的网络模式分类三 网络模式详解3.1host模式:3.2 container模式container模式操作 3.3 none模式3.4 brideg模式3.5 自定义网络 四 容器资源控制4.1 docker容器cpu压力测试4.2 设置CPU资源占…

SpringCloud 微服务随机掉线排查过程

一、背景 我们的业务共使用 11 台(阿里云)服务器,使用 SpringcloudAlibaba 构建微服务集群, 共计 60 个微服务, 全部注册在同一个 Nacos 集群。 流量转发路径:nginx -> spring-gateway -> 业务微服务。 使用的版本如下&a…

IGA_PLSM3D的理解1

文章目录 前言一、IgaTop3D_FAST.m给的参数二、Material properties 材料特性对Geom_Mod3D的理解 三、IGA准备对Pre_IGA3D的理解 输出1-----CtrPts: 输出2-----Ele: 输出3-----GauPts: 对Boun_Cond3D的理解 输出1-----DBoudary: 输…

Java入坑之类的派生与继承

一、继承 1.1继承的概念 Java中的继承:子类就是享有父类的属性和方法,并且还存在一定的属性和方法的扩展。 Subclass,从另一个类派生出的类,称为子类(派生类,扩展类等) Superclass,派生子类的类&#xff…

PC主流同步软件评测

因为一个要把超过13G的众多零散文件同步到webdav网盘的需求,将市面上一些知名的同步软件试用测试了一番,最终发现只有Syncovery满足需求 先把参与测试的同步软件列一下: GoodSync、FreeFileSync、微软SyncToy、KLS Backup、SecondCopy、Sma…

coreboot seabios

seabios现在是很多虚拟机的默认启动bios,这跟它的短小精干有很大关系,也跟它提供比较完备的legacy支持有关。 按照以下步骤把seabios制作成coreboot的payload, 下载seabios代码, http://code.coreboot.org/p/seabios/downloads…

学生成绩管理系统【GUI/Swing+MySQL】(Java课设)

系统类型 Swing窗口类型Mysql数据库存储数据 使用范围 适合作为Java课设!!! 部署环境 jdk1.8Mysql8.0Idea或eclipsejdbc 运行效果 本系统源码地址:https://download.csdn.net/download/qq_50954361/87700420 更多系统资源库…

【Cpython的GIL详细了解一下?】

简单解释 全局解释器锁(Global Interpreter Lock,简称 GIL)是 CPython 解释器内部的一个同步原语,它用于在同一时间只允许一个线程执行 Python 字节码。 GIL 的工作原理如下: 在 CPython 中,每个线程都需…

systemctl 命令设置开机自启动失败

1.案例现象 我在 3 月 31日的时候发表了一篇《shell 脚本之一键部署安装 Nginx 》,介绍了如何通过 shell 脚本一键安装 Nginx 我脚本中执行了 Nginx 开机自启动的命令,当我使用 systemctl status nginx 命令复核的时候,我发现 Nginx 服务设…

C# NetCore XML 反序列化解析错误:<xml xmlns=‘‘> was not expected 及 Encoding=utf-16问题

xml帮助类在最后 刚好有业务需要解析xml文件&#xff0c;于是找到帮助类代码开始尝试解析文件&#xff0c;总是出现异常&#xff1a;<xml xmlnsxxxxxxxxxxxxxxxx> was not expected&#xff0c;开始寻找解决方案&#xff1a; 要使结果正确&#xff0c;必须满足两个条件…

【Qt】QString与QChar的源码学习及二者与Unicode的关系【2023.04.20】

简介 关于QString乱码的一些补充。主要就两点&#xff0c;QChar、QString底层存储的字符都是16进制的Unicode编码。 QChar QChar对应16位的Unicode字符集。 The QChar class provides a 16-bit Unicode character. In Qt, Unicode characters are 16-bit entities without an…

Redis RDB 和 AOF原理讲解

redis提供了两种持久化方式。 aof&#xff08;APPEND ON FILE&#xff09;持久化&#xff1a;原理是将redis的操作以命令的方式写入aof文件中&#xff0c;追加。 rdb&#xff08;Redis DataBase&#xff09;内存快照持久化&#xff0c;就是将redis的内存中的数据全量拷贝一份存…