JURNAL PENELITIAN
SITROTIKA TEKNIK SIPIL – TEKNIK ELEKTRO – TEKNIK INFORMATIKA Volume 4, Nomor 1, Januari 2008
ISSN : 1693-9670
JUDUL PENELITIAN 1. Rancang Bangun Sistem Layanan Panduan Wisata Dengan ASP (Active Server Pages) (A r a d e a, ST) 2. Dampak Analisis Curah Hujan Terhadap Debit Banjir Rencana (Dedi Sutrisna, ST) 3. Analisis Peramalan Karakteristik Gelombang Dengan Metode SMB (Sverdrup Munk Bretchneider) (Empung, MT) 4. Pengaruh Penggunaan Aditif Roadcel Terhadap Kinerja Aspal Campuran Panas (Herianto, MT) 5. Studi Penentuan Arus Netral Akibat Beban Tidak Seimbang Pada Trafo Daya Distribusi (Studi Kasus di PT. PLN (Persero) APJ Cigereleng Bandung) (Ifkar Usrah, MT) 6. Perancangan Rangkaian Logika Sekuensial Menggunakan Vhsic Hardware
Description Langguage (VHDL) (H. Irfan Darmawan, MT) 7. Pengaruh Hambatan Samping Terhadap Kecepatan Di Jalan Perkotaan (Nina Herlina, MT) 8. Penentuan PATH Dengan Arah Aliran Daya Hasil Load-Flow (Sutisna, MT)
AS TE LT K
IV UN
AN GI
U
K NI
FA K
9. Perbandingan Kinerja Struktur Portal Bresing dan Portal Dinding Geser Menurut SNI-1726 dan IBC-2003 (Yusep Ramdani)
ER IW SIT AS SIL
UNIVERSITAS SILIWANGI TASIKMALAYA
ISSN 1693-9670
Jurnal SITROTIKA Volume 4, Nomor 1, Januari 2008
Pelindung Rektor Universitas Siliwangi Pengarah Prof. Dr. H. Rudi Priyadi, Ir., MS. Penanggung Jawab Prof. Dr. Maman Suryaman, Ir., MS. Pimpinan Redaksi Nundang Busaeri, Ir., MT. Penyunting Pelaksana Asep Kurnia Hidayat, Ir., MT. H. Abdul Chobir, Drs., MT. Ifkar Usrah, Ir., MT Empung, Ir., MT. Herianto, ST., MT. Aradea, ST. Penyunting Ahli Prof. H. Djuanda Suraatmadja, Ir. Prof. H. T.M. Soelaiman, MSEE. Tata Usaha Mulyadi Beben, S.Sos. Tata Letak H. Irfan Darmawan, ST., MT. Alamat Redaksi Lembaga Penelitian dan Pengabdian pada Masyarakat Jl. Siliwangi No 24 Kotak pos 164 Tasikmalaya Telp. : Rek. 0265-330634, FT. 0265-323537 Fax. :Rek. 0265-325812, FT. 0265-323537
DAFTAR ISI
DAFTAR ISI ...............................................................................................................
i
PENGANTAR REDAKSI ..........................................................................................
ii
Rancang Bangun Sistem Layanan Panduan Wisata Dengan ASP (Active Server Pages) (A r a d e a) ……………………….………...........................
1-10
Dampak Analisis Curah Hujan Terhadap Debit Banjir Rencana (Dedi Sutrisna) .
11-20
Analisis Peramalan Karakteristik Gelombang Dengan Metode SMB (Sverdrup Munk Bretchneider) (Empung) ................................................................................
22-31
Pengaruh Penggunaan Aditif Roadcel Terhadap Kinerja Aspal Campuran Panas (Herianto) ..........................................................................................................
32-40
Studi Penentuan Arus Netral Akibat Beban Tidak Seimbang Pada Trafo Daya Distribusi (Studi Kasus di PT. PLN (Persero) APJ Cigereleng Bandung) (Ifkar Usrah) …...................................………………………………………………..
41-51
Perancangan Rangkaian Logika Sekuensial Menggunakan Vhsic Hardware Description Langguage (VHDL) (Irfan Darmawan) .........................................................................
52-58
Pengaruh Hambatan Samping Terhadap Kecepatan Di Jalan Perkotaan (Nina Herlina) ...............................................................................................................
59-67
Penentuan PATH Dengan Arah Aliran Daya Hasil Load-Flow (Sutisna)…….…..
68-75
Perbandingan Kinerja Struktur Portal Bresing dan Portal Dinding Geser Menurut SNI-1726 dan IBC-2003 (Yusep Ramdani) ........................………………
76-84
i
PENGANTAR REDAKSI
Bulan Januari 2008 merupakan tahun edisi ke tujuh bagi Fakultas Teknik Universitas Siliwangi Tasikmalaya menerbitkan Jurnal SITROTIKA yang berisikan hasil-hasil penelitian yang berkaitan dengan Ilmu Teknik Sipil, Teknik Elektro, maupun Teknik Informatika.
Pada terbitkan pada tahun ini diketengahkan sebanyak 9 (sembilan) judul tulisan yaitu Rancang Bangun Sistem Layanan Panduan Wisata Dengan ASP (Active Server Pages), Dampak Analisis Curah Hujan Terhadap Debit Banjir Rencana, Analisis Peramalan Karakteristik Gelombang Dengan Metode SMB (Sverdrup Munk Bretchneider), Pengaruh Penggunaan Aditif Roadcel Terhadap Kinerja Aspal Campuran Panas, Studi Penentuan Arus Netral Akibat Beban Tidak Seimbang Pada Trafo Daya Distribusi (Studi Kasus di PT. PLN (Persero)APJ Cigereleng Bandung), Perancangan Rangkaian Logika Sekuensial Menggunakan Vhsic Hardware Description Langguage (VHDL), Pengaruh Hambatan Samping Terhadap Kecepatan Di Jalan Perkotaan, Penentuan PATH Dengan Arah Aliran Daya Hasil Load-Flow, Perbandingan Kinerja Struktur Portal Bresing dan Portal Dinding Geser Menurut SNI-1726 dan IBC-2003. Redaksi mengucapkan terima kasih kepada semua pihak yang telah membantu hingga terlaksananya penerbitan Jurnal SITROTIKA ini dapat menambah wahana informasi tentang ilmu teknik dan dapat bermanfaat bagi dunia pustaka dan ilmu pengetahuan.
Tasikmalaya,
Januari 2008
ii
Jurnal Sitrotika Vol.4, No.1, Januari 2008 PERANCANGAN RANGKAIAN LOGIKA SEKUENSIAL MENGGUNAKAN VHSIC HARDWARE DESCRIPTION LANGGUAGE (VHDL) Irfan Darmawan, MT
[email protected] Universitas Siliwangi
ABSTRACT Along with growing it civilization of the existing world, practical, quickly, convergence, and efficiency becomes important modal to survive in facing global competition. Elemenelemen can fufilled by using digital peripheral. Digitalisation has become requirement for the existing man. Some analogue peripherals have been replaced its(the function becomes digital peripheral. Therefore, required knowledge basis to design application having the character of digital. Digital peripheral constituted by logic having the character of successive ( sekuensial) and at the same ( concurrent). arrangement of Structural logic can be designed to become a logic gate circuit that is then can be written down in the form of programming language. Programming language recognized is VHDL ( VHSIC HARDWARE DESCRIPTION LANGUAGE). Keyword : VHDL, Sequential. ABSTRAK Seiring dengan berkembangnya peradaban dunia saat ini, kepraktisan, cepat, konvergensi, dan efisiensi menjadi modal penting untuk survive dalam menghadapi persaingan global. Elemenelemen tersebut dapat terpenuhi dengan menggunakan perangkat digital. Digitalisasi sudah menjadi kebutuhan bagi manusia saat ini. Beberapa perangkat analog sudah digantikan fungsinya menjadi perangkat digital. Oleh karena itu, dibutuhkanlah dasar pengetahuan untuk merancang aplikasi yang bersifat digital. Perangkat digital didasari oleh logika yang bersifat berurutan (sekuensial) dan bersamaan (concurrent). Susunan logika yang terstruktur dapat dirancang menjadi suatu rangkaian gerbang logika yang kemudian dapat dituliskan dalam bentuk bahasa pemrograman. Bahasa pemrograman yang dikenal adalah VHDL (VHSIC Hardware Description Langguage). Kata kunci : VHDL, Sekuensial
I. Pendahuluan Rangkaian sekuensial adalah rangkaian yang outputnya tidak hanya tergantung kepada keadan saat ini, tetapi juga pada keadaan input sebelumnya. Dalam penelitian ini akan dijelaskan perancangan rangkaian sekuensial, statement yang digunakan membuat rangakain sekuensial, contoh rangkaian
77
beserta implementasi dan simulasinya dengan menggunakan VHDL simulator. II. Statement VHDL untuk rangakian sekuensial Statement Process Untuk membuat sebuah rangkaian sekuensial, kita memerlukan eksekusi
Jurnal Sitrotika Vol.4, No.1, Januari 2008 statement secara sekuensial seperti pada bahasa pemrograman tingkat tinggi umumnya (C, C++, pascal, dll). Dalam sebuah architecture (VHSIC Hardware Description Languange) VHDL, semua statement di eksekusi secara bersamaan (concurrent). Tetapi ada statement khusus, yaitu PROCESS, dimana semua statement VHDL di dalam statement ini akan dieksekusi secara sekuensial. Struktur Struktur statement process tersebut dapat dilihat pada instruksi 1: label : PROCESS (sensitivity_list) BEGIN Statement..1 Statement..2 Statement..3 END
PROCESS(clock) BEGIN Statement..1 Statement..2 Statement..3 END Instruksi 2. Signal clock sebagai sensivity list dari rangkaian sekuensial. Dari contoh di atas, statement akan di eksekusi apabila nilai clock berubah dari 1 ke 0 atau dari 0 ke 1. Statement Sekuensial Berikut ini instruksi VHDL yang dipakai secara sekuensial di dalam statement PROCESS. 1. IF Statement Struktur statement IF dapat dilihat pada Instruksi II.2:
Instruksi 1 Struktur Statement Process. Seperti terlihat pada Instruksi 1 statement_1, statement_2, statement_3 akan di proses secara berurutan. Setelah statement_3 di eksekusi, maka prosess akan kembali mengekseskusi state ment_1. Sensitifity List Sensitifity List adalah list dari satu atau lebih signal, yang apabila nilai salah satunya berubah, maka statement di dalam process akan di eksekusi. Contoh yang mudah dalam penggunaan sensivity list adalah penggunaan clock dalam sebuah rangkaian kombinasional. Sebuah rangkaian sekuensial, selalu di eksekusi berdasarkan berubahanya nilai signal clock. Dengan demikian penggunaan sensivifity list dapat dibuat sebagai berikut:
78
IF condition THEN Statement_1… [ELSIF condition THEN statement_1…] [ELSE statement_1…] END IF; Instruksi 3 Struktur Statement Process. Statement di dalam tanda “[ ]” berupa optional, artinya jika terjadi pemilihan lebih dari satu maka digunakan perintah ELSE. Sama seperti bahasa pemrograman umumnya, statement di dalam IF hanya akan dieksekusi apabila kondisi dari IF atau ELSIF tersebut terpenuhi. Kondisi tersebut harus dibuat dalam bentuk ekspressi yang BOOLEAN yaitu yang menghasilkan kondisi TRUE atau FALSE. apabila tidak terpenuhi, maka kondisi pada ELSE yang akan di
Jurnal Sitrotika Vol.4, No.1, Januari 2008 eksekusi. Beberapa contoh kondisi untuk statement IF adalah sebagai berikut:
usahakan untuk selalu membuat statement dalam kondisi ELSE.
Contoh 1: IF reset =’1’ THEN data <= “00000000”; ELSIF increment=’1’ THEN data <= data + “00000001”; ELSE data <= data; END IF;
2. Struktur CASE Statement CASE Statement Struktur statement CASE tersebut dapat dilihat pada Instruksi II.5:
Contoh 2: IF en =’1’ AND counter<”1111” THEN data <= data + “00000001”; ELSE data <= “00000000”; END IF;
CASE expression IS Statement_1… WHEN pilihan(|pilihan) => statement_1…; WHEN pilihan(|pilihan) => statement_1…; … WHEN OTHERS => statement_1…; END CASE; Instruksi 5. Struktur Statement CASE.
Instruksi 4 Contoh pembuatan condition statement dari IF. Pada contoh 1 terlihat bahwa jika signal reset bernilai ‘1’, maka signal data akan di beri nilai “00000000”. Dalam kondisi lainnya, yaitu bila reset=’0’ dan signal increment=’1’, maka nilai dari signal data akan di tambah sebesar satu. Dan apabila kedua kondisi tersebut tidak terpenuhi, yaitu reset=’0’ dan increment=’0’, maka niali dari signal data akan tetap “00000000”. Contoh 2 menunjukan kondisi yang hampir sama, hanya diperlihatkan penggunaan tanda < dan statement “AND”. Berbagai operasi aritmatik dapat kita tempatkan di dalam condition tersebut, selama hasil yang diperoleh bernilai TRUE/’1’ atau FASLE/’0’. Meskipun kondisi ELSE merupakan suatu optional, untuk menjamin rangkaian yang disintesis dari deskripsi VHDL tersebut mengahsilkan rangkaian sesuai dengan yang diharapkan, maka
79
Statement CASE dipakai untuk mengassign suatu signal yang memiliki beberapa alternative kondisi. Signal yang menjadi kondisi ditempatkan sebagai expresi dari CASE statement. Masing-masing kondisi di wakili oleh WHEN statement. Jika expresi memenuhi salah satu pilihan, maka statement yang mengikuti WHEN pilihan=> tersebut akan di eksekusi secara sekuensial. Contoh penggunaannya sebagai berikut : CASE mode IS WHEN add => acc <= a+b; WHEN sub => acc <= a-b; WHEN OTHERS acc <= a; END CASE; Instruksi 6. Contoh Penggunaan Struktur Statement CASE.
Jurnal Sitrotika Vol.4, No.1, Januari 2008
Pada contoh di atas, mode sebagai ekspresi di cek nilainya, sehingga menentukan operasi apa yang dilakukan sehingga menghasilkan nilai untuk acc.
END IF; ELSE data <= data; END IF; Gambar 6. Deskripsi rangkaian DFF.
III. Perancangan dan Analisa Rangakain Sekuensial Sederhana Pada bagian ini akan dijelaskan cara membuat deskripsi VHDL untuk rangkaian-rangakain yang banyak dipakai dalam rangkaian sekuensial. Perancangan D Flip-Flop D Flip-flop merupakan elemen memory yang dapat menyimpan data input sebelumnya. D Flip-Flop akan menyampling data input apabila nilai clock berubah dari 0 ke 1 (rising edge). Dengan demikian, clock digunakan sebagai sensivity list dari rangkaian seperti yang terlihat pada instruksi 6. Untuk membedakan kapan flip-flop menyampling input data, maka, maka kita perlu menggunakan IF statement seperti pada contoh.
Signal en adalah signal enable yang berfungsi untuk mengaktifkan flip-flop tersebut. Semua transisi hanya boleh terjadi apabila en=’1’. Statement clk’EVENT adalah untuk membatasi eksekusi process terjadi pada saat transisi nilai dari clock. Apabila statement ini digabungkan dengan statement clk=’1’, maka eksekusi akan terjadi pada saat rising edge. Sebaliknya, apabila clk=’0’, maka process akan di eksekusi pada falling edge. D Flip-flop diatas adalah synchronous D flip-flop, dimana kondisi reset hanya bisa tercapai apabila ada clock (rising edge). Untuk memperoleh D flip-flop dengan reset asynchronous (dapat terjadi tanpa perubahan pada clock), maka kita harus memasukan signal reset dalam sensitivity list, sehingga code VHDL menjadi: dff: PROCESS(reset, clk) BEGIN IF reset =’1’ THEN data <= ‘0’; ELSIF (en=’1’) THEN Instruksi 7. Pemakaian signal reset
Gambar 1. Simbol D Flip-Flop dff: PROCESS(clk) BEGIN IF reset =’1’ THEN data <= ‘0’; ELSIF (en=’1’) THEN IF clk=’1’ AND clk’EVENT THEN data <= data_in;
80
Perancangan Counter 4 Bits Counter merupakan rangkaian logika pengurut, karena counter membutuhkan karakteristik memori, dan pewaktu memegang peranan yang penting. Counter digital mempunyai karakteristik penting yaitu sebagai berikut :
Jurnal Sitrotika Vol.4, No.1, Januari 2008 1. Jumlah hitungan maksimum (modulus N-counter) 2. Menghitung ke-atas atau ke-bawah (up atau down - counter) 3. Operasi asinkron atau sinkron 4. Bergerak bebas atau berhenti sendiri Sebagaimana dengan rangkaian sekuensial yang lain, untuk menyusun counter digunakan flip-flop. Counter dapat digunakan untuk menghitung banyaknya clock-pulsa dalam waktu yang tersedia (pengukuran frekuensi), Counter dapat juga digunakan untuk membagi frekuensi dan menyimpan data. Ada dua macam counter, yaitu Asinkronous Counter dan Sinkronous Counter. Asinkronous Counter disebut juga Ripple Through Counter atau Counter Serial (Serial Counter), karena output masing-masing flip-flop yang digunakan akan berubah kondisi dari “0” ke “1” dan sebaliknya secara berurutan, hal ini disebabkan karena flip-flop yang paling ujung dikendalikan oleh sinyal clock, sedangkan sinyal clock untuk flip-flop lainnya berasal dari masing-masing flipflop sebelumnya. Sedangkan pada counter sinkron, output flip-flop yang digunakan bergantian secara serempak. Hal ini disebabkan karena masing-masing flip-flop tersebut dikendalikan secara serempak oleh sinyal clock. Oleh karena itu Counter Sinkron dapat pula disebut sebagai Counter paralel (Parallel Counter). Rangkaian counter merupakan rangkaian yang banyak digunakan dalam sirkuit combinasional. 8 bits counter dapat di implementasikan seperti pada Instruksi 8. library ieee ; use ieee.std_logic_1164.all;
81
use ieee.std_logic_unsigned.all; entity counter4 is port( en : in std_logic; clock: in std_logic; reset: in std_logic; sc_in: in std_logic; sc_en: in std_logic; sc_out: out std_logic; cout: out std_logic_vector(3 downto 0) ); end counter4; architecture behave of counter4 is signal counter : std_logic_vector(3 downto 0); begin process(clock) begin if clock'event and clock = '1' then if en = '0' then if (reset = '1' or counter = "1111") then counter <= (others => '0'); else counter <= counter + "0001"; end if; end if; end if; end process; cout <= counter; end behave;
Instruksi 8 Deskripsi VHDL counter 8 bits. Seperti terlihat pada instruksi di atas, nilai register count dapat dinaikan dengan memberi harga ‘1’ pada signal inc. Nilai register count menjadi “00000000” apabila di reset atau counter mencapai nilai maksimum “11111111”. Rangakain diatas dapat disimulasikan dengan menggunakan simulator. Pada instruksi tersebut terlihat data tersample pada saat rising edge dari clock.
Jurnal Sitrotika Vol.4, No.1, Januari 2008 Perancangan State Machine Sebagai contoh state machine sederhana adalah state machine lampu merah seperti terlihat pada Gambar 2.
Gambar 2. State mesin dari Trafic light Controller
Menentukan jumlah state. Dari diagram kita dapat melihat bahwa system teridir dari 4 state. Dengan demikian kita dapat merepresentasikan state tersebut dengan register 2 bit, dalam hal ini ctrl_state. Dalam code VHDL : signal ctrl_state: std_logic_vector(1 downto 0); Menentukan Sensivity list. Dalam hal ini, perubahan state adalah terjadi pada saat rising edge daripada clock, sehingga sensivity list dapat ditentukan adalah clock. Syarat perubahan state. Dari state diagram dapat dilihat bahwa state berubah atas fungsi signal en.
Dari tahapan tersebut kita dapat membuat deskripsi VHDL state machine tersebut sebagai berikut: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all;
Gambar 3. Blok Diagram dari Trafic light Controller. Seperti terlihat pada state diagram, pada kondisi awal system di riset dan berada di state idle. Apabila en=’1’, maka state akan berubah idleMgreen, greenMyellow, yellowMred, redMgreen. Kecuali apabila en=’0’ pada setiap kondisi maka state akan pindah ke idle. Dari state machine tersebut kita dapat mendesign descripsi VHDL sebagai berikut:
82
entity trafic is port( clk : in std_logic; rst : in std_logic; en : in std_logic; state : out std_logic_vector downto 0) ); end trafic;
(1
architecture trafic_bhv of trafic is signal ctrl_state : std_logic_vector(1 downto 0); begin process(clk) begin if (clk = '1' and clk'event) then if (rst = '1') then ctrl_state <= "00";
Jurnal Sitrotika Vol.4, No.1, Januari 2008 elsif (en = '1') then case ctrl_state is when "00" => ctrl_state <= "01"; when "01" => ctrl_state <= "10"; when "10" => ctrl_state <= "11"; when "11" => ctrl_state <= "00"; when others => ctrl_state <= "00"; end case; else ctrl_state <= "00"; end if; end if; end process; state <= ctrl_state; end trafic_bhv; Instruksi 9. Deskripsi VHDL Trafic light Controller Cara lain untuk mendeskripsikan traffic controller tersebut adalah dengan menggunakan statement IF THEN seperti yang telah di jelaskan. Hasil simulasi design tsb adalah sbb:
Gambar 4. Simulasi design dari Trafic light Controller. Dari gambar di atas dapat dilihat cara kerja system mulai dari data input yang diberikan sampai ke data output yang dikeluarkan.
83
IV. Kesimpulan 1. Dalam perancangan system digital, sistem dapat dilakukan dengan cara sekuensial maupun (bersamaan) concurrent. 2. Dalam perancangan sistem secara sekuensial penggunaan clok harus di perhatikan, apakah rising edge atau falling edge. 3. Dengan menggunakan instruksi HDL sistem digital apapun dapat diimplementasikan ke dalam suatu chip. V. Daftar Pustaka 1. Dr. Trio. Anggono, Perancangan Sirkuit Sekuensial 2. 2. John W. Carter, “Digital Designing with Programmable Logic Devices”, Prentice Hall, 1997