Tugas Perancangan Sistem Elektronis Uas Kelompok 2

51
UJIAN AKHIR SEMESTER GENAP 2012/ 2013 PERANCANGAN SISTEM ELEKTRONIS (TAKE HOME EXAM KELOMPOK II) Oleh : IWAN SETIAJI (H1C009021) MOHAMMAD ALI M. (H1C009056) MUSLIM MUNAWAR (H1C010040) KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN UNIVERSITAS JENDERAL SOEDIRMAN FAKULTAS SAINS DAN TEKNIK JURUSAN TEKNIK TEKNIK ELEKTRO

Transcript of Tugas Perancangan Sistem Elektronis Uas Kelompok 2

Page 1: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

UJIAN AKHIR SEMESTER GENAP 2012/ 2013

PERANCANGAN SISTEM ELEKTRONIS

(TAKE HOME EXAM KELOMPOK II)

Oleh :

IWAN SETIAJI (H1C009021)

MOHAMMAD ALI M. (H1C009056)

MUSLIM MUNAWAR (H1C010040)

KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN

UNIVERSITAS JENDERAL SOEDIRMAN

FAKULTAS SAINS DAN TEKNIK

JURUSAN TEKNIK

TEKNIK ELEKTRO

PURBALINGGA

2013

Page 2: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

TUGAS BESAR PERANCANGAN SISTEM ELEKTRONIS

SIMULASI PERANCANGAN FILTER BUTERWORTH

MENGGUNAKAN MODELSIM

Oleh :

IWAN SETIAJI (H1C009021)

MOHAMMAD ALI M (H1C009056)

MUSLIM MUNAWAR (H1C010040)

KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN

UNIVERSITAS JENDERAL SOEDIRMAN

FAKULTAS SAINS DAN TEKNIK

JURUSAN TEKNIK

TEKNIK ELEKTRO

PURBALINGGA

2013

Page 3: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

BAB I. PENDAHULUAN

1. LATAR BELAKANG

Perkembangan teknologi sangatlah pesat di dunia ini,apalagi yang

berhubungan dengan elektronis. Seperti misalnya perangkat digital,hampir

semua teknologi yang berhubungan dengan perangkat digital sangatlah

membutuhkan suatu filter (tapis) yang mampu untuk dapat digunakan

sebagai penyaring baik itu sinyal, gelombang, frekuensi dan lain-lain.

Penggunaan filter (tapis) ini bertujuan untuk menghilangkan noise

yang sering terjadi pada komunikasi digital. Ada berbagai macam bentuk

filter (tapis) yang mampu digunakan pada komunikasi digital. Dalam

kasus ini, penulis memilih menggunakan filter (tapis) butterworth (low

pass filter butterworth) dengan pertimbangan bahwa tapis ini mampu dan

sudah banyak yang menggunakannya.

Filter merupakan suatu sistem yang mempunyai fungsi transfer

tertentu untuk meloloskan sinyal masukan pada frekuensi - frekuensi

tertentu dan menyaring / memblokir / melemahkan sinyal masukan pada

frekuensi-frekuensi yang lain. Filter juga dapat diklasifikasikan ke dalam

dua jenis yaitu filter analog dan filter digital.

Penulis menggunakan filter butterwoth karena filter ini tergolong

ke dalam filter digital, yang mana filter digital ini mempunyai dua jenis

yaitu IIR (infinite inpulse response) dan FIR (finite inpulse response).

Sementara filter yang digunakan oleh penulis tergolong dalam IIR (infine

impulse response).

Alasan digunkannya filter digital (filter butterworth) oleh penulis

adalah filter digital lebih mudah diubah-ubah dan programmable,filter

digital lebih mudah didesain, tes, dan diimplementasikan pada computer,,

selain itu dalam praktiknya filter digital menggunakan DSP

(PLC/microcontroller/ DSP card) relatif lebih simple dan komplit. Berikut

ini adalah gambar diagram dari filter digital :

Page 4: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

Rangkaian filter yang digunakan oleh penulis membutuhkan

beberapa komponen yaitu 8 komponen D flip-flop, 7 Multiplier, 6 Adder,

2 divider. Berikut adalah rancangan rangkaian yang dibuat oleh penulis :

2. RUMUSAN MASALAH

Dalam penulisan tugas besar ini kami hanya membatasi masalah

pada analisis simulasi rancangan filter butterworth menggunakan

modelsim.

Page 5: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

3. TUJUAN

Tujuan dari penulisan tugas besar ini dengan judul Simulasi Rancangan

Filter Butterworth Menggunakan Modelsim adalah

a. Menganalisis tapis (filter) butterworth dengan menggunakan

Modelsim.

b. Menganalisis kesesuaian timing diagram yang ada pada tapis

butterworth.

c. Memenuhi tugas terstruktur mata kuliah Perancangan Sisitem

Elektronis.

Page 6: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

BAB II. TINJAUAN PUSTAKA

Filter merupakan suatu sistem yang mempunyai fungsi transfer tertentu

untuk meloloskan sinyal masukan pada frekuensi - frekuensi tertentu dan

menyaring / memblokir / melemahkan sinyal masukan pada frekuensi-frekuensi

yang lain.

Filter diklasifikasikan menjadi Filter analog dan filter digital

o Filter analog : sinyal masukan berupa sinyal analog

(dapat berupa Filter pasif dan filter aktif)

• Filter pasif : filter yang hanya disusun komponen tahanan, induktor dan

kapasitor

• Filter aktif : filter yang disusun komponen op amp atau transistor ditambah

tahanan, induktor, dan kapasitor

o Filter digital : sinyal masukan berupa sinyal diskrit

FIR (Finite Impulse Response)

IIR (Infinite Impulse Response )

oFilter menurut frekuensi yang disaring:

• Filter low pass:

Filter yang tegangan keluarannya tetap sampai ke suatu frekuensi cut off

(fc) .Bersama naiknya frekuensi di atas fc, tegangan keluarannya

melemah/menghilang. Frekuensi cut off / frekuensi 3 dB / frekuensi 0,707 .

Page 7: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

• Filter high pass

Filter yang memperlemah tegangan keluaran untuk frekuensi di bawah

nilai frekuensi cut off fc. Di atas fc besar tegangan keluaran tetap.

• Filter band pass

Filter yang hanya melewatkan sinyal keluaran yangberfrekuensi tertentu

(yang dititik beratkan di 1 nilai fc ) dan melemahkan tegangan sinyal keluaran

semua frekuensi selain frekuensi tertentu.

• Filter band elimination

Filter yang menyaring / melemahkan tegangan sinyalkeluaran yang

memiliki suatu nilai frekuensi tertentu dan meloloskan sinyal keluaran yang lain.

Filter digital memiliki banyak kelebihan dibandingkan dengan

pasangannya filter analog, baik dalam performa yang lebih tinggi dengan

Page 8: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

transition zone yang lebih kecil, ketahanan, serta fleksibilitas dalam menentukan

range kerjanya (Smith, 1997: 327). Karena faktor-faktor ini, filter digital

merupakan elemen penting dalam bidang DSP (Digital Signal Processing).

Terdapat dua metoda untuk mendisain sebuah filter digital. Metoda

pertama dengan menggunakan proses konvolusi antara sinyal input dengan

impulse response dari filter yang dikehendaki, filter jenis ini disebut filter FIR

(Finite Impulse Response). Metoda kedua adalah dengan proses rekursif, yang

merupakan kelanjutan dari metoda konvolusi. Bila dalam proses konvolusi

perhitungan dilakukan dengan hanya menggunakan sampel input saja, maka

dalam proses rekursif perhitungan dilakukan dengan sampel input yang

dijumlahkan dengan sampel output sebelumnya. Hal ini membuat impulse

response filter menjadi sangat panjang mendekati titik tak berhingga (infinity),

oleh karena itu filter jenis ini disebut filter IIR (Infinite Impulse Response).

Filter IIR adalah salah satu tipe dari filter digital yang dipakai pada

aplikasi Digital Signal Processing (DSP). IIR kepanjangan dari Infinite Impulse

Response.Mengapa disebut response impulsnya tak terbatas (infinite)? Karena

adanyafeedback didalam filter, jika anda memasukkan sebuah impulse (yaitu

sebuah sinyal ′1′ diikuti dengan banyak sinyal ′0′), maka pada outputnya akan

terus menerus berosilasi karena adanya umpan balik, walaupun pada prakteknya

akan hilang pada suatu saat. Keuntungan filter IIR antara lain adalah

membutuhkan koefisien yang lebih sedikit untuk respon frekuensi yang curam

sehingga dapat mengurangi jumlah waktu komputasi.

Contoh blok IIR:

Page 9: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

Bentuk respon impuls dari filter IIR dinyatakan

Fungsi alih dari filter IIR

Konfigurasi Butterworth adalah salah satu konfigurasi standar dari filter rekursif

baik dalam bentuk analog maupun digital. Konfigurasi ini menekankan pada aproksimasi

karakteristik lowpass dengan hasil respons yang mendekati titk nol dengan halus dan rata

(smooth and flat) (Soliman.Srinath, 1990: 436). Filter Butterworth didefinisikan melalui

persamaan magnitude function H(ω) sebagai berikut:

di mana N adalah nilai orde filter.

Jelas dari rumus di atas bahwa magnitude function Butterworth adalah fungsi

frekuensi () yang menurun secara monoton, dengan nilai maksimumnya dari unity

Page 10: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

terjadi pada saat = 0. Untuk = 1, nilai magnitude adalah sama dengan 1/√ 2 untuk

semua nilai N. Dengan demikian, filter Butterworth dalam bentuk normal memiliki

frekuensi cutoff sebesar 3 dB. Gambar 1.menunjukkan plot dari karakteristik magnitude

dari filter ini sebagai fungsi frekuensi () untuk beberapa tingkatan orde. Nampak bahwa

semakin tinggi tingkatan orde, karakteristik filter Butterworth semakin mendekati filter

ideal.

Contoh desain filter lowpass dengan frekuensi cut off 5 kHz pada

fekuensi sampling

sebesar 16 kHz. (Menentukan koefisien a dan b) :

Diketahui frekuensi sampling filter = 16 kHz

Setengah dari frekuensi sampling filter = 8 kHz

Frekuensi cut off filter = 5 kHz

Nilai wn sebagai frekuensi cut off bernilai = (5 kHz / 8 kHz) = 0,625

Dirancang filter low pass IIR orde 2, orde 10, dan orde 15 sebagai

perbandingan

[a,b]=butter(orde,frekuensi_cut_off);

m-file

Page 11: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

f=8;n1=2;n2=10;n3=15;wn=0.625;[a1,b1]=butter(n1,wn);[a2,b2]=butter(n2,wn);[a3,b3]=butter(n3,wn);[h1,w1]=freqz(a1,b1,1024);[h2,w2]=freqz(a2,b2,1024);[h3,w3]=freqz(a3,b3,1024);%plot((w*f)/pi,20*log(abs(h)));plot((w1*f)/pi,(abs(h1)),'k',(w2*f)/pi,(abs(h2)),'b',(w3*f)/pi,(abs(h3)),'k');grid on;

Dari Gambar di atas, semakin besar ordenya, maka filter

lowpass IIR semakincuram/mendekati ideal. Untuk mendapatkan

koefisien filter dengan metode butterworth. Pada Matlab

digunakan untuk mendesain filter IIR low pass menggunakan

metode butterworth orde N dengan frekuensi cut-off pada wn,

dan menghasilkan koefisien filter pada vector B (numerator) dan

vector A (denumerator) sebanyak N+1.

Page 12: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

Nilai dari frekuensi cut off wn harus bernilai 0 < wn < 1,

dimana 1 menunjukkan setengah dari frekuensi sampling.

[a,b]=butter(orde,frekuensi_cutoff,’high’); untuk filter high pass

[a,b]=butter(orde,[frek_cutoff1 frek_cutoff2]); untuk filter band pass

[a,b]=butter(orde,[frek_cutoff1 frek_cutoff2],’stop’); untuk filter stop

pass

BAB III. PEMBAHASAN

Divider.vhdl

--Component Divider1000

================================

library IEEE; --inisialisasi library yang digunakan adalah library ieee

use IEEE.STD_LOGIC_1164.ALL;-- menggunakan semua isi dari library ieee std

logic 1164

use IEEE.STD_LOGIC_ARITH.ALL;-- menggunakan semua isi dari library ieee

std logic arithmatic

use IEEE.STD_LOGIC_UNSIGNED.ALL;-- menggunakan semua isi dari library

ieee std logic unsigned

entity divider1000 is--deklarasi entity dengan nama divider 1000

Port (--deklarasi dari port-port yang akan dipakai sebagai input output

ain : in STD_LOGIC_VECTOR (31 downto 0);--deklarasi port input dengan

nama ain bertipe std logic vector 32 bit

Page 13: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

dvdout : out STD_LOGIC_VECTOR (31 downto 0));--deklarasi port output

dengan nama dvdout bertipe std logic vector 32 bit

end divider1000;--untuk mengakhiri entity divider1000

architecture Behavioral of divider1000 is--deklarasi architecture bernama

behavioral dari divider1000

signal a ,b : bit_vector (31 downto 0);--inisialisasi signal a,b dengan tipe bit vector

32bit

begin--function untuk memulai proses

a <= to_bitvector(ain);--output signal a adalah menuju bitvector

b <= a sra 10;--output signal b adalah signal a sra 10

dvdout<= to_stdlogicvector(to_bitvector(ain) sra 10);--output dvdout bertipe

stdlogicvector

end Behavioral;--untuk mengakhiri architecture behavioral

D FLIP FLOP 16bit

-- Delay 16 BIT Unit Use D FlipFlop(2)--DFF2

-------------------------------------

library ieee;--deklarasi library yang digunakan yaitu library ieee

use ieee.std_logic_1164.all;--menggunakan semua isi dari std logic 1164

ENTITY dff2 IS–deklarasi entity dff2

PORT( D : INSTD_LOGIC_VECTOR(15 downto 0);--deklarasi port input

dengan nama D bertipe std logic vector 16 bit

Clk, Res : IN STD_LOGIC;--deklarasi port input dengan nama clk,res bertipe std

logic

Page 14: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

Q : OUTSTD_LOGIC_VECTOR(15 downto 0));--deklarasi port input dengan

nama Q bertipe std logic vector 16 bit

END dff2;-- akhir dari entity

ARCHITECTURE behavioral OF dff2 IS--deklarasi architecture bernama behavioral dari dff2

BEGIN– mulai arsitektur

PROCESS(Clk, Res) --We only care about Clk

BEGIN

IF Res = '1' THEn Q <= X"0000"; -- determine Q=0 Hexa

Else

IF (Clk'event) AND (Clk='1') THEN --Positive Edge

Q <= D;-- assignment Q dengan D

END IF;-- akhir fungsi if

END IF;-- akhir fungsi if

END PROCESS;--akhir proses

END behavioral;--akhir behavioral

D Flip-Flop 32bit

-- Delay 32 BIT Unit Use D FlipFlop--DFF21

-------------------------------------

library ieee;--deklarasi library yang digunakan yaitu library ieee

use ieee.std_logic_1164.all;--menggunakan semua isi dari std logic 1164

ENTITY dff21 IS–deklarasi entity dff21

PORT( pi : IN STD_LOGIC_VECTOR(31 downto 0);--deklarasi port input dengan nama pi

bertipe std logic vector 32 bit

Page 15: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

Clk, Res : IN STD_LOGIC;--deklarasi port input dengan nama clk,res bertipe std logic

po : OUT STD_LOGIC_VECTOR(31 downto 0));--deklarasi port input dengan nama po

bertipe std logic vector 32 bit

END dff21;-- akhir entitas

ARCHITECTURE behavioral OF dff21 IS--deklarasi architecture bernama behavioral dari dff21

BEGIN

PROCESS(Clk, Res) --We only care about Clk

BEGIN

IF Res = '1' THEn po <= X"00000000"; -- determine Q=0 Hexa

Else

IF (Clk'event) AND (Clk='1') THEN --Positive Edge

po <= pi;-- assignment po dengan pi

END IF;-- akhir fungsi if

END IF;-- akhir fungsi if

END PROCESS;-- akhir proses

END behavioral;-- akhir arsitektur

ADDER32bit

-- Adder 32 bit

--------------------------------------------

Page 16: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

LIBRARY IEEE;-- Library IEEE untuk tipe data dan operasinya

use IEEE.STD_LOGIC_1164.ALL;-- paket yang digunakan untuk tipe data dan

fungsi

entity add32i is--deklarasi entitas add32

port( a, b : inSTD_LOGIC_VECTOR(31 downto 0);-- inisialisasi input a dan b 32

bit std logic

sum : outSTD_LOGIC_VECTOR(31 downto 0));--inisialisasi output sum 32 bit

std logic

-- cout : outSTD_LOGIC );

end add32i;-- akhir dari entitas

architecture STRUCTURE of add32i is--deklarasi arsitektur dari entitas add32

component add16--deklarasi komponen add16

port( a, b : in STD_LOGIC_VECTOR(15 downto 0);--deklarasi port berisi input

cin dan output

sum,cout

cin : in STD_LOGIC;-- input cin berupa std logic

sum : out STD_LOGIC_VECTOR(15 downto 0);-- out sum std logic vector 16bit

cout : out STD_LOGIC );--out cout berupa std logic

end component;--akhir deklarasi komponen

signal cout1, cout2, scin : STD_LOGIC;--deklarasi signal cout1,cout2,scin berupa

std logic

begin-- mulai struktur

scin<= '0';-- inisialisasi awal scin 0

Page 17: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

add16i1: add16 port map (a(15 downto 0), b(15

downto 0), scin, sum(15 downto 0), cout1);-- assignment add16i sebagai

penjumlahan 16 bit a,b,scin dan

cout1 sebagai keluaran

add16i2: add16 port map (a(31 downto 16), b(31

downto 16), cout1, sum(31 downto 16), cout2);-- assignment add16i sebagai

penjumlahan 32 bit a,b,cout1

dan cout2 sebagai keluaran

end structure;-- akhir struktur

MULTIPLIER 32 BIT

-- MULTIPLIER 32 BIT

--------------------------------

LIBRARY ieee;-- Library IEEE untuk tipe data dan operasinya

USE ieee.std_logic_1164.ALL;-- paket yang digunakan untuk tipe data dan fungsi

USE ieee.std_logic_arith.ALL;-- paket yang digunakan untuk tipe data dan fungsi

USE ieee.std_logic_signed.ALL;-- paket yang digunakan untuk tipe data dan

fungsi

USE ieee.std_logic_unsigned.ALL;-- paket yang digunakan untuk tipe data dan

fungsi

ENTITY signed_mult IS-- deklarasi enitas signed_mult

Page 18: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

PORT (

a: IN

STD_LOGIC_VECTOR (15 DOWNTO 0);-- deklarasi a sebagai input port

berupa standard logic vector 16

bit

b: IN

STD_LOGIC_VECTOR (15 DOWNTO 0);-- deklarasi b sebagai input port

berupa standard logic vector 16

bit

result: OUT

STD_LOGIC_VECTOR (31 DOWNTO 0));-- deklarasi result sebagai out port

berupa standard logic vector 32

bit

END signed_mult;-- akhir entitas

ARCHITECTURE rtl OF signed_mult IS-- deklarasi arsitektur rtl dari entitas

SIGNAL a_int, b_int:

SIGNED (15 downto 0);-- deklarasi signal a_int,b_int berupa 16bit

SIGNAL pdt_int:

SIGNED (31 downto 0);-- deklarasi signal a_int,b_int berupa 16bit

BEGIN-- memulai struktur rtl

a_int <= SIGNED (a);-- asssigment a_int sebagai nilai signed a

Page 19: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

b_int <= SIGNED (b);-- asssigment b_int sebagai nilai signed b

pdt_int <= a_int * b_int;-- assignment pdt_int sebagai hasil perkalian a_int * b_int

result<=

STD_LOGIC_VECTOR(pdt_int);-- assignment result sebagai standard logic

vector dari pdt_int

END rtl;-- akhir rtl

IIR

LIBRARY ieee;--inisialisai library yang digunakan adalah library ieee

USE ieee.std_logic_1164.ALL;--menggunakan semua isi dari std logic 1164

USE ieee.std_logic_arith.ALL;--menggunakan semua isi dari std logic arithmatika

USE ieee.std_logic_signed.ALL;--menggunakan semua isi dari std logic signed

USE ieee.std_logic_unsigned.ALL;--menggunakan semua isi dari std logic unsign

entity iir is--deklarasi entity bernama iir

port(--deklarasi port input output yang akan digunakan

D : IN STD_LOGIC_VECTOR(15 downto 0);--inisialisasi D sebagai input std logic vector 16bit

Clk, Res : IN STD_LOGIC;--inisialisasi Clk,Res sebagai input bertipe std logic

Q : OUT STD_LOGIC_VECTOR(15 downto 0);--inisilisasi Q sebagai output bertipe std logic vector 16bit

ain : in STD_LOGIC_VECTOR (31 downto 0);--inisialisasi ain sebagai input bertipe std logic vector 32bit

Page 20: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

dvdout : out STD_LOGIC_VECTOR (31 downto 0);--inisialisasi dvdout sebagai output bertipe std logic vector 32bit

a: IN STD_LOGIC_VECTOR (15 DOWNTO 0);--inisialisasi a sebagai input bertipe std logic vector 16bit

b: IN STD_LOGIC_VECTOR (15 DOWNTO 0);--inisialisasi b sebagai input bertipe std logic vetor 16bit

result: OUT STD_LOGIC_VECTOR (31 DOWNTO 0);--inisialisasi result sebagai output bertipe std logic vector 32bit

sum : out STD_LOGIC_VECTOR(31 downto 0));--inisialisasi sum sebagai output bertipe std logic vector 32bit

end entity;--untuk mengakhiri entity

architecture g_iir of iir is–deklarasi architecture bernama g_iir dari iir

signal Din : STD_LOGIC_VECTOR(15 downto 0);

signal Do1,Do2,Do3,Do4 : STD_LOGIC_VECTOR(15 downto 0);

signal Do5,Do6,Do7,Do8 : STD_LOGIC_VECTOR (31 DOWNTO 0);

signal Mo1,Mo2,Mo3,Mo5,Mo6,Mo7,Mo8 : STD_LOGIC_VECTOR (31 DOWNTO 0);

signal Ai,Fo1 : STD_LOGIC_VECTOR(31 downto 0);

signal Ao5,Ao6,Ao7 :STD_LOGIC_VECTOR(31 downto 0);

signal Fo3,Fo2,sfout : STD_LOGIC_VECTOR (31 downto 0);

signal Fout : bit_vector (31 downto 0);

signal Bo,B2,B4,A1,A2,A3,A4 : STD_LOGIC_VECTOR (15 DOWNTO 0);

component signed_mult–deklarasi component signed_mult

port(--deklarasi port input output yang akan digunakan

a: IN STD_LOGIC_VECTOR (15 DOWNTO 0);--inisialisasi a sebagai input bertipe std logic vector 16bit

Page 21: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

b: IN STD_LOGIC_VECTOR (15 DOWNTO 0);--inisialisasi b sebagai input bertipe std logic vector 16bit

result: OUT STD_LOGIC_VECTOR (31 DOWNTO 0));--inisialisasi result sebagai output bertipe std logic vector 32bit

end component;--untuk mengakhiri component

component dff2—deklarasi component dff2

port(--deklarasi port yang akan digunakan sebagai input output

D : IN STD_LOGIC_VECTOR(15 downto 0);--inisialisasi D sebagai input bertipe std logic vector 16bit

Clk, Res : IN STD_LOGIC;--inisialisasi clk,res sebagai input bertipe std logic

Q : OUT STD_LOGIC_VECTOR(15 downto 0));--inisialisasi Q sebagai output bertipe std logic vector 16bit

end component;--untuk mengakhiri component

component divider1000–deklarasi component divider1000

port(--deklarasi port yang akan digunakan sebagai input output

ain : in STD_LOGIC_VECTOR (31 downto 0);--inisialisasi ain sebagai input bertipe std logic vector 32bit

dvdout : out STD_LOGIC_VECTOR (31 downto 0));--inisialisasi dvdout sebagai output bertipe std logic vector 32bit

end component;--untuk mengakhiri component

component add32i–deklarasi component add32i

port(--deklarasi port yang akan digunakan sebagai input output

a, b : in STD_LOGIC_VECTOR(31 downto 0);--inisialisasi a,b sebagai input bertipe std logic vector 32bit

Page 22: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

sum : out STD_LOGIC_VECTOR(31 downto 0));--inisialisasi sum sebagai output bertipe std logic vector 32bit

end component;--untuk mengakhiri component

component dff21–deklarasi component dff21

port(--deklarasi port yang akan digunakan sebagai input output

pi : in std_logic_vector(31 downto 0);--inisialisasi pi sebagai input bertipe std logic vector 32bit

Clk, Res : IN STD_LOGIC;--inisialisasi clk,res sebagai input bertipe std logic

po : OUT STD_LOGIC_VECTOR(31 downto 0));--inisialisasi po sebagai input bertipe std logic vector 32bit

end component;--untuk mengakhiri component

component mul64–deklarasi component mul64

port(--deklarasi port yang akan digunakan sebagai input output

a : in STD_LOGIC_VECTOR (15 DOWNTO 0);--inisialisasi a sebagai input bertipe std logic vector 16bit

b : in STD_LOGIC_VECTOR (31 DOWNTO 0);--inisialisasi b sebagai input bertipe std logic vector 32bit

kali : out STD_LOGIC_VECTOR (31 DOWNTO 0));--inisialisasi kali sebagai output bertipe std logic vector 32bit

end component;--untuk mengakhiri component

begin–untuk memulai proses

delay1 : dff2 port map(D => Din, --16 bit

Clk=> Clk,

Page 23: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

Res=>Res,

Q => Do1);

mul1 : signed_mult port map( --mul1 butuh 16 bit

a => Din,

B => Bo,

result =>Mo1);

delay2 : dff2 port map( -- delay 16 bit

D => Do1,

Clk => Clk,

Res => Res,

Q => Do2);

delay3 : dff2 port map( --16 bit

D => Do2,

Clk => Clk,

Res => Res,

Q => Do3);

delay4 : dff2 port map( --16 bit

D => Do3,

Clk => Clk,

Res => Res,

Q => Do4);

mul2 : signed_mult port map( --32 bit

A => Do2,

B => B2,

Page 24: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

result => Mo2);

mul3 : signed_mult port map( --32 bit

A => Do4,

B => B4,

result => Mo3);

add1 : add32i port map( -- 32bit

a=>Mo3,

b=>Mo2,

sum => Ai);

add2 : add32i port map( -- 32 bit

a => Ai,

b => Mo1,

sum => Fo1);

div1 : divider1000 port map( --32bit

ain => Fo1,

dvdout => Fo2);

delay5 : dff21 port map( --32 bit

pi => Sfout,

Clk => Clk,

Res => Res,

po => Do5);

mul4 : mul64 port map( -- 64 bit

a => A1, --32 bit

b => Do5, -- 32bit

Page 25: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

kali => Mo5); --64 bit

delay6 : dff21 port map( --32 bit

pi => Do5,

Clk => Clk,

Res => Res,

po => Do6);

delay7 : dff21 port map( --32 bit

pi => Do6,

Clk => Clk,

Res => Res,

po => Do7);

delay8 : dff21 port map( --32 bit

pi => Do7,

Clk => Clk,

Res => Res,

po => Do8);

add6 : add32i port map(--32bit

A=>Fo3,

B=>Fo2,

SUM => Sfout);

mul5 : mul64 port map(--64bit

a=>A2,

b=>Do6,

Page 26: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

kali =>Mo6);

mul6 : mul64 port map(--64bit

A => A3,

B => Do7,

kali => Mo7);

mul7 : mul64 port map(--64bit

A => A4,

B => Do8,

kali => Mo8);

add3 : add32i port map(--32bit

A=>Mo8,

B=>Mo7,

SUM => Ao7);

add4 : add32i PORT MAP(--32bit

A=> Ao7,

B=>Mo6,

SUM => Ao6);

add5 : add32i PORT MAP(--32bit

A=> Ao6,

B=>Mo5,

SUM=>Ao5);

div2 : divider1000 port map(--divider1000

ain => Ao5,

dvdout => Fo3);

end;--untuk mengakhiri proses

Page 27: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

Testbench IIR

IIR Tesbench

LIBRARY ieee;--inisialisasi library yang digunakan yaitu library ieee

USE ieee.std_logic_1164.ALL;--menggunakan semua isi dari std logic 1164

USE ieee.std_logic_arith.ALL;--menggunakan semua isi std logic arith

USE ieee.std_logic_unsigned.ALL;--menggunkan semua isi std logic unsigned

entity iir_tb is --deklarasi enity iir_tb

end entity;--untuk mengakhiri entity

architecture bench of iir_tb is–deklarasi architecture bernama bench dari iir_tb

component signed_mult–deklarasi component signed_mult

port(--deklarasi port yang akan digunakan sebagai input output

a: IN STD_LOGIC_VECTOR (15 DOWNTO 0);--inisialisasi a sebagai input bertipe std logic vector 16bit

b: IN STD_LOGIC_VECTOR (15 DOWNTO 0);--inisialisasi b sebagai input bertipe std logic vector 16bit

result: OUT STD_LOGIC_VECTOR (31 DOWNTO 0));--inisialisasi result sebagai output bertipe std logic vecto 32bit

end component;--untuk mengakhiri component

component dff2–deklarasi component dff2

port(--deklarasi port yang akan digunakan sebagai input output

D : IN STD_LOGIC_VECTOR(15 downto 0);--inisialisasi D sebagai input bertipe std logic vector 16bit

Clk, Res : IN STD_LOGIC;--inisialisasi clk,res sebagai input bertipe std logic vector 16bit

Q : OUT STD_LOGIC_VECTOR(15 downto 0));--inisialisasi Q sebagai output bertipe std logic vector 16bit

Page 28: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

end component;--untuk mengakhiri component

component divider1000–deklarasi component divider1000

port( --deklarasi port yang akan digunakan sebagai input output

ain : in STD_LOGIC_VECTOR (31 downto 0);--inisialisasi ain sebagai input bertipe std logic vector 32bit

dvdout : out STD_LOGIC_VECTOR (31 downto 0));--inisialisasi dvdout sebagai input bertipe std logic vector 32bit

end component;--untuk mengakhiri component

component add32i–deklarasi component add32i

port(--deklarasi port yang akan digunakan sebagai input output

a, b : in STD_LOGIC_VECTOR(31 downto 0);--inisialisasi a,b sebagai input bertipe std logic vector 32bit

sum : out STD_LOGIC_VECTOR(31 downto 0));--inisialisasi sum sebagai input bertipe std logic vector 32bit

end component;--untuk mengakhiri component

component dff21–deklarasi component dff21

port(--deklarasi port yang akan digunakan sebagai input output

pi : in std_logic_vector(31 downto 0);--inisialisasi pi sebagai input bertipe std logic vector 32bit

Clk, Res : IN STD_LOGIC;--inisialisasi clk,res sebagai input bertipe std logic

po : OUT STD_LOGIC_VECTOR(31 downto 0));--inisialisasi po sebagai input bertipe std logic vector 32bit

end component;--untuk mengakhiri component

Page 29: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

signal D : STD_LOGIC_VECTOR(15 downto 0);

signal clk,res : std_logic;

signal bo,b2,b4 : STD_LOGIC_VECTOR(15 downto 0);

signal Din : STD_LOGIC_VECTOR(15 downto 0);

signal Do1,Do2,Do3,Do4 : STD_LOGIC_VECTOR(15 downto 0);

signal Mo1,Mo2,Mo3 : STD_LOGIC_VECTOR (31 DOWNTO 0);

signal Ai,Fo1,fo2 : STD_LOGIC_VECTOR(31 downto 0);

signal Do5,Do6,Do7,Do8,po : STD_LOGIC_VECTOR (31 DOWNTO 0);

signal Fo3,sfout : STD_LOGIC_VECTOR (31 downto 0);

signal Ao5,Ao6,Ao7 :STD_LOGIC_VECTOR(31 downto 0);

begin

delay1 : dff2 port map(D => Din, --16 bit

Clk=> Clk,

Res=>Res,

Q => Do1);

delay2 : dff2 port map( -- delay 16 bit

D => Do1,

Clk => Clk,

Res => Res,

Q => Do2);

mul1 : signed_mult port map( --mul1 butuh 16 bit

a => Din,

B => Bo,

Page 30: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

result =>Mo1);

delay3 : dff2 port map( --16 bit

D => Do2,

Clk => Clk,

Res => Res,

Q => Do3);

delay4 : dff2 port map( --16 bit

D => Do3,

Clk => Clk,

Res => Res,

Q => Do4);

mul2 : signed_mult port map( --32 bit

A => Do2,

B => B2,

result => Mo2);

mul3 : signed_mult port map( --32 bit

A => Do4,

B => B4,

result => Mo3);

add1 : add32i port map( -- 32bit

a=>Mo3,

b=>Mo2,

sum => Ai);

add2 : add32i port map( -- 32 bit

Page 31: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

a => Ai,

b => Mo1,

sum => Fo1);

div1 : divider1000 port map( --32bit

ain => Fo1,

dvdout => Fo2);

delay5 : dff21 port map( --32 bit

pi => Sfout,

Clk => Clk,

Res => Res,

po => Do5);

delay6 : dff21 port map( --32 bit

pi => Do5,

Clk => Clk,

Res => Res,

po => Do6);

delay7 : dff21 port map( --32 bit

pi => Do6,

Clk => Clk,

Res => Res,

po => Do7);

delay8 : dff21 port map( --32 bit

pi => Do7,

Page 32: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

Clk => Clk,

Res => Res,

po => Do8);

add6 : add32i port map(

A=>Fo3,

B=>Fo2,

SUM => Sfout);

add3 : add32i port map(

A=>do8,

B=>Do7,

SUM => Ao7);

add4 : add32i PORT MAP(

A=> Ao7,

B=>do6,

SUM => Ao6);

add5 : add32i PORT MAP(

A=> Ao6,

B=>do5,

SUM=>Ao5);

div2 : divider1000 port map(

ain => Ao5,

dvdout => Fo3);

uut:entity work.iir

Page 33: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

port map

(

Clk => Clk,

Res => Res,

D =>D,

bo => bo,

b2=>b2,

b4=>b4

);

mus : process is

begin–untuk memulai proses

Clk<='1',

'0' after 30ns,

'1' after 60ns,

'0' after 100ns,

'1' after 130ns,

'0' after 160ns,

'1' after 200ns,

'0' after 230ns,

'1' after 260ns,

'0' after 300ns,

'1' after 330ns,

'0' after 360ns,

'1' after 400ns;--dff

Res<='0',

Page 34: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

'1' after 30ns,

'0' after 60ns,

'0' after 100ns,

'0' after 130ns,

'0' after 160ns,

'0' after 200ns,

'0' after 230ns,

'0' after 260ns,

'0' after 300ns,

'0' after 330ns,

'0' after 360ns,

'0' after 400ns;

--dff

bo<="1111110000001110",

"1111000010101010" after 30ns,

"0000001111100000" after 60 ns,

"1100110011001100"after 100ns,

"1111000010101010" after 130ns,

"1111111110000000" after 160ns,

"0000001111100000" after 200ns,

"1100110011001100" after 230ns,

"1111110000001110" after 260ns,

"1100110011001100" after 300ns,

"1111000010101010" after 330ns,

"0000001111100000" after 360ns,

Page 35: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

"1100110011001100" after 400ns;

b2<="0001110001110001",

"1100110011001100" after 30ns,

"0011001100110011" after 60ns,

"1111000011100010" after 100ns,

"1111010100001000" after 130ns,

"1111000100010000" after 160ns;

b4<="1100101010101010",

"1100101101010101" after 30ns,

"1101010110101000" after 60ns,

"1010110001000111" after 100ns,

"1011110001000100" after 130ns,

"1111010101000010" after 160ns,

"1100110011001100" after 200ns,

"1101010110101000" after 230ns,

"1011110001000100" after 260ns,

"1100101101010101" after 300ns,

"1111100000010001" after 330ns,

"1110000000000000" after 360ns,

"1111010101011111" after 400ns;

Din<="1010001010100010",

"1100010001001010" after 30ns,

"1011010100010000" after 60ns,

"1100111100101010" after 100ns,

Page 36: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

"1100111100101010" after 130ns,

"1111000000000000" after 160ns,

"1110000101010100" after 200ns,

"1110101011000000" after 230ns,

"1110010101010101" after 260ns,

"1110000101010100" after 300ns,

"1110000101010100" after 330ns,

"1100001010100000" after 360ns,

"1100000111000010" after 400ns;

wait;--mengakhiri pewaktuan

end process;--mengakhiri proses

end;--akhir dari testbench

Page 37: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

Pembahasan jalanya program :

Pembahasan jalannya program :

Setelah dilakukan simulate dan klik run maka akan muncul screen shot maka akan menjadi :

Page 38: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

Pada kondisi clock dan reset akan menjadi :

Clk<='1',

'0' after 30ns,

'1' after 60ns,

'0' after 100ns,

'1' after 130ns,

Page 39: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

'0' after 160ns,

'1' after 200ns,

'0' after 230ns,

'1' after 260ns,

'0' after 300ns,

'1' after 330ns,

'0' after 360ns,

'1' after 400ns;--dff

Clock ini akan berjalan selama 400ns dan akan continus dari 0 ns hingga 400ns

Inisialisasi pertama yaitu pada clock berlogika 1 hingga 30 ns, dan setelah 30ns maka akan berlogika ‘0’, hingga 60ns, dan setelah 60ns akan berlogika ‘1’ hingga 100ns, dan setelah 100ns akan berlogika ‘0’ hingga 130ns, dan setelah time 130ns akan berlogika ‘1’ hingga time 160ns, dan setelah time 160ns maka akan berlogika ‘0’ dst hingga logika 1 pada time setelah 400ns.

Res<='0',

'1' after 30ns,

'0' after 60ns,

'0' after 100ns,

'0' after 130ns,

'0' after 160ns,

'0' after 200ns,

'0' after 230ns,

'0' after 260ns,

'0' after 300ns,

'0' after 330ns,

'0' after 360ns,

'0' after 400ns;

Page 40: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

Lalu sama seperti clock pada reset juga akan hingga bernilai 400ns dan akan berulang setiap 30ns.

Lalu setelah itu akan memeriksa dan mengimplementasikan timing dari nilai Din sebagai masukan awalnya. Lalu setelah itu Din akan masuk ke delay1 dan akan menghasilkan output do1, do1 itu akan menjadi inputan ke delay 2 yang akan mempunyai output do2 yang nantinya akan menjadi inputan pada delay3 yang juga akan mempunyai output do3. Dan do3 akan menjadi inputan pada delay4 dan akan mempunyai output do4. Dan dari do4 akan

Dan dari do4 akan menjadi inputan multipier yang akan dikalikan nilainya dengan nilai B yang sesuai denan inisialisasi port pada B4, yang outputanya akan menjadiMo3 danDo2 sendiri akan menjadi inputan pada multipier dengan pengalinyaB2 dan akan mempunyai output Mo2. Yang Mo2 ini dan Mo3 akan menjadi inputan pada adder yang nantinya akan mempunyai ouput Ai. Lalu pada Din sendiri akan diinputkan ke multipier dan akan dikalikan mengalikan dengan Bo, dan akan menjadi inputan pada adder dengan inputan lain yang berasal dari Ain. Dan dari output ini akan mempunyai variable Fo1. Lalu do1 ini akan masuk menjadi sinyal inputan pada divider dan akan menjadi output fo2. Dan dari fo2 ini akan menjadi inputan pada adder dan inputan feedback pada fo3. Dan akan menjadi ouput sfout yang nantinya akan menjadi output pada port. Dan pada sfout ini akan menjadi inputan pada delay32 bit dan akan mempunyai output Do5, dan Do5 ini akan menjadi inputan pada delay selanjutnya Do6, dan Do6 ini akan menjadi inputan delay berikutnya dan akan mempunayi output do7 dan akan masuk ke delay berikutnya dan akan menjadi output do8. Dan dari do8 akan masuk menjadi inputan adder dengan do7 dan akan mempunyai outputan Ao7 dan dari Ao7 akan menjadi inputan pada adder dengan Do6 dan akan mempunyai outputan Ao6. Dan dari Ao6 akan menjadi inputan pada adder dengan inputan Mo5 dan akan mempunyai output Ao5 dan dari Ao5 ini akan menjadi inputan pada divider 1000 dan akan diadd kan dengan sinyal Fo2 yang nantinya akan menjadi sinyal output pada port.

Page 41: Tugas Perancangan Sistem Elektronis Uas Kelompok 2

BAB IV. KESIMPULAN

1. Output filter butterworth bergantung pengaruh pada inputan sebelumnya

dengan kondisi feedback pada delay.

2. Filter butterworth juga bergantung pada pembulatan pada komponen

divider nya.

3. Filter butterworth merupakan Teknik desain filter digital IIR didasarkan pada transformasi bilinear dari prototipe fungsi transfer analog.