【PCB专题】Allegro实时DFA(detrend fluctate analysis)约束规则设计

news2024/11/17 21:19:57

目录

DFA分析的重要性

采用建议

DFA_Update(自动更新封装)步骤

Side/End定义

约束表格(DFA_Spreadsheet Editor)

约束表单元格语法

PCB中使用DFA设计

DFA使用注意事项

参考文献

2018.06.21 李光熠

DFA分析的重要性

Allegro PCB Editor提供一种基于交互式器件位置的实时封装与封装间隙检查。约束驱动由类和封装实体所组成的二维表格阵列。反馈基于封装的侧边、侧端或端部配置文件的要求,将最小时隙要求以圆的形式实时反馈。目前,一块板子上有成千上万元件,实时DFA分析反馈增加了设计的可生产性和效率,放置元件时通过公司或EMS设计指导,减少引用规范或者第三方的交互系统所使用。

采用建议

在CAD与制造小组之间需要某些配合的大公司。在应用DFA时,需要考虑的问题如下:

  1. 如果placebound shapes是紧凑的绘制在封装外部,与其他封装无间隙的情况,不需要迁移新的DFA placebount shapes
  2. 如果placebound shape是超出pin或者装配外框,建议使用DFA_Update程序自动建立新的DFA placebound shape

原先的placebound shape可能绘制时包括了基本的间隙检查,不能很好的与DFA数据表驱动规则整合。如果没有找到DFA placebound  shape那么DFA检查会回复到原先的placebound shape。它估算的模型对于很多企业来说是不够准确的,在多个组合间隙要求下单一的placebound shape缺乏精度。

DFA_Update提供更新所有或是一个系列封装增加了DFA placebound shape和DFA_DEVICE_CLASS类型的自动解决方案,自动以symbol 的pin脚和装配外框绘制矩形placebound shape。

DFA_Update(自动更新封装)步骤

1.运行DFA Symbol Update

2.填写库路径、转换后存储路径及DFA_DEV_CLASS属性

其中Enter Symbol File Name可以直接填入路径,使用*.dra通配符进行全局更新

对BGA进行单独的设置属性

 

更新完成将会输出log文件,可以看到总共更新的个数

3.打开r0402_12查看封装,发现package geometry中的Dfa_Bound_Top与Dfa_Bound_Bottom层有一个实体的形状出现(正常我们在建立封装的时候只会画出placebound shape,不会画DFA placebound shape)。

Side/End定义

软件基于封装实体的长边与短边来确定封装side 和 end。如果软件不能确定side和end,那么将以DFA电子约束表中最保守的数据来要求封装与封装的间距。例如:一个单元格中输入字符串25:50:100,那么100将被认为是最保守的值。当一个元件的DFA区域是正方形或多于四边,那么软件有可能不能定义side和end。

 

约束表格(DFA_Spreadsheet Editor)

封装间距规则有Side-Side,End-End.END-Side,End-Side。支持基层和底层视图。

进入应用DFA_Spreadsheet Editor

选择Browse for symbols

软件会提取到设置PSMPATH路径中有进行DFA_Update的元件

表格操作方法与其他规则的设置,可以使用Ctrl和Shift

右键选择区域,Default内输入值,点击Apply to selected cells可以直接填写值到各单元格中。

点击Show symbol classifications ,会出现在更新DFA时DFA_DEVICE_CLASS中已经定义好的类。

表头位置会出现蓝框标识的区域,这是类与类之间的规则。而且间距默认会继承Default内的值。

如果需要增加DFA的类,那么在New class name创建一个新的类,如(R0402)。勾选元件剪切,点击新的类,进行粘贴。

勾选中的元件到了新类下。

新建类后,勾选R0402更新到DFA表格中,如下图

约束表单元格语法

单元格编辑类似于Microsoft Excel,可以使用Shift/Ctrl键进行复选,使用的语法是S-S:E-E:S-E(如25:20:20)

PCB中使用DFA设计

更新封装后,查看Package Geormetry  下的Dfa_Bound_Top层情况

目前我们公司定义的place bound shape比DFA placebound shape大很多,以place bound shape为间距的两个元件之间不重叠,基本保证了可装配性。这种画法属于DFA采用建议的第二点。

Setup->Constraints->DFA Constraint Spreadsheet,

虽然在规则设定的范围内会出现DFA圆圈,但是在移动的时候有一个bug,只有点击器件再使用移动命令才可以出现,如果先使用移动命令再单击器件移动时,不出现圆圈。此点很不适合使用。不知道是不是因为版本比较老。

约束规则DRC中的Design将出现一个新的DFA间距规则,可以查看是否与当前DFA设置相同,双击Objects列中的选项,还可以交互式看出DRC错误点在哪里

 

DFA使用注意事项

  1. 在应用到设计之前,将相同规则的器件进行分类,以减少数据量。有利于Allegor PCB Editor应用和设计。
  2. 如果E-S不存在,那么DRC使用S-E值作为两者的参考。
  3. dfa有关的路径dfacnspath应该设置在团队共同目录下。
  4. 如果DFA的圆形没有出现,应该使能DFA表格中的DRC。
  5. 使用DFA时,应该修正之前的Placebound shape,它用于检查高度、碰撞、禁止放置等违规行为
  6. 用户可以控制的变量
    1. dfa_pause_level :设置停顿级别,如果DFA DRC检查使能,当元件与元件之间到达最小间距,将暂时停顿,所以它可以被放置在其他器件尽可能近的地方,并且没有DFA DRC错误
    2. display_nodfa_drc_marks:如果设置在交互式布局中不会动态显示DRC标记
    3. dfacnspath :搜索DFA约束表格路径

参考文献

Allegro帮助手册

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

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

相关文章

opensuse15.4安装amd显卡hd6570驱动程序失败的原因分析

opensuse15.4安装amd显卡hd6570驱动程序失败的原因分析 台式机电脑系统是openSUSE-Leap-15.4-DVD-x86_64 独立显卡是AMD Radeon HD 6570 到官网https://www.amd.com/zh-cn.html——下载与支持——Radeon显卡与AMD芯片组——驱动程序——从下方列表中选中你的产品——AMD Radeon…

【项目实践】猫十二分类

【数据科学项目实践】基于ResNet和Inception v3的猫十二分类迁移学习 一、项目背景 本项目来源于飞浆平台的图像分类学习赛。指路链接 代码和结果来源于我的小组同学,没有做任何的改动,我这边仅做一个总结归纳,以便学习和复盘 简单把赛题…

chatgpt赋能python:Python句柄操作

Python 句柄操作 Python作为一门强大又易于使用的编程语言,其在内存管理和资源分配方面广受欢迎。其中Python句柄操作是其独特之处之一。在本文中,我们将介绍Python句柄操作的概念,方法,以及模块,并讨论Python中句柄操…

统计学中的t检验 、f检验、卡方检验

1.1数据的种类 我们都知道,一般数据可以分为两类,即定量数据(数值型数据)和定性数据(非数值型数据),定性数据很好理解,例如人的性别,姓名这些都是定性数据。 定量数据可…

CSS3煎制荷包蛋动画特效,优质男士表白必备

你有多久没吃过早餐了?你是否每天忙碌到很晚,结果导致早上起来也很晚,匆匆忙忙来不及吃早餐,更别说自己做了。一直到现在,你有多久没有吃到过母亲做的早饭了?我们在外奔波,希望家人安康&#xf…

【C语言】几种方法解决问题:C6031返回值被忽略:“scanf” (保姆级图文)

目录 错因分析1. 使用_s结尾的安全函数版本(推荐)2. 在本项目中关闭警告(作用一个项目)3. 在本文件中关闭警告(作用一个文件)总结 欢迎关注 『C语言』 系列,持续更新中 欢迎关注 『C语言』 系列…

分布式协调服务--zookeeper

目录 一、概述 1、zookeeper有两种运行状态 zookeeper架构的角色: 2、Paxos算法:消息传递的一致性算法 3、ZAB协议 Zab 协议实现的作用 Zab协议核心 Zab协议内容 消息广播 崩溃恢复 实现原理 协议实现 一、概述 zookeeper官网 zookeeper官…

Trace32使用Data.Test和Data.TestList命令测试内存类型以及完整性

我们在debug的时候,可以使用Trace32自带的一些命令快速地检测目标系统的内存的类型和完整性(是否可读或可写),以便快速排除内存缺陷带来的干扰。 目录 Data.Test: 内存完整性测试 Memory integrity test Data.TestL…

Android进阶 View事件体系(二):从源码解析View的事件分发

Android进阶 View事件体系(二):从源码解析View的事件分发 内容概要 本篇文章为总结View事件体系的第二篇文章,前一篇文章的在这里:Android进阶 View事件体系(一):概要介绍和实现Vie…

chatgpt赋能python:Python动态增加成员变量简介

Python动态增加成员变量简介 Python是著名的解释型编程语言,在众多开源项目中得到了广泛的应用。它以简洁明了的语法和高效的运行速度而闻名,成为了许多开发者的首选。 Python提供了极大的灵活性,使得我们可以随意添加、修改和删除对象的属…

chatgpt赋能python:Python切割技巧:如何用Python切割字符串和列表

Python切割技巧:如何用Python切割字符串和列表 Python是一种高级编程语言,被广泛用于数据分析、机器学习、Web应用程序等领域。在Python编程中,切割技巧是一项必备技能。 什么是切割技巧? 切割技巧是指用一种编程语言&#xff…

chatgpt赋能python:Python列表倒序-从入门到实践

Python列表倒序 - 从入门到实践 Python是一种高级编程语言,被广泛运用于web开发、科学计算、数据分析等领域,也是初学者学习的首选语言之一。Python的列表(List)是其中一个常用的数据类型。在本文中,我们将深入探讨Python列表倒序的方法&…

chatgpt赋能python:Python列表反向:如何用简单的代码将列表元素反转

Python列表反向:如何用简单的代码将列表元素反转 在很多编程语言中,将列表元素反转是一项常见的任务。Python也不例外。Python内置函数提供了一种非常直接的方式来将列表元素反转,而不需要费力地创建一个新列表。 什么是列表反向&#xff1…

chatgpt赋能python:Python动态代码的SEO优化技巧

Python 动态代码的SEO优化技巧 Python是一种常用的编程语言,它以简化开发流程和易于阅读的代码著称。Python动态代码能够让开发者更快捷方便地进行编码,并且能够改善SEO表现。在本文中,我们将着重介绍Python动态代码与SEO优化涉及的技巧。 …

chatgpt赋能python:Python分组匹配:了解正则表达式中的分组匹配技巧

Python 分组匹配: 了解正则表达式中的分组匹配技巧 在 Python 中,正则表达式是一种重要的文本处理工具,它可以帮助我们在字符串中匹配、查找和替换特定的文本模式。其中,分组匹配是正则表达式的重要特性之一,它可以将匹配的结果按…

快速理解会话跟踪技术Cookie和Session

文章目录 会话跟踪技术客户端会话跟踪技术Cookie服务端会话跟踪技术Session 会话跟踪技术 会话:客服端和服务端的多次请求与响应称为会话。 会话跟踪:服务器需要识别多次请求是否来自同一浏览器,在同一次会话多次请求中共享数据。 HTTP协议是…

chatgpt赋能python:Python加解密算法简介

Python加解密算法简介 在当今数字化的时代,数据的安全性变得至关重要。而加密算法就成为了保障数据安全的重要手段之一。Python作为一门高级编程语言,提供了许多加密算法库,使得开发人员可以轻松地实现加密功能。本文将着重介绍Python中一些…

机器学习模型——回归模型

文章目录 监督学习——回归模型线性回归模型最小二乘法求解线性回归代码实现引入依赖:导入数据:定义损失函数:定义核心算法拟合函数:测试:画出拟合曲线: 多元线性回归梯度下降求线性回归梯度下降和最小二乘…

chatgpt赋能python:Python中%取模操作的介绍

Python中%取模操作的介绍 在Python中,取模操作使用符号“%”表示,它的作用是取两个数相除的余数。例如,10 % 3等于1,因为10除以3的余数为1。这个操作可以用在很多场合,比如判断一个数是奇数还是偶数,或者判…

带你开发一个远程控制项目---->STM32+标准库+阿里云平台+传感器模块+远程显示。

目录 本次实验项目: 下次实验项目: 本次项目视频结果/APP/实物展示 实物展示 APP展示 视频展示 模块选择说明; 温湿度传感器模块介绍 光照传感器介绍 ESP8266-01S模块介绍 本次实验项目: 项目清单平台单片机语言实现温湿度传感器模…