# Introduction to Synthesis
###### tags: `Digital IC Design`
[回到主頁面](https://hackmd.io/@derek8955/BkK2Nb5Jo/https%3A%2F%2Fhackmd.io%2FdpcBlBL8TlShpQ-wSi9Quw)
Synthesis 就是 translation + optimization + mapping 的過程。
- translation : 把 RTL code 轉換成 GTECH( synopsys 自家開發的一種通用的,與製程無關的 cell library,裡面有 and gate、not、flip-flop 等各種基本單元 ) netlist
> GTECH 即是下圖的 Generic Boolean
- optimization : 根據 clk period、area、power consumption 對電路優化,推斷出滿足設計要求的結果
- mapping : 將 netlist 映射到晶圓廠給定的 technology library,最終形成該 technology library 對應的 netlist
||
|:---:|
|Ref : http://speed.cis.nctu.edu.tw/~ydlin/course/cn/nsd2009/IC_Design_Flow.pdf|
### <font color="blue"> Design object </font>
Desgin Compiler(DC) 在合成的過程中會把電路劃分為以下處理對象:

- design : module name
- Cell: cell name,如果還是不懂可以回顧 [Instantiation ](https://hackmd.io/DUc5Ud-4Sg-OmIbTjeavOw)
- Port:design 的 input/output
- Pin : cell 的 input/output
- Net : 連接兩端的線路
- Clock : clock 訊號
- Reference (圖中沒畫到) : 例化模塊的原始電路,例如 adder、DFF、latch...等
### <font color="blue"> Logic Synthesis Related Files </font>
| File | Purpose |
| ------ | ------------------------------------------------------------------------------------------------ |
| .cshrc | 在先前 [work station](https://hackmd.io/WMOdFMqvRPOia7YFeQR1fQ) 有說到,主要是設定路徑與環境變數 |
|.synopsys_dc.setup | 當 DC 開啟後,會自動讀取。內容含有一些基本的合成設定 |