Umum SystemC Perancangan Modulator Demodulator ASK (Amplitude Shift Keying) pada SystemC.

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