当前位置: 首页 > news >正文

LUCEDA IPKISS Tutorial 77:在版图一定范围内填充dummy

案例分享:在给定的Shape内填充dummy
在这里插入图片描述
所有代码如下:

from si_fab import all as pdk
from ipkiss3 import all as i3
from shapely.geometry import Polygon, MultiPolygon
import numpy as np
import matplotlib.pyplot as pltclass CellFilledWithContacts(i3.PCell):contact_size = i3.PositiveNumberProperty(default=1.5, doc="width and height of the contact box")contact_pitch = i3.PositiveNumberProperty(default=2, doc="contact pitch")class Layout(i3.LayoutView):def _generate_elements(self, elems):elems += i3.Boundary(layer=i3.TECH.PPLAYER.SI,shape=[(0, 0), (7.7, -23.7),(32.6, -23.7), (12.4, -38.4),(20.1, -62.1), (0, -47.4),(-20.1, -62.1), (-12.4, -38.4),(-32.6, -23.7), (-7.7, -23.7)])s = elems.size_info()polygons = [Polygon(el.shape) for el in elems]region = MultiPolygon(polygons).buffer(-2.0)plt.show()no_of_contacts_row = int((s.east - s.west - self.contact_pitch) / self.contact_pitch)no_of_contacts_col = int((s.north - s.south - self.contact_pitch) / self.contact_pitch)print('number of contacts in each row of along the whole cell =', no_of_contacts_row)print('number of contacts in each column of along the whole cell =', no_of_contacts_col)contact_regions = []# set the x and y coordinates for each contact via a for-loopfor cnt, i in enumerate(np.linspace(s.west, s.east, no_of_contacts_row)):for cn, j in enumerate(np.linspace(s.north, s.south, no_of_contacts_col)):contact = i3.Rectangle(layer=i3.TECH.PPLAYER.SI,center=(i, j),box_size=(self.contact_size, self.contact_size))contact_region = Polygon(contact.shape)contact_regions.append(contact_region)# only add the contacts when they are not in the cellif contact_region.intersects(region):elems += contactreturn elemsif __name__ == '__main__':lay = CellFilledWithContacts().Layout()lay.write_gdsii("demo.gds")

dummy的大小可以调节:

    contact_size = i3.PositiveNumberProperty(default=1.5, doc="width and height of the contact box")contact_pitch = i3.PositiveNumberProperty(default=2, doc="contact pitch")

可以通过:

shape=[(0, 0), (7.7, -23.7),(32.6, -23.7), (12.4, -38.4),(20.1, -62.1), (0, -47.4),(-20.1, -62.1), (-12.4, -38.4),(-32.6, -23.7), (-7.7, -23.7)]

来调节shape

相关文章:

LUCEDA IPKISS Tutorial 77:在版图一定范围内填充dummy

案例分享:在给定的Shape内填充dummy 所有代码如下: from si_fab import all as pdk from ipkiss3 import all as i3 from shapely.geometry import Polygon, MultiPolygon import numpy as np import matplotlib.pyplot as pltclass CellFilledWithCon…...

TON生态小游戏开发:推广、经济模型与UI设计的建设指南

随着区块链技术的快速发展,基于区块链的Web3游戏正引领行业变革。而TON生态小游戏,借助Telegram庞大的用户基础和TON(The Open Network)链上技术,已成为这一领域的明星之一。国内外开发者正迅速涌入,开发和…...

Python 量子机器学习:基础概念、关键算法与应用实践

🌟 Python 量子机器学习:基础概念、关键算法与应用实践 目录 🌍 量子计算的基本原理 量子位、叠加、纠缠等概念解析量子计算如何影响机器学习:速度与效率的提升 🚀 量子机器学习中的关键算法 量子支持向量机&#xf…...

信息安全数学基础(29) x^2 + y^2 = p

前言 方程 x2y2p 是一个涉及整数解和素数 p 的二次方程。这个方程在数论和几何中都有重要的意义,特别是在研究圆的整数点和费马大定理的背景下。 一、定义与背景 方程 x2y2p 表示一个平面上的圆,其圆心在原点 (0,0),半径为 p​(当…...

ChatGPT国内中文版镜像网站整理合集(2024/10/06)

一、GPT中文镜像站 ① yixiaai.com 支持GPT4、4o以及o1,支持MJ绘画 ② chat.lify.vip 支持通用全模型,支持文件读取、插件、绘画、AIPPT ③ AI Chat 支持GPT3.5/4,4o以及MJ绘画 1. 什么是镜像站 镜像站(Mirror Site&#xff…...

图文深入理解Oracle DB Scheduler

值此国庆佳节,深宅家中,闲来无事,就多写几篇博文。今天继续宅继续写。本篇图文深入介绍Oracle DB Scheduler。 Oracle为什么要使Scheduler? 答案就是6个字:简化管理任务。 • Scheduler(调度程序&#x…...

gin如何具体利用Server-Send-Events(SSE)实时推送技术实现消息推送

目录 业务场景 解决方案 1. 轮询 2. WebSocket 3. SSE(Server-Send-Events) 代码实现 总结 业务场景 在抖音、美团等APP中,我们经常会遇到APP内部的消息推送,如关注的人的动态消息推送、点赞评论互动消息推送以及算法推荐消息推送。这些场景都是…...

写端口-tcp udp不同方式发包和接包

最近一直在学习网络编程,今天把 socket部分做一个总结。 Python 的socket库可以实现不同协议不同地址的发包和收包,无奈资料很少,官方例子有限,大神博客很少提及, 经过一番尝试后,总结以下几点用法以便大家…...

计算机的错误计算(一百二十)

摘要 探讨在许多应用中出现的函数 的计算精度问题。 例1. 考虑在许多应用中出现的函数 计算 不妨在Python下计算: 若用下列Rust代码在线计算: fn f(x: f64) -> f64 {(x.exp() - 1.0) / x }fn main() {let result f(0.9e-13);println!("…...

Spring Boot 中使用 JSON Schema 来校验复杂 JSON 数据

​ 博客主页: 南来_北往 系列专栏:Spring Boot实战 在现代软件开发中,尤其是构建 RESTful API 时,处理 JSON 数据已成为一项基本任务。JSON(JavaScript Object Notation)因其轻量级和易于人类阅读的特点&#xff…...

QT实现Opencv图像处理

案例 基于QT的人脸识别 pro文件需要加以下代码 INCLUDEPATH E:/opencv/opencv3.4-qt-intall/install/include INCLUDEPATH E:/opencv/opencv3.4-qt-intall/install/include/opencv INCLUDEPATH E:/opencv/opencv3.4-qt-intall/install/include/opencv2 LIBS E:/opencv/o…...

刚转Mac的新手如何卸载不需要的应用程序

最开始转Mac系统的时候很是苦恼,到底该怎么卸载App啊,App直接拖到废纸篓真的能卸载干净吗,卸载App时会不会留下一些文件残留,慢慢的会不会占满内存,于是我找到了一个免费的卸载工具——XApp。 这是一款Mac应用程序卸载…...

Unity 3d 继承MonoBahaviour的单例

在使用Unity3d开发游戏或做客户端项目时,单例是最常见的模式之一,他简单了类的创建,在代码中可以直接调用。下面是两个例子,代码两种不同类型的单例,一个是基本类的单例基类,不是unity MonoBehaviour的类都…...

grafana version 11.1.0 设置Y轴刻度为1

grafana 版本 # /usr/share/grafana/bin/grafana --version grafana version 11.1.0设置轴 Axis 搜索 Standard options 在"Decimals"中输入0,确保只显示整数...

Elasticsearch的安装与配置

注意:elasticsearch 禁止安装在/root路径下! 1、创建用户组 groupadd elastic 2、创建用户 useradd es -d /home/es -g elastic echo es | passwd es --stdin 3、给新创建的用户进行授权 chown -R es:elastic /home/es chmod -R 775 /home/es 4…...

win0删除 Windows.old

参考:https://blog.csdn.net/xitongzhijia_abc/article/details/126270452 win10如下所示: 打开 设置–>系统—>存储...

常见IDE及其编译器的讲解

IDE 意思是:集成开发环境 常见的IDE有哪些? eg. devC,VS2022,xcode,codeblocks,clion常见编译器有哪些? eg.msvc,gcc,clang微软的底层编译器是msvc苹果的底层编译器是clang IDE编译器特点devC集成了gcc小巧,工具简单&…...

用SQLyog连接mysql提示2058错误

1)在cmd下(必须是这个,不能是gitbash) // step1:修改下数据库 C:\Users\elex>mysql -uroot -p Enter password: **** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 97 Server version: 8.1.0 MySQL Community Server - GPLCopy…...

Web集群服务-Nginx

1. web服务 1. WEB服务:网站服务,部署并启动了这个服务,你就可以搭建一个网站 2. WEB中间件: 等同于WEB服务 3. 中间件:范围更加广泛,指的负载均衡之后的服务 4. 数据库中间件:数据库缓存,消息对列 2. 极速上手指南 nginx官网: nginx documentation 2.1 配置yum源 vim /etc/…...

获取时隔半个钟的三天

摘要&#xff1a; 今天遇到需求是配送时间&#xff0c;时隔半个钟的排线&#xff01;所以需要拼接时间&#xff01;例如2024-10-08 14&#xff1a;30&#xff0c;2024-10-08 15&#xff1a;00&#xff0c;2024-10-08 15&#xff1a;30 <el-form-item label"配送时间&a…...

自然滚动的终结:Scroll Reverser如何重构输入设备交互逻辑

自然滚动的终结&#xff1a;Scroll Reverser如何重构输入设备交互逻辑 【免费下载链接】Scroll-Reverser Per-device scrolling prefs on macOS. 项目地址: https://gitcode.com/gh_mirrors/sc/Scroll-Reverser 在追求无缝人机交互的今天&#xff0c;macOS系统中输入设备…...

《Cancer Discov》(IF: 33.3)|新型空间蛋白组和空间转录组整合流程解析肿瘤免疫微环境

空间转录组学和空间蛋白组学能分别在原位解析基因表达和蛋白功能状态。然而&#xff0c;它们各有自己独特的应用场景&#xff0c;例如空间转录组覆盖广但预测功能不直接&#xff0c;而空间蛋白组功能信号直接&#xff0c;靶向性高&#xff0c;能提供更多的有效生物学信息。如果…...

3步搞定Windows 11优化:用Win11Debloat让你的电脑更快更干净

3步搞定Windows 11优化&#xff1a;用Win11Debloat让你的电脑更快更干净 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本&#xff0c;用于从Windows中移除预装的无用软件&#xff0c;禁用遥测&#xff0c;从Windows搜索中移除Bing&#xff0c;以及执行各种其他更改以简…...

如何用OpenDroneMap免费实现无人机三维重建?3种快速上手方法

如何用OpenDroneMap免费实现无人机三维重建&#xff1f;3种快速上手方法 【免费下载链接】ODM A command line toolkit to generate maps, point clouds, 3D models and DEMs from drone, balloon or kite images. &#x1f4f7; 项目地址: https://gitcode.com/gh_mirrors/o…...

长上下文不可强求:从 Gemini 到 Opus,1M context 为什么还没体现出应有价值

长上下文不可强求&#xff1a;从 Gemini 到 Opus&#xff0c;1M context 为什么还没体现出应有价值 摘要 过去一年&#xff0c;long context 一直是大模型产品最容易被拿来宣传的能力之一。32K 不够&#xff0c;就上 128K&#xff1b;128K 还不够&#xff0c;就上 1M。看起来&a…...

OpenClaw备份恢复指南:ollama-QwQ-32B模型与技能迁移方案

OpenClaw备份恢复指南&#xff1a;ollama-QwQ-32B模型与技能迁移方案 1. 为什么需要备份恢复方案 上周我的主力开发机突然硬盘故障&#xff0c;导致整个OpenClaw环境丢失。最痛苦的不是重装软件&#xff0c;而是那些精心调教过的技能配置和任务历史记录全部归零。这次经历让我…...

3步终极解放QQ音乐加密文件:QMCDecode全平台播放攻略

3步终极解放QQ音乐加密文件&#xff1a;QMCDecode全平台播放攻略 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff0c;默认转…...

Axure RP全版本界面本地化:从问题诊断到安全部署的完整指南

Axure RP全版本界面本地化&#xff1a;从问题诊断到安全部署的完整指南 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包&#xff0c;不定期更新。支持 Axure 9、Axure 10。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn …...

记录下在Windows中如何远程将当前Windows部署成PVE

背景&#xff1a; 做这件事实属无奈&#xff0c;公司另外一个分支的一个服务器(目前是Windows)需要跑多个平台的服务&#xff0c;目前Windows Server上部署虚拟机&#xff0c;直接装VMware workstation性能实在是糟糕&#xff0c;迫不得已考虑远程(无显示器、无KVM)将Windows …...

UE4网络同步实战:AIController与RPC的避坑指南(含C++代码示例)

UE4网络同步实战&#xff1a;AIController与RPC的避坑指南&#xff08;含C代码示例&#xff09; 在多人联机游戏的开发中&#xff0c;网络同步始终是开发者面临的核心挑战之一。虚幻引擎4&#xff08;UE4&#xff09;提供了强大的网络框架&#xff0c;但其中AIController的服务…...