Kamis, 23 Desember 2010

PROGRAM SEVENT_SEGMENT dan LOGIKANYA (VHDL)

Berikut ini adalah koding untuk menampilkan angka sevent segment dari  0 sampai dengan 9, dan dari a sampai dengan f:


PROGRAM MENAMPILKAN ANGKA ) 0 s/d 9 dan a s/d f:


library IEEE;
USE IEEE..STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

Entity sevent_segment Is
port (
    d: in std_logic_vector(3 downto 0);
    s: out std_logic_vector(7 downto 0));
End sevent_segment;


Architecture ledi of sevent_segment Is
Begin

s <= "00000110" when d="0001" else --1
     "01011010" when d="0010" else --2
     "01001111" when d="0011" else --3
     "01100110" when d="0100" else --4
     "01101101" when d="0101" else --5
     "01111101" when d="0110" else --6
     "00000111" when d="0111" else --7
     "01111111" when d="1000" else --8
     "01101111" when d="1001" else --9
     "01110111" when d="1010" else --a
     "01111100" when d="1011" else --b
     "00111001" when d="1100" else --c
     "01011110" when d="1101" else --d
     "01111001" when d="1110" else --e
     "01110001" when d="1111" else --f
     "00111111" ;                  --0


End ledi;


Logika:


Pada pemograman VHDL terdapat library yang merupakan awal dari suatu program, disini saya memakai library :

use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;


Setelah library, langkah selanjutnya adalah menggunakan Entity dimana didalm entity terdapat port dengan diawali kurung buka. Dilanjutkan dengan menentukan input atau output sesuai gambar yang ada, disini saya memakai inputan dengan simbol d, dimana bertipe data in std_logic_vector(3 downto 0), maksudnya 3 downto 0 adalah jumlah panjangnya ada empat secar menurun, dan itu menunjukkan tipe data vector. Sedangkan outputnya saya memakai simbol s, dimana tipe datanya out: std_logic_vector(7 downto 0); disini maksudnya panjangnya samapi delapan dengan dihitung secara menurun juga,  hal itu menunjukkan ciri dari data vector dan jangan lupa tutup kurung, titik koma, serta kata end.


Setelah Entity harus ada yang namanya Architecture, dimana nama architecturenya bebas, kebetulan disini saya memakai architecture nama saya sendiri yaitu ledi. Nama dari of architecture itu sendiri adalah berkaitan dengan nama entity yang sudah dideklarasikan yaitu dengan nama sevent_segment Is, maka architecture yang terjadi adalah Architecture ledi of sevent_segment Is.

Setelah itu diapit dengan kata Begin untuk melakukan proses, dimana proses tersebut menampilkan angka satu sampai dengan 9 dan a sampai dengan f. Dengan menggunakan bit biner yaitu 0 dan 1. Sedangkan s <= "00000110"(=06) dan seterusnya menunjukkan bahwa angka tersebut merupakan kode ASCII sesuai yang apa yang dipinta pada port sevent segment dalam bentuk hexadesimal yang bisa kita hitung sendiri.

Intinya proses dibawah ini untuk menampilkan angka sevent segment dalam bit biner yaitu 0 dan 1, serta dalam hexadesimal.


s <= "00000110" when d="0001" else --1
     "01011010" when d="0010" else --2
     "01001111" when d="0011" else --3
     "01100110" when d="0100" else --4
     "01101101" when d="0101" else --5
     "01111101" when d="0110" else --6
     "00000111" when d="0111" else --7
     "01111111" when d="1000" else --8
     "01101111" when d="1001" else --9
     "01110111" when d="1010" else --a
     "01111100" when d="1011" else --b
     "00111001" when d="1100" else --c
     "01011110" when d="1101" else --d
     "01111001" when d="1110" else --e
     "01110001" when d="1111" else --f
     "00111111" ;                  --0

s diatas menunjukkan variabel yang sudah di deklarasikan pada Entity, dan akhir program sesuai dengan  nama architecture yang sudah dibuat yaitu End ledi pakai titik koma.

0 komentar:

Posting Komentar

 

Catatan Faris Java Copyright © 2011 | Template design by O Pregador | Powered by Blogger Templates