勤奋的大熊猫
自学四年的 Python 金丹期修士
光子学硕士
芯片设计及版图布局工程师
图像处理爱好者
机器学习萌新
展开
-
IPKISS Tutorial And KLayout Tutorials 目录(目前 46 篇 持续更新中,部分教程尚未制作成目录)
导入 pdk导入IPKISS模块IPKISS 版图设计规则及技巧制作自定义PCell的步骤使用 i3.PCell 绘制矩形波导 PCell使用 i3.PCell 绘制带有端口的直波导器件IPKISS Definition Properties 表格查询原创 2024-08-13 16:23:34 · 314 阅读 · 0 评论 -
VS code user setting 与 workspace setting 的区别
带来麻烦,比如从别人电脑上拷贝过来的工作区文件,原本应该符合别人的用户设置,如果此时采取个人的设置,可能带来问题。此时,我们就可以使用。管理的是所有默认打开或者创建的工作区,它们中的所有设置都应该遵循。,可能需要特殊的设置,用户的通用设置可能会为当前打开的。交互界面让用户可以通过鼠标点击进行设定,而。,这样就可以很好的处理当前工作区文件了。是工作区设置(工作区设定),事实上,,属于用户的个人习惯。顾名思义是用户设置(用户设定),的关系类似,不再重复说明了。形式的代码进行设定。原创 2024-09-29 09:57:43 · 205 阅读 · 0 评论 -
VS Code Python 文件导入提示 xxx Module 不存在解决方式
为了能够让编译器识别到这个目录,或者说我们需要将这个目录添加到编译器的搜索路径中,我们需要在。我们可以通过在编译器空白处点击鼠标左键,然后按下。,但是当我们使用如下代码尝试导入时就会提示我们。关于它们的差异,可以参考这篇。来打开用户设置,在其中添加上述代码即可。的文件导入环境,这里我们介绍如何配置。的默认目录包含当前文件被存放目录,即。至此,如何导入代码我们就完成了。一文中我们介绍了如何配置。中均可以成功,这是因为。的默认搜索路径中不包含。原创 2024-09-29 09:46:56 · 332 阅读 · 0 评论 -
VS code Jupyter notebook 导入文件目录问题
中的文件导入折磨的死去活来。这里特来说明一下放置于不同文件夹下的模块该如何被导入。,为了能够更好地导入我们自己写的模块文件,我们需要将其改为。就会使得导入文件变得比较困难。这也会成为经常性无法正确在。让编译器打印出对应目录的含义,这里我们给出一个参考结果。文件我们一般选择隐藏,且我们自己的文件同擦汗给你与。如果觉得说明比较抽象,可以阅读这篇博文。在如下图所示的下方红框中,默认值为。在目录中是处于并列的,如果不加上。分别代表什么可以参考官网说明,至此,我们说明了这个问题。键打开设置,然后搜索。原创 2024-09-28 11:12:01 · 634 阅读 · 0 评论 -
VS code 使用 Jupyter Notebook 时显示 line number
的,这对于调试工作的定位是不友好的,这里我们将介绍如何让。页面,此时我们就可以看到在。原创 2024-09-27 16:16:57 · 305 阅读 · 0 评论 -
GDSFactory 无法显示特定图层上的器件
经过本人的验证,除了上述图层外的少部分图层器件也可以显示外,大多数未知图层都是无法进行显示的,为了解决这个问题,可以使用。绘制版图库,有些时候我们无法用它的内置函数显示特定图层上的器件,这里我们将对这一问题进行说明。运行上述代码后,我们会看到如下图像。,绘制也是什么也得不到的,这是因为,可以看到,什么也没有得到,如果将。原创 2024-09-18 09:41:06 · 80 阅读 · 0 评论 -
使用 i3.LayoutCell() 方法绘制版图并输出为 GDS 文件
类对层的映射信息进行指定,最后进行输出。理解了这个以后,我们此时来看错误提示信息,这表明,如果我们想要输出。运行上述代码,程序就正确执行完成并退出了,之后我们使用。窗口下我们会看到如上图所示的层显示,这里的。运行上述代码后,我们会得到以下错误提示信息。文件,我们需要指定两个层的信息,分别为。为了指定这两个层的信息,首先我们需要按照。文件中有器件存在,那么通常在右侧的。首先,我们使用如下代码尝试导出。我们看到,这里提示说没有对应的。首先我们需要理解,这里说的。文件,可以看到以下结构。文件中核对后我们得到。原创 2024-09-04 17:18:42 · 107 阅读 · 1 评论 -
使用 i3.Boundary() 函数创建圆形波导
的内置图形函数可以创建各式各样的波导,这里我们以创建圆形波导进行举例。一文中我们介绍了使用那些内置函数可以创建波导,理论上,使用。对形状进行包裹,那么我们就需要将其视作。,因此,当我们添加时,我们需要将其视作。对象进行添加,反之,如果我们使用。对象进行添加,详情可参考。函数创建的对象是一个。原创 2024-09-04 15:10:48 · 60 阅读 · 0 评论 -
使用 i3.Waveguide() 函数创建波导
【代码】使用 i3.Waveguide() 函数创建波导。原创 2024-09-04 14:59:38 · 51 阅读 · 0 评论 -
IPKISS i3.SRef() 函数
[TOC](IPKISS i3.SRef() 函数)原创 2024-09-04 11:51:03 · 63 阅读 · 0 评论 -
IPKISS 绘制 Euler Fixed Bend 的创建方法
运行相同的代码,就可以得到如下图形。一文中我们介绍了如何使用。的整个弯曲显示的尺寸为。的尺寸,我们需要进入。当然,我们也可以更改其。这里我们介绍如何使用。原创 2024-09-04 09:12:26 · 365 阅读 · 0 评论 -
i3.Waveguide 与 i3.RoundedWaveguide 的区别
参数指定其路径弯曲的半径。从而将弯曲部分变得平滑。参数,绘制出来的图像是什么样子呢?类中继承的,意味着其本质上具有了所有。的性质,二者属于包含关系。这里我们将重点介绍一下。这就是二者最大的区别。原创 2024-08-16 15:37:36 · 52 阅读 · 0 评论 -
transition curve
表示在测量中,切向部分和圆形曲线中间的光滑过渡部分。在绘制图像的时候遇到了一个说法叫做。,这里特来对这个名词的含义进行记录。原创 2024-08-16 14:54:05 · 46 阅读 · 0 评论 -
IPKISS 内置可以用来创建 PCell 或者波导的形状函数
均可以用来创建结构,后续教程中我们会给出具体对应示例。对象,并且需要明确地指定其所在地图层。中,有三类命令可以用来创建结构。中几何图形的基础形状。这里需要特别注意,第一个。中还有其他方式,比如。子类表示被包含,详见。原创 2024-08-14 09:49:30 · 61 阅读 · 0 评论 -
IPKISS 查看si_fab 中可使用的 template
是一个特征信息,包含了波导要被绘制的层,以及波导的宽度,名称等信息,且它也包含了端口信息。对于一个完整的光学链路,各个波导之间是需要连接的,这个连接正是根据。我们先来介绍一个概念,有些小伙伴可能会比较困惑,有时候会听到。后,编译器会为我们过滤掉一部分内容,留下我们需要的。存放的端口信息完成的,而波导之间的连接线被称为。,即为我们之前看到的,且它有三个常用固定的。接着,我们可以看到,对应后三个。描述的波导宽度是可以手动修改的,的说法,云里雾里,不是很懂。,我们可以在这一页的上方找到。的说法,而有时候又是。原创 2024-08-13 15:17:10 · 173 阅读 · 0 评论 -
IPKISS si_fab PDK 绘图层 GDS 号码查询
最后在右侧就可以看到一个表格,记录着所有我们可以使用绘图层。在左侧目录栏中依次找到。原创 2024-08-13 14:28:39 · 57 阅读 · 0 评论 -
IPKISS Coord2Property 的用法
运行上述代码,我们可以生成一个下图所示的直波导结构。变量,最终我们将直波导放置在了这个位置,对于。注意,在我们的代码中,我们定义了一个。对于其坐标,横坐标可以用。可以使用后一种写法的原因是。中本质上是一个元组。原创 2024-08-12 15:17:29 · 152 阅读 · 0 评论 -
IPKISS 使用 AMF PDK 创建脊形波导结构并导入 Lumerical 中产生对应仿真结构
如果不设置这个参数,程序就会一直卡在执行界面而不会产生结果。运行后的结果我们这里就不做展示了,与。至此,我们完全说明了这个问题。,此时我们不再使用参数。来创建脊形波导结构。原创 2024-07-30 14:44:21 · 66 阅读 · 0 评论 -
IPKISS 使用 Si_fab PDK 创建 Euler Bend 波导结构并导入 Lumerical 中产生对应仿真结构
对于减少波导的弯曲损耗有一定的作用,这里我们介绍如何通过。值,就可以生成不同的仿真结构,从而获取不同的仿真结果。一文中,我们已经介绍了直波导的构建,对于。的构建方式也是一样,仅仅需要对构建的。可以看到,此时我们已经获取到了。原创 2024-07-30 14:28:07 · 174 阅读 · 0 评论 -
IPKISS 使用 Si_fab PDK 创建脊形波导结构并导入 Lumerical 中产生对应仿真结构
表示我们让程序在运行构建结构时不打开用户界面,而直接在后台默默运行,因此,我们可能需要等待更久一些时间,这里的。然而我们会发现,这个结构看起来可视化效果并不好,接着我们可以查看左侧的 Objects Tree 中的内容。软件用户界面,并在其中对当前仿真结构自动进行构建,构建完成后程序会自动保存并关闭。端口数量是两个,但是对于一个直波导仿真结构,通常我们在。对结构的构建和一般的构建结构方法不同,比如这里,对于。中创建仿真结构,然后将对应的结构导入到。有一个非常好用的点,就我们可以通过。原创 2024-07-30 12:23:37 · 68 阅读 · 0 评论 -
IPKISS visualize(), visualized_2d() 和 cross_section() 函数
该函数是用来以可视化的方式呈现虚拟制造的布局的自上而下的视图。包括层,线之间的关系,实际上是一个三维视图。是一个主视图设置函数,最终的显示结果仍然需要通过。中,存在几个视图函数,这里我们将对它们进行介绍。最终我们还需要在创建了路径之后还需要通过。中,我们绘制版图通常是通过。最终会被用来获取掩模版 (创建一个沿着一条路径的。原创 2024-07-29 10:45:10 · 179 阅读 · 0 评论 -
使用 i3.RoundedWaveguide() 函数创建波导及布局三视图
的方式创建波导,这里我们将介绍如何直接创建波导。,表示此时我们先不显示图像,等到后面再运行。我们之前介绍的都是如何使用创建。的时候一并同时显示。原创 2024-07-29 10:11:08 · 63 阅读 · 0 评论 -
IPKISS WireWaveguideTemplate 类详解
如上图所示,波导包层被定义为一个 “包层区域”,在包层区域内,要么刻蚀一个沟出来(真空包裹波导),也么使用其他材料包裹波导。波导芯被定义为一个 “芯区域”,芯区域被用来绘制波导。类,本人对于这个类是比较陌生的,因此,这里特来记录一下。波导可以被在不同的过程中被绘制,默认过程是波导工艺(该类是用来定义线状波导的。目前这一参数用于做什么,本人尚未研究清楚。这部分的原因后续有时间了我们再进一步研究。在波导上绘制控制形状。波导包层的工艺,默认的是。, 默认值是当前器件的。:用来定义波导芯的层。原创 2024-07-26 17:44:28 · 49 阅读 · 0 评论 -
KLayout 中的默认数据类型
自带的数据类型,尽量不要重构数据类型,否则在编译器中可能会产生警告提示信息。原创 2024-06-24 15:47:27 · 104 阅读 · 0 评论 -
KLayout ------ 旋转物体任意角度
上述三种写法均可以得到旋转后的结果。至此,物体旋转问题完结了。后续用户可以自己对其进行封装变成属于自己的软件包。度是一个比较特殊的角度。那么如果我们想要将物体旋转其他角度可以吗?可以看到,此时我们已经实现了图形的旋转操作,但是要做到这一点,这里需要注意一些问题。因为,做旋转的时候,坐标难免出现小数,因此,我们不能使用。的时候,由于是任意角度,可能有小数角度,因此需要使用。不支持旋转任意角度,只能够被旋转。一文中我们介绍了如何将物体旋转。,这两个的坐标都是正数。的坐标虽然满足要求,但是。原创 2024-06-24 12:50:26 · 500 阅读 · 0 评论 -
KLayout ------ 旋转物体90度并做平移
中如何旋转自己创建的物体,这里特来说明一下。前段时间,有个小伙伴留言问我,原创 2024-06-24 11:37:33 · 467 阅读 · 2 评论 -
AMF PDK 中添加自定义层
很多时候,我们想要添加属于我们自己的层,此时我们需要向。然后我们就可以在程序中定义属于我们自己的层了。原创 2024-05-24 16:47:37 · 96 阅读 · 0 评论 -
2x2 光学器件的 S-Matrix
然而上述是不包含反射和反向传输时的情况,如果考虑器件包含反射的情况,那么。端口反射出的光波振幅之间的关系。端口反射出的光波振幅之间的关系。端口透射出的光波振幅之间的关系。端口透射出的光波振幅之间的关系。端口出的光波振幅之间的关系。端口出的光波振幅之间的关系。端口出的光波振幅之间的关系。端口出的光波振幅之间的关系。光学器件,这里我们以一个。的光学器件的传输矩阵就有。后续的参数以此类推。原创 2024-04-07 09:29:32 · 308 阅读 · 1 评论 -
IPKISS ------ 查看器件默认端口名称
实际是我们实例化器件的名称,并不是端口名称,因此,如果我们更改器件实例化的名称,图上的。但是这里需要注意一点,如果我们想要引用这些端口,比如端口名称更改时,端口的引用必须写为。会认为我们打开了器件所有端口的名称标记。个人吐槽,这真的很奇怪,IPKISS 的设计应该在图上把端口名直接变为。才对,否则,还要让用户去判断区分真的很不方便。这一点儿要在实际使用中特别注意。这是因为,本例中我们实例化。向上述代码一样,我们只需要注释掉。也会跟着变化,也就是说实际上,原创 2024-04-03 17:38:58 · 88 阅读 · 0 评论 -
IPKISS Tutorial 目录(持续更新中)
IPKISS ------ 版图绘制框架模式 i3.CircuitIPKISS ------ ChildCellProperty() 和 Grating Coupler原创 2024-04-03 17:19:07 · 85 阅读 · 0 评论 -
IPKISS ------ 版图绘制框架模式 i3.Circuit
很明显,字典变量名称是可以任意取名的,只需要与。中绘制版图时,如果版图的组件都已经生成了完整的。函数中实例化组件的端口名称,比如这里,原始。有细心的小伙伴可能会发现你上面写的不是。, 为了方便,我们直接将它们重新改名为。为什么下面的字典变量名称是。后面的后面的名称保持一致即可。类,那么此时,我们可以使用。架构来完成我们的版图布局。默认放置函数,用户可以设置。的原因是为了与函数名称。函数中实例化组件的位置。默认端口函数,用户可以设置。提供的默认字典名称为。原创 2024-04-03 17:15:53 · 145 阅读 · 0 评论 -
IPKISS ------ ChildCellProperty() 和 Grating Coupler
中可能存在的默认参数进行更改。经过本人的测试发现,事实上,直接赋值。虽然代码行数上会变得更长,但是会避免很多不必要的错误。进行创建和布局,因为器件已经存在,可以将它看作是当前。保持一致,如果我们改变了变量名称,比如。但是,这种写法存在弊端,我们可能无法对。创建它,但是因为这里我们没有设置。中已经存在的器件,我们可以使用。,因此,一定要写成使用函数赋值。后面的名称必须和我们定义的。定义的时候也可以直接设置。的这种写法,当结构复杂时,新手最容易犯的错误就是。语句中忘记末尾的小括号。,读者可以自行尝试。原创 2024-04-03 16:37:44 · 177 阅读 · 0 评论 -
IPKISS ------ 导入 Lumerical S-matrix 仿真结果
这里给大家介绍一下如何使用。原创 2024-04-03 12:02:17 · 65 阅读 · 0 评论 -
AMF VIA 连接层
这里简单说明一下 AMF VIA 的连接层问题。由上图可以看出,M1 与 M2 层之间应该通过 VIA1 来连接。M2 与 M3 层之间可以通过 VIA2 来连接。原创 2024-03-27 10:57:41 · 47 阅读 · 0 评论 -
AMF PDK 内置器件的调用与仿真
中内置器件的调用和仿真,这里我们以直波导为例。原创 2024-03-22 09:57:13 · 71 阅读 · 0 评论 -
AMF PDK文档与用户手册
叫做用户手册,后面我们提到时就不会再对这个定义做说明了,读者需要特别留意一下这里。关于大多数的设计参数,我们均可以在。的帮助文档有两份,其中一个叫做。提供的默认器件的调用方法可以在。直至今天,我才知道原来。原创 2024-03-18 17:24:07 · 87 阅读 · 0 评论 -
IPKISS ------ 连接两个自定义波导
并不智能,因为它自生的连接波导存在一个固定的默认宽度值,所以,当我们不指定它的宽度时就会默认使用这个默认宽度进行连接,从而造成上图所示的这种情况。可以看到,此时的连接函数非常奇怪,明明我们两端的波导尺寸是一致的,可是连接波导本身的尺寸却非常小。一文中我们介绍了如何创建一个完整的自定义矩形波导结构。这里,我们将介绍如何将我们创建的波导连接起来。事实上,有三种连接函数,另外一种由于存在一定的局限性,这里不再过多地介绍。这里,我们创建了两个矩形波导,并且使用。中,波导的连接是通过。原创 2024-03-18 15:14:22 · 167 阅读 · 0 评论 -
IPKISS ------ 绘制带有端口的自定义矩形波导
然而,在实际使用中仅仅绘制出波导的形状是不够的,我们还需要绘制出它的。绘制出自定义的具有完整功能的矩形波导。这里,我们介绍一下如何使用。一文中我们介绍了如何使用。原创 2024-03-18 14:48:51 · 128 阅读 · 0 评论 -
KLayout Python Script ------ 绘制自定义形状物体
函数绘制的,那么我们能够绘制我们自定义的形状呢?这里我们简单介绍一下。相信看到这里,绘制其他形状的方法大家也可以自行尝试了。个 矩形形状的物体和一个自定义的。一文中我们介绍了如何绘制。可以看到,此时,我们成功在。原创 2024-03-14 10:25:47 · 654 阅读 · 0 评论 -
KLayout Python Script ------ 绘制 2 个 Box 物体
物体,这里,我们介绍一下如何在 KLayout 中绘制三个。物体的方法也就显而易见了,有兴趣的小伙伴们可以自行尝试。个 矩形形状的物体。那么,以此类推,绘制更多个。一文中,我们介绍了如何在。可以看到,此时,我们成功在。所有事情的发展都是从。原创 2024-03-14 10:15:30 · 518 阅读 · 6 评论