16
BAB III SYSTEMC
3.1 Umum
SystemC menyediakan satu bahasa untuk menentukan komponen perangkat keras dan perangkat lunak, menyediakan satu bahasa untuk
memfasilitasi simulasi hardware software dan menyediakan bahasa tunggal untuk memfasilitasi langkah demi langkah perbaikan desain sistem sampai ke tingkat
register transfer untuk sintesis. Selain daripada SystemC itu sendiri, SystemC AMS Analog Mixed Signal merupakan perpanjangan SystemC untuk sistem
desain analog. SystemC WMS Wave Mixed Signal untuk pemodelan sinyal campuran dan simulasi dengan menggunakan konsep kejadian dan menghasilkan
gelombang. Perluasan untuk SystemC terhadap sistem sinyal campuran memungkinkan pembuatan model tingkat tinggi baik digital dan analog dalam
simulasi, sehingga memungkinkan evaluasi cepat kinerja sistem yang lengkap. Berikut ini akan dijelaskan masing-masing[5].
3.2 SystemC
SystemC didasarkan pada bahasa pemrograman C++. C++ adalah objek bahasa pemodelan berorientasi. SystemC memperluas kemampuan C++ dengan
memungkinkan pemodelan deskripsi perangkat keras. SystemC menambahkan konsep-konsep penting seperti ke C++ untuk menjalankan beberapa proses secara
bersamaan, waktu kejadian dan tipe data. SystemC menambahkan sebuah perpustakaan kelas untuk C++ untuk memperluas kemampuan C++. Perpustakaan
Universitas Sumatera Utara
17 kelas bukan modifikasi C++, namun fungsi perpustakaan, tipe data dan bahasa
lainnya konstruksi yang legal kode C++[5]. Dasar SystemC adalah C++, dapat menggunakan standar C++ untuk
pengembangan bahasa pemrograman yang tersedia dalam membuat, mensimulasikan, debug dan mengeksplorasi berbagai arsitektur dan algoritma
deskripsi desain. Juga karena C++, model SystemC dapat dikompilasi pada banyak kompiler C++ pada beberapa platform. Model SystemC sering disebut
spesifikasi eksekusi, ini karena dapat mengkompilasi dan menjalankan model SystemC untuk memahami perilaku sistem. Source files in SystemC merupakan
sumber file pada SystemC kemudian pada C++ development terjadi kompiler, linker, dan debugger. SystemC memiliki kelas library dan simulasi kernel. File-
file akan disimulasi kemudian dirun sehingga hasil akan keluar melalui output file. Struktur program SystemC ditunjukkan pada Gambar 3.1[5].
SC_MODULEmodule name {
sc_indatatype port1; sc_outdatatype port2;….dapat mempunyai beberapa jumlah port return type process name argument type;…..lebih dari satu proses
…………….beberapa kode lain SC_CTORmodule name
{ SC_METHODprocess name;memanggil untuk proses ‘process name’
Sensitive sensitivity list; …………….beberapa kode lain
} };
Gambar 3.1 Struktur Program SystemC
Universitas Sumatera Utara
18 Keterangan :
1. Setiap desain mengandung kelas atau modul “SC_MODULE” seperti
pada Gambar 3.1. 2.
Setiap modul harus mempunyai sebuah konstruktor ‘SC_CTOR’ dengan nama yang sama dengan nama modul.
3. Port digunakan untuk komunikasi dengan modul atau kanal eksternal.
Port didefinisikan di bagian awal modul. Arah dari port dispesifikasikan menggunakan ‘sc_in’ dan ‘sc_out’.
4. Setiap modul harus mempunyai minimal satu proses yang
merepresentasikan fungsionalitas dari modul tersebut. Proses dideklarasikan setelah deklarasi dari port. Pendefinisian proses dapat
dilakukan baik di dalam maupun di luar modul. Ada 2 macam proses, yaitu method dan thread yang dideklarasikan
sebagai ‘SC_METHOD’ dan ‘SC_THREAD’. Sebenarnya method dan thread hampir sama. Keduanya sama-sama mengandung sequential
statement juga dapat mengandung thread-nya masing-masing lagi untuk dieksekusi. Yang membedakannya adalah jika method sudah
dieksekusi maka tidak bisa di-suspend. Ketika eksekusi telah dijalankan maka method ini akan berhenti dan menunggu adanya
aktivitas atau event baru sebelum dia mulai mengeksekusi lagi. Sebaliknya, thread dapat di-suspend ketika eksekusi sedang dijalankan
dan juga dapat di-resume kembali pada stage selanjutnya. Dengan pengertian lain, thread hanya dieksekusi sekali selama simulasi dan
selebihnya berada pada mode suspend. Thread biasanya digunakan
Universitas Sumatera Utara
19 pada perulangan yang tak berhingga, sehingga perulangan tidak akan
berakhir sebelum seluruh simulasi berakhir. Namun untuk alasan performansi, method lebih sering digunakan daripada thread.
5. Channel
kanal merupakan media komunikasi pada SystemC, bentuk yang lebih umum dari sinyal. Contohnya ‘sc_signal’, ‘sc_fifo’, dan
‘sc_semaphore’.
Modul merupakan unit dasar untuk menggambarkan struktur pada SystemC. Modul dapat memiliki jumlah input, output atau port inout. Modul
dapat memiliki sejumlah proses. Proses yang digunakan untuk menggambarkan fungsi sistem dan memungkinkan ekspresi perilaku bersamaan. Setiap proses
sensitif terhadap seperangkat sinyal tertentu dan port mengeksekusi setiap kali terjadi perubahan pada sinyal dan port yang ditentukan dalam daftar sensitivitas.
sinyal digunakan untuk komunikasi interproses. Selain itu, penyerahan nilai ke sinyal port selalu terjadi setelah delta tertunda. Delta penundaan adalah
keterlambatan kecil yang digunakan untuk model hubungan sebab dan akibat logika. Modul juga memungkinkan untuk mengekspresikan hierarki. [5]
Gambar 3.2 menunjukkan pandangan yang disederhanakan dari sebuah modul. Memiliki port input dua diidentifikasi dengan sc_in, dan port output dua
diidentifikasi dengan sc_inout. Modul ini memiliki dua proses dari jenis SC_MODULE dan berisi dari modul lain. Sinyal, diidentifikasi dengan sc_signal,
digunakan untuk menghubungkan dua proses dan modul anak[5].
Universitas Sumatera Utara
20 Gambar 3.2 Sebuah modul, port, proses dan sinyal.
3.3 SystemC WMS Wave Mixed Signal