View
216
Download
0
Category
Preview:
Citation preview
7/23/2019 [modul ke 6]_[13211124-13211125]
http://slidepdf.com/reader/full/modul-ke-613211124-13211125 1/14
MODUL 6 PROYEK PERANCANGAN RANGKAIAN DIGITAL
Devi Oktama Putri, Lim (13211124)Sebastianus Reynaldi (13211125)
Asisten: Mahendra AdityaTanggal Percobaan: 07/12/2012EL2195-Prati!" #iste" $igital
Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro danInformatika ITB
Abstrak
Rangkaian digital adalahrangkaian yang paling umum dipakai pada kehidupan kita sehari-hari akibat kapabilitas dalam melakukan modifkasi
rangkaian dibandingkan rangkaiananalog. Dalam rangkaian digitalmemepunyai control, jalur data, dansystem itu sendiri. Dengan adanyaketiga hal tersebut mempermudah kitadalam implementasi rangkaian digital kedunia nyata. Selain itu rangkaian digitalini masih bias dikolaborasikan denganbeberapa sistem pendukung lainnya.
Kata kunci: Digital, sistem, kendali, jalur data.
1 P!"DA#$L$A"
Pada praktikum ini praktikandiharapkan dapat membuat suatu sistemdigital dengan menggunakan semuabahasan yang telah ada pada modul –modul praktikum sebelumnya. dapuntu!uan dari praktikum ini adalahpraktikan dapat menspesi"kasikan suatusistem digital sederhana# membagisistem men!adi satu atau lebih !alur datadan kendali# mendesain !alur data untuksistem# mendesain !alur kendali untuksistem# mengintegrasikan !alur data dankendali ke dalam sistem se$arakeseluruhan# melakukan tes menyeluruhterhadap sistem# mengimplementasikansistem digital menggunakan %P& dankomponen tambahan yang diperlukan #serta mengu!i dan menganalisa sistemyang sudah dibangun.
2 S%$D& P$S%A'A21Rankaian Sekuensial
'angkaian sekuensial adalahrangkaian yang mempunyai output
yang tidak hanya bergantung pada
masukan sekarang# melainkan !uga
pada masukan sebelumnya (yang
lalu). Dari segi susunan# rangkaian
se*uensial merupakan suatu
rangkaian yang berisi paling sedikit
satu elemen memori Se*uential
Logi$ +ir$uit atau !uga bisa disebut
'angkaian Logika Sekuensial#
adalah rangkaian logika yang
memperhatikan adanya faktor $lo$k
(,aktu)
Prinsi 'er*a
'angkaian sekuensial memiliki
prinsip ker!a yang berbeda dengan
rangkaian kombinasional. eluaran
suatu rangkaian sekuensial tidak
hanya tergantung dari kondisi
saluran masukannya# tetapi !uga
tergantung dari kondisi keluaran
sebelumnya. 'angkaian sekuensial
memiliki elemen umpan balik.
/0
22+D t- . Sement -nverter
'angkaian ini digunakan untuk
mengkon1ersikan suatu nilai
desimal terkode biner (B+D) ke
pola segmen yang sesuai pada
display 2 segment. arena nilai
B+D adalah nilai 3-bit pada
!angkauan 4-5# bagaimana kita
memperlakukan nilai /4-/6
7/23/2019 [modul ke 6]_[13211124-13211125]
http://slidepdf.com/reader/full/modul-ke-613211124-13211125 2/14
(don7t $are atau tidak) akan
berpengaruh pada desain.80
7/23/2019 [modul ke 6]_[13211124-13211125]
http://slidepdf.com/reader/full/modul-ke-613211124-13211125 3/14
9eran$ang desain system
9embuat state diagram
9embuat state table
9embuat kode :;DL yangsesuai dengan desain sistem
9eran$ang sistem kendal. data<o,# dan sistem itu sendiri
9engimpementasikan ke %P&dan L+D (:&)
Statepilih,aktu
State$ounte
r
23 /0AInterfa$e ke :& menggunakan 8
!enis sinyal# yaitu = sinyal ,arna
(9erah# ;i!au# dan Biru) dan sinyal
sinkron (hori>ontal dan 1erti$al).?0
3 !%ODOLO0&31Peralatan yan diunakan
/. omputer@P+ yang telah
terinstal program Auartus II
5.48. 9onitor L+D?. %P& de1elopment board
LTE' DE/
32Lanka ker*a
4 #AS&L DA" A"AL&S&Sama proyek = Simulasi 'emote +.
Cntuk mode timer akan ada dua
buah state# yaitu state $ounter dan
state memilih ,aktu. Cntuk state
memilih ,aktu adalah untuk
memberikan input yang sesuai
dengan keinginan kita dan pada
akhirnya baru akan dis$ount saat
pindah ke state $ounter. edua
state memiliki output yang berbeda
dan tidak dipengaruhi oleh nilaiinput dari luar. 9aksudnya di sini
bukan terletak pada perpindahan
tiap state# melainkan output
diakibatkan adanya input nilai
,aktu bukan dari input pindah
state.Bila dalam state table hasilnyaadalah=
$urrentstate netstateF4 F/
Pilih ,aktu Pilih ,aktu +ounter$ounter $ounter Pilih ,aktu
ilai output tergantung dari s,it$h.
SG 4 sampai 6.Cntuk temperature memiliki
beberapa state# yaitu untuk proses
in$rement dan proses de$rement
$urrentstate netstate44 4/ // /4
Std std de$ D in$In$ std D D Banding
De$ std banding D Dbanding std de$ D in$
ilai de$rement dan in$rement
tergantung pada batas yang
diberikan di dalam rangkaian
digital. Di dalamnya terdapat
$omparator yang berfungsi
membandingkan antara nilai input
dan nilai maksimal.
Spesi"kasi =
Pada pembuatan proyek ini# akandibuat sebuah simulasi remote +#
yang memiliki ? mode = oH#
temperatur# dan timer. Temperatur
pada simulasi ini memiliki range
antara /-?8 J +. ;arapan hasil
keluaran dari proyek ini adalah
temperatur + dapat diatur – atur
melalui push button. Satu push
button untuk menaikkan
temperatur# dan satu push button
untuk menurunkan temperatur.eluaran dari nilai temperatur saat
7/23/2019 [modul ke 6]_[13211124-13211125]
http://slidepdf.com/reader/full/modul-ke-613211124-13211125 4/14
ini dapat dilihat melalui B+D to 2
segment yang ada pada %P& .
Bertambah dan berkurangnya
temperatur + !uga diperlihatkan
melalui ,arna yang berubah pada
L+D. kan ada dua kotak pada L+D# !ika temperatur bertambah # maka
akan ada perubahan ,arna dari
putih men!adi hi!au pada kotak
sebelah kiri# sedangkan !ika
temperatur berkurang maka akan
ada perubahan ,arna dari putih
men!adi hi!au pada kotak sebelah
kanan. pabila telah melampaui
batas range# maka kotak akan
ber,arna merah# yakni !ika
temperatur ditambah melebihi ?8J+dan kurang dari /J+.
Cntuk timer# dibuat %S9 untuk
memilih mode antara pengatur !am
atau pengatur menit. Cntuk
men!alankan timer akan ada tombol
enter. Setelah timer ber!alan tidak
akan bisa dihentikan sampai
$ounter men$apai nilai nol. Setelah
men$apai nilai nol# remote akan
mati dengan sendirinya. Cntuk
menampilkan !am dan menitmembutuhkan 3 buah se1en
segment. Pada dasarnya $ounter
akan menerima input $lo$k dari
$lo$kdi1 agar perhitungan mundur
tidak terlalu $epat. Lampu LED akan
berkedip saat hitung mundur mulai
dilakukan dan akan berkedip
mengikuti $lo$k setelah diproses di
$lo$kdi1.
;asil yang didapatkan pada saat
praktikum adalah = Temperatur dan timer belum dapat
digabungkan# akan tetapi dapat
di!alankan se$ara terpisah. Pada
timer# terdapat tampilan pada B+D
to 2 segment berupa menit dan
detiknya. Durasi timer dapat dipilih
melalui s,it$h – s,it$h yang
tersedia (dalam angka biner)
kemudian timer di!alankan dengan
menekan push button paling kiripada %P&. 9isalnya diatur ?4
detik# maka setelah push button
ditekan timer akan $ount do,n dari
?4 sampe 4 kemudian timer
berhenti.Pada temperatur#
digunakan 8 b$d to 2 segment #
;E / untuk puluhan dan ;E 4untuk satuan. Temperatur ini dapat
diatur dinaikkan dengan menekan
push button paling kiri (key ?) dan
diturunkan dengan menekan push
button paling kanan (key 8).
Penaikan dan penurunan
temperatur ini ber!alan selama
berada dalam range (/ – ?8). Saat
dinaikkan kotak sebelah kiri pada
L+D ber,arna hi!au dan saat
diturunkan kotak sebelah kananber,arna hi!au dan saat sudah
mele,ati range (lebihdari ?8)# kotak
sebelah kiri ber,arna merah.
Seharusnya kotak sebelah kanan
!uga ber,arna merah saat suhu
men$apai K/# akan tetapi hal ini
belum ber!alan (!adi tetap putih
saat K/)
Pen!elasan ode :;DL =
• $olorrom1hdPengubahan – pengubahan yang
dilakukan =
ENTITY color_rom_vhd IS PORT
( selector_up: IN STD_LOGIC_VECTOR(
DO!NTO "#$
selector_do%&: IN STD_LOGIC_VECTOR(
DO!NTO "#$
'_p'el_colum&: IN STD_LOGIC_VECTOR( )
DO!NTO " #$
'_p'el_ro% : IN
STD_LOGIC_VECTOR( ) DO!NTO " #$
o_red : O*T STD_LOGIC_VECTOR(
+ DO!NTO " #$
o_,ree& : O*T STD_LOGIC_VECTOR(
+ DO!NTO " #$
o_-lue : O*T
STD_LOGIC_VECTOR( + DO!NTO " ##$
END color_rom_vhd$
7/23/2019 [modul ke 6]_[13211124-13211125]
http://slidepdf.com/reader/full/modul-ke-613211124-13211125 5/14
Pengubahan di bagian entity yakni pada
sele$torup dan sele$tordo,n #yang
berfungsi sebagai selektor pemilih
,arna pada L+D.
.RC/ITECT*RE -eh0v'or0l O1 color_rom_vhd
IS
co&st0&t -loc2_top :'&te,er:3)$
co&st0&t -loc2_-ottom :'&te,er:345)$
co&st0&t -loc2._le6t :'&te,er:34$
co&st0&t -loc2._r',ht :'&te,er:37")$
co&st0&t -loc28_le6t :'&te,er:379)$
co&st0&t -loc28_r',ht :'&te,er:3574$
s',&0l -loc2. :std_lo,'c$
s',&0l -loc28 :std_lo,'c$
Pada bagian ini# diatur batas – batas
untuk kedua buah kotak# dengan blo$k
sebagai kotak / (kotak penanda
temperatur ditambah) dan blo$kB
sebagai kotak8 (kotak penanda
temperatur dikurang)# sehingga batas
kiri untuk kotak / adalah 3# batas kanan
untuk kotak / adalah ?45# batas kiri
untuk kotak 8 adalah ?85# dan bataskanan utuk kotak 8 adalah ?3#
sedangkan batas atas dan batas ba,ah
untuk kedua kotak adalah sama yakni 5
dan 35.
8EGIN
PROCESS('_p'el_ro%'_p'el_colum&
red,ree&-l0c2%h'te#
8EGIN
I1 (('_p'el_ro% ; -loc2_top# .ND
('_p'el_ro% < -loc2_-ottom# # .ND
(('_p'el_colum& ;3 -loc2._le6t# .ND
('_p'el_colum& < -loc2._r',ht# # T/EN
-loc2. <3 ==$
ELSE -loc2. <3 ="=$
END I1$
I1 (('_p'el_ro% ; -loc2_top# .ND
('_p'el_ro% < -loc2_-ottom# # .ND
(('_p'el_colum& ;3 -loc28_le6t# .ND
('_p'el_colum& < -loc28_r',ht# # T/EN
-loc28 <3 ==$
ELSE -loc28 <3 ="=$
END I1$
Pada bagian ini diproses untuk
pemberian ,arna# !ika berada pada
batas – batas yang telah ditentukan#maka sinyal untuk memberi ,arna akan
bernilai /# !ika tidak maka 4.
I1 (-loc2. 3 == .ND selector3 >""># T/EN
o_red <3 ?>11>$ o_,ree& <3 ?>11>$ o_-lue <3
?>11>$
ELSI1 (-loc2. 3 == .ND selector3 >>#
T/EN o_red <3 ?>"">$ o_,ree& <3 ?>11>$
o_-lue <3 ?>"">$
ELSI1 (-loc2. 3 == .ND (selector3 >">
OR selector3>">## T/EN o_red <3 ?>11>$
o_,ree& <3 ?>"">$ o_-lue <3 ?>"">$
ELSI1 (-loc28 3 == .ND selector3 >"">#
T/EN o_red <3 ?>11>$ o_,ree& <3 ?>11>$
o_-lue <3 ?>11>$
ELSI1 (-loc28 3 == .ND (selector3 >">
OR selector3>">## T/EN o_red <3 ?>11>$
o_,ree& <3 ?>"">$ o_-lue <3 ?>"">$
ELSI1 (-loc28 3 == .ND selector3 >>#
T/EN o_red <3 ?>"">$ o_,ree& <3 ?>11>$
o_-lue <3 ?>"">$
ELSE o_red <3 ?>"">$ o_,ree& <3 ?>"">$o_-lue <3 ?>"">$
END I1$
END PROCESS$
END -eh0v'or0l$
Pada bagian ini dilakukan pemberian
,arna pada kotak# !ika sinyal pada kotak
/ (blo$k) dan bernilai /# maka kotak /
akan diberi ,arna sesuai dengan
sele$tornya# begitu pula !ika sinyalkotak8 bernilai / (blo$k B) maka akan
diberi ,arna sesuai dengan sele$tornya.
Sele$tor 44 ber,arna putih# // ber,arna
hi!au# 4/ atau /4 ber,arna merah.
• display1hd
Pengubahan – pengubahan yang
dilakukan
LI8R.RY IEEE$
*SE IEEE@STD_LOGIC_54@.LL$
7/23/2019 [modul ke 6]_[13211124-13211125]
http://slidepdf.com/reader/full/modul-ke-613211124-13211125 6/14
*SE IEEE@STD_LOGIC_.RIT/@.LL$
*SE IEEE@STD_LOGIC_*NSIGNED@.LL$
ENTITY d'spl0A_vhd IS
PORT(
'_cl2 : IN STD_LOGIC$
selector: IN STD_LOGIC_VECTOR(
DO!NTO " #$
VG._R : O*T STD_LOGIC_VECTOR( B
DO!NTO " #$
VG._G : O*T STD_LOGIC_VECTOR( B
DO!NTO " #$
VG._8 : O*T STD_LOGIC_VECTOR( BDO!NTO " #$
VG._/S : O*T STD_LOGIC$
VG._VS : O*T STD_LOGIC$
VG._CL : O*T STD_LOGIC$
VG._8L.N : O*T STD_LOGIC#$
END d'spl0A_vhd$
Pengubahan pada bagian ini =
ditambahkan sele$tor seperti pada$olorrom1hd.
.RC/ITECT*RE -eh0v'or0l O1 d'spl0A_vhd IS
SIGN.L red : STD_LOGIC_VECTOR (B DO!NTO "#$
SIGN.L ,ree&: STD_LOGIC_VECTOR (B DO!NTO
"#$
SIGN.L -lue: STD_LOGIC_VECTOR (B DO!NTO "#$
SIGN.L red_color: STD_LOGIC_VECTOR (+
DO!NTO "#$
SIGN.L ,ree&_color: STD_LOGIC_VECTOR (+
DO!NTO "#$
SIGN.L -lue_color: STD_LOGIC_VECTOR (+
DO!NTO "#$
SIGN.L p'el_ro%: STD_LOGIC_VECTOR ()
DO!NTO "#$
SIGN.L p'el_colum& :STD_LOGIC_VECTOR ()
DO!NTO "#$
SIGN.L red_o& : STD_LOGIC$
SIGN.L ,ree&_o& : STD_LOGIC$
SIGN.L -lue_o& : STD_LOGIC$
Pada bagian ini ditambah sinyal redon#
greenon# blueon untuk menandakan
,arna – ,arna tersebut hidup.
COPONENT v,0 IS
PORT(
'_cl2 : IN STD_LOGIC$
'_red : IN STD_LOGIC$
'_,ree& : IN STD_LOGIC$
'_-lue : IN STD_LOGIC$
o_red : O*T STD_LOGIC$
o_,ree& : O*T STD_LOGIC$
o_-lue : O*T STD_LOGIC$
o_hor'_sA&c : O*T STD_LOGIC$
o_vert_sA&c : O*T STD_LOGIC$
o_p'el_ro% : O*T STD_LOGIC_VECTOR(
) DO!NTO " #$
o_p'el_colum&: O*T STD_LOGIC_VECTOR(
) DO!NTO " ##$
END COPONENT$
COPONENT color_rom_vhd IS
PORT(
selector : IN STD_LOGIC_VECTOR(
DO!NTO " #$
'_p'el_colum& : IN STD_LOGIC_VECTOR(
) DO!NTO " #$
'_p'el_ro% : IN STD_LOGIC_VECTOR( )
DO!NTO " #$
o_red : O*T STD_LOGIC_VECTOR( +
DO!NTO " #$
o_,ree&: O*T STD_LOGIC_VECTOR( +
DO!NTO " #$
o_-lue: O*T STD_LOGIC_VECTOR( +
DO!NTO " ##$
END COPONENT$
7/23/2019 [modul ke 6]_[13211124-13211125]
http://slidepdf.com/reader/full/modul-ke-613211124-13211125 7/14
Bagian ini mengMin$ludeM $olorrom1hd
dalam display1hd
8EGIN
v,0_dr'ver" : v,0
PORT .P (
'_cl2 3; '_cl2
'_red 3; ==
'_,ree& 3; ==
'_-lue 3; ==
o_red 3; red_o&
o_,ree& 3; ,ree&_o&
o_-lue 3; -lue_o&
o_hor'_sA&c 3; VG._/S
o_vert_sA&c 3; VG._VS
o_p'el_ro% 3; p'el_ro%
o_p'el_colum& 3; p'el_colum&#$
color_rom" : color_rom_vhd
PORT .P (
selector 3; selector
'_p'el_colum& 3; p'el_colum&
'_p'el_ro% 3; p'el_ro%
o_red 3; red_color
o_,ree& 3; ,ree&_color
o_-lue 3; -lue_color#$
red <3 red_color (+ DO!NTO 9# $
,ree& <3 ,ree&_color(+ DO!NTO 9# $
-lue <3 -lue_color (+ DO!NTO 9# $
Bagian ini memport map 1ga1hd dan
$olorrom1hd ke display1hd
PROCESS(red_o&,ree&_o&-lue_o&red,ree&-
lue#
8EGIN
I1 (red_o& 3 == # T/EN VG._R <3 red$
ELSE VG._R <3 >"""""">$
END I1$
I1 (,ree&_o& 3 == # T/EN VG._G <3
,ree&$
ELSE VG._G <3 >"""""">$
END I1$
I1 (-lue_o& 3 == # T/EN VG._8 <3 -lue$
ELSE VG._8 <3 >"""""">$
END I1$
END PROCESS$
END -eh0v'or0l$
Bagian ini memberi ,arna !ika onred
berlogika / maka diberi ,arna merah#
!ika onblue berlogika / maka diberi
,arna biru# dan !ika ongreen berlogika /
maka diberi ,arna hi!au.
• tople1el1hd
ENTITY top_level_vhd IS
PORT(
CLOC_B" : IN STD_LOGIC$selector_up: IN STD_LOGIC_VECTOR(
DO!NTO " #$selector_do%&: IN STD_LOGIC_VECTOR(
DO!NTO " #$VG._R : O*T
STD_LOGIC_VECTOR( B DO!NTO " #$VG._G : O*T
STD_LOGIC_VECTOR( B DO!NTO " #$VG._8 : O*T
STD_LOGIC_VECTOR( B DO!NTO " #$VG._/S : O*T STD_LOGIC$VG._VS : O*T STD_LOGIC$VG._CL : O*T STD_LOGIC$VG._8L.N : O*T STD_LOGIC$GPIO_" : O*T
STD_LOGIC_VECTOR( 7B DO!NTO " #$LEDR : O*T
STD_LOGIC_VECTOR( ) DO!NTO " ##$END top_level_vhd$
Pada bagian entity ditambahkan sele$tor
untuk memilih ,arna.
.RC/ITECT*RE -eh0v'or0l O1 top_level_vhd
IS
Bagian ini mengin$lude display1hd ke
tople1el1hd
COPONENT d'spl0A_vhd IS
7/23/2019 [modul ke 6]_[13211124-13211125]
http://slidepdf.com/reader/full/modul-ke-613211124-13211125 8/14
PORT(
'_cl2 : IN STD_LOGIC$
selector_up: IN STD_LOGIC_VECTOR(
DO!NTO " #$selector_do%&: IN STD_LOGIC_VECTOR(
DO!NTO " #$VG._R : O*TSTD_LOGIC_VECTOR( B DO!NTO " #$VG._G : O*T STD_LOGIC_VECTOR( B
DO!NTO " #$VG._8: O*T STD_LOGIC_VECTOR( B
DO!NTO " #$VG._/S : O*T STD_LOGIC$VG._VS : O*T STD_LOGIC$VG._CL : O*T STD_LOGIC$VG._8L.N : O*T STD_LOGIC#$END COPONENT$
8EGIN
Bagian di ba,ah ini memport map
display1hd.1hd ke tople1el1hd
module_v,0 : d'spl0A_vhd
PORT .P (
'_cl2 3; CLOC_B"selector_up3;selector_upselector_do%& 3;selector_do%&VG._R
3; VG._RVG._G 3; VG._GVG._8 3; VG._8VG._/S 3; VG._/SVG._VS 3; VG._VSVG._CL 3; VG._CL
VG._8L.N 3; VG._8L.N#$
LED<3>"""""""""">$LEDR<3LED$
END -eh0v'or0l$
• temperatur.1hd
e&t'tA temper0tur 's
port (cloc2_'& : '& std_lo,'c$
cloc2_out : -u66er std_lo,'c$
'_tom-ol : IN STD_LOGIC$
'_tom-ol9 : IN STD_LOGIC$
VG._red : out std_lo,'c_vector (B
do%&to "#$
VG._,ree&: out std_lo,'c_vector (B
do%&to "#$
VG._-lue: out std_lo,'c_vector (B
do%&to "#$
VG._hor : out std_lo,'c$
VG._vert: out std_lo,'c$
VG._CLOC : O*T STD_LOGIC$
VG._8L : O*T STD_LOGIC$
LEDRED : O*T STD_LOGIC_VECTOR( )
DO!NTO " #$
GPIO_ : O*T STD_LOGIC_VECTOR( 7BDO!NTO " #$
/E?" : O*T STD_LOGIC_VECTOR (5
do%&to "#$
/E?: O*T STD_LOGIC_VECTOR (5
do%&to "#
/E?9 : O*T STD_LOGIC_VECTOR (5
do%&to "#$
/E?7 : O*T STD_LOGIC_VECTOR (5
do%&to "##$
e&d temper0tur$
Pada bagian ini dideklarasikan port –port
dalam temperatur# yakni $lo$kin dan
$lo$kout untuk mengatur ,aktu#
itombol/ sebagai tombol untuk
menambah temperatur# itombol 8 untuk
mengurangi temperatur# :&red#
:&green# :&blue # :&hor#
:&1ert berfungsi untuk pe,arnaan#
LED'ED berfungsi untuk menyalakan
lampu LED merah# ;E 4 untuk angkasatuan# dan ;E / untuk angka puluhan
0rch'tecture structur0l o6 temper0tur 's
s',&0l m0cou&t :'&te,er:379$
s',&0l m'&cou&t :'&te,er:35$
s',&0l p'l'h0& :std_lo,'c_vector(
do%&to "#$
s',&0l p'l'h0&9 :std_lo,'c_vector(
do%&to "#$
s',&0l 2 :'&te,er$
s',&0l /" :std_lo,'c_vector(7 do%&to
"#$
s',&0l / :std_lo,'c_vector(7 do%&to
"#$
s',&0l /9 :std_lo,'c_vector(7 do%&to
"#$
s',&0l /7 :std_lo,'c_vector(7 do%&to
"#$
s',&0l s0tu0& :'&te,er$
7/23/2019 [modul ke 6]_[13211124-13211125]
http://slidepdf.com/reader/full/modul-ke-613211124-13211125 9/14
s',&0l puluh0& :'&te,er$
Pada bagian ini ma$ount adalah nilai
maksimum temperatur yakni ?8#
min$ount adalah nilai minimum
temperatur yakni /# pil untuk memilih
,arna# k sebagai hasil dari penambahandan pengurangan temperatur# ;4 #;/#
satuan # puluhan memberi sinyal pada
;E 4 dan ;E /.
compo&e&t cloc2d'v 's
port(CL :'& std_lo,'c$
DIVO*T :-u66er std_lo,'c
#$
e&d compo&e&t$
compo&e&t dou-le+se, 's
port (
'&_ :'& std_lo,'c_vector(7 do%&to "#$
'&_9 :'& std_lo,'c_vector(7 do%&to "#$
'&_7 :'& std_lo,'c_vector(7
do%&to "#$
'&_4 :'& std_lo,'c_vector(7
do%&to "#$
out_ :out std_lo,'c_vector(5 do%&to "#$
out_9 :out std_lo,'c_vector(5 do%&to "#$
out_7 :out std_lo,'c_vector(5 do%&to "#$
out_4 :out std_lo,'c_vector(5 do%&to "##$
e&d compo&e&t$
compo&e&t top_level_vhd 's
port (
CLOC_B" : IN STD_LOGIC$
selector_up :IN
STD_LOGIC_VECTOR( DO!NTO " #$
selector_do%& : IN STD_LOGIC_VECTOR(
DO!NTO " #$
push : '& std_lo,'c_vector( do%&to "#$
VG._R : O*T STD_LOGIC_VECTOR( B DO!NTO " #$
VG._G : O*T STD_LOGIC_VECTOR( B DO!NTO " #$
VG._8 : O*T STD_LOGIC_VECTOR( B DO!NTO " #$
VG._/S : O*T STD_LOGIC$
VG._VS : O*T STD_LOGIC$
VG._CL : O*T STD_LOGIC$
VG._8L.N : O*T STD_LOGIC$
GPIO_" : O*T STD_LOGIC_VECTOR( 7B DO!NTO
" #$
LEDR : O*T STD_LOGIC_VECTOR( ) DO!NTO "
##$
e&d compo&e&t$
Bagian ini mengin$lude $lo$kdi1.1hd#
double2seg1hd dan tople1el1hd.1hd ketemperatur.1hd
8EGIN
C:cloc2d'v port
m0p(CL3;cloc2_'&DIVO*T3;cloc2_out#$
%0r&0 : top_level_vhd port m0p (
CLOC_B" 3;cloc2_'&
selector_up 3;p'l'h0&
selector_do%& 3;p'l'h0&9
VG._R 3;VG._red
VG._G 3;VG._,ree&
VG._8 3;VG._-lue
VG._/S 3;VG._hor
VG._VS 3;VG._vert
VG._CL 3;VG._CLOC
VG._8L.N 3;VG._8L
GPIO_" 3;GPIO_
LEDR 3;LEDRED
#$
Bagian ini memport map $lo$kdi1 dan
tople1el1hd ke temperatur.1hd
process('_tom-ol'_tom-ol9p'l'h0&p'l'h0
&92#
-e,'&
c0se '_tom-ol 's
7/23/2019 [modul ke 6]_[13211124-13211125]
http://slidepdf.com/reader/full/modul-ke-613211124-13211125 10/14
%he& ="=3;
'6 2<79 0&d 2;5 the&
p'l'h0&<3>>$
els'6 2;379 0&d 2<35 the&
p'l'h0&<3>">$
e&d '6$
%he& others 3; p'l'h0&<3>"">$
e&d c0se$
c0se '_tom-ol9 's
%he& ="=3;
'6 2<79 0&d 2;5 the&
p'l'h0&9<3>>$
els'6 2;379 0&d 2<35 the&
p'l'h0&9<3>">$
e&d '6$
%he& others 3; p'l'h0&9<3>"">$
e&d c0se$
e&d process$
process(/"//7/9s0tu0&puluh0&#
-e,'&
/"<3std_lo,'c_vector(to_u&s',&ed(s0tu0&4##
$
/<3std_lo,'c_vector(to_u&s',&ed(puluh0&4#
#$
/9<3>"""">$
/7<3>"""">$
e&d process$
seve&se,me&t:dou-le+se, port m0p(
'&_3;/"
'&_93;/
'&_73;/9
'&_43;/7
out_3;/E?"
out_93;/E?
out_73;/E?9
out_43;/E?7
#$
e&d structur0l$
Pada bagian ini# k mula – mula diberi
nilai /. Nika tombol/ (key ?) ditekan
maka !ika temperatur saat ini belum
melebihi ?8 maka nilai k akan
bertambah. ilai k ini kemudian
dikon1ersikan ke angka satuan dan
puluhan# yakni puluhan dengan k di1 /4
dan satuan dengan k mod /4. Nikatombol 8 ditekan (key 8) maka !ika
temperatur saat ini masih bernilai OF /
maka k akan berkurang. ilai k ini
kemudian dikon1ersikan ke angka satuan
dan puluhan# yakni puluhan dengan k di1
/4 dan satuan dengan k mod /4.
Lalu push button di$o$okan dengan
,arna yang mun$ul di L+D. etika
tombol/ ditekan dan nilai k masih
berada pada range maka pil men!adi //#dan !ika diluar range men!adi /4#
sedangkan !ika tidak dipen$et men!adi
44. // adalah hi!au# /4 adalah merah
dan 44 adalah putih.
• timer
e&t'tA t'mer 's
port(cloc2_'& :'& std_lo,'c$
cloc2_out :-u66er std_lo,'c$
mode :'& std_lo,'c$
cou&ter :'& std_lo,'c$
'&_t'me :'& std_lo,'c_vector(B
do%&to "#$
/E?" :out std_lo,'c_vector(5
do%&to "#$
/E? :out std_lo,'c_vector(5
do%&to "#$
7/23/2019 [modul ke 6]_[13211124-13211125]
http://slidepdf.com/reader/full/modul-ke-613211124-13211125 11/14
/E?9 :out std_lo,'c_vector(5
do%&to "#$
/E?7 :out std_lo,'c_vector(5
do%&to "#
#$
e&d t'mer$
Bagian ini berisi pendeklarasian port
dalam timer# yakni $lo$kin dan
$lo$kout untuk mengatur ,aktu# mode
untuk mengatur perubahan antar mode#
intime sebagai ,aktu masukan untuk
timer# dan ;E 4 serta ;E / berfungsi
untuk tampilan ke B+D to 2 segment.
0rch'tecture -eh0ve o6 t'mer 's
s',&0l temp_m'&ute
:std_lo,'c_vector(B do%&to "#$
s',&0l temp_hour
:std_lo,'c_vector(B do%&to "#$
s',&0l t_m'&ute
:'&te,er$
s',&0l t_hour :'&te,er$
s',&0l cou&t_m'&ute
:'&te,er:3t_m'&ute$
s',&0l cou&t_hour:'&te,er:3t_hour$
Bagian ini berfungsi untuk menyimpan
dahulu masukan sebelum diolah.
tApe eecut'o&st0,e 's (ss9#$
s',&0l curre&tst0te :eecut'o&st0,e:3s$
s',&0l &etst0te :eecut'o&st0,e$
s',&0l /":std_lo,'c_vector(7 do%&to "#$
s',&0l /:std_lo,'c_vector(7 do%&to "#$
s',&0l /9:std_lo,'c_vector(7 do%&to "#$
s',&0l /7:std_lo,'c_vector(7 do%&to "#$
s',&0l st0rt_cou&t :std_lo,'c$
Pada bagian ini ;4#;/#;8#;? berfungsi
sebagai masukan timer pada keempat
b$d to 2 segment.
FF0dd'&, 4 seve&Fse,me&t compo&e&ts@
compo&e&t dou-le+se, 's
port('&_ :'& std_lo,'c_vector(7
do%&to "#$
'&_9 :'& std_lo,'c_vector(7
do%&to "#$
'&_7 :'& std_lo,'c_vector(7
do%&to "#$
'&_4 :'& std_lo,'c_vector(7
do%&to "#$
out_ :out std_lo,'c_vector(5
do%&to "#$
out_9 :out std_lo,'c_vector(5
do%&to "#$
out_7 :out std_lo,'c_vector(5
do%&to "#$
out_4 :out std_lo,'c_vector(5
do%&to "##$
e&d compo&e&t$
Bagian ini mengin$lude double2seg pada
timer.
-e,'&
cloc2:cloc2d'v port
m0p(CL3;cloc2_'&DIVO*T3;cloc2_out#$
process(t_hourt_m'&utetemp_hourtemp_m'&u
te#
-e,'&
t_hour<3to_'&te,er(u&s',&ed(temp_hour##$
t_m'&ute<3to_'&te,er(u&s',&ed(temp_m'&ute##
$
e&d process$
process(curre&tst0temode'&_t'mest0rt_cou
&t#
-e,'&
c0se curre&tst0te 's
%he& s3;
st0rt_cou&t<3="=$
'6 mode3== the&
temp_hour<3'&_t'me$
7/23/2019 [modul ke 6]_[13211124-13211125]
http://slidepdf.com/reader/full/modul-ke-613211124-13211125 12/14
els'6 mode3="= the&
temp_m'&ute<3'&_t'me$
e&d '6$
&etst0te<3s9$
%he& s93;
st0rt_cou&t<3==$
&etst0te<3s$
%he& others 3;
st0rt_cou&t<3st0rt_cou&t$
e&d c0se$
e&d process$
FF0dd'&, cloc2 d'v'der
compo&e&t cloc2d'v 's
port(CL :'& std_lo,'c$
DIVO*T :-u66er std_lo,'c#$
e&d compo&e&t$
Pada bagian ini terdapat 8 state (s/ dan
s8). Nika s/# start$ount a,alnya mati#kemudian !ika mode / (s,it$h dinaikkan)
untuk memasukkan nilai !am ke %P&#
dan mode 4 (s,it$h diturunkan) untuk
memasukkan menit ke %P&. Nika
$urrentstate s8# maka mulai
menghitung. ilai $urrent state berubah
men!adi netstate pada bagian di ba,ah
ini
process(cou&tercloc2_out#
-e,'&
'6 cloc2_out=eve&t 0&d cloc2_out3== the&
'6 cou&ter3="= the&
curre&tst0te<3&etst0te$
else
curre&tst0te<3curre&tst0te$
e&d '6$
e&d '6$
e&d process$
Bagian berikutnya memproses $lo$kout
process(cloc2_out#
-e,'&
'6 cloc2_out=eve&t 0&d cloc2_out3== the&
'6 st0rt_cou&t3="= the&
cou&t_m'&ute<3t_m'&ute$
cou&t_hour<3t_hour$
else
'6 st0rt_cou&t3== the&
'6 cou&t_m'&ute;3" the&
cou&t_m'&ute<3cou&t_m'&uteF
$
els'6 cou&t_m'&ute<3" the&
cou&t_hour<3cou&t_hourF$
cou&t_m'&ute<3B)$
els'6 cou&t_m'&ute<3" 0&d
cou&t_hour<3" the&
cou&t_hour<3"$
cou&t_m'&ute<3"$
e&d '6$
e&d '6$
e&d '6$
e&d '6$
e&d process$
Nika start$ount F 47 maka nilai !am dan
menit tetap# !ika start$ount F /7 maka
!ika menit lebih dari 4 # maka menit akan
berkurang# !ika menit sudah kurang dari
4 maka menit men!adi 65# sedangkan
nilai !am dikurang /# sedangkan !ika nilai
!am dan menit sudah men$apai kurang
dari 4 # maka nilai !am dan menit
men!adi 4.
process(st0rt_cou&tt_m'&utet_hourcou&t_m
'&utecou&t_hour#
-e,'&
'6 st0rt_cou&t3="= the&
7/23/2019 [modul ke 6]_[13211124-13211125]
http://slidepdf.com/reader/full/modul-ke-613211124-13211125 13/14
/"<3std_lo,'c_vector(to_u&s',&ed(t_m'&ute
mod "4##$
/<3std_lo,'c_vector(to_u&s',&ed(t_m'&ute
"4##$
/9<3std_lo,'c_vector(to_u&s',&ed(t_hour mod
"4##$
/7<3std_lo,'c_vector(to_u&s',&ed(t_hour
"4##$
els'6 st0rt_cou&t3== the&
/"<3std_lo,'c_vector(to_u&s',&ed(cou&t_m'&u
te mod "4##$
/<3std_lo,'c_vector(to_u&s',&ed(cou&t_m'&u
te "4##$
/9<3std_lo,'c_vector(to_u&s',&ed(cou&t_hour
mod "4##$
/7<3std_lo,'c_vector(to_u&s',&ed(cou&t_hour
"4##$
else
/"<3/"$
/<3/$
/9<3/9$
/7<3/7$
e&d '6$
e&d process$
seve&se,:dou-le+se, port m0p(
'&_ 3;/"
'&_9 3;/
'&_7 3;/9
'&_4 3;/7
out_ 3;/E?"
out_9 3;/E?
out_7 3;/E?9
out_4 3;/E?7
#$
e&d -eh0ve$
Bagian ini memproses tampilan ke B+D
to 2 segment. Nika start$ount F 47 #
maka tampilan pada ;E4 adalah menit
a,al mod /4# ;E / adalah menit a,al
di1 /4# ;E 8 adalah !am a,al mod /4#
dan ;E ? adalah !am a,al di1 /4.
Nika start$ount F /7 (mulai $ount
do,n)# maka tampilan pada ;E4 adalah
menit sekarang mod /4# ;E/ adalah
menit sekarang di1 /4# ;E8 adalah !am
sekarang mod /4# ;E? adalah !am
sekarang di1 /4.
5 '!S&P$LA"
• Bagian timer dan temperatur
belum dapat digabungkan# akan
tetapi masing – masing
temperatur dan timer ber!alan
dengan baik.• Cntuk timer# $ount do,n ber!alan
dengan baik. Cntuk memulai
$ount do,n tekan push button
paling kiri# untuk reset !uga
dengan menekan push button
paling kiri.• Cntuk temperatur# untuk
menaikkan temperatur dilakukan
dengan menekan push button
paling kiri dan pada L+D kotak
sebelah kiri akan ber,arna hi!au !ika masih berada di dalam range
(/-?8) dan akan ber,arna
merah !ika sudah melebihi ?8.
Cntuk penurunan temperatur
dilakukan dengan menekan push
button paling kiri kedua (key8)
dan akan ber,arna hi!au !ika
masih berada dalam range. Cntuk
indikator !ika mele,ati range
(,arna merah) masih belum
dapat ber!alan sehingga !ikamele,ati range tetap ber,arna
putih.
DA%AR P$S%A'A
/0http=@@s,eetydyah.blogspot.$om@8445
@46@rangkaian-sekuensial.html
80 ;utabarat# T.9er1in# et.al# 9odul
Praktikum Sistem Digital# Laboratorium
Dasar Teknik Elektro Sekolah Teknik
7/23/2019 [modul ke 6]_[13211124-13211125]
http://slidepdf.com/reader/full/modul-ke-613211124-13211125 14/14
Elektro dan Informatika# Bandung# 84/8#
halaman 64-6/
?0 ;utabarat# T.9er1in# et.al# 9odul
Praktikum Sistem Digital# Laboratorium
Dasar Teknik Elektro Sekolah Teknik
Elektro dan Informatika# Bandung# 84/8#
halaman 24-2/.
Recommended