Design Compiler指南——概述和基本流程

????????綜合是前端模塊設計中的重要步驟之一,綜合的過程是將行為描述的電路、RTL級的電路轉換到門級的過程;Design Compiler是Synopsys公司用于做電路綜合的核心工具,它可以方便地將HDL語言描述的電路轉換到基于工藝庫的門級網表。本文將簡單介紹綜合的原理以及使用Design Compiler做電路綜合的全過程。

一、概述

????????綜合的目的在于:決定電路門級結構,尋求時序與面積的平衡,尋求功耗與時序的平衡,增強電路的測試性。它是根據一個系統邏輯功能與性能的要求,在一個包含眾多結構、功能、性能均已知的邏輯元件的單元庫的支持下,尋找出一個邏輯網絡結構的最佳實現方案。即實現在滿足設計電路的功能、速度及面積等限制條件下,將行為級描述轉化為指定的技術庫中單元電路的連接。

?????????綜合主要包括三個階段:轉換(translation)、映射(mapping) 與優化(optimization)。綜合工具首先將HDL的描述轉換成一個與工藝獨立(technology-independent)的RTL級網表(網表中RTL模塊通過連線互聯),然后根據具體指定的工藝庫,將RTL級網表映射到工藝庫上,成為一個門級網表,最后再根據設計者施加的諸如延時、面積方面的約束條件,對門級網表進行優化。

? ? ? ? 邏輯綜合具有以下幾個層次:

????????隨著抽象層次的升高,設計者對于最終硬件(門和觸發器)的控制能力越來越小。設計者可以在上述的三個層次用HDL語言描述他的設計,根據HDL語言描述的層次的高低,綜合也相應的可以分為邏輯級綜合,RTL級綜合以及行為級綜合。

  • 邏輯級綜合中,設計被描述成布爾等式的形式,觸發器、鎖存器這樣的基本單元采用元件例化(instantiate)的方式表達出來。邏輯級描述實際上已經暗示了綜合以后的網表。
  • 在RTL級綜合中,電路的數學運算和行為功能分別通過HDL語言特定的運算符和行為結構描述出來。對于時序電路,我們可以明確的描述它在每個時鐘邊沿的行為。
  • 行為級綜合比RTL級綜合層次更高,同時它描述電路也越抽象,在RTL級中,電路在每個時鐘邊沿的行為必須確切的描述出來,而行為級描述卻不是這樣,這里沒有明確規定電路的時鐘周期。電路的行為可以描述成一個時序程序(sequential program),綜合工具的任務就是根據指定的設計約束,找出哪些運算可以在哪個時鐘周期內完成,需要在多個周期內用到的變量值需要通過寄存器寄存起來。

?????????上圖向我們展示了一個設計從最初的最抽象的概念階段到最終的芯片階段的轉化過程,在這個過程當中,Design Compiler主要完成將設計的RTL級描述轉化到門級網表的過程。

二、Design compiler基本流程

????????

?????????與一般的綜合過程相同,使用DC做綜合也包含轉換、優化和映射三個階段。

????????轉換階段綜合工具將HDL語言描述的電路或未映射的電路用工藝獨立的RTL級的邏輯來實現,對于Synopsys的綜合工具DC來說,就是使用gtech.db庫中的RTL級單元來組成一個中間的網表

????????優化與映射是綜合工具對已有的中間網表進行分析,去掉其中的冗余單元,并對不滿足限制條件(如constraints.tcl)的路徑進行優化,然后將優化之后的電路映射到由制造商提供的工藝庫上(如core_slow.db)。?? ? ? ?

? ? ? ? 使用DC進行綜合的實施流程為:

  1. 預綜合過程(pre-synthesis process)
  2. 施加設計約束(contrainting design)
  3. 設計綜合(synthesizing?design)
  4. 后綜合過程(post-synthesis process)

????????當半導體工藝的最小特征尺寸小于1um時,稱之為亞微米設計技術,當最小特征尺寸小于0.5um時稱為深亞微米設計技術(DSM:Deep Sub Micrometer),而當進一步小于0.25um時,則稱為超深亞微米設計技術(VDSM:Very Deep Sub Micrometer)。當進入超深亞微米設計后,原有的綜合工具受到了很大的挑戰,其中一個主要表現是:連線的延時迅速上升。

????????當特征尺寸大于0.5um時,電路的延時主要集中在門級單元的延時上,如果門級單元延時占系統延時的70%以上,則前端綜合后的電路延時與后端進行布局布線以后反標(back-annotate)回來的電路延時相差不大。

????????通常在0.35um設計時,連線延時已經達到了總延時的50%以上,于是版圖反標的延時與綜合出來得到延時相差會比較大,單靠一次綜合已經不能準確估計電路的延時情況,此時需要經過前端后端工具不斷疊代來達到比較真實的結果。如下圖:

?

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

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

相關文章

linux常用網絡命令

關鍵詞:linux網絡命令、ifconfig、route、ip、netstat、socket flag 引言: 想成為真正的高手,必須要熟練掌握linux系統的命令行操作,今天就回顧一下linux在網絡上的常用命令相關知識, 另外,實踐才是最終的方…

圖像增強匯總

1、 圖像增強技術包括 1) 圖像灰度變換方法 2) 直方圖修正方法 3) 圖像平滑處理 4) 圖像尖銳化處理 5) 彩色處理技術 2、 圖像增強技術基本上分為兩大類:頻域處理法和時域處理法。 3、 頻…

javaweb(三十八)——mysql事務和鎖InnoDB(擴展)

MySQL/InnoDB的加鎖分析,一直是一個比較困難的話題。我在工作過程中,經常會有同事咨詢這方面的問題。同時,微博上也經常會收到MySQL鎖相關的私信,讓我幫助解決一些死鎖的問題。本文,準備就MySQL/InnoDB的加鎖問題&…

Design Compiler指南——預綜合過程

預綜合過程是指在綜合過程之前的一些為綜合作準備的步驟,包括Design Compiler的啟動、設置各種庫文件、創建啟動腳本文件、讀入設計文件、DC中的設計對象、各種模塊的劃分以及Verilog的編碼等等。 一、Design Compiler的啟動 目前,DC的啟動方式有三種&a…

KAFKA介紹(分布式架構)

2019獨角獸企業重金招聘Python工程師標準>>> 介紹 Kafka是一個分布式的、可分區的、可復制的消息系統。它提供了普通消息系統的功能,但具有自己獨特的設計。這個獨特的設計是什么樣的呢? 首先讓我們看幾個基本的消息系統術語: Kaf…

jquery 回車事件

簡單地記下jquery實現回車事件,代碼如下:全局: $(document).keydown(function(e){if(e.keyCode13){$(".login-li input[typebutton]").trigger("click");} });某個控件: $("body").keydown(functio…

Three.js 詳細解析(持續更新)

1、簡介; Three.js依賴一些要素,第一是scene,第二是render,第三是carmea npm install --save three import * as THREE from "three"; import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js&quo…

[js高手之路]構造函數的基本特性與優缺點

上文,通過基本的對象創建問題了解了構造函數,本文,我們接著上文繼續了解構造函數的基本特性,以及優缺點. 每個對象上面都有一個constructor屬性( 嚴格意義上來說,是原型上的,對象是通過查找到原型找到 constructor屬性…

Design Compiler指南——施加設計約束

Design Compiler是一個約束驅動(constrain-driven)的綜合工具,它的結果是與設計者施加的約束條件密切相關的。在本文里,我們主要討論怎樣給電路施加約束條件,這些約束主要包括——時序和面積約束、電路的環境屬性、時序和負載在不同模塊之間的…

Python:eval的妙用和濫用

時間 2014-07-08 13:05:24 CSDN博客 原文 http://blog.csdn.net/zhanh1218/article/details/37562167主題 Python eval()函數十分強大,官方demo解釋為:將字符串str當成有效的表達式來求值并返回計算結果。 so,結合math當成一個計算器很好用…

程維柳青發布道歉聲明:滴滴順風車業務將無限期下線

雷鋒網(公眾號:雷鋒網)消息,8 月 28 日晚間,滴滴創始人兼 CEO 程維和滴滴總裁柳青正式發出道歉聲明,向受害者和受害者家屬道歉——這已經離本次滴滴順風車悲劇的發生整整四天的時間。 聲明表示,滴滴不再以規模和增長作…

MATLAB圖像增強程序舉例

1.灰度變換增強程序: % GRAY TRANSFORM clc; Iimread(pout.tif); imshow(I); Jimadjust(I,[0.3 0.7],[0 1],1); %transforms the walues in the %intensity image I to values in J by linealy mapping %values between 0.3 and 0.7 to values between 0 and 1. fi…

Design Compiler指南——設計綜合過程

在前面一章介紹完施加約束之后,接下來要做的工作就是將設計進行綜合編譯(compile),本文我們將主要討論綜合編譯的過程。主要分為這樣幾個部分: 優化的三個階段及其特點編譯的策略編譯層次化的設計 一、優化的三個階段 這一節我們介紹Design …

How to find Material based on Sales Organization and Distribution Channel

Fetch data from Database View /BEV1/RBEA_V Fields: VKORG - Sales Organization VTWEG - Distribution Channel MATNR - Material Number 轉載于:https://www.cnblogs.com/JulietLV/p/7436028.html

iOS開發 iOS10兼容訪問http

添加NSAppTransportSecurity的字典會自動變成 AppTransportSecurity再添加 allow Arbitary Loads Boolean YES轉載于:https://www.cnblogs.com/diweinan/p/6233052.html

django 利用PIL 保存圖片

在使用django時不知道怎么保存圖片,又不想用它的form ,在網上找了許久,終于找到個解決方案,利用PIL.image 將POST上來的圖片保存到media目錄下,然后再修改models from PIL import Imagescreen_name request.POST.get(…

圖像轉灰度圖

MyYuanLaiPic imread(e:/image/matlab/darkMouse.jpg);%讀取RGB格式的圖像 MyFirstGrayPic rgb2gray(MyYuanLaiPic);%用已有的函數進行RGB到灰度圖像的轉換 [rows , cols , colors] size(MyYuanLaiPic);%得到原來圖像的矩陣的參數 MidGrayPic zeros(rows , cols);…

Design Compiler指南——后綜合過程

本文我們著重討論使用Design Compiler綜合大型設計時要注意的一些問題,比如怎樣調整綜合方法,出現約束違反后怎樣修正,怎樣給不同的子模塊作時序和負載預算,以及給整個設計在具體綜合之前先作一個預估(Design Exploration)等等。 …

web worker原理 SSE原理

第一部分 什么是 web worker? 我們一直強調JavaScript是單線程的,但是web worker的出現使得JavaScript可以在多線程上跑,只是web worker本身適合用于一些復雜的、耗費cpu的運算,不能操作window、document、parent對象&#xff0c…

如何尋回xp盤符丟失的數據

分區丟失是比較常見的數據恢復案例,需要注意,分區丟失后不要再重建新的分區。保護好資料丟失現場,可以最大程度的恢復出資料。具體的恢復方法看正文了解。 工具/軟件:星空數據恢復軟件 步驟1:先百度搜索并下載程序打開…