众所周知,Cadence的Virtuoso是模拟设计领域的核心工具,市占率达到75%,随着近些年来Cadence在数字版图设计(APR)领域的崛起,invs,PVS等一众工具也都成了很多公司的首选后端流程工具。依照强强联合的逻辑,将数模实现工具进行协同部署看起来就是那么的水到渠成,这里就以OA数据为起点,简单介绍一下MSOT的简单流程。闲言少叙,ICer GO!
在这里插入图片描述
通常而言,数据交互是跨工具的主要问题,所以常用的LEF/DEF/V/UPF/SDC etc.便成为了数字流程的主要交互文件,但是对于Virtuoso,由于是模拟的设计理念,上述的方法不是很合适,这里就需要引入Cadence的**OA(OpenAccess)**数据平台。

数模混合设计(Mixed-Signal Design)概略

从Virtuoso IC61开始,数据都是以OA为数据保存格式的,尤其到了OA2.2,已经可以实现很多公司/工具的数据互通, 包括Synopsys,mentor,TSMC等大厂的工具,譬如S家的Laker就可以和C家的virtuoso通过OA做数据互通;Calibre也可以打开Virtuoso的OA数据库等。

类似的,innovus也提供OA数据创建、读取和存储,这样就可以实现innovus和virtuoso的数据沟通。有了这种数据沟通,就可以解决一定的芯片设计需求。

对于现代的MS(mixed-signal)的芯片设计无外乎以下两种设计方法:

  • Ad(大数小模,下左图)结构:virtuoso 做top-design,顶层以及大部分工作在virtuoso完成,剩余的一小部分digital在innovus完成,两者通过OA协同,最后使用virtuoso 完成TO

  • Da(大数小模,下右图)结构:innovus做top-design,顶层以及大部分工作在innovus完成,剩余的一小部分analog在virtuoso完成,两者通过OA协同,最后使用innovus 完成TO

在这里插入图片描述

如果,对于模拟数字交融的更为深入的情形,那么无论是使用vitruoso还是innovus完成最终的TO,二者都可以在数据的任何阶段进行交互(PS:top的流程需要在项目初期定义完成,避免反复迭代)。基于此Cadence提出了(MSOT)的流程理念,这样可以进一步淡化/模糊数模边界,对于一个完整的设计也可以相对比较灵活,Cadence相信这样可以更有利于设计的实现效果:

在这里插入图片描述

所以,无论是上述Da,Ad抑或MSOT,这个流程都需要对virtuoso和innovus两个工具使用统一的设计数据平台:OA数据。从不同的工具角度去看,OA数据也有些微的差异:

  • 下左图:virtuoso工具对于设计库的需求(PDK):techdb, techfile.tf,pcell etc.

  • 下右图:virtuoso工具对于设计库的需求(LEF):techlef,std-cell lef ,macro lef

在这里插入图片描述

OA DB 的创建和使用

如上所述,如果一个OA可以包含PDK和所有库的LEF,那么就可以在virtuoso两个工具在做平滑切换。这里有一个点要明确,对于virtuoso通常关注在模拟设计、版图和仿真。而innovus需要关注的更多的是place,CTS和route,这个可能会在除去基础的OA外用户需要额外关注的。

综上Cadence给出的解决方案就是:MSOA PDK (MixedSignal OpenAccess Process Design Kit ),这个OA的数据结构是包含了上述virtuoso和innovus两者都需要的东东。

  • Foundry rules (from PDK)
    • DR: default routing rules
    • Spacing/pitch/width
  • Tech LEF:
    • NDR: none default routing rules
    • Antenna
  • Std-cell LEF
  • IP LEF

Cadence提供一个流程帮助用户在innovus里边创建OA数据库,来作为数据的起点(PS:类似的用户也可以在virtuoso作为数据起点

OA库通常是由三个部分组成(从底到顶的次序)

  • Technology DB:工艺相关的rule,layer等信息
  • Library DB: IP/pcell/std-cell等基础设计单元和对于的view管理
  • Design DB:原理图,版图,网表等

考虑到工作数据维护的便利性,OA提供了refLib的理念,这个refLib通常只囊括工艺(technology)相关的信息,对于实际的设计库,用户可以对其进行对应的设计(design)和基础设计单元(library)的添加和维护。可以简单理解refLIb就是basic OA,设计的OA都可以将以这个refLib作为起点。

这里呈现一个以innovus为数据起点的简化版的OA lib常见流程。依照上述讲解,一个OA的lib的创建至少是需要两个步骤的。具体流程见下图:

在这里插入图片描述

  1. 打开任意一个已经完成init design的invs数据库
restoreDesign DBS/design.init.enc.dat design
  1. 导出OA tech file

这个可以理解为将invs的tech.lef转换成virtuoso的的基础技术文件:techfile.tf ,但是由于invs是一个简化的设计环境(相较模拟设计而言),所以这里的数据量会较少,但是使用这个的好处是,用户不用去花费大量的时间去解决techfile.tf和tech.lef的冲突。

write_oa_techfile oa.tf
  1. 创建OA的reference lib

基于上述的oa.tf创建的reference lib,可以理解为一个带入了fab设计规则OA lib

techLoadDump -l -createLib oa.ref.lib oa.tf

基于OA系统数据规则,任何对于OA lib的创建都会在当前目录下的cds.lib添加OA lib的信息,如果cds.lib文件不存在则会自动重建。(PS:由于virtuoso和invs在调用OA lib的时候,都会使用这个文件,不建议手动修改/移除这个文件,

# file cds.lib
# indication libname libpath 
DEFINE oa.ref.lib oa.ref.lib
  1. 准备LEF文件

在一个完成init_design的invs数据库中,是可以方便的管理所有的LEF文件的。包括tefh.lef。所以invs提供了一个简单的命令,可以将LEF分类别导出

# dump tech LEF
write_lef_library -tech_only tech.lef 
# dump ALL IP/std-cell/antenna LEF
write_lef_library -macro_only macr.lef
  1. 创建OA lib

有了上述的结果,此处可以创建OA lib了,此处分两步

  • 基于OA ref lib创建design的OA lib
lef2oa	-pnrLibDataOnly \-lef tech.lef \-techRefs oa.ref.lib \ -lib design.oa.basic.lib
  • 基于macro LEF 对OA lib进行增量调整
lef2oa 	-lef maco.lef \-lib design.oa.basic.lib

这里创建了新的OA lib,所以cds.lib就会增加一个条目

# file cds.lib
# indication libname libpath 
DEFINE oa.ref.lib oa.ref.lib
DEFINE design.oa.basic.lib design.oa.basic.lib

到此design的OA lib就创建好了,这个OA lib和DBS/design.init.enc.dat相比,除过没有实际的design(netlist)外,其他的fab、tech、IP等信息是完全一致的。

用户可以把这个OA DB作为一个新的起点,对实际的设计进行导入,就可以完成design OA lib的部署:

Note:由于cds.lib的控制,下面的动作需要和上述命令在同一目录下

使用OA数据库构建floorplan:

1:配置basic OA lib

set init_oa_ref_lib design.oa.basic.lib 

2:配置netlist

set init_verilog design.dc.v

3:配置top cell name

set init_top_cell design

4:配置mmmc

set init_mmmc_file design.viewDefinition.tcl

5:初始化design

init_design

6:导入floorplan DEF

defIn design.fp.def

7: 用OA数据结构保存数据: {lib_name top-cell view}

saveDesign -cellview {design.oa.floorplan.lib design floorplan} 

同样,cds.lib再一次添加了新条目

# file cds.lib
# indication libname libpath 
DEFINE oa.ref.lib oa.ref.lib
DEFINE design.oa.basic.lib design.oa.basic.lib
DEFINE design.oa.floorplan.lib design.oa.floorplan.lib

在invs里边,打开OA数据库,并完成place

1:打开floorplan OA 数据库

restoreDesign -cellview {design.oa.floorplan.lib design floorplan}

2:完成place

place_opt_design

3: 保存place数据库

saveDesign -cellview {design.oa.floorplan.lib design floorplan} 

cds.lib再次加入一个新的条目

# file cds.lib
# indication libname libpath 
DEFINE oa.ref.lib oa.ref.lib
DEFINE design.oa.basic.lib design.oa.basic.lib
DEFINE design.oa.place.lib design.oa.place.lib

这里对同一个OA DB(design.oa.place.lib)分别使用invs和virtuoso打开,作为跨工具工作的一个注脚

在这里插入图片描述

这里以invs数据库为起点,完成一个OA lib的创建,这个和Traditional MSOA PDK相比,少了tech rule (techfile.tf , 通常来自于PDK)的带入,简化的原因是由于tech.lef和techfile.tf通常有一些冲突/差异,其他的步骤都是一样的。完整的Traditional MSOA PDK如下,可以作为参考理解其中的原理

在这里插入图片描述

到此,用户已经使用OA的数据库完成了在invs里边的place步骤,此时用户如果需要,这个OA数据是可以直接传递给virtuoso(或者laker)用户,完成后续的和模拟相关设计动作,然后可以再次返回invs进行后续的处置。用户可以根据实际情况基于同一数据库灵活选择设计工具,从而推进Da或者Ad的设计。感谢Cadence的伟大创举,感谢OA平台,打通了数模设计的数据平移。

【敲黑板划重点】

image-20240503184222477
基于OA数据库,发挥innovus和virtuoso的工具优势和特长,打破数模设计的阻隔,发挥不同工具的优势,完成芯片设计的诉求。

参考资料

Cadence Mixed Signal (MS) Interoperability Guide

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FunASR人工智能语音转写服务本地部署测试

前提条件:本机:windows11 ,已安装docker1.下载镜像使用命令下载docker镜像docker pull registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.13下载完成后,建立文件夹储存之后需要下载的模型…

Python OpenCV图像处理与深度学习

Python OpenCV图像处理与深度学习 1. Python OpenCV入门:图像处理基础 2. Python OpenCV开发环境搭建与入门 3. Python OpenCV图像处理基础 4. Python OpenCV视频处理入门 5. Python OpenCV图像几何变换入门 6. Python OpenCV图像滤波入门 7. Python OpenCV边缘检测…

C# SIMD编程实践:工业数据处理性能优化案例

性能奇迹的开始 想象一下这样的场景:一台精密的工业扫描设备每次检测都会产生200万个浮点数据,需要我们计算出最大值、最小值、平均值和方差来判断工件是否合格。使用传统的C#循环处理,每次计算需要几秒钟时间,严重影响生产线效率…

XHR 介绍及实践

What is it? XML(XMLHttpRequest) 是浏览器提供的一种用于前端页面和后端服务器进行异步通信的编程接口。它允许在不重新加载整个页面的情况下,与服务器交换数据并更新部分页面内容,是 AJAX 技术的核心。 What is it used for? 异步请求:在…

【量化回测】backtracker整体架构和使用示例

backtrader整体框架 backtrader 是一个量化回测的库,支持多品种、多策略、多周期的回测和交易。更重要的是可以集成 torch 等神经网络分析模块。Cerebro类是 backtrader 的核心。Strategy类、Broker和Sizer类都是由Cerebro类实例化而来。 整体流程 backtrade 自带的…

【python+requests】一键切换测试环境:Windows 下环境变量设置指南

一键切换测试环境:Windows 下环境变量设置指南教你如何通过一个命令让测试脚本自动识别不同环境的配置文件你是否遇到过这种情况:同一套测试脚本,需要在测试环境、开发环境、预发布环境、生产环境等多种配置中切换?每次都要手动修…

备份压缩存储优化方案:提升效率与节省空间的完整指南

在数字化时代,数据备份已成为企业运营的关键环节。本文将深入探讨备份压缩存储优化方案,从技术原理到实施策略,为您提供一套完整的存储空间节省与性能提升解决方案。我们将分析不同压缩算法的适用场景,揭示存储架构优化的关键技巧…

【图像算法 - 25】基于深度学习 YOLOv11 与 OpenCV 实现人员跌倒识别系统(人体姿态估计版本)

摘要: 本文将详细介绍如何利用先进的深度学习目标检测算法 YOLOv11 结合 OpenCV 计算机视觉库,构建一个高效、实时的人员跌倒识别系统。跌倒检测在智慧养老、安防监控、工业安全等领域至关重要。我们将从环境搭建、数据准备、模型训练到跌倒行为判断逻辑…

数据结构--栈(Stack) 队列(Queue)

一、栈&#xff08;Stack&#xff09;1. 栈的定义栈&#xff08;Stack&#xff09;是一种 先进后出&#xff08;LIFO, Last In First Out&#xff09; 的数据结构。就像一摞书&#xff1a;最后放的书最先拿走。2. 栈的常用方法&#xff08;Stack 类&#xff09;Stack<E> …

FART 主动调用组件深度解析:破解 ART 下函数抽取壳的终极武器

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ FART 的主动调用组件 在 Android 逆向与脱壳领域&#xff0c;早期的自动化脱壳方案&#xff08;如 DexHunter、FUPK3&#xff09;主要运行在 Dalvik 环境&…

基于有限元分析法的热压成型过程中结构变形和堆积matlab模拟与仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.部分程序 4.算法理论概述 5.完整程序 1.程序功能描述 在压印过程中&#xff0c;一般情况下&#xff0c;我们遵循质量&#xff0c;动量和能量守恒的原则进行仿真。然后建立偏微分方程组&#xff0c;然后通过有限元的…

CF每日3题(1500-1600)

1809C 神必构造题 对子数组的和考虑使用前缀和&#xff0c;发现逆序对的规律&#xff0c;构造1797C 神奇交互题 需要找特殊的点确定位置2132D 神奇数位题 需要用二分logk优化复杂度&#xff0c;把数位转换成能到的上限数aim 1809C 构造 前缀和 逆序对 思维 排序 1500 /* 神必构…

Linux学习——sqlite3

1.sqlite3的使用1.打开数据库sqlite3 stu.db //database2.操作输入 sqlite3&#xff0c;进入软件后&#xff0c;输入 sqlite3 软件自带的命令&#xff08;.help&#xff0c;.databases&#xff0c;quit&#xff0c;.exit&#xff09;3.增删改查增CREATE TABLE database_name.…

【线性代数基础 | 那忘算9】基尔霍夫(拉普拉斯)矩阵 矩阵—树定理证明 [详细推导]

之前学的不扎实导致现在还得回来再学。 专栏指路&#xff1a;《再来一遍一定记住的算法&#xff08;那些你可能忘记了的算法&#xff09;》 前置知识&#xff1a; 生成树&#xff1a;在一个无向连通图中&#xff0c;能够连接所有顶点的树结构。 点的度数&#xff1a;与这个点…

Chrome高危零日漏洞PoC公开,已被用于野外攻击

谷歌此前披露了Chrome浏览器V8 JavaScript引擎中存在一个高危零日漏洞&#xff08;CVE-2025-5419&#xff09;。而在近日&#xff0c;该漏洞的概念验证&#xff08;PoC&#xff09;利用代码已被公开。相关补丁已经发布&#xff0c;用户应尽快进行更新。 **核心要点** 1. CVE-2…

HTTP 接口调用工具类(OkHttp 版)

说明 HTTP 基本知识序号方法请求体描述1GET一般没有&#xff0c;可以有从服务器获取资源。用于请求数据而不对数据进行更改。例如&#xff0c;从服务器获取网页、图片等。2POST有向服务器发送数据以创建新资源。常用于提交表单数据或上传文件。发送的数据包含在请求体中。3PUT有…

Spring/Spring MVC/iBATIS 应用 HTTP 到 HTTPS 迁移技术方案

Spring/Spring MVC/iBATIS 应用 HTTP 到 HTTPS 迁移技术方案概述本方案详细介绍了将基于 Spring、Spring MVC 和 iBATIS 的传统 Java Web 应用从 HTTP 迁移到 HTTPS 的完整流程。这种传统架构的迁移需要考虑更多手动配置和兼容性问题。一、环境评估与准备工作1.1 当前环境分析首…

多智能体系统设计:5种编排模式解决复杂AI任务

当你有一个由研究员、文案、数据分析师和质检员组成的团队时&#xff0c;如果没有合理的协调机制&#xff0c;再优秀的个体也可能产生冲突的结论、停滞的流程&#xff0c;或者解决错误的问题。AI智能体同样如此。 随着系统从单体模型向多智能体架构演进&#xff0c;编排成为核…

CVPR上的多模态检索+视频理解,LLM助力提效翻倍

关注gongzhongaho【CVPR顶会精选】多模态研究正处在爆发期&#xff0c;从图文融合到视频、语音、传感器数据&#xff0c;模型能力边界不断扩展。顶会顶刊已将其视为具身智能与通用AI的核心方向。但写论文时常遇到痛点&#xff1a;方法多、任务杂&#xff0c;缺乏统一框架&#…

Docker部署单节点使用KRaft模式的Kafka3.8.0版本与可视化界面Kafka-Map

记录一下Docker部署单节点Kafka与部署可视化界面KafkaMap容器 目录 一、Kafka早已经弃用了ZooKeeper 二、Docker部署单机版Kafka 1、--name kafka-server 2、--network kafka-stand 3、--restart unless-stopped 4、-p 9092:9092 5、-p 9093:9093 6、-e ALLOW_PLAINTE…