數字IC后端培訓教程之數字后端項目典型案例分析

今天給大家分享下最近小編幫助學員解決的幾個經典數字IC后端項目問題。希望能夠對大家的學習和工作有所幫助。

數字IC后端項目典型問題之后端實戰項目問題記錄(2025.04.24)

數字IC后端設計實現培訓教程(整理版)

Q1: 老師好,我這個placement后from A7CORE0的path報了-3ns的wns,高亮了這條路徑之后是這樣的,為啥a7core0的pin不直接連到iso cell,而是在a7core子模塊上繞了一大圈再連到isolation cell?

在這里插入圖片描述
在這里插入圖片描述

這里有timing violation主要是長線帶來的transition問題和delay問題。通過時序報告和layout高亮的路徑上看,這條路徑上沒有任何的buffer和inverter,但工具在做early global route的時候卻給規劃了這么一條虛擬走線。

在這里插入圖片描述
這種一半是屬于工具early global route的bug。但我們自己在做子模塊lef的時候也存在一定的瑕疵,某些layer的cell blockage沒有蓋全導致工具在cell blockage和pg pin中間見縫插針,規劃了幾根走線。

在這里插入圖片描述

Q2:在跑Calibre LVS的時候出現了一條路徑短路,是從vss到一個io口,在innovus里顯示看了一會不知道咋看?

登錄服務器端口看到這個學員已經把Calibre LVS Short報告導入到Innovus中,說明它已經掌握到LVS debug分析的基本流程。1)查看LVS short報告2)查看LVS GDS抽取報告3)查看LVS結果報告
在這里插入圖片描述
隨意選中一個short定位到具體位置后,從高亮的位置我們就可以看出PG Rail VSS和一顆cell輸出pin對應的net短路了!而且是M1搭在一起了!

在這里插入圖片描述
出現這個short主要原因是該學員在PR實現過程中使用了M1進行繞線!圖中所示的short位置是Decap Cell的M1 VSS PG Pin。

如果使用的是普通Filler Cell也不會出現這個問題。但這個DRC正常在innovus中就可以檢查出來的。我們接著在innovus中執行verify_drc,其結果如下圖所示。

在這里插入圖片描述
我們很清楚看到確實存在大量M1的short。

在這里插入圖片描述
所以,我們如果想在當前database上做一些修復,我們可以在verify_drc后執行ecoRoute即可自動修復。當然我們還是建議在PR實現全流程嚴格控制global route和nanoroute的layer范圍為M2-M6。

Q3: 跑完a7top routing后NanoRoute DRC Violation如下圖所示。請問老師,這類DRC Violation應該如何分析和修復?

Innovus DRC Violation和Calibre DRC Violation分析和修復案例
在這里插入圖片描述

通過DRC Violation定位,我們發現主要short集中在cpu2和cpu3附近。低層的M2-M5 Short Violation是因為該學員在擺放子模塊兩個power switch cell串鏈信號時使用了M1出pin,而子模塊身上是蓋了M1-M6的routing blockage。

在這里插入圖片描述
所以低層的short可以通過調整子模塊這兩個io port的出pin layer(使用橫向的Metal6即可)。值得注意的是子模塊cortexa7core_1 改完io port位置后務必更新一個最新的lef給a7top,否則后續會出現open net的情況。

在這里插入圖片描述
其他short主要位于以下紅色框框區域。通過高亮可以發現這里的確存在異常——局部區域的cell density高達92%!

在這里插入圖片描述
看到這里第一反應就是查看這個位置是否有region這種physical constraint。這里需要切換到floorplan view查看。因為某個module region規劃得太小也很容易出現這種現象。

數字IC后端教程之Innovus hold violation幾大典型問題
在這里插入圖片描述
經過分析發現,該學員并沒有在這個位置加region。

在這里插入圖片描述
這時候我們就要分析為何工具在這個位置擺放了這么多cell?

這些cell是什么階段加入的,加入的動機是什么?任何選中一顆cell后,我們可以報報看through這顆cell的timing path。

在這里插入圖片描述

從這條timing path上看,我們就發現該區域存在大量PHC的buffer。從名字上看我們就知道這是工具修hold violation加入的。而且是為了修從cpu出發到頂層reg的hold violation而加入的。為了查看這個區域插入的hold buffer數量,我們可以在innovus中高亮出所有hold buffer(當然也可以通過dbQuery來獲取指定區域的hold buffer)。從innovus顯示的數據看,當前設計工具共插入了12304個hold buffer。

在這里插入圖片描述
另外,我們還發現工具居然在子模塊的output pin和isolation的I pin中間插了buffer! 也就是說即便要插hold buffer也不能插在當前這個位置。出現這個現象只有一個原因!a7top PR實現階段使用的upf沒有成功讀入。

經過debug發現,該學員在跑placement時執行了free_power_intent命令!

為了對比不同階段的hold buffer插入情況,我們又打開postCTS的數據,我們發現這個階段做完hold violation fixing后總插入的hold buffer數量是7920個!

【思考題】為何兩個階段插入的hold buffer數量有個突變呢?

在這里插入圖片描述
由于咱們提供的后端flow是在postCTS修hold之前會保存一個單獨的database,所以我們此時可以打開修hold violation之前的hold情況。

經過分析發現的確存在FROM_CPU的hold violation,數值還比較大,而且TO_CPU的hold WNS都是大于0的!這是不是說明FROM_CPU和TO_CPU的timing往一邊飄?是否有機會通過調整各個子模塊的clock tree長度來優化呢?

在這里插入圖片描述
所以,遇到這類情況,我們主要可以通過以下幾種方法來修復。

1)調整clock tree,把頂層reg和子模塊reg的clock tree做balance

2)PR Flow中控制CPU接口相關的hold violation fixing的范圍,不要過修

3)在各個cpu子模塊門口添加blockage array陣列(降低local density)

blockage array減輕congestion方法
最后,小編還發現如下這類timing path也存在過渡優化的情況!這類timing path完全可以設置multicycle path!

在這里插入圖片描述
hold violation原因分析及hold violation修復方法
【思考題】在跑完placement后我們會檢查isolation cell的input是否有被插入buffer或inverter,請問下圖所示的路徑是否正常?該學員反饋這類timing path存在異常,請問對嗎?

低功耗設計isolation cell input能否插buffer?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/79543.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/79543.shtml
英文地址,請注明出處:http://en.pswp.cn/web/79543.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

window 顯示驅動開發-將虛擬地址映射到內存段(二)

在將虛擬地址映射到段的一部分之前,視頻內存管理器調用顯示微型端口驅動程序的 DxgkDdiAcquireSwizzlingRange 函數,以便驅動程序可以設置用于訪問可能重排的分配位的光圈。 驅動程序既不能將偏移量更改為訪問分配的 PCI 光圈,也不能更改分配…

Termius ssh連接服務器 vim打開的文件無法復制問題

你的問題是: ? 在 Termius (macOS) SSH 連接到 VMware Ubuntu,使用 vim 打開 .cpp 文件時,可以復制文本; ? 但在 Windows 10 上 SSH 到 VMware 的 Red Hat 6.4 時,復制操作無效。 ? 🎯 初步分析 復制…

楊校老師項目之基于SSM與JSP的鮮花銷售系統-【成品設計含文檔】

基于SSMJSP鮮花商城系統 隨著電子商務的快速發展,鮮花在線銷售已成為一種重要的消費模式。本文設計并實現了一個基于JSP技術的鮮花銷售管理系統,采用B/S架構,使用SSM框架進行開發,并結合Maven進行項目依賴管理。系統分為前臺用戶模…

集成學習——Bagging,Boosting

一.什么是集成學習 集成學習的基本思想是通過結合多個基學習器的預測結果,來提高模型的泛化能力和穩定性。這些基學習器可以是相同類型的算法,也可以是不同類型的算法。 當基學習器之間具有一定的差異性時,它們在面對不同的樣本子集或特征子…

【筆試訓練】給一個數組構建二叉樹|從前序遍歷與中序遍歷構建二叉樹|二叉樹中的最大路徑和

文章目錄 1.給一個數組構建二叉樹2.從前序遍歷和中序遍歷構建二叉樹3.二叉樹中的最大路徑和 1.給一個數組構建二叉樹 思路:就是借助一個隊列實現層序遍歷的思想。 先將root節點入隊列,構造左右節點后,root取出來時,將其左右孩子都…

Swift實戰:如何優雅地從二叉搜索樹中挑出最接近的K個值

文章目錄 摘要描述題解答案題解代碼分析示例測試及結果時間復雜度空間復雜度總結未來展望 摘要 在日常開發中,我們經常會遇到“在一堆數據中找出最接近某個值”的需求。尤其在搜索引擎、推薦系統或者地理坐標匹配中,這種“最近匹配”的問題非常常見。Le…

Linux512 ssh免密登錄 ssh配置回顧

下載MX 官網 參考 OK 登個tom試試 然后再計劃登個RealServer 計劃再用僅主機網卡試試 連不上 看來要通過JumpServer再聯 通過網卡訪問 被踢掉了 成功通過跳板機JumpServer登入到RealServer 方法一免密登錄 現計劃嘗試方法二 只有1個tom 我連了兩個tom 看來是根據IP劃…

編譯原理AST以Babel為例進行解讀、Webpack中自定義loader與plugin

AST樹詳解 編譯原理 主要研究如何將高級編程語言的源代碼轉換為機器能理解的目標代碼(通常是二進制代碼或中間代碼)。編譯器的底層實現通常包含多個階段,包括詞法分析、語法分析、語義分析和代碼生成。 一、AST的核心概念與作用 AST&#…

51c大模型~合集127

我自己的原文哦~ https://blog.51cto.com/whaosoft/13905076 #Executor-Workers架構 圖解Vllm V1系列2 本文詳細介紹了vllm v1的Executor-Workers架構,包括Executor的四種類型(mp、ray、uni、external_launcher)及其適用場景&#xff…

《Effective Python》第1章 Pythonic 思維詳解——深入理解流程控制中的解構利器match

《Effective Python》第1章 Pythonic 思維詳解——深入理解流程控制中的解構利器match 引言 Python 3.10 引入了全新的 match 語句,它不僅是一個“類 switch”的語法結構,更是一種**結構化模式匹配(structural pattern matching&#xff09…

Nacos源碼—8.Nacos升級gRPC分析五

大綱 7.服務端對服務實例進行健康檢查 8.服務下線如何注銷注冊表和客戶端等信息 9.事件驅動架構源碼分析 7.服務端對服務實例進行健康檢查 (1)服務端對服務實例進行健康檢查的設計邏輯 (2)服務端對服務實例進行健康檢查的源碼 (3)服務端檢查服務實例不健康后的注銷處理 (…

[手寫系列]Go手寫db — — 完整教程

[手寫系列]Go手寫db ZiyiDB是一個簡單的內存數據庫實現,支持基本的SQL操作,包含create、insert、delete、select、update、drop。目前一期暫支持int類型以及字符類型數據,后續會支持更多數據結構以及能力。本項目基于https://github.com/eato…

十三、動態對象創建(Dynamic Object Creation)

十三、動態對象創建(Dynamic Object Creation) 目錄 13.1 對象創建(Object creation)13.2 new / delete 操作符13.3 數組的 new 與 delete13.4 總結 背景說明 有時候我們需要知道程序中對象的數量、類型和聲明周期,…

一、網絡基礎

IPv4:32位二進制 -- 點分十進制標識 192.168.1.1(連續的32位,為了好看方便每8位一段) IPv6:128位二進制 IP(Internet協議) 洪泛:除流量進入接口外的所有接口的復制 OSI模型&#…

前端面試測試題目(一)

一、Vue的雙向綁定機制(v-model底層實現原理) Vue的雙向綁定核心由 響應式系統 和 指令語法糖 共同實現,具體原理如下: 響應式系統 Vue通過數據劫持和依賴收集實現數據變化到視圖的同步: ? 數據劫持:在Vue…

我用Deepseek + 亮數據爬蟲神器 1小時做出輿情分析器

我用Deepseek 亮數據爬蟲神器 1小時做出輿情分析器 一、前言二、Web Scraper API 實戰(1)選擇對應的URL(2)點擊進入對應url界面(3)API結果實例和爬取結果展示(4)用戶直接使用post請…

機器學習實戰:歸一化與標準化的選擇指南

在機器學習實戰中——是否需要歸一化(Normalization)或標準化(Standardization),取決于所使用的模型類型。 ? LightGBM / XGBoost 是否需要歸一化或標準化? 不需要。 🔧 原因: L…

磁珠特點,原理與應用

什么是磁珠? 磁珠在1930年由日本東京工業大學的加藤與五郎和武井武兩位教授發明,TDK首次生產,是電感的一種,區別就是:電感外面包裹著鐵氧體材質。 因鐵氧體具有高電阻率,低渦流損耗,高頻時依舊…

【連載14】基礎智能體的進展與挑戰綜述-多智能體系統設計

基礎智能體的進展與挑戰綜述 從類腦智能到具備可進化性、協作性和安全性的系統 【翻譯團隊】劉軍(liujunbupt.edu.cn) 錢雨欣玥 馮梓哲 李正博 李冠諭 朱宇晗 張霄天 孫大壯 黃若溪 在基于大語言模型的多智能體系統(LLM-MAS)中,合作目標和合…

React Native踩坑實錄:解決NativeBase Radio組件在Android上的兼容性問題

React Native踩坑實錄:解決NativeBase Radio組件在Android上的兼容性問題 問題背景 在最近的React Native項目開發中,我們的應用在iOS設備上運行良好,但當部署到Android設備時,進入語言設置和隱私設置頁面后應用崩潰。我們遇到了…