Tugas 3 - N-Bit Komparator

34
PERMASALAHAN Tugas 2 – Nbit Comparator Lakukan sintesa dan simulasi terhadap rangkaian N-Bit Comparator pada buku "Introduction to Digital Design Using Digilent FPGA Boards - Block Diagram / VHDL Examples" halaman 82: 1. Bandingkan hasil sintesis yang berupa rangkaian RTL dan Technology - berikan penjelasan secukupnya; 2. Lakukan simulasi fungsional untuk minimal 3 kondisi masukan: (a). lebih kecil, (b). lebih besar dan (c). sama dengan.

Transcript of Tugas 3 - N-Bit Komparator

PERMASALAHAN

Tugas 2 Nbit ComparatorLakukan sintesa dan simulasi terhadap rangkaian N-Bit Comparator pada buku "Introduction to Digital Design Using Digilent FPGA Boards - Block Diagram / VHDL Examples" halaman 82: 1. Bandingkan hasil sintesis yang berupa rangkaian RTL dan Technology - berikan penjelasan secukupnya; 2. Lakukan simulasi fungsional untuk minimal 3 kondisi masukan: (a). lebih kecil, (b). lebih besar dan (c). sama dengan.

PEMBAHASAN1. KomparatorKomparator merupakan komponen elektronik yang berfungsi membandingkan dua nilai kemudian memberikan hasilnya, mana yang lebih besar dan mana yang lebih kecil. Dalam dunia elektronika, komparator berfungsi sebagai pembanding data. Ada dua jenis comparator digital, yaitu Equality (Identify) Comparator dan Magnitude Comparator. Berikutnya akan dibahas kedua komparator tersebut. Equality/identify comparatorKomparator yang fungsinya mendeteksi apakah dua buah data biner n-bit besarnya sama atau tidak. Implementasinya dengan XNOR pada setiap bit (sebut saja bit ke-p) untuk masing-masing data biner n-bit tersebut. Hal ini dimungkinkan karena gerbang XNOR akan berlogika 1 jika kedua inputnya sama. Magnitude ComparatorKomparator yang fungsinya tidak hanya mendeteksi apakah dua buah data biner n-bit besarnya sama maupun tidak sama. jika tidak sama comparator ini dapat pula mendeteksi data manakah yang lebih besar dan manakah yang lebih kecil (greater than atau little than). Komparator ini disusun secara ripple dari tiap bit komparator penyusunnya.

2. Implementasi dan Simulasi N-Bit Comparator Pada FPGA Xilinx Spartan 6N-Bit Komparator ini disimulasikan pada device FPGA Xilinx Spartan 6 (xc6slx16-csg324) yang akan dibantu dengan tools ISE (Integrated Software Environment). Adapun skema simulasi yang dilakukan adalah sebagai berikut:

Adapun karakteristik dari tahapan di atas adalah sebagai berikut: Entry DesainMelakukan pemrograman HDL (Hardware Description Language) untuk memenuhi kebutuhan fungsional dan konstrain sistem. Berbentuk kode program atau skematik Berisikan dekripsi struktural dan perilaku sistem Bahasa : VHDL, Verilog, dan Altera HDL Verifikasi: Simulasi perilaku (diagram pewaktuan) SisntesisMembangkitkan skematik RTL (Register Transfer Level) sesuai dengan teknologi yang digunakan, semisal Xilinx FPGA. SimulasiPada tahapan ini dilakukan pengujian terhadap inputan dan output dari rangkaian yang telah dibuat.

2.1 Entry Desain N-Bit KomparatorUntuk implementasi N-Bit Komparator ini, akan diambil contoh yang sederhana yaitu komparator untuk masukan 4 bit dan 8 bit. Adapun struktur dari sistem yang akan dibangun adalah sebagai berikut (semisal untuk komparator 4 bit).

yeq4 - BitKomparatorxgtlt

Input :2 buah nilai 4 bit biner x[30] dan y[30]Output :3 buah penanda yaitu: Nilai x lebih besar dari nilai y ( gt ) Nilai x lebih kecil dari nilai y ( lt ) Nilai x sama dengan nilai y ( eq )Perilaku Sistem: Jika nilai input x lebih besar dari nilai y maka nilai outputgt = 1; lt = 0; dan eq = 0 Jika nilai input x lebih kecil dari nilai y maka nilai outputgt = 0; lt = 1; dan eq = 0 Jika nilai input x sama dengan y maka nilai outputgt = 0; lt = 0; dan eq = 1

Dari struktur dan perilaku sistem seperti di atas, maka tahapan awal implementasi n-bit komparator telah dapat dilakukan. Langkah pertama yang dilakukan adalah pembuatan top-level module untuk pengaplikasian struktur dan perilaku 4-bit komparator yang akan dibuat.Pembuatan top-level module ini dapat berbentuk kode program maupun rancangan skematik. Untuk mempermudah pengimplementasian N-bit komparator, maka top-level module dibuat dengan kode program (dalam pembahasan ini menggunakan VHDL). Dengan pengimplementasian yang berbentuk kode program, maka akan mempermudah kita dalam kustomisasi jumlah inputan komparator yang diingikan. Semisal kita ingin merubah 4-bit komparator yang telah dibuat menjadi 8-bit komparator, maka hanya perlu merubah beberapa baris kode dari file VHDL yang telah dibuat. Berbeda bila top-level module diimplementasikan ke dalam rancangan skematik, untuk merubah jumlah inputan komparator yang akan dibuat maka setidaknya kita harus merubah rancangan yang telah dibuat dengan menambah/mengurangi komponen yang ada dan mengintegrasikannya ulang.Adapun kode program VHDL untuk 4-bit komparator seperti struktur di atas adalah sebagai berikut:

library IEEE;use IEEE.STD_LOGIC_1164.ALL;entity nbit_komparator isgeneric (N:integer := 4);port(x : in STD_LOGIC_VECTOR(N-1 downto 0);y : in STD_LOGIC_VECTOR(N-1 downto 0);gt : out STD_LOGIC;eq : out STD_LOGIC;lt : out STD_LOGIC);end nbit_komparator;architecture Behavioral of nbit_komparator isbeginprocess(x,y)begingt 0001011O

Dengan demikian, sama seperti pada ilustrasi di atas, maka konsep serupa juga dapat diterapkan pada komparator dengan jumlah inputan yang lebih besar. Pada kasus ini, untuk mengimplementasikan komparator 4 bit, maka digunakan LUT 4-inputan dan LUT 5-inputan seperti pada Technology Schematic yang telah dihasilkan.

2.3 Simulasi Komparator 4-BitUntuk melakukan simulasi terhadap komparator yang telah dibangun dapat dilakukan dengan membuat file simulasi yang dalam hal ini adalah VHDL Test Bench karena top-module yang digunakan berbasis VHDL. Pada file ini dapat didefinisikan inputan-inputan yang kita inginkan untuk diujikan terhadap komparator yang telah dibangun untuk menguji apakah komparator yang dibuat telah benar atau masih memiliki kesalahan. Sebelum membuat file test bench, yang perlu dilakukan adalah menentukan skema simulasi yang diinginkan. Untuk melakukan simulasi yang lebih menyeluruh, dapat dilakukan dengan mensimulasikan semua kemungkinan input yang ada untuk masing-masing 4 bit input x dan y. Maka dari itu, kali ini simulasi akan dilakukan untuk input x dan y mulai dari 0000 sampai dengan 1111. Adapun skema simulasinya adalah sebagai berikut.

Simulasi akan dilakukan pada interval 10 nano second. Karena hanya merupakan rangkaian kombinasional, maka pada simulasi tidak diperlukan clock sebagai pengatur nilai keluaran. Data sheet dari setiap inputan dan output yang diharapkan pada masing-masing interval waktu adalah sebagai berikut:

IntervalXY>= y) theny_int := conv_integer(y) + 1;flag := '1';elsif(y > x) thenx_int := conv_integer(x) + 1;flag := '0';end if;x x, y => y, gt => gt, eq => eq, lt => lt );

-- Stimulus process stim_procINT: processbeginwait for 10 ns;if(x = y) thenif(flag = '0') thenx_int := conv_integer(x) + 1;elsey_int := conv_integer(y) + 1;end if;elsif(x > y) theny_int := conv_integer(y) + 1;flag := '1';elsif(y > x) thenx_int := conv_integer(x) + 1;flag := '0';end if;x