Discovery Fantastic
1. Pengertian Sevent Segment 

Seven Segment adalah suatu segmen- segmen yang digunakan menampilkan angka. Seven segmen ini tersusun atas 7 batang  LED yang disusun membentuk angka 8 dengan menggunakan huruf a-f . Setiap segmen ini terdiri dari 1 atau 2 Light Emitting Diode ( LED ).

2. Macam-macam Seven Segment
a. COMMON ANODA
   Commom anoda ini berada pada kondisi aktif high.

b. COMMON KATODA
   Common katoda ini berada pada kondisi aktif low.


3. Adapun cara kerjanya


  Cara kerja seven segmen ialah input biner pada switch dikonversikan masuk ke dalam decoder, baru kemudian decoder mengkonversi bilangan biner tersebut menjadi decimal, yang nantinya akan ditampilkan pada seven segment.

4. Susunan dari Sevent segment yaitu :

a. Decoder yaitu suatu alat yang berfungsi mengubah/ mengkoversi input bilangan biner menjadi decimal.

b. Encoder yaitu suatu alat yang berfungsi mengubah/ mengkoversi input bilangan desimal menjadi biner.

c. Multiplexer adalah Suatu rangkaian kombinasi yang ouputnya mempunyai logika sama dengan jalur input yang ditunjuk pada selector. Multiplexer ini memiliki banyak input dan memiliki satu output.

d. Demultiplexer adalah suatu rangkain kombinasi yang bersifat berkebalikan dari multiplexer dari kata "de". Rangkaian ini memiliki satu input dan memiliki banyak keluaran ( output ).

 Sebenarnya sevent segment banyak sekali diaplikasikan pad berbagai praktikum seperti Sistem Digital, dan sekarang ini FPGA. Pada kesempatan kali ini tulisan ini lebih dispesifikasikan pada pemograman VHDL atau praktikum FPGA.




Discovery Fantastic
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.