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

文章目录

    • 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.rhkb.cn/news/146021.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【知识点随笔分析 | 第五篇】简单介绍什么是QUIC

前言: 随着互联网的快速发展,传统的基于TCP的协议开始显现出一些局限性。TCP在连接建立和拥塞控制方面存在一定的延迟,这可能导致用户在访问网页、观看视频或玩网络游戏时感受到不必要的等待时间。而QUIC作为一种新兴的传输协议,试…

[React] 性能优化相关 (一)

文章目录 1.React.memo2.useMemo3.useCallback4.useTransition5.useDeferredValue 1.React.memo 当父组件被重新渲染的时候,也会触发子组件的重新渲染,这样就多出了无意义的性能开销。如果子组件的状态没有发生变化,则子组件是不需要被重新渲…

好题分享

1.Problem - G - Codeforces (1)题意 (2)思路 因为最多13次,那么不如我们就问13次,然后考虑把每一个位置重新按二进制拆分成一个下标,因为C(13,6) > 1000,因此在数量上是满足得,我…

番外6:下载+安装+配置Linux

#########配置Linux---后续 step08: 点击编辑虚拟机设置,选择下载好的映像文件.iso进行挂载; step09: 点击编辑虚拟机选项,选择UEFI启动模式并点击确定; step10: 点击开启虚拟机,选择Install rhel ; 备注&…

LeetCode_离散化差分_困难_2251.花期内花的数目

目录 1.题目2.思路3.代码实现(Java) 1.题目 给你一个下标从 0 开始的二维整数数组 flowers ,其中 flowers[i] [starti, endi] 表示第 i 朵花的花期从 starti 到 endi (都包含)。同时给你一个下标从 0 开始大小为 n 的…

如何离线安装和使用pymysql操作mysql数据库

一、应用背景 在企业内部网络要使用python操作mysql数据库。然而,python未自带访问MySQL数据库的函数库pymysql,需要另外安装。网上有很多安装pymysql都需要互联网支持。本文主要阐述如何离线安装pymysql,并简要介绍pymysql如何进行mysql操作。 pymysq…

某房产网站登录RSA加密分析

文章目录 1. 写在前面2. 抓包分析3. 扣加密代码4. 还原加密 1. 写在前面 今天是国庆节,首先祝福看到这篇文章的每一个人节日快乐!假期会老的这些天一直在忙事情跟日常带娃,抽不出一点时间来写东西。夜深了、娃也睡了。最近湖南开始降温了&…

SpringBoot整合数据库连接

JDBC 1、数据库驱动 JDBC(Java DataBase Connectivity),即Java数据库连接。简而言之,就是通过Java语言来操作数据库。 JDBC是sun公司提供一套用于数据库操作的接口. java程序员只需要面向这套接口编程即可。不同的数据库厂商&…

【Java 进阶篇】JDBC Connection详解:连接到数据库的关键

在Java中,要与数据库进行交互,需要使用Java数据库连接(JDBC)。JDBC允许您连接到不同类型的数据库,并执行SQL查询、插入、更新和删除操作。在JDBC中,连接数据库是一个重要的步骤,而Connection对象…

Pikachu靶场——PHP反序列化漏洞

文章目录 1. PHP反序列化1.1 反序列化代码审计1.2 漏洞防御 1. PHP反序列化 可参考我写的另一篇博客:反序列化漏洞及漏洞复现。 序列化serialize() 序列化说通俗点就是把一个对象变成可以传输的字符串,比如下面是一个对象: class S{publi…

JavaScript Web APIs第三天笔记

Web APIs - 第3天 进一步学习 事件进阶,实现更多交互的网页特效,结合事件流的特征优化事件执行的效率 掌握阻止事件冒泡的方法理解事件委托的实现原理 事件流 事件流是对事件执行过程的描述,了解事件的执行过程有助于加深对事件的理解&…

C 语言关键字_at_的使用

查看一些老旧代码的时候看到有这么一段。 这个函数是轮询执行的,但是sourceinsight却没有找到vs_ucLedSegDutyRam的定义,全局搜索才找得到,结果发现原来它的定义很奇特。 里面用了_at_这个东西 _at_是让定义的vs_ucLedSegDutyRam首地址定义在…

【AI视野·今日NLP 自然语言处理论文速览 第四十期】Mon, 25 Sep 2023

AI视野今日CS.NLP 自然语言处理论文速览 Mon, 25 Sep 2023 Totally 46 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers ReConcile: Round-Table Conference Improves Reasoning via Consensus among Diverse LLMs Authors Justin C…

机器学习之SGD, Batch, and Mini Batch的简单介绍

文章目录 总述SGD(Stochastic Gradient Descent)(随机梯度下降)Batch (批量)mini Batch (迷你批量) 总述 SGD, Batch, and Mini Batch是可用于神经网络的监督学习计算权重更新的方案,即∆wij。 SGD(Stochastic Gradi…

竞赛 基于设深度学习的人脸性别年龄识别系统

文章目录 0 前言1 课题描述2 实现效果3 算法实现原理3.1 数据集3.2 深度学习识别算法3.3 特征提取主干网络3.4 总体实现流程 4 具体实现4.1 预训练数据格式4.2 部分实现代码 5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习机器视觉的…

市场调研的步骤与技巧:助你了解市场需求

在当今快速发展的市场中,进行有效的市场研究对于了解消费者的行为、偏好和趋势至关重要。适当的市场研究可以帮助公司获得对目标受众的有价值的见解,创造更好的产品和服务,并提高客户满意度。今天,小编和大家一起讨论一下怎么做市…

[Linux] 6.VMware虚拟机网络配置

在VMware虚拟机下可以在虚拟网络编辑器看到三种模式 一、Bridged(桥接模式) 桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。 真机、虚拟机都有自己的ip地址,能互相通讯,而且能上网。 功能齐全,但…

Arduino ESP32/ESP8266 +ST7735 1.8“tft中秋小时钟

Arduino ESP32 ST7735 1.8"tft中秋小时钟 🌼原作者B站视频: ESP32中秋小时钟,表盘自动切换,代码开源,原图可下载(案例应用) 🎞tft ST7735 128160 1.8" 显示效果:(由于原作…

MD5 绕过第二式:数组绕过

文章目录 参考环境推荐阅读强类型比较运算符雾来哈希碰撞目标 王小云院士与白宫密码王小云院士两度破译白宫密码白宫密码亮剑十年磨一剑 雾散曲径通幽WarningPHP 中的数组与 md5()尝试绕过PHP8 下的致命错误 参考 项目描述搜索引擎Bing、GoogleAI 大模型文心一言、通义千问、讯…

JavaScript中如何确定this的值?如何指定this的值?

🎀JavaScript中的this 在绝大多数情况下,函数的调用方法决定了this的值(运行时绑定)。this不能在执行期间被赋值,并且在每次函数呗调用时this的值也可能会不同。 🍿如何确定this的值: 在非严格…