Sintesis Teknologi IC Digital

29
BaBab IC DESIGN LABORATORY MICROELECTRONIC CENTRE ITB PROSES SINTESIS DESAIN RANGKAIAN DIGITAL Bagian ini menjelaskan proses sintesis desain rangkaian digital. Sintesis merupakan implementasi desain yang technology dependent; performa desain tergantung pada teknologi yang tersedia. Tools yang akan digunakan dalam proses sintesis adalah Design Vision™ dari Synopsys®, yang merupakan versi GUI dari Design Compiler®. Pendahuluan Pada tahap synthesis, desain dalam bentuk kode VHDL dipetakan ke level gate. Pemetaan dilakukan oleh tools Design Compiler® dari Synopsys®. Design Compiler® dapat melakukan pemetaan desain ke level gate dengan menggunakan input file desain (VHDL) dan technology library. Design Compiler® dapat juga melakukan optimasi

Transcript of Sintesis Teknologi IC Digital

Page 1: Sintesis Teknologi IC Digital

BaBabIC DESIGN LABORATORY MICROELECTRONIC

CENTRE ITB

PROSES SINTESIS DESAIN RANGKAIAN DIGITAL

Bagian ini menjelaskan proses sintesis desain rangkaian digital. Sintesis

merupakan implementasi desain yang technology dependent; performa desain

tergantung pada teknologi yang tersedia. Tools yang akan digunakan dalam proses

sintesis adalah Design Vision™ dari Synopsys®, yang merupakan versi GUI dari

Design Compiler®.

Pendahuluan

Pada tahap synthesis, desain dalam bentuk kode VHDL dipetakan ke level gate.

Pemetaan dilakukan oleh tools Design Compiler® dari Synopsys®. Design

Compiler® dapat melakukan pemetaan desain ke level gate dengan menggunakan

input file desain (VHDL) dan technology library. Design Compiler® dapat juga

melakukan optimasi desain dengan mengacu kepada design constraints yang

diberikan. Design constraint berisi constraint timing atau area yang diinginkan.

Gambar 1 memperlihatkan tahap-tahap pemetaan desain ke level gate oleh Design

Compiler®.

Page 2: Sintesis Teknologi IC Digital

Gambar 1 : Tahap Pemetaan oleh Design Compiler®

Seperti terlihat pada gambar 1, synthesis dilakukan dalam dua tahap :

· Tahap pertama, kode VHDL dipetakan ke dalam bentuk persamaan boolean

dengan gate-gate generik. Jika kode VHDL tidak synthesizeable, maka

synthesis akan gagal dan proses dihentikan.

· Tahap kedua, desain akan dioptimasi dan dipetakan ke target teknologi. Pada

tahap kedua ini, optimasi dan pemetaan dilakukan berdasarkan gate-gate

yang terdapat pada target teknologi. Sebagai contoh, jika target teknologi

memiliki standard cell NAND dengan tiga input maka dua gerbang NAND

pada generic boolean akan digantikan dengan gerbang logika NAND tiga

input.

Page 3: Sintesis Teknologi IC Digital

Untuk melakukan dua tahap pemetaan tersebut, Design Compiler® membutuhkan

beberapa file input. Untuk melakukan pemetaan ke generic boolean, Design

Compiler® membutuhkan file library gtech, yang disediakan oleh

Synopsys®,sedangkan untuk melakukan pemetaan keteknologi yang diinginkan,

Design Compiler® membutuhkan file teknologi target (CMOS 0.189m). Ketika

melakukan optimasi, Design Compiler® mengacu kepada constraints yang

diberikan kepadanya. Gambar 2 memperlihatkan proses ini.

Gambar 2 : Penggunaan file library oleh Design Compiler®

Page 4: Sintesis Teknologi IC Digital

Sintesis Desain dengan Design Vision™

Gambar 3 : Window Design Vision™

Gambar di atas merupakan gambar window utama dari Design Vision™. Untuk

menjalankan program ini, pastikan file .synopsys_dc.setup dan.synopsys_vss.setup

telah tersedia pada folder kerja. File setup ini berisi setting environment variable

dan path library yang akan digunakan dalm proses sintesis. Setelah semua

persiapan di atas selesai dilakukan, masuklah ke console dan Pastikan current

directory pada console adalah ‘syn’. Selanjutnya ketikkan

command berikut pada console:

Page 5: Sintesis Teknologi IC Digital

Window utama design vision akan muncul seperti gambar 1.

Setelah itu, proses sintesis dapat dimulai dengan mengikuti langkah-langkah

berikut :

1. Read File desain ‘calc.vhd’Pilih menu ‘File’ ® ‘Read’

Kemudian muncul window berikut :

Pada folder ‘source’, pilih file ‘calc.vhd’ dan tekan tombol ‘Open’,

Page 6: Sintesis Teknologi IC Digital

maka pada window ‘Hier.1’, kolom ‘Logical Hierarchy’, akan muncul nama desain‘calc’. Klik pada nama desain tersebut dan tekan tombol ‘Create Symbol View’,seperti pada gambar berikut:

Selanjutnya akan muncul gambar symbol desain ‘calc’ sebagai berikut:

Page 7: Sintesis Teknologi IC Digital

2. Mendefinisikan Input Clock

Klik port ‘clk’ dari gambar symbol, lalu pilih menu ‘Attributes’ ® ‘Specify Clock…’, maka akan muncul window berikut:

Page 8: Sintesis Teknologi IC Digital

Isikan nilai variable-variabel clock seperti pada gambar di atas, lalu tekan ‘OK’.

Selanjutnya pada command line, ketikkan command berikut:

> set_clock_skew -rise_delay 0.1 "Clock" ¿

> set_clock_skew -fall_delay 0.1 "Clock" ¿

> set_drive 0 clk ¿

> set_clock_uncertainty –setup 0.2 "Clock" ¿

untuk mendefinisikan clock skew, clock drive (resistansi pada port clock), dan

clock uncertainty (nilai ketidak-pastian skew pada clock).

3. Mendefinisikan Delay Input dan Output

Select (drag dengan mouse) semua port input, lalu pilih menu ‘Attributes’ ®

‘Operating Environment’ ® ‘Input Delay’

maka akan muncul window berikut:

Page 9: Sintesis Teknologi IC Digital

Masukkan nilai variable-variabel input delay seperti gambar di atas, lalu tekan

‘OK’.

Untuk output delay lakukan hal yang sama seperti pada input delay.

Page 10: Sintesis Teknologi IC Digital

4. Mendefinisikan Load Output dan Target Area Maksimum.

Select lagi pada port output dan pilih menu ‘Attributes’ ® ‘Operating

Environment’® ‘Load’

Page 11: Sintesis Teknologi IC Digital

Maka akan muncul window berikut:

Isikan nilai 1.5 pada kolom ‘Capacitive Load’ seperti pada gambar, lalu tekan

‘OK’

5. Design Linking dan Uniquifying

Untuk melakukan linking desain dengan library desain yang dipergunakan,

pilih menu ‘File’ ® ‘Link Design…’, maka akan muncul window berikut:

Klik ‘OK’.

Untuk proses uniquifying, lakukan dengan menjalankan command:

> uniquify ¿

Page 12: Sintesis Teknologi IC Digital

6. Design CompilingPilih menu ‘Design’ ® ‘Compile Design…’, maka akan muncul window berikut:

Klik ‘OK’.

7. Create Schematic View

Pilih desain ‘adder16’ pada kolom ‘Logical Hierarchy’ seperti pada gambar,

lalu klikicon ‘Create Design Schematic’

Page 13: Sintesis Teknologi IC Digital

maka akan muncul gambar schematic sebagai berikut :

8. Mendefinisikan Port sebagai Pad dan Pad Insertion

Untuk mendefinisikan port sebagai pad, jalankan command berikut:

> set_port_is_pad ¿

Sedangkan untuk melakukan proses insert pad, jalankan command berikut:

> insert_pads ¿

Page 14: Sintesis Teknologi IC Digital

9. Menghasilkan Report Timing, Area, dan ConstraintUntuk menghasilkan report timing, pilih menu ‘Timing’ ® ‘Report Timing Paths’

Klik ‘OK’ maka akan muncul report timing sebagai berikut:

****************************************

Report : - timing

- path full

- delay max

- max_paths 1

- sort_by group

Page 15: Sintesis Teknologi IC Digital

Design : calcVersion: V-2004.06-SP2Date : Mon Jan 16 10:32:08 2006

Operating Conditions : fast Library : fastWire Load Model Mode : top

Startpoint : result_reg[0] (rising edge-triggered flip-flop clocked by Clock)Endpoint : result[0] (output port clocked by Clock)Path Group : ClockPath Type : max

Point Incr Path----------------------------------------------------------------------------------------------------clock Clock (rise edge) 0.00 0.00clock network delay (ideal) 0.10 0.10result_ reg [0] / CK (EDFFX1) 0.00 0.10 rresult_reg[0] / QN (EDFFX1) 0.27 0.37 fU119/Y (INVX8) 0.65 1.02 rresult[0] (out) 0.00 1.02 rdata arrival time - 1.02clock Clock (rise edge) 10.00 10.00clock network delay (ideal) 0.10 10.10clock uncertainty -0.20 9.90output external delay -0.70 9.20data required time 9.20

Page 16: Sintesis Teknologi IC Digital

-----------------------------------------------------------data required time 9.20data arrival time -1.02-----------------------------------------------------------slack (MET) 8.18***** End Of Report

Untuk report area, pilih menu ‘Design’ ® ‘Report Area’

Klik ‘OK’, maka akan muncul report area sebagai berikut:

Page 17: Sintesis Teknologi IC Digital

****************************************Report : areaDesign : calcVersion: V-2004.06-SP2Date : Mon Jan 16 10:35:12 2006****************************************Library ( s ) Used :fast (File: /home/ias122/data/TSMC_CL018G/StandCell/aci/sc/synopsys/fast.db)

Number of port : 13Number of nets : 86Number of cells : 71Number of references: 20

Combinational area : 1027.857544Noncombinational area : 1071.100830Net Interconnect area : undefined (No wire load specified)

Total cell area : 2098.958496Total area : undefined

***** End Of Report *****

Untuk report constraint, pilih menu ‘Design’ ® ‘Report Constraints’

Klik ‘OK’, maka akan diperoleh report constraints sebagai berikut:

Page 18: Sintesis Teknologi IC Digital

****************************************Report : constraintDesign : calcVersion : V-2004.06-SP2Date : Mon Jan 16 10:36:47 2006****************************************

WeightedGroup (max_delay/setup) Cost Weight Cost--------------------------------------------------------------------------------------------------Clock 0.00 1.00 0.00Default 0.00 1.00 0.00--------------------------------------------------------------------------------------------------max_delay/setup 0.00

Total Neg CriticalGroup (critical_range) Slack Endpoints Cost--------------------------------------------------------------------------------------------------Clock 0.00 0 0.00Default 0.00 0 0.00--------------------------------------------------------------------------------------------------critical_range 0.00

WeightedGroup (min_delay/hold) Cost Weight Cost------------------------------------------------------------------------------------------------Clock (no fix_hold) 0.00 1.00 0.00Default 0.00 1.00 0.00--------------------------------------------------------------------------------------------------min_delay/hold 0.00Constraint Cost----------------------------------------------------------------------------------------------------multiport_net 0.00 (MET)max_transition 0.00 (MET)max_fanout 0.00 (MET)max_capacitance 0.00 (MET)max_delay/setup 0.00 (MET)critical_range 0.00 (MET)

***** End Of Report *****

Page 19: Sintesis Teknologi IC Digital

Untuk report-report yang lain dapat dilihat pada menu ‘Design’10. Menyimpan Hasil SintesisUntuk menyimpan hasil sintesis pilih menu ‘File’ ® ‘Save As’Pilih format sesuai yang dikehendaki dan tekan tombol ‘Save’, pastikan lokasipenyimpanan telah sesuai seperti yang dikehendaki.Untuk proses ini lakukan berulang untuk file-file dan lokasi-lokasi sebagai berikut:· ‘calc.db’ format ‘DB’ pada folder ‘db’· ‘calc.v’ format ‘Verilog’ pada folder ‘netlist’ dan ‘layout’11. Menyimpan Design ConstraintsJalankan command berikut:> write_sdc ./layout/calc.sdc ¿12. Menggunakan ScriptDalam melakukan sintesis, ada kalanya harus dilakukan berulang-ulang, baikuntuk tujuan debugging ataupun optimasi. Untuk hal ini, tentunya akan sangatmerepotkan jika harus mengulangi proses di atas, tahap demi tahap, secaramanual. Untuk itulah diperlukan sebuah file script (*.scr), yang berisi daftarcommands untuk sintesis. File ini dapat dijalankan pada saat sintesis, sehinggadesign compiler dapat langsung menjalankan proses sintesis secara otomatis.Command ini dapat dilihat pada daftar bagian bawah window Design Vision, padabagian ‘Log’, di sebelah kanan tulisan “design_vision>”, setiap kali suatu perintahdijalankan.Perintah-perintah ini kemudian dapat dikopikan ke dalam suatu file dan di-savedalam ekstension *.scr. Untuk menjalankan file script ini dapat memilih menu ‘File’® ‘Execute Script…’, lalu browse file script yang dimaksud.©2006, IC Design Team, Pusat Mikroelektronika ITB 2-15Contoh file script untuk desain ‘kalkulator’ ini telah tersedia pada folder ‘scripts’©2006, IC Design Team, Pusat Mikroelektronika ITB 2-16

LATIHAN1. Ulangi proses synthesis di atas dengan menggunakan scripts ‘syn_calc.scr’yang telah tersedia pada folder ‘scripts’!2. Buatlah script di bawah ini dengan Emacs dan save pada folder ‘scripts’ sebagai‘syn_calc_1.scr’! (Catatan: untuk mempermudah, modifikasi saja file script‘syn_calc.scr’ dengan menambahkan/memodifikasi command-command yangdicetak tebal, lalu save dengan nama ‘adder_16_1.scr’)read_file -format vhdl /home/nana132/Training/syn/source/calc.vhdcurrent_design calcset_operating_conditions -library "fast" "fast"

Page 20: Sintesis Teknologi IC Digital

auto_wire_load_selection=TRUEcreate_clock -name "Clock" -period 10 -waveform {"0" "5" } { "clk" }set_clock_skew -rise_delay 0.1 "Clock"set_clock_skew -fall_delay 0.1 "Clock"set_clock_uncertainty -setup 0.2 "Clock"set_input_delay 0.6 -clock "Clock" all_inputs()set_output_delay 0.7 -clock "Clock" all_outputs()set_load 1.5 all_outputs()set_max_area 1000000check_designlinkuniquifycompile -map_effort low -area_effort nonecheck_designset_port_is_padinsert_padsreport_area >> ./report/calculator_area_1.rptreport_timing >> ./report/calculator_timing_1.rptreport_constraints >> ./report/calculator_constraint_1.rptwrite -format db -h -o ./db/calc_1.dbwrite -format verilog -h -o ./netlist/calc_1.vwrite -format verilog -h -o ../layout/calc_1.vwrite_sdc ../layout/calc_1.sdcquit3. Jalankan script ‘syn_calc_1.scr’ di atas dengan Design Vision™!4. Buatlah script di bawah ini dengan Emacs dan save pada folder ‘scripts’ sebagai‘syn_calc_2.scr’! (Catatan: untuk mempermudah, modifikasi saja file script‘syn_calc.scr’ dengan menambahkan/memodifikasi command-command yangdicetak tebal, lalu save dengan nama ‘syn_calc_2.scr’)read_file -format vhdl /home/nana132/Training/syn/source/calc.vhdcurrent_design calcset_operating_conditions -library "fast" "fast"auto_wire_load_selection=TRUE©2006, IC Design Team, Pusat Mikroelektronika ITB 2-17create_clock -name "Clock" -period 10 -waveform {"0" "5" } { "clk" }set_clock_skew -rise_delay 0.1 "Clock"set_clock_skew -fall_delay 0.1 "Clock"set_clock_uncertainty -setup 0.2 "Clock"set_input_delay 0.6 -clock "Clock" all_inputs()set_output_delay 0.7 -clock "Clock" all_outputs()

Page 21: Sintesis Teknologi IC Digital

set_load 1.5 all_outputs()set_max_area 0check_designlinkuniquifycompile -map_effort high -area_effort highcheck_designset_port_is_padinsert_padsreport_area >> ./report/calculator_area_2.rptreport_timing >> ./report/calculator_timing_2.rptreport_constraints >> ./report/calculator_constraint_2.rptwrite -format db -h -o ./db/calc_2.dbwrite -format verilog -h -o ./netlist/calc_2.vwrite -format verilog -h -o ../layout/calc_2.vwrite_sdc ../layout/calc_1.sdcquit5. Jalankan script ‘syn_calc_2.scr’ di atas dengan Design Vision™!6. Bacalah file-file berikut dari folder report dan isilah nilai-nilai pada table yangtersedia!a. calculator_area_1.rptb. calculator_area_1.rptc. calculator_timing_2.rptd. calculator_timing_2.rptTotal CellArea ((9m)2)Data ArrivalTime (ns)syn_calc_1syn_calc_27. Apakah yang dapat anda simpulkan dari hasil yang anda peroleh?