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

news2025/4/23 23:17:57

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

通常来说,我们可以让模拟设计提供数字模块的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.coloradmin.cn/o/1345752.html

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

相关文章

nodejs+vue+微信小程序+python+PHP特困救助供养信息管理系统-计算机毕业设计推荐

通过走访某特困救助供养机构实际情况,整理特困救助供养机构管理的业务流程,分析当前特困救助供养机构管理存在的各种问题,利用软件开发思想对特困救助供养机构特困救助供养机构管理进行系统设计分析。通过服务端程序框架进行设计,…

网际协议IPv4

基本介绍 网际协议IP是TCP/IP体系中两个重要的协议之一。IPv4虽有最终被IPv6取代的趋势,但它仍是当前使用的最重要的因特网协议。 与IP配套使用的还有3个协议: 地址解析协议ARP(Address Resolution Protocol)因特网控制报文协议ICMP(Internet Control …

Docker 入门 ------容器互通以及Dockerfile

1. 端口映射以及容器互联 Docker 除了通过网络访问,还提供了两种很方便的功能来满足服务访问的基本需求: 允许映射容器内应用的服务端口到本地宿主主机互联机制实现多个容器间通过容器名来快速访问 1.1 容器映射实现访问容器 1.1.1 从外部访问容器应…

中间人攻击是什么,会产生哪些危害,如何有效防止中间人攻击

简介 中间人攻击(Man-in-the-Middle Attack,简称MITM攻击)是一种网络攻击,其原理是攻击者通过各种技术手段将受攻击者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机称为“中间人”。在攻击过…

【滑动窗口】C++算法:可见点的最大数目

作者推荐 动态规划 多源路径 字典树 LeetCode2977:转换字符串的最小成本 本题涉及知识点 滑动窗口 LeetCode 1610可见点的最大数目 给你一个点数组 points 和一个表示角度的整数 angle ,你的位置是 location ,其中 location [posx, posy] 且 point…

Linux文件系统结构及相关命令1(man pwd ls ctrl +Shift +T ls /etc)

Linux的文件系统结构 某所大学的学生可能在一两万人左右,通常将学生分配在以学院-系班为单位的分层组织机构中。 如何查找一名学生? 最笨的办法:依次问询大学中的每一个学生,直到找到为止。 查询效率高的方法:按照从…

2023年新一代开发者工具 Vue ,正式开源!

以下文章来源于前端充电宝 ,作者CUGGZ 近日,Vue 新一代开发者工具(DevTools)正式开源!Vue DevTools 是一个旨在增强 Vue 开发人员体验的工具,它提供了一些功能来帮助开发者更好地了解 Vue 应用。下面就来看…

用IDEA创建/同步到gitee(码云)远程仓库(保姆级详细)

前言: 笔者最近在学习java,最开始在用很笨的方法:先克隆远程仓库到本地,再把自己练习的代码从本地仓库上传到远程仓库,很是繁琐。后发现可以IDEA只需要做些操作可以直接把代码上传到远程仓库,也在网上搜了些…

【FileZilla】的基本使用

一、FileZilla的使用 1.1 FileZilla简介 1.2 软件下载 到官方网站下载 FileZilla 的服务端和客户端程序 FileZilla - The free FTP solution 自行下载即可 1.3 软件安装 (1)先安装服务端【傻瓜式安装】,一直下一步下一步安装即可 &#xf…

Python绘制高级图表(1):绘制条形统计图

一、初始化 1. 引入库,设置画笔 from turtle import * t Turtle() t.color("black") t.width(3)2. 为了美观,画出xy轴 (1) 普通型 from turtle import * t Turtle() t.color("black") t.width(3)# 以画布为600 * 600为例 # 1.…

搭建maven私服

maven maven简介 什么是maven? Maven这个单词来自于意第绪语(犹太语),意为知识的积累。 Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。 Maven 除了以…

算法训练day53|动态规划part14

参考:代码随想录 1143.最长公共子序列 重点:状态的转移与递推公式的确定 本题和动态规划:718. 最长重复子数组 (opens new window)区别在于这里不要求是连续的了,但要有相对顺序,即:"ace" 是 …

Spark任务调度与数据本地性

Apache Spark是一个分布式计算框架,用于处理大规模数据。了解Spark任务调度与数据本地性是构建高效分布式应用程序的关键。本文将深入探讨Spark任务调度的流程、数据本地性的重要性,并提供丰富的示例代码来帮助大家更好地理解这些概念。 Spark任务调度的…

小程序面试题 | 17.精选小程序面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

自然语言处理2——轻松入门情感分析 - Python实战指南

目录 写在开头1.了解情感分析的概念及其在实际应用中的重要性1.1 情感分析的核心概念1.1.1 情感极性1.1.2 词汇和上下文1.1.3 情感强度1.2 实际应用中的重要性 2. 使用情感分析库进行简单的情感分析2.1 TextBlob库的基本使用和优势2.1.1 安装TextBlob库2.1.2 文本情感分析示例2…

【Electron】webview 实现网页内嵌

实现效果: 当在输入框内输入某个网址后并点击button按钮 , 该网址内容就展示到下面 踩到的坑:之前通过web技术实现 iframe 标签内嵌会出现 同源策略,同时尝试过 vue.config.ts 内配置跨域项 那样确实 是实现啦 但不知道如何动态切换 tagert …

全球日光地图分布地图数据

日光地图分布地图数据 Daylight 是全球开放地图数据的完整分发版,可在社区和专业地图制作者的支持下免费获取。我们将 OpenStreetMap 等项目的全球贡献者的工作与日光制图合作伙伴的质量和一致性检查结合起来,创建免费、稳定且易于使用的街道比例全球地…

Java EE 网络原理之HTTPS

文章目录 1. HTTPS 是什么?2. "加密" 是什么?3. HTTPS 的工作过程3.1 引入对称加密3.2 引入非对称加密3.3 中间人攻击3.4 引入证书 4. Tomecat4.1 tomcat 的作用 1. HTTPS 是什么? HTTPS也是⼀个应用层协议,是在 HTTP …

C#使用switch语句更改窗体颜色

目录 一、示例 二、生成 用switch多路选择语句及窗体的BackColor属性更改窗体的BackColor属性。该属性用于获取或设置控件的背景颜色。 可以使用Color结构的静态属性获取Color对象,如Color.Red;也可以使用Color结构的静态方法Color.FromArgb()&#xf…

探索人工智能OCR:解放你的文字世界

嘿!你听说过人工智能OCR吗?它是一项超酷的技术,让我们来看看它带来的种种好处: 自动化处理:再也不用费力去手动输入和处理大量的纸质文件啦!有了人工智能OCR,它能够自动将印刷或手写的文本转换…