Sintesis Teknologi IC Digital
-
Upload
rizal-tri-susilo -
Category
Documents
-
view
76 -
download
3
Transcript of 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®.
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.
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®
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:
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’,
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:
2. Mendefinisikan Input Clock
Klik port ‘clk’ dari gambar symbol, lalu pilih menu ‘Attributes’ ® ‘Specify Clock…’, maka akan muncul window berikut:
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:
Masukkan nilai variable-variabel input delay seperti gambar di atas, lalu tekan
‘OK’.
Untuk output delay lakukan hal yang sama seperti pada input delay.
4. Mendefinisikan Load Output dan Target Area Maksimum.
Select lagi pada port output dan pilih menu ‘Attributes’ ® ‘Operating
Environment’® ‘Load’
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 ¿
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’
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 ¿
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
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
-----------------------------------------------------------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:
****************************************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:
****************************************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 *****
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"
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()
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?