使用Cadence工具完成數模混合設計流程簡介

眾所周知,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…