modul praktikum elektronika digital v.1
Post on 03-Jan-2016
122 Views
Preview:
TRANSCRIPT
PETUNJUK PRAKTIKUM VERSI 1
ELEKTRONIKA DIGITAL
LOGO
Disusun Oleh
Zulfikar, S.T., M.Sc
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SUMATERA UTARA
NOVEMBER 2012
Program VHDL
Berikut ini adalah contoh program sederhana dari sebuah gerbang AND yang mempunyai 2 masukan
dan satu keluaran. Masukannya adalah A dan B, dan keluarannya adalah Y. Perhatikan penulisan baris
program dalam beberapa warna yang berbeda. kode program dengan warna BIRU tidak bisa diubah-
ubah, kode program dengan warna PURPLE bisa diganti dengan pilihan lain yang tersedia, dan Kode
program yang bisa dirubah sesuai dengan keinginan penulis adalah yang berwarna HITAM.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity And_2_1 is
Port ( A : in STD_LOGIC;
B : in STD_LOGIC;
Y : out STD_LOGIC);
end And_2_1;
architecture Behavioral of And_2_1 is
begin
Y <= A and B;
end Behavioral;
Program VHDL terdiri dari 3 bagian utama yaitu library, entity dan architechture. Library berisikan desain
acuan untuk menjalankan program. Dalam setiap program VHDL minimal harus ada satu library. Library
yang paling umum digunakan adalah libray standar IEEE (IEEE.STD_LOGIC_1164.ALL). library ini
berisikan penjelasan dari gerbang-gerbang logika dasar yang sering digunakan sehari-hari seperti AND,
OR, NOR dan lain-lain.
Bagian entity dari program menjelaskan semua port input dan output dari rangkaian yang akan di
desain. Port A dan B merupakan input dengan format standard logic (STD_LOGIC). Sementara port
Yadalah output atau keluaran yang mempunyai format yang sama dengan port A dan B. Nama dari
entity tersebut adalah “And_2_1”.
Bagian architechture menjelaskan hubungan antara input-input, output-output dan siynal-siynal lain jika
ada. Pada program diatas hanya menjelaskan hubungan antara output Y dengan input A dan B. Baris
program tersebut menjelaskan tentang sebuah gerbang AND yang mempunyai masukan A dan B dan
keluaran Y. Kata “Behavioral” bisa diganti dengan kata yang lain sesuai sesuai denga keinginan penulis.
Sementara kata “And_2_1” pada baris pertama dari architechture menyesuaikan dengan nama entity
yang diberikan pada bagian sebelumnya.
library
entity
architecture
Test Bench
Untuk menguji program VHDL yang belah dibuat, maka diperlukan sebuah file test bench. File tersebut
menjelaskan proses pemberian sinyal atau informasi pada semua port input. Supaya file tersebut
dikenali dan dapat dipakai dengan program yang ada, maka perlu penjelasan yang menerangkan bahwa
file test bench tersebut dipakai unutk mensimulasikan file program VHDL tertentu.Struktur penulisan file
test bench sama dengan file program VHDL yaitu terdiri dari library, entity dan architechture.
Bagian library pada file test bench biasanya sama persis dengan bagian library file program. Bagian
entity dari file test bech hanya dituliskan baris pembuka dan penutup saja dari bagian entity program.
Sementara bagian architechture menjelaskan hubungan antara file test bench dengan file program,
port-port mana saja yang digunakan pada saat simulasi dan karakteristik sinyal-sinyal pada port input.
Baris program yang diawali dengan -- tidak akan di eksekusi karena merupakan komen yang sengaja
ditambahakan untuk menjelaskan.
LIBRARYieee;
USEieee.std_logic_1164.ALL;
ENTITY test_And_2_1 IS
END test_And_2_1;
ARCHITECTURE behavior OF test_And_2_1 IS
-- Component Declaration for the Unit Under Test (UUT)
COMPONENT And_2_1
PORT(
A :INstd_logic;
B :INstd_logic;
Y :OUTstd_logic
);
END COMPONENT;
--Inputs
signal A : std_logic := '0';
signal B : std_logic := '0';
--Outputs
signal Y : std_logic;
BEGIN
-- Instantiate the Unit Under Test (UUT)
uut: And_2_1 PORT MAP (
A => A,
B => B,
Y => Y
);
process
begin
Tuliskan code program untuk menjelaskan sinyal-sinyal pada port input.
end process;
END;
Nilai inisial awal
Sinyal pada port input harus diberikan untuk menguji kerja rangkaian yang telah didesain. Instruksi yang
umum digunakan adalah waif for. Satuan default dari sinyal ini adalah nano seconds (ns), untuk satuan
yang lebih kecil seperti pico second juga bisa digunakan (ps). Sebagai contoh, kita ingin memberikan
sinyal kepad rangkaian sebagai berikut:
Diagram waktu diatas mempunyai durasi 1000 ns atau 1 us. Pada waktu 0 ns (kondisi awal) nilai pada
port input A dan B adalah ‘0’ atau low. Selanjutnya jika ingin merubah nilai A atau B setelah sekian lama,
maka digunakan perintah wait for. Berikut adalah code program untuk mewakili diagram waktu diatas.
waitfor 200 ns; -- waktu saat ini 200 ns
A <= '0';
B <= '0';
waitfor 200 ns; -- waktusaatini400 ns
A <= '0';
B <= '1';
wait for 200 ns; -- waktusaatini600 ns
A <= '1';
B <= '0';
wait for 200 ns; -- waktusaatini800 ns
A <= '1';
B <= '1';
-- waktusaatini1000 ns
Catatan:
Jika setelah selang waktu tertentu sinyal pada salah satu port input tidak berubah, maka siyal pada port
tersebut boleh tidak dituliskan. Namun hal ini tidak dianjurkan supaya menghindari kesalahan.
A
B
Inisial awal A=0, B=0 A=0, B=1 A=1, B=0 A=1, B=1
waktu
SoftwareXilinx ISE Design Suite
Menurut dengan Xilinx ISE 13.4, kita dapat memulainya dari ISE Navigator seperti terlihat pada gambar
berikut:
Beberapa pilihan tab untuk project yang tersedia seperti terlihat pada gambar diatas:
Open Prjoect digunakan untuk membuka project yang telah ada sebelumnya.
New Project digunakan untuk memulai project baru
Project Browser digunakan untuk mencari/ membuka project yang telah ada sebelumnya dari
daftar project yang tersedia.
Open Example digunakan untuk membuka contoh-contoh project yang disediakan oleh software.
Membuat Project Baru (New Project)
Untuk memulai project baru, klik pada tab New Project, kemudian akan muncul layar sbb:
Misalkan kita ingin merancang sebuah gerbang AND (2 input 1 keluaran).Tulislahpada kolom
Name“And_2_1” (hanya sebagai contoh). Kemudian browse/ tulis lokasi dimana kita akan menyimpan
project tersebut, misal “D:\Project\And_2_1”. Pada kolom paling bawah (Top-level source type), pilihlah
“HDL” yang merupakan kepanjangan dari hardware description language.
Kemudia tekan Next, maka akan muncul layar project setting seperti berikut ini.
Buatlah setting project persis seperti gambar diatas. Project ini akan menggunakan board atau IC
Spartan-3E Starter board, Family dari Spartan 3E dengan nomor chip XC3S500E yang menggunakan
package FG320 dengan grade kecepatan 4. Project ini nantinya akan di synthesis dengan XST (Xilinx
Synthesis Tool). Simulasi akan dijalankan dengan menggunakan simulator ISim.Bahasa pemrograman
yang digunakan adalah VHDL.
Berikutnya (setelah menekan tombol Next) akan muncul layar Project Summary. Pastikan semua
informasi yang diberikan sesuai dengan keinginan kita.
Kemudian klik pada tab Finish. Proses pembuatan project baru selesai dan akan kembali ke layar utama
seperti berikut ini:
Disini ada tiga pilihan penambahan program kedalam project. Pertama, New Source digunakan untuk
menuliskan program VHDL baru. Kedua, Add Source digunakan untuk memasukkan file program VHDL
yang telah ada kedalam project. Dan ketiga, Add Copy of Source digunakan untuk meng-copy file
program VHDL dari file yang sudah tersedia.
New Source
Add Source
Add Copy of Source
Pilihlah New Source, kemudian akan muncul layar seperti berikut ini:
Pilihlah VHDL Module dan berikan nama file dengan “And_2_1”. Pastikan juga lokasinya sama dengan
lokasi project sebelumnya.
Kemudian klik Next, kemudian Next lagi dan kemudian klik Finish. Akan muncul dilayar utama tampilan
untuk menuliskan kode program VHDL. Perhatikan bahwa sebagian kode program sudah ada, seperti
library, entity,dan architecture. Sebagian besar kode merupakan komentar, hapuslah bila tidak
diinginkan. Berikut adalah kode yang sudah ada:
Tuliskan entity dan kode program untuk gerbang AND, sehingga program akan menjadi seperti pada
gambar berikut ini:
Kemudian simpanlah file tersebut. Langkah penulisan program VHDL untuk sebuah gerbang AND sudah
selesai.
Langkah berikutnya ada pengecekan apakah ada kesalahan grammar dalam penulisan file tersebut atau
lebih dikenal dengan check syntax. Perhatikan gambar berikut ini,
Hal-hal yang perlu diperhatikan adalah tandai Implementasi, sorot/ tandai nama file VHDL dibawah
nama chip yang digunakan. Kemudian expand Synthesize – XST pada bagian Process, akan muncul
beberapa pilihan. Salah satu pilihan tersebut adalah Check Syntax, double klik untuk memulai proses
Tandai
Tandai
Double klik
pengecekan syntact. Hasil pengecekan akan dilaporkan pada bagian Consule seperti terlihat pada
gambar dibawah ini:
Apabila tidak ada kesalahan, maka langkah selanjutnya adalah simulasi.
Untuk melakukan simulasi, diperlukan sebuah file lagi yang disebut dengan TestBench. File ini
berhubungan dengan file program yang sudah ada dan menjelaskan diagram waktu untuk tujuan
pengetesan hasil (simulasi).
Ulangi langkah yang sama dengan pembuatan file program VHDL. Namun kali ini kita akan membuat file
testbench guna pengetesan. Perhatikan gambar berikut ini:
Sorot/ tandai VHDL Test Bench, kemudian tulishlah nama file yang akan dibuat, misal “test_And_2_1”.
Samakan lokasi file tersebut dengan lokasi file sebelumnya. Jangan lupa untuk men centang Add to
project. Kemudian klik Next dan Next lagi, maka akan muncul Summary yang menjelaskan tentang file
tersebut. Klik finish, process penambahan file test bench baru sudah selesai.Editlah file tersebut sesuai
dengan kebutuhan (lihat bagian Test Bench).
Untuk memulai proses simulasi, ikutilah petunjuk seperti pada gambar berikut. Tandai Simulation,
kemudian tandai juga nama file test bench nya (“test_And_2_1....”). kemudian duble klik pada Simulate
Behavioral Model.
Jika proses berjalan dengan benar makan akan muncul layar hasil simulasi. Perbesar atau perkecil
diagramnya sehingga sesuai dengan tampilan pada layar. Berikut adalah gambar hasil simulasinya:
Double klik
Tandai
Tandai
Zoom in/ out
Marker
Kondisi pada marker
Port input dan output
Percobaan I. PerancanganGerbang Logika Dasar
Berikut adalah langkah-langkah untuk membuat program VHDL untuk mendesain sebuah gerbang AND
yang mempunyai 2 masukan:
1. Buatlah sebuah project baru dengan nama “P1_AND_2_1”. Untuk detail konfigurasi project
sesuaikan dengan contoh yang telah diberikan.
2. Buat dan sisipkan file VHDL desain gerbang AND seperti pada contoh yang dijelaskan
sebelumnya dengan nama “AND_2_1”.
3. Lakukan pengecekan syntax. Apabila ada kesalahan, perbaiki, simpan kembali file perubahan
dan lakukan pengecekan ulang. Ulangi sampai tidak ada lagi kesalahan syntax.
4. Tutuplah project tersebut.
Ulangi langkah-langkah diatas untuk mendesain sebuah gerbang OR yang mempunyai 2 masukan. Nama
project: “P1_OR_2_1”, Nama file VHDL: “OR_2_1”.
Ulangi langkah-langkah diatas untuk mendesain sebuah gerbang XOR yang mempunyai 2 masukan.
Nama project: “P1_XOR_2_1”, Nama file VHDL: “XOR_2_1”.
Percobaan II. Penulisan Test Bench
Berikut adalah langkah-langkah untuk membuat sebuah VHDL test bench untuk menguji desain program
untuk sebuah gerbang AND yang mempunyai 2 masukan:
1. Buka kembali project “P1_AND_2_1” yang telah dibuat sebelumnya.
2. Buat dan sisipkan file test bench VHDL dengan nama “test_AND_2_1”.
3. Tuliskan kode program untuk menjelaskan model sinyal yang akan diberikan pada port-port
masukan.
4. Lakukan pengecekan syntax. Apabila ada kesalahan, perbaiki, simpan kembali file perubahan
dan lakukan pengecekan ulang. Ulangi sampai tidak ada lagi kesalahan syntax.
5. Jalankan Simulasi Behavior. Periksa apakah sinyal pada port output sesuai dengan karakteristik
gerbang AND. Jika tidak telusuri dimana terjadi kesalahan.
6. Tutuplah project tersebut.
Ulangi langkah-langkah diatas untuk mendesain sebuah test bench untuk menguji gerbang OR yang
telah dibuat pada project “P1_OR_2_1” sebelumnya.Nama file test bench tersebut: “test_OR_2_1”.
Ulangi langkah-langkah diatas untuk mendesain sebuah test bench untuk menguji gerbang XOR yang
telah dibuat pada project “P1_XOR_2_1” sebelumnya. Nama file test bench tersebut: “test_XOR_2_1”.
Percobaan III. Rangkaian Kombinasional
Gambar berikut adalah sebuah rangkaian kombinasional AND OR INVERT (AOI) yang sering digunakan.
Gerbang AOI tersusun dari 2 buah gerbang AND 2 masukan dan sebuah gerbang NOR 2 masukan.
Berikut adalah langkah-langkah untuk merancangproject untuk rangkaian AOI:
1. Buatlah sebuah project baru dengan nama “P3_AOI_1”. Untuk detail konfigurasi project
sesuaikan dengan contoh yang telah diberikan.
2. Buat dan sisipkan file VHDL desain rangkaian AOI, namailah file tersebut dengan “AOI_1”.
3. Lakukan pengecekan syntax. Apabila ada kesalahan, perbaiki, simpan kembali file perubahan
dan lakukan pengecekan ulang. Ulangi sampai tidak ada lagi kesalahan syntax.
4. Buat dan sisipkan file test bench VHDL dengan nama “test_AOI_1”
5. Jalankan Simulasi Behavior. Periksa apakah sinyal pada port output sesuai dengan karakteristik
rangkaian AOI. Jika tidak telusuri dimana terjadi kesalahan.
6. Tutuplah project tersebut.
Berikut adalah rangkaian AOI yang disusun dengan gerbang-gerbang dasar. Perhatikan bahwa gerbang
NOR diganti dengan gerbang OR dan NOT. Rangkaian tersebut juga dilengkapi dengan 3 buah signal
internal AB, CD dan O.
Signal-signal tersebut tidak akan muncul sebagai input maupun output, melainkan didefinisikan didalam
architecture. Perhatikan contoh baris program berikut:
architecture Arch2 of AOI is
signalAB, CD, O:STD_LOGIC;
begin
A
C
B
D
F
A
C
O B
D
AB
CD
F
AB <= A and B;
.
.
.
O <= AB or CD;
.
.
.
endArch2;
Berikut adalah langkah-langkah untuk merancang project untuk rangkaian AOI yang tersusun dari
gerbang-gerbang dsar dan menggunakan signal:
1. Buatlah sebuah project baru dengan nama “P3_AOI_2”. Untuk detail konfigurasi project
sesuaikan dengan contoh yang telah diberikan.
2. Buat dan sisipkan file VHDL desain rangkaian AOI baru, namailah file tersebut dengan “AOI_2”.
3. Lakukan pengecekan syntax. Apabila ada kesalahan, perbaiki, simpan kembali file perubahan
dan lakukan pengecekan ulang. Ulangi sampai tidak ada lagi kesalahan syntax.
4. Buat dan sisipkan file test bench VHDL dengan nama “test_AOI_2”
5. Jalankan Simulasi Behavior. Periksa apakah sinyal pada port output sesuai dengan karakteristik
rangkaian AOI. Jika tidak telusuri dimana terjadi kesalahan.
6. Tutuplah project tersebut.
Percobaan IV. Rangkaian Kombinasinal Lanjutan
Menggunakan sub program berulang(component), contoh
Percobaan V. Rangkaian Tersinkronisasi oleh Clock
Mendesain rangkaian menggunakan prosess
Percobaan VI. Rangkaian Tersinkronisasi oleh Clock
Mendesain rangkaian menggunakan prosesslanjutan
Percobaan VII. Rangkaian-Rangkaian MSI
Mux, demux, decoder, encoder dll (salah satu)
Percobaan VIII. Multiplier
top related