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.mzph.cn/news/92015.shtml

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

相关文章

C++ —— 单机软件加入Licence许可权限流程(附详细流程图、详细代码已持续更新..)

单机版许可证简介 笼统的说:实现一个生成授权Lic文件应用程序(我们使用),生成的Lic文件给应用程序(客户使用)启动时读取一下对比加密后的字符串或自定义格式的密钥判断是否正确。 单机版许可证执行流程 第一级比对:发布的加密许可证文件,该加密许可证文件仅可用使用的软…

计算机网络各层设备

计算机网络通常被分为七层,每一层都有对应的设备。以下是各层设备的简要介绍: 物理层(Physical Layer):负责传输二进制数据位流的物理媒体和设备,例如网线、光纤、中继器、集线器等。 数据链路层&#xf…

LeNet网络复现

文章目录 1. LeNet历史背景1.1 早期神经网络的挑战1.2 LeNet的诞生背景 2. LeNet详细结构2.1 总览2.2 卷积层与其特点2.3 子采样层(池化层)2.4 全连接层2.5 输出层及激活函数 3. LeNet实战复现3.1 模型搭建model.py3.2 训练模型train.py3.3 测试模型test…

【网络协议】传输层协议

目录 传输层协议 1.传输层的两个协议 1.1TCP和UDP的应用场景 1.2传输层协议和应用层协议的关系 2.TCP和UDP的对比(重点) (1)无连接的UDP和面向连接的TCP (2)UDP和TCP对单播、多播和广播的支持情况 (3)UDP和TCP对应用层报文的处理 (4)UDP和TCP对数…

React实现多图片预览功能、预览图上下张切换(实战示例)

前言 在React项目中,展示和预览多张图片是一种常见的需求。本篇帖子将介绍如何使用React和antd库来实现这一功能,并探讨如何在预览模态框中切换到前一张或后一张图片。 背景 我们将以一个OCR图像列表展示的示例来演示代码的运用。假设我们有一个OCR系…

Linux系统编程系列之进程间通信-信号量组

一、什么是信号量组 信号量组是信号量的一种, 是system-V三种IPC对象之一,是进程间通信的一种方式。 二、信号量组的特性 信号量组不是用来传输数据的,而是作为“旗语”,用来协调各进程或者线程工作的。信号量组可以一次性在其内…

【LeetCode】滑动窗口妙解无重复字符的最长子串

Problem: 3. 无重复字符的最长子串 文章目录 思路算法原理分析暴力枚举 哈希表滑动窗口 复杂度Code 思路 首先我们来分析一下本题的思路 如果读者有看过 长度最小的子数组 的话就可以清楚这个子串其实和子数组是一个道理,都是 连续的一段区间但是呢它们本质上还是存…

应用架构的演进:亚马逊的微服务实践

当你在亚马逊上购物时,或许不会想到,你看到的这个购物网站,其背后技术架构经历了什么样的变迁与升级。 还记得上世纪 90 年代,那个只卖书的网上书店吗?那时的亚马逊,不过是一个架构简单的网站,所有的功能都堆积在一个庞大的软件堡垒里。随着更多业务的增加、更新和迭代,这个软…

【小程序 - 基础】页面导航、页面事件、生命周期、WXS脚本_04

目录 一、页面导航 1. 什么是页面导航 2. 小程序中实现页面导航的两种方式 2.1 声明式导航 2.1.1 导航到 tabBar 页面 2.1.2 导航到非 tabBar 页面 2.1.3 后退导航 2.2 编程式导航 2.2.1 导航到 tabBar 页面 2.2.2 导航到非 tabBar 页面 2.2.3 后退导航 2.3. 导航…

从1开始的Matlab(快速入门)

MATLAB软件版本:MATLAB R2016b 本文是博主从零开始学Matlab的记录,适合第一次接触Matlab的同学阅读。 一、基础介绍 1.1界面认识 1.2变量命名 注:Matlab中的注释 %% 独占一行的注释(有上下横线分割) % 普通注释 …

C语言:选择+编程(每日一练Day9)

目录 选择题: 题一: 题二: 题三: 题四: 题五: 编程题: 题一:自除数 思路一: 题二:除自身以外数组的乘积 思路二: 本人实力有限可能对…

stm32 - 串口

stm32 - 串口 OLED显示屏 OLED显示屏 oled.h #ifndef __OLED_H #define __OLED_Hvoid OLED_Init(void); void OLED_Clear(void); void OLED_ShowChar(uint8_t Line, uint8_t Column, char Char); void OLED_ShowString(uint8_t Line, uint8_t Column, char *String); void OLE…

深入理解 Swift 新并发模型中 Actor 的重入(Reentrancy)问题

问题现象 我们知道,Swift 5.5 引入的新并发模型极大简化了并行逻辑代码的开发,更重要的是:使用新并发模型中的 Actor 原语可以大大降低并发数据竞争的可能性。 不过,即便 Actor 有如此神奇之功效,它也不是“万能药”,仍不能防止误用带来的问题。比如:Actor 重入(Reen…

283. 多边形,《算法竞赛进阶指南》,

283. 多边形 - AcWing题库 “多边形游戏”是一款单人益智游戏。 游戏开始时,给定玩家一个具有 N 个顶点 N 条边(编号 1∼N)的多边形,如图 1 所示,其中 N4 每个顶点上写有一个整数,每个边上标有一个运算符…

数据分析方法:RFM模型

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

MySql进阶篇---006:存储引擎,索引,SQL优化,视图、存储过程、变量、流程控制、游标、存储函数、触发器

1. 存储引擎 1.1 MySQL体系结构 1).连接层 最上层是一些客户端和链接服务,包含本地sock 通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证…

DETR中的问题汇总(代码)

一、讲述一下torch.tensor()和torch.as_tensor()的区别 torch.tensor() 和 torch.as_tensor() 都是 PyTorch 中用于创建张量(Tensor)的函数,但它们有一些区别,主要涉及到张量的内存管理方式和数据拷贝。以下是它们的主要区别&…

Redis与分布式-主从复制

接上文 常用中间件-OAuth2 1.主从复制 启动两个redis服务器。 修改第一个服务器地址 修改第二个redis 然后分别启动 redis-server.exe redis.windows.conf) 查看当前服务器的主从状态,打开客户端:输入info replication命令来查看当前的主从状态&am…

2023/10/1 -- ARM

今日任务&#xff1a;select实现服务器并发 ser.c&#xff1a; #include <myhead.h>#define ERR_MSG(msg) do{\printf("%d\n",__LINE__);\perror(msg);\ }while(0)#define PORT 8888#define IP "192.168.1.5"int main(int argc, const char *argv[…

ElementUI动态树,数据表格以及分页的实现

目录 前言 一. ElementUI动态树 二. 数据表格和分页 三. 后端代码 service层 controller层 前言 在上一篇博客中实现了左侧菜单栏&#xff0c;在此基础上将它变为动态的&#xff0c;即动态的展示数据库的数据。还有数据表格的实现以及分页。&#xff08;纯代码分享&#…