embedded system

Upload: ardser

Post on 15-Jul-2015

208 views

Category:

Documents


0 download

TRANSCRIPT

1. TEORI DASAR 1.1. Gerbang-gerbang Sistem Digital Gerbang-gerbang sistem digital atau gerbang logika adalah piranti yang memiliki keadaan bertaraf logika. Gerbang logika dapat mempresentasikan keadaan dari bilangan biner. Terdapat dua keadaan pada gerbang logika, yaitu 0 dan 1. Tegangan yang digunakan dalam gerbang logika dalam gerbang logika adalah HIGH (1) dan LOW (0). Sistem digital yang paling kompleks seperti computer besar disusun dari gerbang logika dasar seperti AND, OR, NOT dan gerbang kombinasi (turunan) yang disusun dari gerbang dasar tersebut seperti NAND, NOR, XOR, XNOR. Pada perancangan perhitungan sistem elektronika, ada beberapa gerbang logika yang akan digunakan, sebagai berikut : 1.1.1. Gerbang NOT (inverter) Sebuah inverter (pembalik) adalah gerbang dengan satu sinyal masukan dan satu sinyal keluaran dimana keadaan keluarannya selalu berlawanan dengan keadaan masukan. Gerbang Logika INV pada Datasheet nama lainnya IC TTL 7404. Pada gerbang NOT (inverter) hanya memiliki satu masukan dan satu keluaran. Jika diketahui masukan 1 (high) maka keluarannya akan bernilai 0 (low), begitupun sebaliknya jika masukan 0 (low) makan keluarannya akan bernilai 1 (high), maka dapat disimpulkan bahwa keluaran dari gerbang not merupakan kebalikan dari masukannya sendiri.

Gambar 1.1 gerbang NOT

0

Tabel 1.1 Tabel kebenaran untuk gerbang NOT (inverter)

1.1.2. Gerbang AND Gerbang AND mempunyai dua atau lebih dari dua sinyal masukan tetapi hanya satu sinyal keluaran. Dalam gerbang AND, untuk menghasilkan sinyal keluaran tinggi maka semua sinyal masukan harus bernilai tinggi. Gerbang Logika AND pada Datasheet nama lainnya IC TTL 7408.

Gambar 1.2 simbol gerbang AND Gambar 1.2 merupakan symbol logika gerbang AND, Berikut Tabel kebenaran gerbang AND, yang terdiri dari dua masukan. Tabel 1.2 Tabel kebenaran untuk gerbang AND

1.1.3. Gerbang OR Gerbang OR akan memberikan sinyal keluaran tinggi jika salah satu atau semua sinyal masukan bernilai tinggi, sehingga dapat dikatakan bahwa gerbang OR hanya memiliki sinyal keluaran rendah jika semua sinyal masukan bernilai rendah. Gerbang Logika OR pada Datasheet nama lainnya IC TTL 7432.

1

Gambar 1.3 gerbang OR Gambar 1.2 merupakan symbol logika gerbang OR, Berikut Tabel kebenaran gerbang OR, yang terdiri dari dua masukan. Tabel 1.3 Tabel kebenaran untuk gerbang OR

1.1.4. Gerbang XOR Gerbang X-OR akan menghasilkan sinyal keluaran rendah jika semua sinyal masukan bernilai rendah atau semua masukan bernilai tinggi atau dengan kata lain bahwa XOR akan menghasilkan sinyal keluaran rendah jika sinyal masukan bernilai sama semua. Gerbang Logika XOR pada Datasheet nama lainnya IC TTL 7486.

Gambar 1.4 gerbang XOR Gambar 1.2 merupakan symbol logika gerbang OR, Berikut Tabel kebenaran gerbang OR, yang terdiri dari dua masukan. Tabel 1.4 tabel kebenaran gerbang XOR

2

1.2. Rangkaian Terintegrasi Rangkaian terintegrasi adalah rangkaian aplikasi yang terbentuk dari berbagai macam gerbang logika. Rangkaian terintegrasi dapat merupakan kombinasi dari satu jenis gerbang logika atau lebih. Penyederhanaan rangkaian terintegrasi dapat menggunakan aljabar Boole atau peta karnough. 1.2.1. Rangkaian half Adder (Rangkaian setengah penjumlah) Rangkaian half Adder (HA) merupakan rangkaian penjumlah yang paling dasar, rangkaian ini dapat digunakan untuk penjumlahan 2 variabel A dan B, masing-masing 1 bit. Rangkaian half adder dapat disusun dari tabel kebenaran penjumlahan 2 variabel. Tabel 1.5 Tabel kebenaran penjumlahan Half adder

(S0) akan berlogika 1 jika S0=A .B+ B .A sehingga dapat disimpulkan bahwa hasil penjumlahan dapat diperoleh dengan menggunakan gerbang XOR, sebagaimana Gambar rangkaian full adder. Sedangkan sisa penjumlahan (C0) berlogika 1 jika kedua masukan berlogika 1 atau dapat disimbolkan menjadi C 0= A . B Sehingga C0 dapat diwakili dengan sebuah gerbang AND, sebagaimana gambar rangkaian full adder. Berdasar hasil pnjumlahan dan sisa penjumlahan, maka rangkaian HA dapat digambarkan seperti gambar 1.2.1

Gambar 1.5 Riple Carry Adder

3

1.2.2

Rangkaian Full Adder (penjumlah penuh) Rangkaian full Adder (FA) dapat digunakan untuk penjumlahan 3 variabel A, B, dan Carry (C). 1 FA dapat digunakan untuk penjumlahan 3 variabel 1 bit. Rangkaian FA dapat disusun dari tabel kebenaran penjumlahan 3 variabel. Tabel 1.6 Tabel kebenaran full adder

1.3 Perkalian Dengan metode Algoritma Booth Sistem bilangan biner merupakan sistem bilangan yang menggunakan bilangan 0 dan 1 dengan bit-bit yang dikelompokkan berjumlah 8 bit untuk 1 Byte. Dalam operasi bilangan biner sama dengan operasi bilangan biasa, namun bedanya adalah pada operasi bilangan biner angka yang digunakan hanya 0 dan 1, tidak seperti pada operasi bilangan desimal yang menggunakan angka dari 0-9. Untuk menjalankan operasi perkalian bilangan biner kita harus dapat terlebih dahulu mengkonversi bilangan biner ke desimal dan sebaliknya. Konversi bilangan tersebut digunakan untuk mempermudah dalam proses operasi yang dilakukan, sebab dalam operasinya bilangan biner tidak dapat diproses secara langsung dengan bilangan desimal. Dalam operasi pengalian bilangan biner ada beberapa hal yang harus diperhatikan, diantaranya adalah : 1.3.1 Konversi bilangan biner ke desimal Untuk mengubah angka desimal menjadi angka biner digunakan metode membagi dua angka tersebut dan mengambil hasil sisanya dan penulisannya diurutkan dari bawah ke atas.

4

Sebagai contoh :

1.3.2 Operasi Penjumlahan Operasi penjumlahan ini digunakan untuk operasi 2 s komplemen yang diperoleh dari penjumlahan nilai X ditambah 1, selain itu juga operasi penjumlahan ini digunakan dalam proses akhir mencari nilai hasil perkalian yang dilakukan dengan algoritma booth. Seperti bilangan desimal, bilangan biner juga dijumlahkan dengan cara yang sama. Pertama-tama yang harus dicermati adalah aturan pasangan digit biner berikut:

5

1.3.3 Mencari 2 s Complement Untuk mencari nilai 2 s complement dapat dicari dengan mengganti bilangan biner 0 menjadi 1 dan 1 menjadi 0, kemudian hasil dari pengubahan tersebut dijumlahkan dengan 1 bit. Contoh :

1.3.4 Algoritma Booth Algoritma booth merupakan bilangan yang dikalikan dengan pengali dengan recoded digit yang telah ditentukan untuk memproses dan menjalankan operasi pengaliannya, dimana mode operasi yang dijalankan tersebut sesuai dengan keadaan yang ada pada tabel berikut : Tabel 1.7 Penentuan Record Digit Dalam Algoritma Boot

Setelah kita mengetahui operasi diatas, maka kita dapat melakukan operasi perkalian bilangan biner. Sebagai contoh proses operasi perkalian dengan menggunakan algoritma booth dengan cara mengalikan multiplier dengan multiplikannya. Dengan multiplier 0.24, maka untuk menghasilkan nilai tersebut dalam bilangan binnernya dapat ditentukan sebagai berikut : 0.24 dikali dengan 128 (karena untuk mendapatkan nilai sebesar 8 bit.6

Maka : 0.24128 = 30.72 dibulatkan menjadi 31. Dalam binnernya 31 = 11111, Karena bilangan positif dan agar dapat menentukan nilai mode operasi multiplier ini binnernya menjadi 0111110. Tabel 1.8 Contoh Penentuan Record Digit

Record digit digunakan kode mode operasi yang dilakukan untuk melakukan perkalian dengan metode algoritma booth. Adapun operasi yang dapat dilakukan adalah sebagai berikut : a. (-1) = memasukkan 2 s complement X ke partial product b. (0) = memasukkan 0 (nol) ke partial product c. (+2) = menggeser ke kiri X satu posisi dan kemudian memasukkan ke partial product Nilai Multiplier = 0111110 Dengan memasukkan nilai multiplikan, maka akan diperoleh hasil perkalian dengan metode tersebut. sebagai contoh :

Hasil perkalian biner = 1 , hasil perkalian desimal = 1.2

7

Dari hasil perkalian dengan metode Algorithma Booth ini, nantinya dapat dirangcang penggunaan FPGA dengan bahasa VHDL yang didapatkan dari penyederhanaan tabel perkalian Algoritma Booth, ditentukan gerbang apa saja yang digunakan untuk membuat rangkaian Skematik sebelum di buat bahasa pemrograman secara deskriptif dengan VHDL. Tahap 1. Dari contoh yang diberikan pada tabel algoritma booth sebelumnya, nilai yang terdapat pada tabel kita ubah dan didefinisikan dalam bentuk huruf untuk mempermudah dalam proses pengerjaan hingga menjadi rangkaian yang sederhana, sesuai dengan bit recorder yang telah diperoleh. Tabel 1.9

Tahap 2. Tabel 1.10

Karena operation bit recorder kedua adalah '0', maka dapat disederhanakan seperti tabel diatas dimana nilai '0' tidak berpengaruh pada operasi penjumlahan. Tahap 3. Nilai D0-D7 merupakan nilai 2's complement dari produk, maka agar dapat mencari persamaan untuk operasi penjumlahan, operasi mencari nilai complement's tersebut dapat dimasukkan ke dalam Tabel 1.11

Nilai B0-B6 adalah nilai produk dan 1 adalah nilai yang akan ditambahkan ke nilai produk untuk mendapatkan nilai 2's complement.8

Tahap 4. Penyederhanaan kembali dari tabel algoritma booth Tabel 1.12

Tahap 5. Tabel 1.13

Dari tabel diatas dapat ditentukan nilai cary C0 dan C11 untuk mendapatkan hasil akhir dari perkalian dengan metode ini. Cary C1 sama dengan B0, dapat dibuktikan dengan penggunaan Full Adder sebagai pembuktiannya. Adapun rumus dari Full Adder adalah sebagai berikut : S = X XOR Y XOR Cin C = X AND Y OR X AND Cin OR Y AND Cin Dari tabel diatas, untuk C0 yang dibutuhkan hanya Cary operasi penjumlahan B0 dan 1, maka : C0 = B0 AND 1 OR B0 AND 0 OR 1 AND Cin = B0 AND 1 OR 0 OR 0 = B0 AND 1 Jadi, besarnya cary sama dengan B0.

9

Tahap 6 Tabel 1.14

Setelah mengetahui cary pertama C0=B0, selanjutnya adalah mencari nilai C4, karena yang dibutuhkan dalam operasi selanjutnya adalah mencari nilai carry C7 untuk proses penjumlahan akhir. Dapat dilakukan dengan menggunakan Ripple Cary Adder. S = Pi XOR Ci S = X XOR Y XOR Cin C = gi OR pi AND Ci C = X AND Y OR X XOR Y AND Cin Karena yang dibutuhkan hanya Cary nya saja, maka yang digunakan adalah rumus C saja.

C5 dapat dicari dengan Ripple Cary Adder, maka selanjutnya dapat dilakukan proses terakhir dengan menggunakan kembali Full adder untuk menghasilkan Sum dan Carry. Full Adder kali ini tidak hanya menghasilkan C6 tetapi Sum Y1 dan Cary C7 digunakan untuk10

mencari Sum Y2. Sum yang dihasilkan adalah bit-bit yang digunakan untuk menghasilkan bilangan biner terakhir sebagai hasil perkalian bilangan biner. secara skematik, berikut adalah gambaran untuk menentukan carry dan sum.

Gambar 1.6 Skematik Rangkaian Full Adder Dari rumus diatas maka diperoleh hasil S1, S2, S3, S4, S5, S6 dan Sn, kemudian dihitung nilai binnernya dari kiri ke kanan. Karena perhitungan yang dilakukan secara desimal jika dikonversi adalah 8 bit, maka 8 bit dari kri ke kanan merupakan hasil akhir perkalian bilangan binner dengan algoritma Booth. Tahap 7 Tabel 1.15

Proses selanjutnya adalah membuat program secara deskriptif dengan bahasa VHDL yang dapat dituliskan dalam program XILINX sebagai simulasi implementasi pada FPGA. Dengan menggunakan rumus dan memasukkan hasil dari S dan C program dapat dituliskan dan disimulasikan. Adapun bentuk program dan hasil simulasi dari perkalian Algoritma booth ini adalah sebagai berikut: VHDL perkalian algoritma boothlibrary IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; - Uncomment the following library declaration if instantiating - any Xilinx primitives in this code.

11

library UNISIM; use UNISIM.VComponents.all; entity Algoritma1 is PORT ( A : IN STD_LOGIC_VECTOR (7 DOWNTO 0); Y : OUT STD_LOGIC_VECTOR (7 DOWNTO 0)); end Algoritma1; architecture Behavioral of Algoritma1 is signal C : STD_LOGIC_VECTOR (11 DOWNTO 0); signal B : STD_LOGIC_VECTOR (7 DOWNTO 0); begin B