數字IC后端零基礎入門基礎理論(Day2)

數字IC后端零基礎入門基礎理論(Day1)

Placement Blockage: cell擺放阻擋層。它是用來引導工具做placement的一種物理約束或手段,目的是希望工具按照我們的要求來做標準單元的擺放。

它主要有三種類型,分別是hard placement blockage,soft placement blockage和partial placement blockage。

hard blockage所在的位置工具是無法擺放任何標準單元的,soft blockage所在位置只能擺放buffer和inverter,partial blockage所在位置可以擺放任何cell,但是工具工具可以根據我們設置的擺放比例,比如某個區域擺放太多標準單元可能會導致繞線問題,但近擺放buffer和inverter又浪費面積,那我們就可以設置一個可以擺放cell的比例來控制這區域的density密度來緩解潛在的繞線問題。

數字后端零基礎入門系列 | Innovus零基礎LAB學習Day1

數字后端零基礎入門系列 | Innovus零基礎LAB學習Day2

Halo:它和hard placement blockage功效是一致的。當我們給memory添加Halo時,隨著memory的移動,這個Halo也會隨著移動。而blockage則沒有這個特性。

Routing Blockage: 繞線阻擋層。它是用來引導工作做routing繞線的一種物理約束或手段,目的是希望工具按照我們的要求來做routing。

所以placement blockage和Routing blockage相同的地方是它們都是作為阻擋層的約束條件,區別是前者是阻擋工具做擺放的阻擋層,后者是阻擋工具做繞線的阻擋層。

Innovus 支持四種類型的物理布局約束,即soft guide,guide,region和fence。它們都是用來guide引導工具做placement的一種物理約束條件。

Soft Guide: 除了沒有固定位置外,soft guide約束類似于guide 約束。這為同一soft guide下的實例提供了更強的分組。soft guide約束不像fence 或region 約束那樣嚴格,因此如果某些實例與其他模塊有連接,則可能會將其放置得更遠。

Guide: guide 約束是innovus中所有約束中最松散的約束。它大致定義了一個區域,您指示工具在該區域內放置給定模塊的單元。

當模塊移動或放置在core區域內時,guide約束會自動分配給該模塊。如果未充分利用該區域,則不屬于該guide的模塊單元也可以放置在guide內部。同樣地,如果所述區域利用率過高,來自guide的模塊單元也可以被放置在該區域的外部。總而言之,guide是標準單元布局的軟指標,可以認為該區域“可以進,可以出”

Region: region約束也是一個松散約束。然而,它比guide更強大。定義region 時,它要求將region中所包含的所有單元都放置在指定的region區域中。如果該區域中有額外的空間,則可能放進其他模塊的單元。總而言之,一個region是標準單元布局的強約束,可以認為該區域“可以進,不可以出”

Fence:fence約束是Innovus 中最強的約束。即使未充分利用該區域,fence 約束也不允許將其他模塊的單元放置在該區域內。此外,fence 區域中的單元格不能放置在定義的區域之外。

fence具有是排他性的,盡管不是完全的。總而言之,fence 是單元位置的最強約束,可以認為該區域“不可以進,不可以出”。

在標準的Innovus GUI中,fences是深棕色的。

在innous中創建soft guide,guide,region和fence的命令:

createInstGroup groupName
addInstToInstGroup groupName hInstName or instName or groupName
createSoftGuide <moduleName/groupName>
createGuide <moduleName/groupName> llx lly urx ury
createRegion <moduleName/groupName> llx lly urx ury
createFence <moduleName/groupName> llx lly urx ury

Timing一致性和Module Region添加策略方法

Gcell(GRC): 全稱global routing cells。工具會把設計拆分成很多個Gcell,基于每個Gcell可以提供的繞線資源和實際需要占用的繞線資源來估算出每個Gcell的繞線是否可以繞通,所以它是工具用來估算Congestion用的。

對于特定大小的芯片,它的routing resource就是每層金屬的Pref Routing Track和Non-Pref Routing Track之和。而且工具在做繞線時會優先在Pref的routing track上走線。

在這里插入圖片描述

Routing Track: 它是指金屬走線的通道。工藝庫中會指定好每層金屬的track,它有默認方向的走線方向,比如M2的優先走線為水平方向,那么工具在走M2 routing的時候就會優先走水平方向。因此,對于一個給定大小的設計,繞線資源是固定的,即每層金屬的繞線track都是定好的。

數字后端零基礎入門系列 | Innovus零基礎LAB學習Day6
在這里插入圖片描述
在這里插入圖片描述

GR: Global Route。它又分為Early Global Route和Global Route。前者是指在placement,cts等階段做的虛擬繞線。

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

我們知道繞線過程可分為global route(全局繞線)和detail route(詳細繞線)。global route以gcell cell作為繞線參考網格,工具在繞線時會試圖尋找gcell中的最短path, gcell是用來產生congestion map(擁堵圖表),提前預估出當前設計是否存在繞線的風險。

Congestion: 從字面意思看就是擁塞,它是用來表征設計是否可以繞通。當我們說設計中存在較大congestion,往往就是指當前設計繞線大概率繞不通的情況。

Overflow:它是用來描述設計的congestion情況的。Overflow = Demand -Capacity。這個Overflow值工具會分成垂直方向和水平方向的Overflow,一般Overflow在1.5%內大概率是可以繞通。這個Overflow值一般可以在每個階段的Log中報出。

GRC為正方形,每個邊的尺寸通常為標準單元高度的兩倍。它會計算出GRC每條邊可用于布線的布線通道(track)的數目(Capacity),以及布線需要的布線通道的數目(Demand)。圖中畫出了一個GRC,邊上的數值即為Demand/Capacity。Demand – Capacity即為溢出(Overflow)的數目,如果存在Overflow,則Congestion Map中就會將GRC的那條邊進行高亮,Overflow越大,則顏色越偏向于暖色調(即紅色)。

在這里插入圖片描述

HotSpot: hotspot表征的是設計中congestion的熱點,它是用面積來表示hotspot的分數。如果這個分數越高代表的是這個位置有congestion的點比較多。所以這個位置附近就有比較聚集的congestion問題。

工具跑完會報出設計中最差的五個hotspot點。這里如果報出來的五個點的hotspot值小于150,我們認為當前設計不存在非常聚集性的congestion。此時,如果overflow值大于2%,也是有機會能繞通的。

在這里插入圖片描述

Macro/Block(宏單元):是一種由邏輯單元和物理單元組成的封裝單元。它可以看作是一個可重復使用的功能單元,包括多個邏輯電路單元的封裝,其功能一般比較復雜,比如存儲器、算術運算單元等。Macro一般包含Memory,第三方IP和我們自己做的子模塊。在Innovus中Macro和Block是同一個概念。

Std Cell: Standard Cell標準單元,它是foundary代工廠提供library中的基本功能cell,比如BUF,INVERTER都是標準單元cell。Std cell具有簡單的功能、相對較小的面積和較短的設計周期,適用于芯片設計中一些基本電路的設計。現在大部分的芯片設計都是基于foundary提供的library的Std cell的設計。

Macro擺放是需要工程師自己來擺放,不能用工具自己做placement。在擺放Macro時需要遵守以下幾大原則。

1.在core外圍放置宏單元

由于會產生大量的detour布線,在core內部放置宏單元會在布線過程中造成嚴重后果。這是因為宏單元等于布線的一個大blockage。同樣,將宏單元放置在core外圍使向這些宏單元供電變得更加容易,并減少了消耗大量功率的宏單元出現IR drop問題的可能性。

Floorplan Macro擺放原則

  1. 放置宏單元時考慮與已固定位置的單元之間的連接

當您決定宏單元位置時,您必須注意與已固定位置的單元 (如I/O和已布局的宏單元) 的連接。根據數據流,最好將宏單元放置在有關聯的已固定位置的單元附近。可以通過在EDA工具中的圖形用戶界面中顯示線路連接關系來檢查連接。

在這里插入圖片描述

  1. 調整宏單元的方向實現最小化引腳之間的距離
    在確定宏單元的方向時,還必須考慮引腳的位置和相應的連接。

在這里插入圖片描述

  1. 在宏單元周圍預留足夠的空間

對于常規的網絡布線和電源布線,您必須在宏單元周圍保留足夠的布線空間。在這種情況下,精確估計布線資源非常重要。使用擁塞圖來識別宏單元之間的hotspots ,并根據需要調整位置。

在這里插入圖片描述

  1. 盡可能減少宏單元之間的空白區域

除預留布線資源外,減少宏單元之間的空白區域可以增加標準單元的利用面積。選擇不同的寬高比 (如果該選項可用) 可以消除宏單元之間的空白區域。

在這里插入圖片描述

  1. 為電源網絡預留空間

所需電源布線的數量會根據功耗而變化。您必須估算功耗并為電源網絡預留足夠的空間。如果您低估了電源網絡所需的空間,則可能會遇到布線問題。
在這里插入圖片描述

IO Port /IO Terminal:

首先通過兩個圖來說明port和terminal的概念。port其實就是block level模塊的端口或接口信號。

在netlist會這樣來描述。module design_name (port1,port2,port3, …,portn ); 這里的port1直至portn為當前設計模塊的輸入和輸出端口。對應描述的就是一個帶功能的黑盒子。

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

但在數字后端PR實現時需要把這個邏輯連接轉成物理連接,即要做metal的連接。顯然這個port是邏輯的存在,無法與metal進行一個物理連接。因此,PR階段就引入了terminal的概念,在擺放port時會在這個port上面create一個terminal,即一塊metal shape,而且這個terminal是和這個port是一一對應的。這樣后續工具繞線時就可以通過這個terminal的metal shape進行實際的物理連接。

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

而pin是指對于cell來說的,比如下面這塊AOI cell,它總共有四個pin,其中有三個輸入pin,分別是A2,B1,B2,還有一個輸出pin ZN。 每個cell都有它的功能,所謂的功能就是這個cell它能干什么。功能可以根據標準單元庫文檔的真值表得知。舉個簡單的例子,普通inverter,它的功能就是起到數據取反的功能。一個cell要具備特定的功能就肯定要有特定的引腳,就是這里說的pin。這里就可以理解成人要有正常的功能,它就必須有手有腳。通過手腳大腦等才能充分發揮人的功能。

在這里插入圖片描述

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

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

相關文章

如何遠程執行腳本不留痕跡

通常我們在做遠程維護的時候&#xff0c;會有這么一個需求&#xff0c;就是我想在遠程主機執行一個腳本&#xff0c;但是這個腳本我又不想保留在遠程主機上&#xff0c;那么有人就說了&#xff0c;那就復制過去再登錄遠程執行不就行了嗎&#xff1f;嗯嗯&#xff0c;但是這還不…

【Lua】java 調用redis執行 lua腳本

【Lua】java 調用redis執行 lua腳本 public Object executeLuaScript(String script, List<String> keys, Object... args) {// 注意: 這里 Long.class 是返回值類型, 一定要指定清楚 不然會報錯return this.redisTemplate.execute(RedisScript.of(j腳本, Long.class), k…

利用混合磁共振成像 - 顯微鏡纖維束成像技術描繪結構連接組|文獻速遞-深度學習醫療AI最新文獻

Title 題目 Imaging the structural connectome with hybrid MRI-microscopy tractography 利用混合磁共振成像 - 顯微鏡纖維束成像技術描繪結構連接組 01 文獻速遞介紹 通過多種模態繪制大腦結構能夠增進我們對大腦功能、發育、衰老以及疾病的理解&#xff08;漢森等人&am…

Shell腳本實踐(修改文件,修改配置文件,執行jar包)

1、前言 需要編寫一個shell腳本支持 1、修改.so文件名 2、修改配置文件 3、執行jar包 2、代碼解析 2.1、修改.so文件名 so_file_dir="/opt/casb/xxx/lib" # 處理.so文件 cd "$so_file_dir" || { echo "錯誤: 無法進入目錄 $so_file_dir"; exit …

基于GPUGEEK 平臺進行深度學習

一、平臺簡介 GPUGEEK 是一個專注于提供 GPU 算力租賃服務的平臺&#xff0c;在人工智能與深度學習領域為用戶搭建起便捷的算力橋梁。它整合了豐富多樣的 GPU 資源&#xff0c;涵蓋 RTX - 4090、RTX - 3090、A100 - PCIE 等多種型號&#xff0c;滿足不同用戶在模型訓練、數據處…

Android Framework學習五:APP啟動過程原理及速度優化

文章目錄 APP啟動優化概述APP啟動流程點擊圖片啟動APP的過程啟動觸發Zygote 與應用進程創建Zygote進程的創建應用進程初始化 ApplicationActivity 啟動與顯示 優化啟動時黑白屏現象可優化的階段Application階段相關優化 Activity階段數據加載階段 Framework學習系列文章 APP啟動…

Web 實時通信技術:WebSocket 與 Server-Sent Events (SSE) 深入解析

一、WebSocket&#xff1a; &#xff08;一&#xff09;WebSocket 是什么&#xff1f; WebSocket 是一種網絡通信協議&#xff0c;它提供了一種在單個 TCP 連接上進行全雙工通信的方式。與傳統的 HTTP 請求 - 響應模型不同&#xff0c;WebSocket 允許服務器和客戶端在連接建立…

MySQL(8)什么是主鍵和外鍵?

主鍵&#xff08;Primary Key&#xff09;和外鍵&#xff08;Foreign Key&#xff09;是關系數據庫中用于定義和維護表之間關系的重要概念。以下是詳細的解釋、示例代碼和操作步驟。 主鍵&#xff08;Primary Key&#xff09; 定義 主鍵是表中的一個或多個字段&#xff0c;其…

任意復雜度的 JSON 數據轉換為多個結構化的 Pandas DataFrame 表格

以下是一個 完整、結構清晰、可運行的 Python 工具&#xff0c;用于將任意復雜度的 JSON 數據轉換為多個結構化的 Pandas DataFrame 表格。該工具支持嵌套對象、嵌套數組&#xff0c;并通過主鍵和外鍵建立表之間的關聯關系。 if __name__ "__main__":# 示例 JSON 數…

【SSL部署與優化?】??HTTP/2與HTTPS的協同效應

HTTP/2與HTTPS的協同效應&#xff1a;為何HTTP/2強制要求TLS 1.2&#xff1f; HTTP/2是HTTP協議的現代升級版&#xff0c;旨在通過多路復用、頭部壓縮等技術提升性能。然而&#xff0c;HTTP/2的設計與部署與HTTPS&#xff08;TLS加密&#xff09;緊密相關&#xff0c;甚至強制…

爬蟲請求頻率應控制在多少合適?

爬蟲請求頻率的控制是一個非常重要的問題&#xff0c;它不僅關系到爬蟲的效率&#xff0c;還涉及到對目標網站服務器的影響以及避免被封禁的風險。合理的請求頻率需要根據多個因素來綜合考慮&#xff0c;以下是一些具體的指導原則和建議&#xff1a; 一、目標網站的政策 查看網…

使用Visual Studio將C#程序發布為.exe文件

說明 .exe 是可執行文件&#xff08;Executable File&#xff09;的擴展名。這類文件包含計算機可以直接運行的機器代碼指令&#xff0c;通常由編程語言&#xff08;如 C、C、C#、Python 等&#xff09;編譯或打包生成。可以用于執行自動化操作&#xff08;執行腳本或批處理操…

分布式1(cap base理論 鎖 事務 冪等性 rpc)

目錄 分布式系統介紹 一、定義與概念 二、分布式系統的特點 三、分布式系統面臨的挑戰 四、分布式系統的常見應用場景 CAP 定理 BASE 理論 BASE理論是如何保證最終一致性的 分布式鎖的常見使用場景有哪些&#xff1f; 1. 防止多節點重復操作 2. 資源互斥訪問 3. 分…

常見相機焦段的分類及其應用

相機焦段是指鏡頭的焦距范圍&#xff0c;決定了拍攝時的視角、畫面范圍和透視效果。不同焦段適合不同的拍攝場景和主題&#xff0c;以下是常見焦段的分類及其應用&#xff1a; 一、焦段的核心概念 焦距&#xff1a;鏡頭光學中心到成像傳感器的距離&#xff08;單位&#xff1a…

H5S 視頻監控AWS S3 對象存儲

本文介紹一下如何使用S3對象存儲作為H5S 存儲空間進行錄像存儲 然后創建一個對象存儲&#xff0c;本文以minio 為例(實際項目親測天翼云)&#xff1a; 首先安裝 s3fs 如果是redhat系列&#xff0c;使用如下命令 sudo yum install epel-release sudo yum install s3fs-fuse …

算法第十八天|530. 二叉搜索樹的最小絕對差、501.二叉搜索樹中的眾數、236. 二叉樹的最近公共祖先

530. 二叉搜索樹的最小絕對差 題目 思路與解法 第一想法&#xff1a; 一個二叉搜索樹的最小絕對差&#xff0c;從根結點看&#xff0c;它的結點與它的最小差值一定出現在 左子樹的最右結點&#xff08;左子樹最大值&#xff09;和右子樹的最左結點&#xff08;右子樹的最小值…

Nginx 動靜分離在 ZKmall 開源商城靜態資源管理中的深度優化

在 B2C 電商高并發場景下&#xff0c;靜態資源&#xff08;圖片、CSS、JavaScript 等&#xff09;的高效管理直接影響頁面加載速度與用戶體驗。ZKmall開源商城通過對 Nginx 動靜分離技術的深度優化&#xff0c;將靜態資源響應速度提升 65%&#xff0c;帶寬成本降低 40%&#xf…

PostgREST:無需后端 快速構建RESTful API服務

在現代 Web 開發中&#xff0c;API 已成為連接前后端的核心橋梁&#xff0c;傳統的做法是通過后端框架來構建API接口&#xff0c;然后由前后端人員進行聯調。 PostgREST是基于無服務器的一種實現方案&#xff0c;允許開發者將PostgreSQL數據庫直接暴露為RESTful API&#xff0…

MySQL——九、鎖

分類 全局鎖表級鎖行級鎖 全局鎖 做全庫的邏輯備份 flush tables with read lock; unlock tables;在InnoDB引擎中&#xff0c;我們可以在備份時加上參數–single-transaction參數來完成不加鎖的一致性數據備份 mysqldump --single-transaction -uroot -p123456 itcast>…

基于 Kubernetes 部署容器平臺kubesphere

一 前言&#xff1a; k8s 大家都已經非常熟悉了&#xff0c;網上流傳著非常多的搭建部署文檔&#xff0c;有kubeadmin的有二進制的&#xff0c;還有基于第三方的部署工具的&#xff0c;反正是各種部署方法都有&#xff0c;k8s部署技術熱門可見一斑。但是不管哪種部署都需要了解…