Virtuoso绘制模拟模块Frame并导出LEF
数模混合Flow时一些pin多的模拟模块可以通过导出lib和LEF,合并到数字flow中进行自动布线。
第一步肯定是和后端那边确定macro的形状以及各个端口的出pin方向和metal layer。这些确认完了之后,就可以开始做lef了。
网络上的教程交的是用abstract做,但实际上如果是简单的需求,现在virtuoso本身就可以全部搞定,我具体的操作如下:
第一步先新建一个layout view,选择Create->P&R objects->P&R Boundry,根据约定的形状拉一个pr boundry出来,左下角放在0,0坐标。

可以先create两个ruler把长宽位置定好(不规则几何形状这里不讨论,一般也不要把macro搞成不规则形状)
第二步是拉线,我这里没有直接用create_pin的方法,稍微绕了点路,但是应该会更好一些。先create wire,如果是单独的线就Create->Wring->Wire,如果是总线就Create->Wiring->Bus。也可以直接快捷键p&F3或者ctrl+shift+x&F3。拉线前先在LSW里面选到要出pin的layer,比如m3,m4这些,确定之前记得和模拟那边check走线layer和方向的问题,比如我们这里奇数层走竖线,偶数层走横线,那么竖向出线的部分就要放在奇数层,横向出线的则放到偶数层。

比如这里的dout<31:0>就是用create bus的方式产生的,ctrl+shift+x后再按F3,就会编辑bus的属性,Net Name就填dout<31:0>就行,点到别的格子里面之后就会自动展开成独立的线,下面的Number of Bits也会自动修改好。然后All Nets Width和All Nets Bit Spacing根据自己需要的线宽线距设定好,就能拉一组总线出来。注意这里没有Layer可以选,会直接生成在LSW中选的Layer。

然后把这组总线选个地方开始移动鼠标拉出来就行,拉到自己想要的长度后双击鼠标,bus就好了。
如果是生成单个wire的话,就p,然后直接拉线,然后和Bus一样F3设定属性,改好Net Name和Width,拉完之后双击。
第三步是加label,Create->Label,然后改一下属性(如果没有出窗口就按一下F3),Mode选到Auto,Select layer选到需要的text的layer。

然后选中之前画好的线的bus,Create->Label,就会自动生成和之前的Net Name同名的Label,这样就都打好了。

这样把所有的bus和wire全部搞定。
第四步是打pin,选中上一步中生成好的label,再使用Tools->Create Pins from Labels。Objects选成Selected,PinLayer改成要打pin的目标layer,然后点击OK。

可以看到原来的线上多出了小方块,就是打上的pin。

接着就是修改一下pin的direction,和.lib里面的声明对齐。选中所有pin,按q出属性界面,点击Common,能够编辑所有选中的pin的属性。I/O Type改为对应的direction即可。

至此一个layout的frame就好了。
最后一步从这个gds中导出lef,在virtuoso启动处,选择File->Export->LEF。LEF File Name填写生成的lef文件的名字,Library Name,Output Cells,Output Views一步一步选中刚才画好的layout,然后一定要勾选No Technology,不需要带工艺LEF。

点OK后顺利的话,一会LEF文件就生成好了:

可以再对着layout核对一下LEF的信息。至此做LEF的flow结束。
补两个后续发现的tips:第一点是pin的间距可以设大,不然容易congestion,我这里28nm最后给了0.4um间距。第二点事pin的位置不能乱放,我这里都延伸到prboundry外部去了,正确的操作应该放在prboundry内部,并且pin的位置应该紧贴prboundry。
Virtuoso绘制模拟模块Frame并导出LEF的更多相关文章
- (KEILv5)使用matlab绘制从KEIL memory导出的内存数据
使用matlab绘制从KEIL memory导出的内存数据 如标题,某些时候我们需要分析keil调试过程中的数据,比如从I2S.SPI.I2C或者UART获取到的波形数据,这些数据时数字流,通过逻辑分 ...
- powerdesigner 绘制表关系和导出sql
1.生成图(A图,B图) 2.创建关系(palette工具栏里有个线条,主表子表关系连接即可,拖动是由顺序的,一对多即从A表往B表连接) 3.这里小说一下 一开始是CDM模式,可以在软件最顶层看到 ...
- 微信小程序使用canvas绘制图片的注意事项
1.单位换算问题,canvas的尺寸单位是px,所以单位需要做个换算,可以通过wx.getSystemInfo获取屏幕宽高(单位是px),微信小程序无论什么机型,屏幕宽度都是750rpx,因此可以做个 ...
- [自制操作系统] BMP格式文件读取&图形界面系统框架/应用接口设计
本文将介绍在本人JOS中实现的简单图形界面应用程序接口,应用程序启动器,以及一些利用了图形界面的示例应用程序. 本文主要涉及以下部分: 内核/用户RW/RW调色板framebuffer共享区域 8bi ...
- 用highcharts展现你的数据
摘要: 前面已经分享过图表插件,今天在来将下如何使用highcharts来绘制图表.highcharts支持在线定制,你可以选择你所需要的模块,然后点击build就会生成一个js文件链接,右键保存到本 ...
- cocos2d-x游戏引擎核心之六——绘图原理和绘图技巧
一.OpenGL基础 游戏引擎是对底层绘图接口的包装,Cocos2d-x 也一样,它是对不同平台下 OpenGL 的包装.OpenGL 全称为 Open Graphics Library,是一个开放的 ...
- java课程设计 学生管理系统
学生成绩管理系统 可实现功能 学生管理系统 查询学生信息:姓名.学号.性别.出生年月日.(学号自动生成且唯一) 查询学生成绩:每个人都有数学.Java与体育与选修课 查询学生课程 进行公选课选课 教师 ...
- scrollView滚动原理
首先要明确的是,scrollview 其实和普通的 view 并没有多大的差别,只不过给它加上了一些手势和约定. 我们知道,要让一个 scrollview 能够滚动的方法是设置它的 contentSi ...
- 带交互的 iOS 产品原型可以用什么软件制作?
摘自知乎http://www.zhihu.com/question/20326729 来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 首先如果你小团队或者个人开发,当然 ...
- iOS:基于CoreText的排版引擎
一.CoreText的简介 CoreText是用于处理文字和字体的底层技术.它直接和Core Graphics(又被称为Quartz)打交道.Quartz是一个2D图形渲染引擎,能够处理OSX和iOS ...
随机推荐
- Scrcpy Shortcuts
Actions can be performed on the scrcpy window using keyboard and mouse shortcuts. In the following l ...
- 阿里巴巴为什么禁止超过3张表join?
前言 2017年,<阿里巴巴Java开发手册> 中一条规定掀起技术圈巨浪:"禁止超过三张表进行join操作". 时至今日,这条规范仍被众多企业奉为圭臬. 但背后原因你真 ...
- SciTech-BigDataAIML-Jupyter- 扩展Jupyter 的 Notebook + LSP(语言服务) 的文档 Extending the Notebook
https://jupyterlab-lsp.readthedocs.io/en/latest/Installation.html https://github.com/jupyter-lsp/jup ...
- ICEE-Power-SCR-OptoisolaterDriver-MOC Series-MOC3081/2/3: 6-Pin DIP Zero-Cross TriacDriver Optocoupler (800 V Peak)
English Words: Thyristor: 可控硅 SCR: 单向可控硅 SCRs are unidirectional (one-way) current devices, making t ...
- HuggingFace部署Qdrant在Roo Code使用
最近 RooCode 更新了代码库索引的 codebase 功能,这个功能通过将整个代码库向量化,实现了更高精度的上下文理解和代码问答.不过需要qdrant来作为向量数据库,qdrant通过本地doc ...
- Golang基础笔记十四之文件操作
本文首发于公众号:Hunter后端 原文链接:Golang基础笔记十四之文件操作 这一篇笔记介绍 Golang 里文件的相关操作,主要用的库是 io. 以下是本篇笔记目录: 文件读取 文件写入 文件追 ...
- LG 8 月月赛
1 比赛情况 A B C D \(100\) \(100\color{red}{\text{(已被 Hack)}}\) \(45\) \(0\) 2 比赛流程 开场构造 A,构造错了,卡了 \(30\ ...
- 2021 年的十五个 DevOps 趋势预测
DevOps已经走过了很长的一段路,毫无疑问,它将在今年继续闪耀.由于许多公司都在寻找围绕其数字化转型的最佳实践,因此了解领导者认为该行业的发展方向非常重要.从这个意义上说,下面的文章收集了DevOp ...
- Linux touch命令的使用
用touch修改某文件的时间戳到当前时刻 xinlin@ubuntu:~$ ll test-rwxrw-r-- 1 xinlin xinlin 34 Sep 17 21:49 test*xinlin@ ...
- 堆priority_queue
#include<queue> //#include<bits/stdc++.h> using namespace std; priority_queue<int> ...