4-bit binary up/down counter with vhdl
DESCRIPTION
dengan menggunakan vhdlTRANSCRIPT
Makalah Tugas Akhir Mata Kuliah Praktikum Perancangan Sistem Digital dan DSP
4-BIT Binary Up/Down Counter With VHDL
Frans Scifo (L2F 008 116)
Abstrak
4-bit binary up/down counter adalah suatu rangkaian kombinasional gerbang-gerbang logika yang merepresentasikan kerja counter (penghitung) baik maju maupun mundur bilangan biner 4 bit.
I.PENDAHULUAN
I.1 Latar BelakangCounter merupakan suatu rangkaian
gerbang-gerbang logika yang disusun sedemikian rupa sehingga menghasilkan keluaran yang berupa penghitungan , baik itu menghitung maju atau mundur dari suatu bilangan.
Counter sangat berguna pada suatu rangkaian elektronik, melihat fungsinya yang sebagai penghitung. Misalnya untuk keperluan timing dari alat-alat elektronik yang mutlak membutuhkan suatu counter. Baik up counter maupun down counter sudah banyak digunakan, seperti penghitung mundur pada lampu lalu lintas dan penentuan detik, menit, dan jam pada jam digital.
Oleh karena itu, perlu sekiranya kita memahami bagaimana kinerja dari suatu counter, sehingga kita dapat merancang up/down counter menggunakan VHDL code untuk kemudian mensimulasikannya.
I.2 TujuanTujuan makalah ini adalah membuat
VHDL code untuk rangakain 4 bit up/down counter kemudian mensimulasikannya
I.3 Batasan MasalahDalam makalah ini pembahasan dibatasi
pada : Sistem yang digunakan pada up/down
counter Cara kerja dari rangkaian pada up/down
counter
II.DASAR TEORI2.1 Counter
Rangkaian dasar counter adalah flip-flop, karena suatu flip-flop dapat mencacah 1 bit maka 4 flip-flop dapat mencacah 4 bit.
Bila input detak dari flip-flop yang kedua dikendalikan oleh output Q dari flip-flop di depannya, maka disebut pencacah
asinkron, pulsa detak disalurkan beruntun dari suatu tahap ke tahap berikutnya.
Bila pulsa detak mencapai tiap-tiap input detak secara serentak disebut pencacah sinkron.Counter dapat berupa up counter dan down counter.
Up counter merupakan counter yang menghitung maju, artinya penghitungan dari bilangan kecil ke bilangan besar. Rangkaian up counter dapat dilihat pada gambar berikut.
Gambar 2.1 Up Counter
Untuk tabel penghitungannya dapat dilihat pada tabel berikut:
Tabel 2.1 Tabel 4 bit up counter Q3 Q2 Q1 Q0 Pulsa Clock0 0 0 0 00 0 0 1 10 0 1 0 20 0 1 1 30 1 0 0 40 1 0 1 50 1 1 0 60 1 1 1 71 0 0 0 81 0 0 1 91 0 1 0 101 0 1 1 111 1 0 0 121 1 0 1 131 1 1 0 141 1 1 1 1500..
00..
00..
01..
16(mengulang)17
Sedangkan down counter merupakan counter yang menghitung mundur yang berarti penghitungan dari bilangan besar ke bilangan kecil.Gambar rangkaian dari down counter dapat dilihat pada gambar berikut.
Gambar 2.2 Down Counter
Untuk tabel penghitungannya dapat dilihat pada tabel berikut:
Tabel 2.2 Tabel 4 bit down counter Q3 Q2 Q1 Q0 Pulsa Clock1 1 1 1 01 1 1 0 11 1 0 1 21 1 0 0 31 0 1 1 41 0 1 0 51 0 0 1 61 0 0 0 70 1 1 1 80 1 1 0 90 1 0 1 100 1 0 0 110 0 1 1 120 0 1 0 130 0 0 1 140 0 0 0 1511..
11..
11..
10..
16(mengulang)17
Sebagai catatan, keluaran yang merupakan bilangan yang dihitung baik maju maupun mundur, berupa bilangan biner.
2.2 VHDLVHDL adalah kependekan dari Very
High Speed Integrated Circuit Hardware Description Language, digunakan untuk memodelkan system digital. Struktur dasar dari VHDL code terdiri dari library, entity, dan architecture.
Library merupakan kumpulan dari kode-kode yang sering digunakan . Untuk mendeklarasikan library, diperlukan dua baris kode dimana yang pertama berisi nama library dan lainnya adalah use klausa, seperti terlihat di bawah ini.
Entity adalah daftar dengan ketentuan tertentu dari input/output pin (port) dari rangkaian.Penulisannya sebagai berikut.
Architecture deskripsi bagaimana rangkaian berfungsi atau bekerja. Penulisannya adalah sebagai berikut.
III.LISTING PROGRAM3.1 VHDL Code dari 4-bit up/down counter
Listing VHDL untuk rangkaian 4-bit up/down counter adalah sebagai berikut:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity Counter_VHDL is
port(
Number: in std_logic_vector(0 to 3);
Clock: in std_logic; Load: in std_logic; Reset: in std_logic; Direction: in std_logic;
Output: out std_logic_vector(0 to 3) );
end Counter_VHDL;
architecture Behavioral of Counter_VHDL is
signal temp: std_logic_vector(0 to 3);
begin
process(Clock,Reset)
begin
if Reset='1' then temp <= "0000";
elsif ( Clock'event and Clock='1') then
if Load='1' then temp <= Number;
elsif (Load='0' and Direction='0') then
temp <= temp + 1;
elsif (Load='0' and Direction='1') then
temp <= temp - 1;
end if;
end if;
end process;
Output <= temp;
end Behavioral;
IV. ANALISA DAN PEMBAHASAN4.1 Penjelasan Program
Program ini, bertujuan untuk memberikan keluaran berupa up counter atau down counter. Penentuan keluaran berupa up counter atau down counter ditentukan dengan suatu seleksi.Lebih jelasnya sebagai berikut.
Pada entity ditentukan input ouput, yaitu untuk inputnya adalah number, clock, load, reset, dan direction. Sedangkan keluarannya adalah output.
Pada bagian architecture menentukan bagaimana rangkaian bekerja. Di situ ditentukan, apabila masukan reset berlogika
‘1’, maka program akan memberikan keluaran ‘0000’.
Kemudian untuk masukan load, apabila berlogika ‘1’, maka keluarannya akan sama dengan masukan number. Di sini kita dapat menentukan awal dari proses perhitungan atau dengan kata lain perhitungan dimulai dari bilangan biner yang ditunjukkan pada masukan number.
Untuk menghasilkan keluaran berupa counter, masukan load harus diset ‘0’. Di sini disediakan pilihan dimana keluaran berupa up counter atau down counter. Apabila keluaran yang diinginkan adalah up counter, maka masukan direction juga diset ‘0’.
Sedangkan apabila keluaran yang diinginkan adalah down counter, maka direction diset’1’.
Sedangkan untuk menghasilkan proses up counter, kita cukup menambahkan keluaran dengan ‘1’ secara berulang sehingga dihasilkan keluaran yang lebih besar satu dari keluaran sebelumnya atau bisa disebut keluaran menghitung naik.
Sebaliknya, untuk menghasilkan proses down counter, cukup dengan mengurangi keluaran dengan ‘1’.Dengan demikian keluaran akan lebih kecil satu dari keluaran sebelumnya. Apabila hal ini terjadi terus menerus maka dapat dikatakan bahwa keluaran menghitung mundur.
4.2 Hasil SimulasiSetelah dilakukan simulasi dengan
program ModelSim, didapatkan keluaran dari program yang diperlihatkan oleh gambar berikut.
Gambar 4.1 Hasil Simulasi
Pada gambar terlihat, pertama-tama awal perhitungan dimulai dari ‘0’.Karena load diset ‘0’ dan direction diset ‘1’, maka keluaran berupa down counter. Kemudian saat load ‘1’ dan number ‘3’, perhitungan dimulai dari 3 dengan keluaran tetap down counter.
Setelah itu saat perhitungan sampai ‘0’, direction diset ‘1’, sehingga keluaran berupa up counter yang menghitung maju dari ‘0’.
Pada gambar juga dapat dilihat apabila masukan reset berlogika ‘1’, maka keluaran akan ‘0’.
Dengan demikian, hasil simulasi ini sudah sesuai dengan isi program yang memberikan keluaran berupa up counter maupun down counter.
V.PENUTUP
5.1 Kesimpulan
Dari analisa percobaan di atas maka
dapat disimpulkan :
1. Up counter merupakan rangkaian
kombinasional yang memberikan
keluaran berupa penghitungan
maju suatu bilangan biner.
2. Down counter merupakan
rangkaian kombinasional yang
memberikan keluaran berupa
penghitungan mundur suatu bilangan
biner.
3. VHDL dapat digunakan untuk
memodelkan rangkaian 4 bit up/down
counter dengan memberikan keluaran
yang sama dengan keluaran pada
rangkaian tersebut.
DAFTAR PUSTAKA
[1] Tocci,Ronald J.1991.Digital Systems :
principles and Applications. New
Jersey :Prentice Hall
[2] Pedroni, Volnei A.Circuit Design With VHDL.
London : TLFeBOOKModul Praktikum
Teknik Digital 2008.
[3] http://en.wikibooks.org/wiki
/VHDL_for_FPGA_Design
[4] ModelSim-Tutorial.pdf
BIOGRAFI PENULIS
Frans Scifo
Lahir di Jakarta, pada tanggal 21 Juni 1990. Penulis mengikuti pendidikan SD, SMP dan SMA di Jakarta. Saat ini sedang menuntut ilmu di Teknik Elektro Undip konsenterasi Elektronika dan Telekomunikasi.
Semarang, Juni 2012
Menyetujui,
KoordinatorAsisten
Nanang TrisnadikL2F 008 069