.q' rtr
r*\JlJ
ii
*'f$S'j
ULti
SJ
".
JJ
r,.G Et t- lf
uililvERstrA$
LAMPUNG,
{7
-
{8
TOVEftfiBHR
zOCISlkTt
ffirffi!
-
:.
-*r&
-':-=;-Srstem
*fito
,ri$i s ;F ].-'ut-**
ff.tr
S + ',.;l+'ili.+.r,i
;r,:6 ' qqdf,:Direktorat
Jenderal
Pendidikan Tinggi
Lernbaga
Penelitian
Universitas
Lampung
Pemerintah
Provinsi
Lampung
'Er .#lr ^* gE gl}.
i
dri
iji
tuUt
ifuXi
I
il
itll
Bidan-s
#'trfi
6w@wl
Seminar Nasional Sains dan Teknologi-Il Prosiding2008Universitas Lampung, l7-18 November 2008
3.
4.
5.
6.
BIDANG
II
KELOMPOK
:
TEKNOLOGI
DAN
SISTEM
INFORMASI
DAFTAR
ISI
ESTIMASI USAHA PROYEK PENGEMBANGAN SOFTWARE
YANG BERORIENTASI OBJEK DENGAN USE CASE POINT METRIC
PERBANDINGAN PENGGUNAAN FUNGSI AKTIVASI LOGSIG DAN TANSIG DALAM APLIKASI JARINGAN BACKPROPAGATION UNTUK
PREDIKSI HARGA CPO
DEVELOPMENT OF DATABASE SYSTEM FOR SPACE EARLY WARIIING
Bachtiar
Anwar...
... 38SYSTEM C DAN SYSTEMVERILOG : STUDI KOMPARATIF
BAHASA PERANCANGAN
LEVEL
SISTEMMaman Abdurohman, Kuspriyanto, Sarwono Sutikno dan
Arif
Sasongko....
...,,..,.., 47PEMODELAN SISTEM AKUISISI DATA TERDISTRIBUSI BERBASIS WEB
Diyurman Gea, Johan Setiawann
Indrajani...
...56SISTEM INFORMASI ADMINISTRASI BERBASIS WEB PADA UNIT
CONTINUING EDUCATION CENTRE UNIVERSITAS KRISTEN PETRA
Agustinus Noertjahyana, Erwin Devin dan Ibnu
Gunawan
...68 PERANCANGAN E-CRM PADA RUMAH SAKITPENGEMBANGAN
APLIKASI
SISTEM PENGATURAN BASIS DATA SECARA ONLINEAgustinus Noertjahyana, Rendy Pangestu dan Dwi
Budiman....
""""""""
89SISTEM PENUNJANG KEPUTUSAN PEMENANG TENDER PROYEK
MENGGUNAKAN METODE AHP (ANALYTIC HIERARCHY PROCE,S^S)
PADA DINAS BINA MARGA PROVINSI LAMPUNG
Fitria, dan Indah
Fitriana
"""""""""97
SISTEM INFORMASI RUMAH BERSALIN
KARTINI
PANJANG BANDAR LAMPUNG
TRANSFORMASI SEMANTIC OBJECT MODEL KE
DALAM
STRUKTUR DATABASEOviliani Yenfy
Yuliana...
"""""""""'
1321.
)
10. 1 8. 9. 11.6w@w
Seminar Nasional Sains dan Teknologi-ll Prosiding2008 Universitas Lampung, l7-18 November 2008SYSTEM C
DAN SYSTEMVERILOG
: STUDIKOMPARATIF
BAHASA PERANCANGAN
LEVEL
SISTEM
Maman
Abdurohman, Kuspriyanto,
Sarwono Sutikno danArif
SasongkoTeknik Informatika, IT Telkom, Jln. Telekomunikasi No.l Bandung
tSfil
ITn, Jln. Ganesha t0 BandungTelp: (022) 7565931, Fax: (022) 7565931
ABSTRAK
Semakin berkembangnya teknologi embedded system menyebabkan perancangan dan pengembangan perangkat
ini
semakin komplek. Perancangan tidak lagi terletak pada levelregister (register tranfer level)tapi sudah mengarah pada perancangan level sistem (system level
desigan,,SZD). Dalam pengembangan bahasa perancangan level sistem (SLDL) dikenal dua
bahasa yang saat
ini
banyak digunakan yaitu SystemC dan SystemVerilog. SystemC adalahbahasa pemodelan level transaksi yang memiliki kelebihan dalam memodelkan sistem dengan menggabungkan kekuatan bahasa C++ dan library objek. SystemVerilog adalah pengembangan
dari Verilog dengan menambahkan pernrograman
C
ke
dalamnya. Verilog sendiri adalahbahasa deskipsi perangkat keras (HDL).
Kami
meneliti kekuatandan
kelemahan masing-masing bahasa tersebut denganmembandingkan
fitur
yang ada didalamnya untuk menentukan kompetensi masing-masingbahasa pemodelan level sistem tersebut. Hasil penelitian menunjukan bahwa kedua bahasa tersebut memiliki fitur awal yang berbeda tapi keduanya menunjukan arah perkembangan yang
sama untuk pemodelan level sistem. SystemC memiliki tingkat fleksibilitas yang tinggi karena
fitur awalnya bahasa
C+*
sementara SystemVerilog memiliki kekuatan pada implementasisistem karena fitur dasarnya bahasa Verilog. Dalam perancangan level sistem keduanya bisa
digunakan karena telah memiliki fitur-fitur yang diperlukan untuk bahasa perancangan level
sistem.
Kata kunci: SystemC, Verilog, SystemVerilog, HDL, SLDL, C++
1.
Pf,NDAHULUANPerkembangan teknologi
IC
yang semakin cepat, mengacu pada hukum Moore, dan kebutuhan terhadap perangkat embedded system, mendorong para perancang untuk mencarimetode perancangan baru yang lebih fleksibel dan lebih cepat. Saat ini level perancangan berada
pada level RTL (Regis
ter
Transfer Level). Level perancanganini
berada diatas perancangangerbang.
Level perancangan diatas RTL sering diistilahkan sebagai perancangan level sistenr, ada juga yang mengistilahkan pemodelan level transaksi. Belum ada kesepakatan yang pasti tentang
istilah pemodelan/perancangan diatas RTL.
Kriteria perancangan pada level sistem diharapkan bisa mempercepat proses perancangan
perangkat keras dan perangkat lunak sehingga produktifitas perancang semakin meningkat dan pemenuhan kebutuhan embedded system dapat tercapai.
@@ffi
Prosiding Seminar Nasional Sains dan Teknologi-Il 2008 Universitas Lampung, l7-1 8 November 2008
Setidaknya terdapat dua bahsa perancangan yang saat
ini
banyak digunakan oleh paraperancang yaitu SystemC dan SystemVerilog. Keduanya diakui sebagai bahasa perancangan
level sistem yang memiliki fitur-fitur yang dibutuhkan dalam perancangan level sistem.
pada penelitian
ini
dibahas tentang kedua bahasaini
beserta fitur-fitur yang terdapat didalamnya untuk menunjukan kekuatan masing-masing bahasa tersebut.
2.
Bahasa Pemodelan Level Sistem2.1.
SystemCSystemC adalah library C++ yang menyediakan berbagai komponen untuk digunakan pada
perancangan
level
transaksi. Kemampuan yangdimiliki
SystemC adalah pemrogramansekuensial sebagaimana
C++
dan
pemrograman consurrent. Kemampuan pemlogramanconcurrent
ini
memungkinkan SystemC untuk digunakan dalam memodelkan komponen perangkat keras dan perangkat lunak yang komplek. Dibandingkan dengan VHDL dan Verilog,SystemC memiliki kelebihan dalam hal pemrograman terstruktur yang tidak
dimiliki
olehVHDL
dan Verilog.
Dalamhal
ini
SystemCmemiliki
fleksibilitasyang lebih
tinggisebagaimana halnya bahasa C"t_r. Kelebihan lain adalah sifat alami SystemC sebagai bahasa
e++, sehingga spesifikasi perangkat keras yang ditulis dalam bahasa C tidak perlu lagi diubah ke dalam bentuk lain[4].
lfurwefl* tibnual
cu*u",
i.
ntu.p"*n*-ngun
syrt..c
Library
SystemC digunakanuntuk
mendukung pemodelanlevel
sistem. SystemCmendukung berbagai level abstraksi dan dapat digunakan untuk perancangan dan verifikasi yang cepat dan efesien. Library SystemC disediakan oleh Open SystemC Initiative (OSCI),
sebuah organisasi nirlaba yang terbuka. OSCI didukung oleh sejumlah perusahaan, universitas
ffiw@w
Seminar Nasionat Sains dan,"*"","Jiiir1;3
Universitas Lampung, l7- l8 November 200gdan individu yang tertarik pada pengembangan pemodelan dengan abstraksi yang lebih tinggi.
Library SystemC dapat diperoleh secara gratis di www.systemc.org.
Mengapa SystemC bukan C++?
Bahasa pemrogftrman
c++
34u1u1l bahasayang
secara arami berupa pemrogramansekuensial' Konsekuensinya bahasa C++ tidak cocok untuk pemrogmman concurrent. Antara
keduanya (sekuensial dan concurrent) terdapat mekanisme yang jauh
berbeda. Lebih jauh dari itu, kebanyakan pemodelan sistem dan perangkat keras memerlukan
delay, clock dan waktu
dalam simulasinya. Fitur-fitur tersebut
tidak
terdapat dalam pemrogramanc+*.
Karenaketerbatasan itu maka C++ tidak dapat dengan mudah mengimplementasikan sistem perangkat
keras yang komplek dan rinci. Disamping itu, tipe data dalam C++ 1;6uL dapat mengakomodasi
tipe data yang diperlukan dalam pemrograman perangkat keras.
Kahn Procees Networke, Masterlslave libraries, ...
$ignal, Timer, Mulex, Semaphore, ...
ModuldProcess
PorVlnterface Event Channel
Event-Driven $imulation Kernel
il-Valued Logic Types (01x2)
BiUlogic Vector
Arbitsary precision integer
Fixed point
C++ usst-d€*r.
Gambar 2. Diagram dasar SystemC
ISBN : 978-979-1 165-74-7
@@ffi
Seminar Nasional Sains dan Teknologi-ll Prosiding2008 Universitas Lampung, l7-18 November 2008Pendefinisan SystemC berada diatas bahasa
C#.
Terdapat beberapa bahasa inti dan tipedata yang terdapat dalam SystemC. Semuanya dibangun diatas bahasa
C+l.
Bahasa inti terdiri dari Module/Process, Port/lnterface, Event, Channel dan Event-driven simulation kemel. Tipedatayang telah didefinisikan terdiri dari4-valued logic types (0lXZ), bit/logic vector, arbitrary
precision integer, fixed point dan tipe-tipe lain yang didefinisikan langsung oleh pengguna berdasarkan bahasa C++.
Pada lapis diatasnya terdapat elementary channel seperti Signal, timer, mutex, semaphore dan FIFO yang menyediakan mekanisme komunikasi antar objek secara concurrent[1].
Module
Module adalah kelas C++ yang membungkus objek perangkat keras atau perangkat lunak.
Module
ini
didefinisikan dalam SystemC sebagai kelas sc_module. Moduleini
setara denganentity/architecture pada Verilog atau VHDL, yang mewakili suatu blok dasar komponen. Suatu
module dengan module lain berkomunikasi melalui channel dan port. Dalam module terdapat
sejumlah proses concurrent sebagai implementasi prilaku komponen tersebut.
Port dan Interface
Port adalah objek yang terdapat dalam module, yang berfungsi menghubungkan module dengan dunia luar. Port-port yang telah didefinisikan dalam SystemC adalah sc
ino,
sc_outo, sc_inout+, sc_fifo_inc,
sc_fi fo_outo dll.Process
'l'erdapat dua jenis proses yaitu : SC_METHOD dan SC_THREAD. Keduanya mirip hanya berbeda dalam masalah pewaktuan. SC_METHOD tidak dapat dihentikan sementara pada saat
eksekusi. SC_THREAD dapat dihentikan sementara pada saat eksekusi.
Channel
Channel adalah media komunikasi SystemC. Sifatnya lebih umum dibandingkan sinyal. Beberapa channel dalam SystemC seperti sc_signal, sc_fifo, sc_semaphore dll.
Composition
Prinsip komposisi sama dengan perancangan hirarki. Pada sistem yang komplek, komposisi
sangat diperlukan.
ffim@w
Prosiding Seminar Nasional Sains dan Teknologi-ll 2008 Universitas Lampung, I 7- l 8 November 2008
2,2, SystemVerilog
SystemVerilog adalah pengembangan
dari
Verilog standar. SystemVerilog sering disebutsebagai generasi ketiga Verilog. Generasi pertamanya adalah Verilog 1995 kemudian Verilog-2001 dan terakhir SystemVerilog[3]. Beberapa fitur baru yang terdapat dalam SystemVerilog :
.i.
Interface yang berfungsi mernbungkus komunikasi dalam rancangan komponen*
Tipe data : int" typeded enumerasi.*
Structure dan union,f.
Operator ++,--,*= dll*
Blok prosedurt
Instruksi-instruksi pemrograman. Dllf t*"* lf-"'r"..* I
I
ro-u'ir."ill
v"'ru*
I Fllr$.tltr Pslnaent nVerilog 2(Xll vlr&g-95
Gambar 3. Diagram SystemVerilog
SystemVerilog adalah lingkungan pemrograman orientasi level sistem yang merupakan
pengembangan dari Verilog-2001[5]. Penambahan modul-modul baru dalam SystemVerilog
dilakukan untuk menjawab tantangan perancangan perangkat keras yang semakin komplek.
Penambahannya sendiri dipengaruhi oleh beberapa pemrograman lain, yaitu VHDL, C++ dan
OpenVera. Dengan penambahan
fitur-fitur
yang memiliki kemampuan yang sama denganVHDL dan C, maka SystemVerilog lebih fleksible. SystemVerilog juga mengkombinasikan
HDL (Hardware Description Language) dengan HVL (Hardware Verification Language)[7].
3.
Pemodelan Level TransaksiMetodologi untuk memodelkan perangkat keras saat ini menuju pada level abstraksi yang
lebih tinggi. Pemodelan yang dilakukan saat ini adalah pemodelan level RTL (Register Transfer Level). Pada level
ini
komponen perangkat keras beserta sinyal pewaktuan yang akurat. Pemodelan sepertiini
masih cocok untuk sistem yangsederhahttntfACgsg
komplekmembutuhkan waktu yang cukup lama untuk dievaluasi dengan
mo(gffifgiiRHS|
eg@
Prosiding Seminar Nasional Sains dan Teknologi-ll 2008Universitas Lampung, 17-18 November 2008
Pada pemodelan level transaksi
tidak
dilakukan pendefinisian sinyal secara tunggalrnelainkan sekumpulan sinyal yang beroperasi pada tipe data abstrak, yang dapat meningkatkan kecepatan waktu simulasi. Dengan cara ini proses simulasi pada level transaksi jauh lebih cepat
dibandingkan dengan pemodelan level RLT.
ModelAlgoritma
Model UTF (UnTimed Functional)
Model BCA (Bus Cycle Accurate)
Model RTL (Register Transfer Level)
Gambar 5. Pemodelan level transaksi
Ir-Tabel Modt Modr Modr Modr Modr Mode Se semaki waktu4.
Al
Be peftrnci perang kebutu Verilol Sel dikeam Fur seperti Sys peranc€Konsep utama yang dikenalkan dalam TLM adalah pemisahan komunikasi antar komponen
dari
proses yang ada dalam komponen. Komunikasi dimodelkan sebagai channel yangdirancang sebagai satu abstraksi tingkat tinggi yang tidak menunjukan secara rinci proses yang
ada di dalamnya. Dengan cara ini, TLM dapat meningkatkan kecepatan dalam proses simulasi perancangan dan dapat mengeksplorasi dan validasi rancangan pada level abstraksi yang lebih
tinggi. Meskipun tidak secara akurat menghasilkan besaran-besaran parameter seperti pada level
RrL[2].
Hal-hal yang dilakukan pada masing-masing level sebagai berikut :
Level Algoritrna dan UTF :
.l
Veriflkasi I-'ungsional*
Validasi AlgoritmaLevel -fF dan BCA :
*
Benchmark kasar*
Pembangunan perangkat lunak aplikasi.!.
Analisis arsitekturLevel CA dan RTL :
*
Benchmark rinci*
Pembangunan driver*
Analisis mikroarsitekturPemodelan level transaksi berada pada level abstraksi tingkat tinggi. Menghilangkan rincian yang cycle accurate dan timed funcional. Fungsi-fungsi yang didefinisikan pada level yang lebih
atas dengan mengabaikan rincian pewaktuan memungkinkan untuk pemodelan yang lebih cepat.
Perbandingan model-model pada levelyang berbeda :
ISBN : 978-979-1 1 65-7 4-7 fi-52
ffiw@w
Seminar Nasional Sains dan Teknologi-ll Prosiding2008 Universitas Lampung, l7- I 8 November 2008 Tabell.
Beberapa model abstraksiModel Model Algo Model UTF ModelTF ModelBCA ModelCA Model RTL
waktu
Komunikas' waktu
skemaKomputasi
Komunikasi Tidakada
Tidakada
Variabelchannel
Tidak
ada
Perkiraan
Channelmessage-pass
Perkiraan
Perkiraan
Channel busabstrak
Akurat
Perkiraan
Channel busnncr Perkiraan Akurat $ystemC Perangkat Lunak 1C++; SystemVerilog Perangkat Lunak (C++) Akurat Akurat Channel bus abstrak Kabel
Semakin tinggi level abstraksi suatu model, akurasi waktu komunikasi dan komputasi
semakin rendah dan skema komunikasi semakin abstrak. Hal ini dapat meningkatkan kecepatan waktu simulasi, yang merupakan kelebihan dari pemodelan level transaksi.
4.
Analisi Perbandingan SystemC dan SystemVerilogBerdasarkan fitur awal pada masing-masing bahasa perancangan diperoleh bahwa bahasa
perulcangan perangkat keras SystemC merupakan pengembangan C++ ke arah perancangan perangkat keras. Penambahan fitur-fitur pada SystemC diarahkan untuk dapat mengakomodasi
kebutuhan rinci perancangan perangkat keras seperti halnya yang terdapal pada
VHDL
danVerilog.
Sebalikny4
fitur
awal SystemVerilog adalah perancangan perangkat keras Verilog yangdikeambangkan ke arah objek oriented dan penambahan frtur-f rtur perangkat lunak (C++;.
Gambar 6. Perkembangan SystemC dan SystemVerilog
Fungsi-fungsi utama yang dibutuhkan dalam perancangan perangkat keras pada semua level
seperti konsep signal, event, interlace dan object oriented terdapat pada kedua bahasa ini. SystemC
efektif
untuk perancangan abstraksi modellevel
transaksi, terutam untukperancang dengan latar belakang yang kuat dalam pemrograman C++, khususnya dalam
eg@
Prosiding Seminar Nasional Sains dan Teknologi-ll 2008 Universitas Lampung, l7-18 November 2008pembuatan prototipe perangkat keras dan perangkat lunak serempak (hardware software
codesign).
SystemVerilog efektif untuk perancangan testbench dalam pemodelan level
RTL
danrnemiliki kemampuan untuk pemodelan level transaksi
(TL),
karena sistemini
memilikisejumlah komponen yang diperlukan untuk tugas
ini
seperti pembangkitan stimulus secararandom, functional coverage dan assertion.
SystemVerilog memiliki kelebihan sebagai bahasa untuk implementasi pada level RTL SystemVerilog secara keseluruhan kuat dalam pemodelan dan implementasi
RTL
danmemeiliki kemampuan untuk pemodelan level transaksi terutama bagi perancang dengan
latarbelakang pemrogftrman perangkat keras seperti Verilog dan VHDL. Fasilitas testbench
SystemVerilog dapat digunakan untuk menguji model TL yang ditulis dalam SystemC.
SystemC memiliki fleksibilitas yang tinggi untuk pemodelan level transaksi dan dapat
mernbuat lingkungan testbench sendiri.
Tabel 2. Perbandingan SystemC dan SystemVerilog
--6q
5.
PEI Karena pengeml pemodeJ semacan kedua si6.
KEI Syst model p keras pr sebagai pemodel ACKN( Terir Elekno I dirampur DAFTA Angiolin Cummin I I Esperan. Fitzpatri Greene, Su0rerlar No IParameter
SystemC FleksibilitasSW
+++ SystemVerilog + +++ ++ +++ ++ +++#
2. 5. 6. 4. lmplementasi HW Abstraksi tinggi Abstraksi rendah Channel Penambahan tipe data Testbench ++ +++ ++ ++ ++#
Cai, Luk I8.
ObjekOriented
+++
++9.
Backround C++(SW)
Verilog (HW)10.
Signal,
Event,
++
++ InterlaceBerdasarkan fitur-fltur yang ada pada kedua bahasa pemrograman
ini
bisa dinilai bahwaSystemC memiliki kekuatan dalam pemodelan level transaksi dan memiliki kemampuan untuk
pemodelan level RTL.
SysternVerilog memiliki kekuatan pada pemodelan level RTL dan memiliki kemampuan
untuk pemodelan Ievel transaksi dengan adanya fitur testbench dan assertion.
ffiw@w
Seminar Nasional Sains dan Teknologi-ll Prosiding2008 Universitas Lampung, l7-18 November 20085.
PEMBAHASAIIKarena masing-masing bahasa
memiliki
keunggulan dibandingkanyang
lain,
arah pengembangan ke depannya menuju pada suatu bahasa baru yang memiliki keunggulan pada pemodelan level Transaksi sekaligus RTL. Nama yang mungkin diberikan pada bahasa inisemacam SystemCVerilog. Ide
ini
bisa dimulai dengan membangun interface-interface antarakedua sistem perancangan ini.
6.
KESIMPULANSystemC adalah bahasa yang sangat cocok untuk membuat, simulasi dan menganalisis
model perancangan level transaksi (TLM). SystemVerilog ideal untuk implementasi perangkat
keras pada level RTL dan untuk verifikasi. Kedunya memiliki kemampuan dan kecukupan
sebagai bahasa pemodelan level sistem. Penggabungan kedua bahasa
ini
dapat memperkuatpemodelan baik level TLM maupun RTL.
ACTO{OWLEDGMENT
Terima kasih kepada departemen Teknik Informatika
IT
Telkom dan departemen TeknikElektro STEI ITB atas dukungan finansial dan perangkat penelitian sehingga penelitian ini bisa dirampungkan.
DAFTARPUSTAKA
Angiolini, Federico. "systemC Tutorial". Univertias Bologna. Italy. 2005.
Cai, Lukai. Gajski, Daniel. "Transaction Level Modeling : An Overyiew". CODES. California.
usA.2003.
Cummings, Clifford. "SystemVerilog's priority
&
Unique-
A Solution to Verilog'sfull
;case ¶llel_case Evil Twins". SNUG. Israel. 2005.
Esperan. "lntroduction to SystemC Tutorial". www.esperan.corn. 2005.
Fitzpatrick, Tom. "SystemVerilog for VHDL Users". Date04. 2004.
Greene, Bruce. "Assertions Update for SystemVerilog". Synopsys. 2003.
Sutherland, Stuart. Davidmann, Simon. Flake, Peter. "systemVerilog