2016年5月16日 星期一

CIC IC 競賽元件庫安裝

請先完成

Synopsys Design Compiler/Synthesis 之安裝


再執行此部份流程。

Cell Library 標準元件庫是 Cell Base 流程的基礎,也是編譯 RTL 碼不可或缺的重要元素,所謂的標準元件庫是指由 AND、OR、NOT、XOR、FlipFlops .. 等構成的元件庫,這些元件可以用來組合成「所有」的數位電路。

由於 Cell Library 為各 EDA 大廠的智慧財產權,沒有申請前無法下載、使用商業版的 Cell Library,只能使用 CIC 所提供的 IC 競賽元件庫,底下介紹流程。

下載

CBDK_IC_Contest_v2.1.tar


解壓縮

請解壓縮至 /opt/PROCESS 目錄下

tar xfva CBDK_IC_Contest_v2.1.tar -C /opt/PROCESS

此時會出現底下目錄

/opt/PROCESS/CBDK_IC_Contest_v2.1/SynopsysDC

裡面有兩個子目錄,分別是 db 及 lib 目錄。

設定

請在 DC 的選單中執行:

File -> Setup

此時會出現 Setup 視窗,請在此視窗設定三個參數,分別如下:


Link Library

/opt/PROCESS/CBDK_IC_Contest_v2.1/SynopsysDC/db/fast.db


Target Library

/opt/PROCESS/CBDK_IC_Contest_v2.1/SynopsysDC/db/fast.db


Symbol Library

/opt/EDA/synthesis/cur/libraries/syn/class.sdb

並且將其它元件庫刪掉。

編譯:

如果一切都沒問題的話,我們可以執行編譯的流程,在編譯前請選 Logical Hierarchy 視窗中的 half_adder,並看其 Schematic (圖示在上方),我們會發現電路目前是一個十字符號。接著請執行選單:

Design -> Compile Design

此時會出現一個視窗作微調,在此我們不作任何微調,直接點選 OK 按鍵。點選 OK,Design Compiler 會自動進行電路編譯,並作最佳化,作完之後再點選 Schematic 即可看到編譯完之電路,理論上應該是最精簡的電路。編譯完之電路請選

File -> Save As 將編譯完之後的電路存為 ha_compile.v,其內容如下:


/////////////////////////////////////////////////////////////
// Created by: Synopsys DC Expert(TM) in wire load mode
// Version   : K-2015.06-SP5
// Date      : Tue May 17 11:08:48 2016
/////////////////////////////////////////////////////////////


module half_adder ( x, y, Sum, Cout );
  input x, y;
  output Sum, Cout;


  XOR2X1 U3 ( .A(y), .B(x), .Y(Sum) );
  AND2X1 U4 ( .A(y), .B(x), .Y(Cout) );
endmodule


我們可以很明顯的看出此段程式是由 Design Complier 所編譯出來,它使用到的 AND 及 XOR 閘的名稱分別是 AND2X1 以及 XOR2X1,這不是基本 Verilog 閘,所以如果我們使用 cver 來編譯這檔案,會出現底下錯誤:

cver ha_compile.v
GPLCVER_2.12a of 05/16/07 (Linux-elf).
Copyright (c) 1991-2007 Pragmatic C Software Corp.
  All Rights reserved.  Licensed under the GNU General Public License (GPL).
  See the 'COPYING' file for details.  NO WARRANTY provided.
Today is Tue May 17 11:32:39 2016.
Compiling source file "ha_compile.v"
Unresolved modules or udps:
  XOR2X1
  AND2X1

  2 modules or udps unresolved after library processing - cannot continue.
  Unable to begin simulation.
End of GPLCVER_2.12a at Tue May 17 11:32:39 2016 (elapsed 0.0 seconds).

這兩個錯誤的意思是 XOR2X1 及 AND2X1 是找不到的電路模組,要解決這個問題,我們還是要來看 CIC 所提供的元件庫,在

/opt/PROCESS/CBDK_IC_Contest_v2.1/Verilog/tsmc13.v 中可以看到其中有 AND2X1 及 XOR2X1 之定義。因此我們可以將此檔複製過來我們跑模擬的目錄,再執行:
cver ha_compile.v tsmc13.v

此時應該不會有任何錯誤。

最後我們再加上 testfixture 檔,看看能不能跑波型出來:

cver ha_compile.v tsmc13.v test_ha.v

此時一樣會生出新的 testha.dmp,並且可以使用 gtkwave 觀察出波形,我們可以看到這邊的波形是有輸入 -> 輸出 延遲的。

到這邊為止,我們已經完成 Design Compiler 編譯 RTL 碼至 Gate Level 碼的流程,並又使用 cver 來重新驗證所跑出來的 Gate Level 碼是否能正確模擬出波形來。

沒有留言:

張貼留言