邏輯綜合——概述與基本概念

邏輯綜合系列主要說明以下問題:

  • 為什么要邏輯綜合
  • 邏輯綜合的基本原理
  • 邏輯綜合需要提供哪些文件
  • 邏輯綜合過程中施加約束
  • 邏輯綜合能產生那些結果

綜合是前端設計的重要步驟之一,其過程是將行為描述的電路、RTL級的電路轉換到門級,其目的在于:決定電路門級結構,尋求時序與面積的平衡,尋求功耗與時序的平衡,增強電路的測試性。常見的工具是synoosys公司的 Design Compiler,將HDL語言描述的電路轉換到基于工藝庫的門級網表。

邏輯綜合的步驟為:轉譯(Translation)、優化(Optimize)、映射(Mapping)

DC在綜合過程中會將電路劃分為以下的處理對象:

??

  1. Design:整個需要綜合的電路,即我們待綜合的對象
  2. Port:最外部的端口,一般是電路與外部交互的IO口
  3. Clock:由于時鐘上的任何問題都會對電路造成重要的影響,所以時鐘需要單獨處理
  4. Cell:被例化的模塊
  5. Reference:例化模塊的原電路
  6. Pin:Cell自身的引腳,注意與Port的區別
  7. Net:內部連線

用Design Compiler做綜合的流程如下:

其實施流程為:

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

  ①準備設計文件,DC 的設計輸入文件一般為 HDL 文件。

  ②指定庫文件,需要指定的庫文件包括:

鏈接庫(link library) 、目標庫(target library) 、符號庫(symbol library)、綜合庫(synthetic library)

  下面是庫的解釋,具體的解釋在后面有說,這里先進行簡單地概述一下:

?Link library & target library

 ?  Link ?library 和 target ?library 統稱為?technology ?library(即工藝庫,習慣稱之為綜合庫),technology ?library ?由半導體制造商提供,包含相關 cell 的信息及設計約束標準,其中:

??  Target library: ???在門級優化及映射的時候提供生成網表的 cell,即DC 用于創建實際電路的庫。

?  ?Link library: ?????提供設計網表中的 cell,可以跟target_library使用同一個庫,但是 DC 不用 link library中的 cell 來綜合設計。

  當 DC 讀入設計時,它自動讀入由 link library 變量指定的庫。當連接設計時,DC 先搜尋其內存中已經有的庫,然后在搜尋由 link ?library 指定的庫。

  注:當讀入的文件是門級網表時,需要把 link library 指向生成該門級網表的庫文件,否則 DC 因不知道網表中門單元電路的功能而報錯。 關于工藝庫里面的具體內容,后面會專門進行說明。

??Symbol library

  Symbol library 提供 Design Vision GUI 中設計實現的圖形符號,如果你使用腳本模式而不使用 GUI,此庫可不指定 Symbol?library

??Synthetic library

?  即為 Designware library ,名字上翻譯是綜合庫,但卻常稱之為IP庫,而不是直譯。特殊的 Designware library 是需要授權的(比如使用多級流水線的乘法器),默認的標準 Designware 由 DC 軟件商提供,無需指定。

? Create_mw_lib?:主要使用DC的物理綜合的時候,需要生成物理庫

  ③讀入設計?:

設計的讀入過程是將設計文件載入內存,并將其轉換為 DC 的中間格式,即GTECH 格式,GTECH 格式由“soft macros” ?如 ?adders, comparators 等組成,這些組件來自 synopsys ?的 synthetic lib,每種組件具有多種結構。

讀入設計有兩種實現方法實現方法:read ?和 ?analyze & elaborate(實際上

read 是 analyze ?與 ?elaborate 的打包操作 ?),下面介紹二者在使用中的區別:

?

從中可以看到,analyze & elaborate ?可以自由指定設計庫,并生成 GTECH中間文件前生成.syn 文件存儲于 work 目錄下,便于下次 elaborate 節省時間,我們一般選擇 ?analyze & elaborate 的方法讀入設計。

  ④定義設計環境:?

定義對象包括工藝參數(溫度、電壓等),I/O 端口屬性(負載、驅動、扇出),統計 wire-load 模型,設計環境將影響設計綜合及優化結果。

  ⑤設置設計約束:?

設計約束包括設計規則約束和優化約束,設計規則約束(design ?rule constraint)由工藝庫決定,在設計編譯過程中必須滿足,用于使電路能按功能要求正常工作。設計優化約束定義了 DC 要達到的時序和面積優化目標,該約束由用戶指定,DC 在不違反設計規則約束的前提下,遵循此約束綜合設計。

  ⑥選擇編譯策略:?

對于層次化設計,DC 中有兩種編譯策略供選擇,分別為 top down 和 bottom up。在 top down 策略中,頂層設計和子設計在一起編譯,所有的環境和約束設置針對頂層設計,雖然此種策略自動考慮到相關的內部設計,但是此種策略不適合與大型設計,因為 top down 編譯策略中,所以設計必須同時駐內存,硬件資源耗費大。在 bottom up 策略中,子設計單獨約束,當子設計成功編譯后,被設置為 dont_touch 屬性,防止在之后的編譯過程中被修改,所有同層子設計編譯完成后,再編譯之上的父設計,直至頂層設計編譯完成。Bottom ?up 策略允許大規模設計,因為該策略不需要所有設計同時駐入內存。

  ⑦編譯:?

用 Compile 命令執行綜合與優化過程,還可以利用一些選項指導編譯和優化過程。

  ⑧分析及解決設計中存在的問題?

DC ?可以產生一些報告以反應設計的綜合和優化結果,如:時序、面積、約束等報告,這些報告有助于分析和解決設計中存在的問題以改善綜合結果,我們還可以利用 check_design 命令檢驗綜合的設計的一致性。

  ⑨存儲設計數據?

DC 不會自動存儲綜合后的設計結果,因而需要在離開 DC 時手動存儲設計數據。比如存儲網表、延時信息等數據文件。

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

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

相關文章

Swoole 源碼分析——Server模塊之初始化

前言 本節主要介紹 server 模塊進行初始化的代碼,關于初始化過程中,各個屬性的意義,可以參考官方文檔: SERVER 配置選項 關于初始化過程中,用于監聽的 socket 綁定問題,可以參考: UNP 學習筆記—…

linux下搭建git服務器

安裝 Git Linux 做為服務器端系統,Windows 作為客戶端系統,分別安裝 Git 服務器端: #yum install -y git 安裝完后,查看 Git 版本 [rootlocalhost ~]# git --version git version 1.7.1 客戶端: 下載 Git for Windows&…

mkcramfs 命令學習

mkcramfs :創建只讀文件系統 語 法 mkcramfs[必要參數][選擇參數][源目錄][目標文件]功 能mkcramfs 命令:用來創建CRAMFS只讀文件系統 類似命令: fdisk cramfsck mount 執行權限: 超級用戶 普通用戶 命令屬性: 磁盤維護 參數必要參數 -e 設置文件系…

對于Eclipse的正確用法

有時候我們剛剛修改了工程里的文件 但是啟動的時候它硬是說你有東西沒有聲明 而那個東西又明明在那里。。 這時候我們可以認為實際與它調用的工程關系文件(我假想的) 不同步。。 我們可以通過clean功能來同步實際情況和工程關系文件 所以說我們每次改了之…

邏輯綜合——工藝庫

一、庫文件的設置 運行DC時需要用到的庫文件有:目標庫(target library)、鏈接庫(link library)、符號庫(symbol library)、算術運算庫(synthetic library)。 1、目標庫…

weka 初練之 文本分類

0.注意weka的中文編碼RunWeka.ini-----》fileEncodingutf-81.首先對分詞后的 無新詞發現的分詞文件,轉換成arff文件 命令java weka.core.converters.TextDirectoryLoader -dir D:\weibo\catagory\data10W\nlpirSegment\noNI > D:\weibo\catagory\data10W\nlpirSe…

[COGS 0065][NOIP 2002] 字串變換

65. [NOIP2002] 字串變換 ★★ 輸入文件:string.in 輸出文件:string.out 簡單對比時間限制:1 s 內存限制:128 MB [問題描述] 已知有兩個字串A\$, B\$及一組字串變換的規則(至多6個規則): A1\$ ->…

基與datatable的分頁

在進行分頁操作前,必須知道開啟服務器模式后會向服務器發送的參數的含義: length:告訴服務器每頁顯示的數據條數 start:第一條數據的起始位置 draw:繪制計數器,(特殊:服務器接收到參數后,需要返…

linux sock_raw原始套接字編程

sock_raw原始套接字編程可以接收到本機網卡上的數據幀或者數據包,對與監聽網絡的流量和分析是很有作用的.一共可以有3種方式創建這種socket1.socket(AF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|IPPROTO_ICMP)發送接收ip數據包2.socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP|E…

邏輯綜合——施加約束

Design Compiler時一個約束驅動(constraint-driven)的綜合工具,它的結果與設計者施加的約束條件密切相關。 一、面積約束 進行面積的約束,也就是告訴DC綜合的電路面積要在多少以內。在介紹約束命令之前,先了解一下面積…

[Codevs] 1004 四子連棋

1004 四子連棋 時間限制: 1 s空間限制: 128000 KB題目等級 : 黃金 Gold題目描述 Description在一個4*4的棋盤上擺放了14顆棋子,其中有7顆白色棋子,7顆黑色棋子,有兩個空白地帶,任何一顆黑白棋子都可以向上下左右四個方向移動到相鄰…

鏈接中獲取文件名

算得上是-test.pdf 獲取文件名 var str http://aaa.com/s/ddd/算得上是-test.pdf; console.log(str.match(/([^/*.])\.\w$/)) console.log(str.match(/([^/*.])\.\w$/)[0]) // 轉載于:https://www.cnblogs.com/cssfirefly/p/6163370.html

邏輯綜合——優化電路

對進行時序路徑、工作環境、設計規則等進行約束完成之后,DC就可以進行綜合、優化時序了,DC在優化過程中主要的策略將在下面進行說明。然而,當普通模式下不能進行優化的,就需要我們進行編寫腳本來改進DC的優化來達到時序要求。 DC…

DOM包裹wrap()方法

DOM包裹wrap()方法 如果要將元素用其他元素包裹起來,也就是給它增加一個父元素,針對這樣的處理,JQuery提供了一個wrap方法 .wrap( wrappingElement ):在集合中匹配的每個元素周圍包裹一個HTML結構 簡單的看一段代碼: &…

usleep函數

usleep功能把進程掛起一段時間, 單位是微秒(百萬分之一秒); 頭文件: unistd.h 語法: void usleep(int micro_seconds); 返回值: 無 內容說明:本函數可暫時使程序停止執行。參數 micro_seconds 為要暫停的微…

限制Xamarin獲取圖片的大小

限制Xamarin獲取圖片的大小在App開發中,經常會使用網絡圖片。因為這樣不僅可以減少App的大小,還可以動態更新圖片。但是手機使用網絡環境千差萬別。當網絡環境不是理想的情況下,加載網絡圖片就是一個棘手的問題了。為了避免長時間加載圖片影響…

Linux應用開發自學之路

前言 在 「關于我 」那篇博文里,朋友們應該知道了我不是科班出身,是由機械強行轉行到Linux應用開發方向。下面我就詳細向大家介紹自己這一路上的轉行歷程,希望對大家有所啟發。 我是學機械專業的,對于機械專業我還是很感興趣&…

Verdi 基礎教程

一、Verdi 功能 查看設計debugVerdi不能自己產生波形 二、Verdi使用流程 1、Verdi環境配置 .bashrc中配置 export Verdi_HOME$Synopsys_Dir/Verdi2015 #export NOVAS_HOME$Synopsys_Dir/Verdi2015 export PATH$Verdi_HOME/bin:$PATH export LD_LIBRARY_PATH"/opt/Syno…

ida和idr機制分析(盤符分配機制)

內核ida和idr機制分析(盤符分配機制) ida和idr的機制在我個人看來,是內核管理整數資源的一種方法。在內核中,許多地方都用到了該結構(例如class的id,disk的id),更直觀的說&#xff0…

MIPI CSI-2學習

CSI(Camera Serial Interface)定義了攝像頭外設與主機控制器之間的接口,旨在確定攝像頭與主機控制器在移動應用中的標準。 關鍵詞描述 縮寫解釋CCICamera Control Interface(物理層組件,通常使用I2C或I3C進行通信&…