cadence SPB17.4 S032 - 使用room来放置元件

news2024/11/27 1:45:16

文章目录

    • cadence SPB17.4 S032 - 使用room来放置元件
    • 概述
    • 笔记
    • 在orcad中设置子原理图的ROOM号码
    • 在空的Allegro工程中, 放入板框
    • 在allegro中建立room
    • 备注
    • 补充 - ROOM还得留着
    • END

cadence SPB17.4 S032 - 使用room来放置元件

概述

如果在allegro中直接手工或自动放置元件, 放好之后, 无法和原理图对应, 找元件来布局很麻烦.
即使让原理图和allegro交互, 在原理图中选中子电路后, allegro中会高亮选择这些元件.
但是这些元件并不是集中在一起的, 相对这些不挨着的元件进行布局, 有点麻烦(必须手工将这些元件拖到一个空白区域, 然后逐个元件拖动到一起, 才能开始元件布局).
使用room区域来规划元件首次导入板子后的位置, 这样的话, 布局时, 就可以针对一块子电路的元件布局(room), 自动将元件放到指定区域, 节省了后续操作的很多时间.

笔记

在orcad中设置子原理图的ROOM号码

orcad中, 将子电路移动到一个原理图页中, 将这个子原理图作为room.
在这里插入图片描述
在子原理图树节点上右击, 选择编辑所有对象属性.
在这里插入图片描述
过滤器下拉列表中选择 Allegro PCB Designer
在这里插入图片描述
在出现的属性列表中, 往下拉, 能看到ROOM属性.
默认每个元件的ROOM属性都是空.
选择ROOM整行, 右击选择编辑
在这里插入图片描述
在这里插入图片描述
在ROOM格子上点击一下, 填入想起名的ROOM名称, 点击OK, 确定退出.
在这里插入图片描述
点击保存, 这个子原理图的ROOM号码就设置好了.
如果子原理图多, 设置ROOM的操作就需要点时间. 不过这总比在allegro中, 用和orcad的交互找放置的元件方便多了.
我这里, 发现如果开了orcad和allegro的交互, orcad很容易死掉. 现在已经将orcad和allegro的交互关掉了.
关掉交互之后, 发现allegro操作变慢了, 总比orcad死掉好一些.
在这里插入图片描述
现在allegro打开的时候慢的不正常, 也算一个问题.
如果开了orcad和allegro的交互, allegro打开和操作的都很快, 但是orcad大概率会因为allegro中选择了元件, orcad大概率会死掉(无响应).
等以后再实验一下, 看看是否可以调整orcad选项来解决这个问题.
估计是子原理图多(这个工程有80个子原理图)会有这种问题.

在空的Allegro工程中, 放入板框

可以导入dxf, 也可以自己画板框.
因为不知道具体要多大的PCB面积才能摆下所有元件, 可以先画一个临时板框.
等板子局部基本完成, 再导入修正好的板框(e.g. SW 画具体板框, 再导出为dxf给allegro), 勾选附加添加的选项.

因为今天头一次发现画板框的新方法, 就画一个临时板框.
在这里插入图片描述
在这里插入图片描述
自己定义一个临时板框的大小, 然后左击放下板框.
在这里插入图片描述
在这里插入图片描述
allegro提供的画板框功能, 在板框内部, 还画了一个元件放置区域. 比自己画的考虑的周到.

在allegro中建立room

在这里插入图片描述
对于子电路, 大概能放下全部元件的尺寸, 大致估算一下, 大概要10x15mm的长方形, 也就是400x600mil左右的长方形.
设置romm的区域, 设置ROOM名称前缀, 和orcad的原理图定义的ROOM相同, 然后连续在板框周围放置ROOM.
在这里插入图片描述
我的子电路ROOM名称从FD01到FD74, 连续左击, 直到放置完成, 让ROOM名称和原理图工程定义的ROOM名称和数量相同.
为了放置的工作量小, 如果子原理图多, 最好ROOM都设置为前缀一样, 后面带这连续的后缀.
放置的时候, 如果前缀名称变了, 就只能去ROOM设置框输入实际的ROOM名称.

在这里插入图片描述
等全部放置完, 点击ROOM设置框的OK按钮, 结束ROOM的放置.
在这里插入图片描述
orcad生成网表, allegro导入网表.

按照ROOM名称, 快速放置全部元件.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可能某些子电路需要的ROOM空间会大于自己定义的小尺寸ROOM, 导致按照ROOM自动放置元件的过程中断.
如果看到还有元件没放置, 尝试再点击放置, 直到确实有元件放不进去了.
然后将那些放置不进去的元件手工放置(数量比较少, 无所谓).
还有一种可能, 是剩下的元件自己漏了ROOM, 因为ROOM没定义, 导致按照ROOM, 无法自动放置没有ROOM的元件.
用手工放置元件的方法, 看看还剩下啥元件没放进板子.
在这里插入图片描述
去orcad中查一下, 是否这些元件所在的子原理图中没有定义ROOM?
查了一下, 这些元件所在的子原理图, 果真没有定义ROOM, 在orcad中补上对应原理图的ROOM名称.
因为room定义写在网表文件pstxprt.dat中, 所以ROOM变了, 要重新出网表.
在这里插入图片描述
否则在allegro中, 如果不重新载入最新生成的网表, 按照room快速放置元件时, 还是会遗留下旧网表中没有定义ROOM的元件.

在这里插入图片描述
如果ROOM全部定义了, 最后按照全部ROOM快速放置, 可以将元件都放入到板子上.
在这里插入图片描述
关掉多余字符层的显示, 关掉飞线, 可以看到元件都在自己定义的ROOM内
这时, 元件都已经规则的放到ROOM中后, ROOM就没大用了.
将ROOM中的元件加入group, 就可以逐个group开始布局了.

备注

按照ROOM快速放置元件时, 有一定的几率, allegro会闪退, 要保存工程后再放置元件保险一点.

补充 - ROOM还得留着

ROOM并不能随着元件一起移动, 如果元件不在ROOM中了, 就会有ROOM距离的DRC报错.
在这里插入图片描述
可以先将ROOM中的元件加入和ROOM同名的group.
然后选择shape, 将ROOM边框也加入同名的group.
想要将ROOM和ROOM中元件一起移动时, 就选group, 然后移动group.
等子电路布局合理后, 对ROOM的边框, 按照编辑shape外形的方法, 剪裁出一个合适的不规则ROOM外形. 这样和其他ROOM也不干涉.
这样做后, 相当于板子上的子电路都布局布线在一个ROOM中.

END

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

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

相关文章

scala基础入门

一、Scala安装 下载网址:Install | The Scala Programming Language ideal安装 (1)下载安装Scala plugins (2)统一JDK环境,统一为8 (3)加载Scala (4)创建工…

单调队列 - 滑动窗口

154. 滑动窗口 - AcWing题库 O(1)求窗口中的最大值/最小值 #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl \nusing namespace std;typedef pair<int, int> PII; typedef long long ll; typedef long double l…

gdb的使用

目录 gdb工具的使用 代码调试相关指令 运行程序指令 r 显示代码的指令 l 给代码打断点 b 查看断点位置 info b 执行代码到断点处停止 关闭断点 d断点编号 关闭某个断点&#xff0c;但不删除 disable编号 打开某个断点 enable断点编号 逐过程调试代码 n 逐语句调试代码 s 查看…

【外设】拓展坞接入外设一直弹窗报错问题

外设相关&#xff1a;多功能拓展坞安装后使用正常但计算机一直弹窗报错 1.基本配置信息&#xff1a; 拓展坞&#xff1a;绿联6合1 笔记本&#xff1a;lenovo &#xff08;硬件:13^i5;系统&#xff1a;win11&#xff09; 外设&#xff1a;1键1鼠1显示器1硬盘 2.存在的问题&am…

LNK2001: unresolved external symbol __imp___std_init_once_begin_initialize 问题解决

LNK2001: unresolved external symbol __imp___std_init_once_begin_initialize 解决 文章目录 问题背景方法一&#xff1a;使用预编译指令方法二&#xff1a;使用相同的环境 参考链接附录 问题背景 Visual Studio 2019 对 CMakeLists.txt 的支持不是很好&#xff0c;使用 “文…

【单片机】12-串口通信和RS485

1.通信有关的常见概念 区分&#xff1a;串口&#xff0c;COM口&#xff0c;UART&#xff0c;USART_usart和串口区别-CSDN博客 串口、COM口、UART口, TTL、RS-232、RS-485区别详解-CSDN博客 1.什么是通信 &#xff08;1&#xff09;人和人之间的通信&#xff1a;说话&#xff…

java项目之校园餐厅管理(ssm源码+文档)

项目简介 校园餐厅管理实现了以下功能&#xff1a; 管理员&#xff1a;个人中心、商家管理、用户管理、菜系类别管理、校园美食管理、在线下单管理、美食论坛、系统管理。商家前台&#xff1a;首页、校园美食、论坛信息、新闻资讯、我的、跳转到后台、客服。商家&#xff1a;…

第4讲:vue内置命令(文本插值,属性绑定,v-text,v-html)

MVVM 什么是MVVM&#xff1f; MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化&#xff0c;让我们将视图 UI 和业务逻辑分开。 View层&#xff1a; 视图层 在我们前端开发中&#xff0c;通常就是 DOM 层。 主要的作用是…

Error: Activity class {xxx.java} does not exist

git切换到不同的branch之后&#xff0c;报下面的错误&#xff1a; Error: Activity class {xxx.java} does not exist 解决方案&#xff1a; 首先clean 然后会删除build目录 然后点击&#xff1a;Invalidate Caches Android Studio重启&#xff0c;然后重新build即可。

四、2023.9.30.C++面向对象end.4

文章目录 49、 简述一下什么是常函数&#xff0c;有什么作用&#xff1f;50、 说说什么是虚继承&#xff0c;解决什么问题&#xff0c;如何实现&#xff1f;51、简述一下虚函数和纯虚函数&#xff0c;以及实现原理&#xff1f;52、说说纯虚函数能实例化吗&#xff0c;为什么&am…

Python实验二

1&#xff1a;编程计算 1&#xff5e;100 偶数的和。 要求&#xff1a;输出结果为整数&#xff0c;宽度为 8&#xff0c;居中对齐&#xff0c;空白处填充符号“*”。 提示&#xff1a; range(2,101,2)生成的整数列表从 2 开始到 100 结束&#xff0c;步长为 2&#xff0c;即 …

华为云云耀云服务器L实例评测|云耀云服务器L实例部署Linux管理面板mdserver-web

华为云云耀云服务器L实例评测&#xff5c;云耀云服务器L实例部署Linux管理面板mdserver-webl 一、云耀云服务器L实例介绍1.1 云耀云服务器L实例简介1.2 云耀云服务器L实例特点 二、mdserver-web介绍2.1 mdserver-web简介2.2 mdserver-web特点2.3 主要插件介绍 三、本次实践介绍…

高数:第二章:一元函数微分学

文章目录 一、导数与微分1.导数的概念(1)导数的定义(2)左右导数(3)定理&#xff1a;可导与左右导数的关系(4)可导三要素(5)用导数定义判断可导性 2.微分的概念(1)微分的定义(2)微分与可导的关系 3.导数与微分的几何意义(1)导数 f ′ ( x 0 ) f(x_0) f′(x0​)的几何意义&#x…

【LLM】Windows10环境部署阿里通义千问大模型(Qwen-14B-Chat-Int4)

文章目录 环境文件准备项目代码模型相关文件 运行准备工作运行demo Tips 环境 系统版本&#xff1a;Windows 10 企业版 版本号&#xff1a;20H2 系统类型&#xff1a;64 位操作系统, 基于 x64 的处理器 处理器&#xff1a;Intel Core™ i7-13700K CPU 3.40GHz 机带 RAM&#…

1340. 跳跃游戏 V;2039. 网络空闲的时刻;2767. 将字符串分割为最少的美丽子字符串

1340. 跳跃游戏 V 核心思想&#xff1a;动态规划记忆化搜索。定义dfs(i)&#xff0c;表示从i开始最多可以访问多少个下标&#xff0c;然后统计往左跳和往右边跳的最大值&#xff0c;思路其实比较简单&#xff0c;但是代码我感觉还是不太好想。 2039. 网络空闲的时刻 核心思想…

CH347读写SPI Flash

CH347读写SPI Flash 前面耽搁了几天&#xff0c;今天终于把CH347 SPI接口调试好了。 CH347动态库中SPI接口函数如下&#xff1a; typedef struct _SPI_CONFIG{UCHAR iMode; // 0-3:SPI Mode0/1/2/3UCHAR iClock; // 060…

数据分析方法:RFM模型

一、RFM基本原理 RFM是三个单词的缩写&#xff1a; 最近一次消费时间&#xff08;Recency&#xff09;&#xff0c;取数的时候一般取最近一次消费记录到当前时间的间隔&#xff0c;比如&#xff1a;7天、30天、90天未到店消费&#xff1b;直观上&#xff0c;一个用户太久不到…

Windows 下安装及配置 MySQL 8.1 (图文教程)

目录 下载 MySQL安装 MySQL配置 MySQL修改密码配置环境变量 卸载 MySQL开源项目微服务商城项目前后端分离项目 下载 MySQL 访问 MySQL 下载地址&#xff1a;https://dev.mysql.com/downloads/mysql/ 下载 MySQL 时&#xff0c;你可以选择 ZIP 包或 MSI 安装&#xff1a; ZIP包…

智能合约漏洞,Dyna 事件分析

智能合约漏洞&#xff0c;Dyna 事件分析 1. 漏洞简介 https://twitter.com/BlockSecTeam/status/1628319536117153794 https://twitter.com/BeosinAlert/status/1628301635834486784 2. 相关地址或交易 攻击交易 1&#xff1a; https://bscscan.com/tx/0x7fa89d869fd1b89e…

【Java 进阶篇】MySQL 事务详解

在数据库管理中&#xff0c;事务是一组SQL语句的执行单元&#xff0c;它们被视为一个整体。事务的主要目标是保持数据库的一致性和完整性&#xff0c;即要么所有SQL语句都成功执行&#xff0c;要么所有SQL语句都不执行。在MySQL中&#xff0c;事务起到了非常重要的作用&#xf…