數字IC后端培訓教程之數字IC后端項目典型問題解析

今天給大家分享下最近幾個典型的數字后端項目案例,希望對大家的學習和工作有所幫助。

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

Q1:星主,有啥辦法可以看到refinePlace或者ecoPlace都動到了那些inst嗎,log里只會有mean和max move,是不是只能寫腳本抓全部inst,看看前后inst位置有沒有變化?

工具本身不支持報告所有被挪動的instance。但一般做timing eco階段我們要密切關注log中報告的instance挪動的數量。這個數量要盡量小,否則對于高性能設計很容易出現timing惡化的情況。

順帶分享下高性能設計在做Timing ECO或Function ECO時的一個策略——做之前先把原先的所有instance都fixed住,這樣可以確保后續refinePlace或ecoPlace過程不會動到其他不該動的instance。


set all_cells [get_cells -hier -filter "@is_hierarchical == false " -physical ]
set fixed_cells [filter_coll $all_cells "@is_fixed == true"]
set_attr $all_cells is_fixed true -q
source  $timing_eco_script
place_eco_cells  -eco_changed_cells -legalize_only -legalize_mode

refinePlace和ecoPlace使用區別和聯系
Q2:老師好,我t28項目routeopt一直優化不下去,我重新做了三次,routeopt連續優化了五次,第一次優化需要4個小時,wns從-2.0ns多變成-0.6ns,之后再優化一直在在0.6左右,wns最好的一次在400多ps,您可以看看是什么原因嗎 ?

在這里插入圖片描述
單純從上面的timing summary報告,我們發現WNS最大的是在reg2reg group path上,而且WNS高達-674ps!

而且我們看到當前設計的Density也才62.5%。這說明當前violation并非面積不夠導致的。

接下來我們具體來看看這條674ps timing violation的具體路徑以及layout上這條path是如何走的。

在這里插入圖片描述
史上最全的數字IC后端設計實現培訓教程(整理版)

把這條timing path高亮在layout上后如下圖所示:

在這里插入圖片描述

從這里很直觀看到繞線后存在比較嚴重的routing detour!

從上面那條timing path的具體路徑也可以看到存在一大堆的buffer和inverter。下圖所示框出來的部分全部都是普通inverter(從邏輯設計角度,這些inverter都是不需要的)!

在這里插入圖片描述

這里也可以用咱們直播課講的快速獲取timing path邏輯深度和普通buffer,inverter的腳本來快速獲取到buffer和inverter的級數。

在這里插入圖片描述

從上面獲取的結果得知,這條timing path上存在30顆buffer,inverter! 所以這條timing path是極度不合理的。

那為了定位哪個階段開始timing變成了,我們需要打開postCTS后的時序summary。

從下面這個postCTS的timing summary報告看到postCTS做完timing是一片大好!所以問題就出現在繞線階段。

在這里插入圖片描述

在這里插入圖片描述

Q3:拿到一個新工藝,PR物理實現階段要使用的ENDCAP Cell,Tap Cell,Antenna Cell,長clock tree使用的clock inverter cell應該如何確定?這些cell名字要從哪里獲取到?還有我們訓練營項目中設置的那些dont use cell 列表又是從哪里獲取的呢?

在這里插入圖片描述

Q4:請問如下所示的Metal Short應該如何修復?

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

Q5: 在做T12nm A55 chipfinish后發現存在好幾個VDD_CORE的open問題,而且看起來是出現在power off domain中帶secondary pg pin的tap cell VPP pin上,請問應該如何修復?另外做Calibre LVS檢查也報告了有個io port和VSS short問題,高亮如下圖所示,請問這個是什么問題呢,應該如何進行修復?

在這里插入圖片描述

在這里插入圖片描述

從高亮的圖形及位置很明顯是報在tap cell的VPP pin上。而且這個學員發現這個M1 VPP Pin已經通過via1,m2,via2和m3連通了,所以該學員認為這個不能算open。
我們說判斷一個pg pin(邏輯連接到VDD_CORE)是否open,核心是看它和最高層的VDD_CORE是否有實際的物理連接通路。所以,在咱們T12nm A55項目中這個M3還需要連接到M9的VDD_CORE!

下圖所示為其他tap cell VPP Pin連接正常的截圖。從這張圖可以看到連接Tap Cell VPP pin的M3會通過via3過渡到M4,然后在拉到power switch cell上的Global VDD_CORE mesh上(M1到M9的物理通路就建立起來了)。

在這里插入圖片描述

關于pd_dwn_ack串鏈信號跟VSS Short問題,小編通過選中這個io port,發現它的邏輯net是VSS,這就說明這根信號目前是連接到1’b0!但對于需要連接到1’b0的信號,都必須通過Tie Low cell再到VSS。
這類串鏈信號如果設計中的確要用到,則需要連接到power switch cell上的Nsleep信號上。

在這里插入圖片描述

所以這里大概率就是該學員在PR Flow中沒有做addTieHiLo這個步驟。而且對于設計中包含多個power domain的設計,還需要分別對每個power domain來添加tie cell。
setTieHiLoMode -prefix Tie -maxFanout 8 -maxDistance 20 -cell “TIEHBWP16P90CPD TIELBWP16P90CPD”

##addTieHiLo

addTieHiLo -powerDomain PD_PSO
addTieHiLo -powerDomain PD_AW_ON

Q6: 星主,用的是innovus請教個兩個問題①我的模塊是細長的模塊,模塊高度達到8000um,我想 極限做短時鐘latency 有沒有什么方案?②我看了cts skewgroup報告,比如skewgroup報告里 某個時鐘顯示的最大latency 700ps,但我打開cts timingreport 報告里面,從port端口到該時鐘 某個reg的latency達到了900ps,和skewgroup里不一致,這個是什么原因?
細長的模塊通常有DDR,顯示相關控制芯片。這種形狀通常會有明顯的timing和congestion問題。
想得到timing和drc上一個比較好的結果,我們就需要從以下幾方面入手:
1)clock tree長度做到最短。clock tree上主干時鐘的clock cell都需要手工引導工具做擺放。這種做法類似咱們社區復雜時鐘clock gen項目使用的manually place clock cell方法來做短clock tree長度。
2)設計中的各個module擺放也需要按照data flow人工干預,比如通過添加region等方式。

clock tree latency不一致主要有兩個原因:
skew group report里面的clock tree latency是不包含ocv derating的
PR flow中使用useful skew也會導致工具會調整clock tree長度來優化timing

Q7: 匿名用戶 提問:星主,想請問通常會對icg 的enable close pin 設定負的insertion delay去減少icg 的setup time 問題,還是對于icg帶的sink 端設insertion delay 才是正確的?

對ICG的clock pin設置insertion delay,但需要注意這樣設置后,clock tree只能長到ICG 時鐘pin,從ICG輸出到后面寄存器Clock pin這段會漏clock tree。所以需要在ICG輸出定義時鐘,并把ICG和后面帶的寄存器擺放在一起。

clock skew特別大,都是什么原因引起的?

Q8: 為何checkPlace結果會有5個cell orientation的錯誤?

在這里插入圖片描述

這個很明顯是這幾個cell的VSS PG Pin和VDD Power Rail重合了!需要把這幾個cell沿著X軸做一個鏡像!這個問題后續checkConnectivity和Calibre LVS也會報short錯誤。

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

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

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

相關文章

網絡(數據庫1)

常用數據庫: 1.關系型數據庫: 將復雜的數據結構簡化為二維表格形式 大型:0racle、DB2 中型:MySq1、sQLServer 小型:Sqlite 2.非關系型數據庫以鍵值對存儲,且結構不固定。//JSON Redis MongoDB數據存儲:變量、數組、鏈表 內存 &…

6.刪除-demo

在連接數據庫的基礎上deleteResult, err : db.Exec("DELETE FROM user0 WHERE id ?", 1)package main//刪除-demoimport ("database/sql""fmt"_ "github.com/go-sql-driver/mysql""log" )func main() {db, err : sql.Open…

人機協作系列(四)AI編程的下一個范式革命——看Factory AI如何重構軟件工程?

最近這段時間,我發現一個很有意思的現象:那些曾經對 AI 編程工具持懷疑態度的技術領袖們,態度正在集體轉變。就像 Flask 的作者 Armin Ronacher,他之前還說 “不敢授權 AI”,現在卻坦言 “愿意將工程主導權交給編程代理…

在javaScript里刪除節點以及添加節點

1.在javaScript里刪除節點在學習中我們只學到了一種刪除DOM節點的方法那就是通過元素的父元素來刪除該元素,但后面我查閱資料發現刪除節點還有其他方法。1.使用 removeChild() 方法(最常用)我們需要獲得元素的父元素,如果不知道可…

貪心算法題解——跳躍游戲【LeetCode】

55. 跳躍游戲 一、算法邏輯(逐步思路) 問題描述: 給定一個非負整數數組 nums,其中 nums[i] 表示從位置 i 最多可以跳躍的步數。 從起點 0 出發,判斷是否能夠到達最后一個位置。 解題思路: 設一個變量 mx…

復現永恒之藍

一.打開msf找到永恒之藍的漏洞直接運行這個漏洞二.查詢這個漏洞模塊需要配置的參數配置攻擊主機的ip三.沒有做免殺的話,記得關閉防火墻四.直接運行這里已經顯示拿下目標主機五.測試給目標主機添加一個文檔六.查看目標主機有沒有剛才編寫的文檔

游戲行業中的惡夢:不斷升級的DDoS攻擊

近年來,游戲行業快速發展,成為全球娛樂市場的重要組成部分。然而,伴隨著這一行業的繁榮,網絡安全問題也隨之而來。游戲公司面臨著一種特殊的威脅:分布式拒絕服務(DDoS)攻擊。這種攻擊不僅對公司…

2025年自動化工程、物聯網與計算機應用國際會議(AEITCA 2025)

2025年自動化工程、物聯網與計算機應用國際會議(AEITCA 2025) 2025 International Conference on Automation Engineering, Internet of Things, and Computer Applications一、大會信息會議簡稱:AEITCA 2025 大會地點:中國西安 審…

Gartner《JavaScript: Top Use Cases, Frameworks and Architecture Constraints》學習心得

《JavaScript: Top Use Cases, Frameworks and Architecture Constraints》是一份面向企業技術決策者、軟件架構師與高級工程師的系統性研究筆記。全文以“何時用 JavaScript、如何用好 JavaScript”為主線,從語言特性、運行時差異、適用場景、主流框架、架構約束、生態現狀、…

比較vue和react框架

目錄 一、基礎語法 1.1、模板 vs JSX 1.2、指令 1.2.1、v-for vs Array.map 1.2.2、v-if vs 三元運算符或者&& 1.2.3、v-bind vs 直接在JSX里寫{變量} 1.2.4、v-show vs style和className 1.2.5、v-html vs dangerouslySetInnerHTML 1.3、數據綁定 1.4、數據…

插板式系統的“生命線“:EtherCAT分布式供電該如何實現?

在ZIO系列插板式模組系統中,EtherCAT分布式供電如同設備的血液循環網絡,其供電穩定性直接決定系統可靠性。本文將從電流計算到電源擴展,為您講解EtherCAT分布式供電該如何實現。ZIO系列插板式模組的電源介紹ZIO系列插板式I/O模塊 是ZLG開發的…

Qwen2-VL:提升視覺語言模型對任意分辨率世界的感知能力

溫馨提示: 本篇文章已同步至"AI專題精講" Qwen2-VL:提升視覺語言模型對任意分辨率世界的感知能力 摘要 我們提出了 Qwen2-VL 系列,這是對先前 Qwen-VL 模型的重大升級,重新定義了視覺處理中傳統的預設分辨率方法。Qwe…

C++類模版與友元

全局函數類內實現-直接在類內聲明友元即可全局函數類外實現-需要提前讓編譯器知道全局函數的存在#include <iostream> using namespace std;//通過全局函數來打印Person的信息template<class T1,class T2> class Person{//全局函數&#xff0c;類內實現friend void…

Linux Java環境配置

1.進入java官網&#xff0c;點擊Java archive Java Downloads | Oracle 中國https://www.oracle.com/cn/java/technologies/downloads/ 2.然后下滑選擇你要安裝的java版本&#xff0c;這里我選擇的是java8 3.依據系統架構選擇版本安裝&#xff0c;x86&#xff0c;x64&#xf…

flutter app內跳轉到其他安卓 app的方法

flutter 內的關鍵代碼導包&#xff1a;url_launcher: ^6.3.1跳轉邏輯&#xff1a;onPressed: () async {await launchUrl(Uri.parse(demoname://));},安卓內的關鍵代碼<intent-filter><action android:name"android.intent.action.VIEW" /><category …

醫療資質OCR智能審核:讓合規管理更高效、更精準

在醫療行業&#xff0c;資質證件的審核是確保機構合規運營的關鍵環節。從醫療機構執業許可證到醫師資格證&#xff0c;從藥品經營許可證到醫療器械注冊證&#xff0c;傳統人工審核方式效率低下且容易出錯。現在&#xff0c;醫療資質OCR智能審核解決方案正在重塑行業標準&#x…

利用 Spring 的 `@Scheduled` 注解結合簡單的狀態跟蹤實現空閑檢測方案

一種基于定時任務和簡單狀態跟蹤的方法: 實現思路 記錄用戶的最后活動時間:每當用戶進行某些操作(如點擊、請求等),更新其最后活動的時間戳。 使用定時任務檢查用戶是否空閑:設置一個后臺任務,定期檢查每個用戶的最后活動時間,判斷是否超過了設定的空閑時間閾值。 執行…

如何在 Ubuntu 上安裝 Microsoft Edge 瀏覽器?

Microsoft Edge 是 Microsoft 在2015年開發的跨平臺瀏覽器&#xff0c;最初是建立在他們自己的瀏覽器引擎和 Chakra JavaScript 引擎之上的&#xff0c;此瀏覽器可防止惡意網站和下載文件。 本文將幫助您在 Ubuntu 系統上安裝 Microsoft Edge 瀏覽器。 1: 下載 Edge Browser …

16路串口光纖通信FPGA項目實現指南 - 第二部分(下)

16路串口光纖通信FPGA項目實現指南 - 第二部分&#xff08;下&#xff09; 五、核心控制邏輯實現&#xff08;接收部分&#xff09; 5.4 數據接收控制邏輯 // 接收數據寄存邏輯 reg rs422_rx_valid; // 接收數據有效信號 reg [15:0] rs422_rx_data; // 接收數據寄存器…

前后端分離項目的完整部署(Jenkins自動化部署)

人工部署方式&#xff0c;參考文章&#xff1a; 前后端分離項目的完整部署&#xff08;人工部署&#xff09;-CSDN博客 目標 在Windows操作系統上&#xff0c;使用Jenkins完成源代碼的自動拉取、編譯、打包、發布工作。 項目背景 前端使用vue&#xff0c;程序打包后為dist目…