luceda ipkiss教程 62:等长波导布线(二)

news2024/11/16 17:28:25

教程 27介绍了两段波导等长布线的例子,下面同样是通过控制偏移量实现三段波导的等长布线:
在这里插入图片描述
所有代码如下:

from si_fab import all as pdk
from ipkiss3 import all as i3


class demo(i3.Circuit):
    mmi = i3.ChildCellProperty(doc="mmi in circuit")

    def _default_mmi(self):
        return pdk.MMI1x2Optimized1550()

    def _default_insts(self):
        insts = {
            "mmi1": self.mmi,
            "mmi2": self.mmi,
            "mmi3": self.mmi,
        }
        return insts

    def _default_specs(self):
        specs = [
            i3.Place("mmi1:out1", (0, 0)),
            i3.Place("mmi2:in1", (60, 40)),
            i3.Place("mmi3:in1", (80, -20)),
            i3.FlipH("mmi2"),
            i3.FlipH("mmi3"),
            i3.ConnectManhattan(
                "mmi1:out2",
                "mmi2:out2",
                bend_radius=5,
                control_points=[
                    i3.H(i3.END + 15 + 0.004),
                ],
            ),
            i3.ConnectManhattan(
                "mmi2:out1",
                "mmi3:out2",
                bend_radius=5,
                control_points=[
                    i3.V(i3.START - 13.5 + 0.007),
                    i3.H(i3.END + 20),
                ],
            ),
            i3.ConnectManhattan(
                "mmi1:out1",
                "mmi3:out1",
                bend_radius=5,
                control_points=[
                    i3.H(i3.END - 14),
                ],
            ),
        ]
        return specs


if __name__ == "__main__":
    my_circuit = demo().Layout()
    l1 = demo().Layout().layout[3].reference.trace_length()
    l2 = demo().Layout().layout[4].reference.trace_length()
    l3 = demo().Layout().layout[5].reference.trace_length()
    print("the length of l1 is %f" % l1)
    print("the length of l2 is %f" % l2)
    print("the length of l2 is %f" % l3)
    my_circuit.visualize(annotate=True)

代码运行结果:
在这里插入图片描述

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

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

相关文章

数据导入--Insert into

Insert Into是我们在MySQL中常用的导入方式,StarRocks同样也支持使用Insert into的方式进行数据导入,并且每次insert into操作都是一次完整的导入事务。 在StarRocks中,Insert的语法和MySQL等数据库的语法类似,具体可以参考官网文…

苹果谷歌,要联手反攻了

一则消息,让苹果、谷歌的夜盘股价一度分别暴拉1.5、3.5%,谷歌盘前甚至飙升超过5.5%,引发市场一阵轰动。 据知情人士透露,苹果公司正在谈判将谷歌的Gemini人工智能引擎植入iPhone,希望获得Gemini的授权,为今…

【办公类-22-11】周计划系列(5-3)“周计划-03 周计划内容循环修改“ (2024年调整版本)

背景需求: 前文从原来的“新模版”文件夹里提取了周计划主要内容和教案内容。 【办公类-22-10】周计划系列(5-2)“周计划-02源文件docx读取5天“ (2024年调整版本)-CSDN博客文章浏览阅读1.1k次,点赞29次&…

全基因集GSEA富集分析

原文链接:一文完成全基因集GSEA富集分析 本期内容 写在前面 我们前面分享过一文掌握单基因GSEA富集分析的教程,主要使用单基因的角度进行GSEA富集分析。 我们社群的同学咨询,全基因集的GSEA如何分析呢??其实&#x…

利用自定义 URI Scheme 在 Android 应用中实现安全加密解密功能

在现代移动应用开发中,安全性和用户体验是至关重要的考虑因素。在 Android 平台上,开发人员可以利用自定义 URI Scheme 和 JavaScript 加密解密技术来实现更安全的数据传输和处理。本文将介绍如何在 Android 应用中注册自定义 URI Scheme,并结…

C语言例:整型常量025,求解十进制和十六进制

1. 八进制数的每一位乘以对应的权值(8的幂),然后将结果相加,得到十进制数。 025 21 2.八进制先转二进制(一变三),再二进制转十六进制(四合一) 025 0001 0101 0…

25双体系Java学习之StringBuffer和StringBuilder

StringBuffer和StringBuilder ★小贴士 String str new String("welcome to "); str "here"; 字符串的拼接过程实际上是通过建立一个StringBuffer,然后调用StringBuffer的append方法,最后再将StringBuffer转为字符串&#xff0c…

第四百一十回

文章目录 1. 概念介绍2. 方法与细节2.1 获取方法2.2 使用细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取当前系统语言"相关的内容,本章回中将介绍如何获取时间戳.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章…

ElasticSearch架构设计

一、基础概念 Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎.当然 Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作: 一个分布式的实时文档…

【Linux】深入了解Linux磁盘配额:限制用户磁盘空间的利器

🍎个人博客:个人主页 🏆个人专栏:Linux ⛳️ 功不唐捐,玉汝于成 前言 在多用户环境下管理磁盘空间是服务器管理中的一项重要任务。Linux提供了强大的磁盘配额功能,可以帮助管理员限制用户或组对文件系统…

【趣味项目】命令行图片格式转换器

【趣味项目】一键生成LICENSE 项目地址:GitHub 项目介绍 一款命令行内可以批量修改图片格式的工具 使用方式 npm install xxhls/image-transformer -gimg-t --name.*.tiff --targetpng --path./images --recursiontrue技术选型 typeScript: 支持类型体操chal…

你开发的系统国际化了吗?

亲爱的朋友们,周一好,新的一周,精神满满。 在开发Spring Boot应用时,接口的参数校验是一个重要的环节,它确保了数据的完整性和准确性。而国际化处理则使得应用能够支持多种语言,提升了用户体验。 一、参数…

vue中判断是否使用自定义插槽

在封装自定义组件时&#xff0c;需要判断使用者是否使用了插槽<slot"aaa">&#xff0c;如果没有则使用一个组件中默认的值&#xff0c;反之就用传入的内容<template name"aaa"></template>,实现如下&#xff1a; <div class"lin…

《1w实盘and大盘基金预测 day6》

昨日预测完美&#xff0c;点位基本符合&#xff0c;我预测3052&#xff0c;实际最低3055。 走势也符合高平开&#xff0c;冲高回落&#xff0c;再反震荡上涨 大家可以观察我准不准哟&#xff5e;后面有我的一些写笔记、分享的网站。 关注公众号&#xff0c;了解各种理财预测内…

【字符串匹配】BF与KMP算法

一、字符串匹配问题 字符串匹配问题是指在一个主文本字符串中查找一个指定的模式字符串&#xff0c;并确定模式字符串在主文本中出现的位置。这个问题在计算机科学中非常常见&#xff0c;尤其是在文本处理、数据搜索和生物信息学等领域。 字符串匹配问题通常涉及到以下几个方…

JS原型和原型链的理解

原型链图&#xff0c;图中Parent是构造函数&#xff0c;p1是通过Parent实例化出来的一个对象 前置知识 js中对象和函数的关系&#xff0c;函数其实是对象的一种 函数、构造函数的区别&#xff0c;任何函数都可以作为构造函数&#xff0c;但是并不能将任意函数叫做构造函数&…

mybatis-plus 的saveBatch性能分析

Mybatis-Plus 的批量保存saveBatch 性能分析 目录 Mybatis-Plus 的批量保存saveBatch 性能分析背景批量保存的使用方案循环插入使用PreparedStatement 预编译优点&#xff1a;缺点&#xff1a; Mybatis-Plus 的saveBatchMybatis-Plus实现真正的批量插入自定义sql注入器定义通用…

从历年315曝光案例,看APP隐私合规安全

更多网络安全干货内容&#xff1a;点此获取 ——————— 随着移动互联网新兴技术的发展与普及&#xff0c;移动APP的应用渗透到人们的衣食住行方方面面&#xff0c;衍生出各类消费场景的同时&#xff0c;也带来了无数的个人隐私数据泄露、网络诈骗事件。 历年来&#xff…

29.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-数据推测功能的算法实现

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果 内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;28.数据推测结果…

修改/etc/resolve.conf重启NetworkManager之后自动还原

我ping 百度报错&#xff1a; [rootk8snode1 ~]# ping baidu.com ping: baidu.com: Name or service not known很明显&#xff0c;这是DNS解析问题。 于是我修改 /etc/resolv.conf 文件后&#xff0c;执行完sudo systemctl restart NetworkManager&#xff0c;/etc/resolv.con…