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

数模混合SoC芯片中LEF2Milkyway的golden flow

在数模混合芯片中的项目中,特别是数字模块很少甚至只有一个简单的数字控制逻辑时,我们要做数字模块的后端实现时,通常模拟那边会问我们实现需要他们提供哪些数据。

通常来说,我们可以让模拟设计提供数字模块的GDS或LEF文件即可。
在这里插入图片描述

因为我们的这个数字模块是芯片中的一个子模块,它跟芯片中的很多模拟模块和IO接口是有交互的。所以这个数字模块的IO port(IO Pin)是不能随意摆放的,而是必须根据顶层提供的形状和出pin信息来做实现。

如下图所示为某个以模拟为主的芯片,其中数字模块的出pin分成五大块。其实这个数字模块的切分和摆放pin是不是就是我们数字后端hierarchical flow中所讲的block partition和pin assignment。只不过我们PR工具做partition后是写出子模块block的floorplan def,而模拟不太会写这个文件,而是提供通用的GDS或LEF文件。

那有了模拟设计提供的GDS文件后,我们还是不能直接提供给PR工具来使用。

如果模拟那边提供的是GDS,我们可以通过GDS转LEF的golden脚本来生成对应的LEF文件。

在这里插入图片描述

那是不是有lef后,我们就可以开始做子模块block的后端实现了呢?

显然不可以。如果这个子模块block是我们数字顶层的一个子模块,那么我们直接读入它的LEF就可以实现调用,注意是调用。

而我们今天这个案例是要去做这个数字模块的后端实现,所以需要有这个数字模块的boundary和io pin信息。而这个信息的呈现形式不可能是LEF,因为PR工具initial boundary不支持读入LEF文件。

所以,我们还需要进一步把LEF文件转换成Milkyway数据格式,最后再通过Milkyway database来输出对应的floorplan def或io file。

下面分享LEF转Milkyway的具体步骤。

1、启动Milkyway
直接终端输入:Milkyway & (后台运行)

2、创建库
Library——>Create…
Library 中填入想要新建的库的名字,
Technology File Name 里输入工艺文件tf

值得注意的是 Set Case Sensitive 要打勾,其他保持不变,点击 OK 即可创建 Milkyway 库。

3、打开库
Library -----> Open…
点 Browse,选中 XXX(前一步新建的库的名字),点 Hide;
输入 Library Path(一般在当前目录输入.就可以) ;
点击 OK 即可。

4、导入 LEF
Cell Library-----> LEF In…
Library Name:点 Browse,选中之前新建的 Library;
Tech LEF File:点 Browse,选中工艺 tech lef 文件;
Cell LEF Files:点 Browse,选中 cell lef 文件夹下需要转的 cell 的 lef 文件,可以选多个。注意, 如果你第二次操作,上一次选中的并不会清除,所以你需要先清空;
Layer Mapping:选中.map 文件;
此时点击 OK 就会生成相应的 FRAM view。

有了Milkyway数据后,我们利用ICC打开它,注意打开FRAM View的cell。然后就可以在ICC中通过write_def写出floorplan文件了。

对应上面操作的脚本如下所示,直接照抄即可实现。

set tech_lef_file “”
set tech_file “”
set lib_name “”
set lef_file “”

cmCreateLib
setFormField “Create Library” “Technology File Name” $tech_file
setFormField “Create Library” “Library Name” $lib_name
setFormField “Create Library” “Set Case Sensitive” “1”
formOK “Create Library”

geOpenLib
setFormField “Open Library” “Library Name” $lib_name
formOK “Open Library”

read_lef
-lib_name $lib_name
-tech_lef_files $tech_lef_file
-cell_lef_files $lef_file
-advanced_lib_prep_mode
-cell_version overwrite

auExtractBlockagePinVia
formDefault “Extract Blockage”
setFormField “Extract Blockage” “Library Name” “$lib_name”
setFormField “Extract Blockage” “Routing Blockage Output Layer” “metBlk”
setFormField “Extract Blockage” “Metal1 Blockage As Thin” “1”
setFormField “Extract Blockage” “Metal2 Blockage As Thin” “1”
setFormField “Extract Blockage” “Metal3 Blockage As Thin” “1”
formButton “Extract Blockage” “extractPin”
setFormField “Extract Blockage” “extract connectivity” “1”
formButton “Extract Blockage” “extractVia”
setFormField “Extract Blockage” “Extract Via Region Up To Metal” “3”
formOK “Extract Blockage”

http://www.lryc.cn/news/271987.html

相关文章:

  • Five tips to make your essay flow
  • linux驱动(二):led补
  • 性能测试-jmeter:安装 / 基础使用
  • 数据仓库-数仓优化小厂实践
  • uniapp中uview组件丰富的Code 验证码输入框的使用方法
  • md文件图片上传方案:Github+PicGo 搭建图床
  • 从零开始 - 在Python中构建和训练生成对抗网络(GAN)模型
  • OfficeWeb365 Indexs 任意文件读取漏洞复现
  • Crypto的简单应用-前后端加密传输
  • Vue3-32-路由-重定向路由
  • 如何用js动态修改字体大小
  • 【BIG_FG_CSDN】C++ 数组与指针 (个人向——学习笔记)
  • 桌面天气预报软件 Weather Widget free mac特点介绍
  • HarmonyOS应用开发-搭建开发环境
  • <JavaEE> TCP 的通信机制(五) -- 延时应答、捎带应答、面向字节流
  • 电脑怎么设置代理IP上网?如何隐藏自己电脑的真实IP?
  • Django信号机制源码分析(观察者模式)
  • MyBatis-config.xml配置文件
  • 【Spring实战】17 REST服务介绍
  • java struts2教务管理系统Myeclipse开发mysql数据库struts2结构java编程计算机网页项目
  • 跟着cherno手搓游戏引擎【3】事件系统和预编译头文件
  • 排序算法之快速排序
  • Docker 从入门到实践:Docker介绍
  • 用IDEA创建/同步到gitee(码云)远程仓库(保姆级详细)
  • 【Linux】进程控制深度了解
  • kbdnso.dll文件缺失,软件或游戏报错的快速修复方法
  • Spring技术内幕笔记之IOC的实现
  • kotlin foreach 循环
  • 分享相关知识
  • RabbitMQ(七)ACK 消息确认机制