何謂綜合?一言以蔽之就是講高層次描述轉化成門級網表的過程。門級網表是什麼,裡面是各種單元和ip核。於是這個轉化過程必定是要在標準單元庫和施加特定時序約束的基礎之上。
工藝庫,在綜合裡面就是邏輯庫,其中包含了標準單元以及巨集單元的延時資訊、邏輯資訊、面積等描述。
綜合的最終目的一是設計中沒有時序違例。二是綜合後得到的門級網表都已經對映到工藝庫上。三是避免一些電路(觸發器鎖存器同時出現在同一電路中,乙個觸發器輸出作為另乙個觸發器的時鐘,反饋組合邏輯未得到處理,非同步邏輯和模擬電路未得到單獨處理,有些單元未對映到工藝庫上)。
現在對dc綜合中的兩個庫進行說明。getch.db,getch.db只包含有用 boolean 表示式描述的單元電路邏輯。在dc時dc首先將rtl**轉換為通用的布林表示式,就是getch格式,這個是與具體工藝無關的,是未優化的電路。target_library,是綜合的目的庫,裡面是要對映的邏輯單元,將目標庫中的檔案設計成門級網表。
dc綜合的流程分三步,轉化,優化,對映。
並不是所有的結構描述都可以被綜合。在操作符之中,===與!==不可以被綜合。time,defparam,$finish,fork join,initial,delay,udp使用者自定義原語,force release,wait均不可被綜合。不考慮時序結構,忽略所有#(delay)指定的時序延時。
部分語言結構轉化成邏輯門的解釋。
賦值:三目運算子綜合成多路選擇器
if-else:控制訊號是if的訊號,綜合為多路選擇器,不會綜合成龐大的多路選擇器。隱含優先順序。如果未能指明所有情況,會引入鎖存器。
case:可以生成大規模多路選擇器。無優先順序,平行電路結構。可以用synopsys parallel_case指導平行編譯。
always:一般引入觸發器。對於時序需要由clk變化來觸發;對於組合,需要由clk,reset,preset之外的電平觸發。
for:產生級聯的鏈式組合邏輯。
函式語句:綜合產生乙個有輸出變數的組合模組。
避免混合使用上公升沿和下降沿觸發的觸發器。連續assign語句非常簡潔的表示功能,通常能生成效能很好的隨機邏輯電路。但最終的邏輯結構不一定對稱。設計者
可以使用圓括號將邏輯組合起來。時序建模盡量用非阻塞賦值。除非關鍵路徑一般不呼叫門級描述。
關於開公司的基礎知識學習筆記(1)
學習內容 1 公司分類 無限公司 有限責任公司 兩合公司 股份 股份兩合公司 2 除此之外,還有個體戶 工作室等運營形式 3 其中,個體戶是由稅務機關估算銷售額定稅,不論當月收入多少,有無收入都要按定稅金額來交稅,不用按月申報稅務報表 4 註冊資金 在註冊完成之前,註冊資金不能動用,但註冊完成之後則...
關於dash的基礎學習
詞彙補充 位元速率 就是每秒傳送的位元數,單位時間位元速率越大,精度越好。緩衝區溢位 電腦程式向緩衝區內填充資料,資料位數超過了緩衝區本身的容量。緩衝區下溢 乙個超長的資料進入緩衝區時,超出部分被寫入下級緩衝區,而下級緩衝區存放的是下一條指令的指標或者其他程式輸出的內容,導致下乙個命令執行不正常 緩...
關於hashmap的實現原理的學習
hashmap是由乙個entry陣列及鍊錶實現的,當使用put key,value 將鍵值對儲存到map中時,首先會呼叫hashcode 方法獲取hashcode,並對陣列長度取餘找到在陣列上的儲存位置,然後判斷該位置上上是否有元素,沒有的話建立entry物件存入該位置,有的話先判斷該位置的鍊錶有沒...