Tampilkan postingan dengan label FPGA. Tampilkan semua postingan
Tampilkan postingan dengan label FPGA. Tampilkan semua postingan

Seven Segment Display (SSD)

Dasar Teori

Seven segment (7-segments) adalah sebuah komponen untuk menampilkan bilangan 0 sampai 9 yang banyak digunakan pada aplikasi yang memerlukan tampilan angka. 7-segments pada dasarnya adalah LED (Light Emitting Diode), yaitu diode yang dapat mengeluarkan cahaya bila diberi tegangan pada pin-nya. Gambar di disamping ini memperlihatkan gambaran tentang 7-segment yang masing-masing segment diberi notasi mulai dari a, b, c, d, e, f, dan g.

LED tersebut terdiri dari 7 buah yang dihubungkan satu dengan lainnya. Cara menghubungkan pin pada seven segments ada 2 (dua) mode, yaitu Common Anode dan Common Katode. Common Anode adalah LED pada 7 segment semua pin anode-nya dihubungkan menjadi satu, sedangkan pin katoda dihubungkan ke port-port pada mikrokontroller. Common anode digunakan untuk rangkaian yang memerlukan aktif rendah (active low). Common katode adalah semua pin katoda pada 7 segments disatukan, sedangkan pin anoda dihubungkan ke port-port pada mikokontroller. Common katoda digunakan pada rangkaian yang memerlukan aktif tinggi (active high).

 Program 7 Segment yang berkaitan tentang VHDL dan FPGA   

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity sevseg is
 Port (
  clk  : in  std_logic; 
rst  : in  std_logic;      
  val  : in  std_logic_vector (15 downto 0); 
seg0 : in  std_logic_vector (3 downto 0); 
seg1 : in  std_logic_vector (3 downto 0);
seg2 : in  std_logic_vector (3 downto 0); 
seg3 : in  std_logic_vector (3 downto 0);
in  std_logic_vector (3 downto 0); 
wendp : in  std_logic_vector 
wenseg  : in  std_logic_vector (3 downto 0); 
useseg : in  std_logic; 
anout : out std_logic_vector (3 downto 0);
ctout : out std_logic_vector (7 downto 0)); 
end sevseg;

Logikanya adalah :
Untuk
 memasukkan titik desimal, mengatur atau menghapus nilai terkait dalam 
dp dan kemudian menggunakan topeng wendp yang memungkinkan untuk 
melakukan tindakan. For example if you set dp <= “1101″ and wendp
 <= “1110″, the module will turn the decimal points on for the two 
most significant digits and turn the decimal point off for the third 
most significant digit, but it won't change the least significant 
because wendp(0) is 0. Sebagai contoh jika Anda menetapkan dp 
<= "1101" dan 
selama dua digit paling signifikan dan putar titik desimal off untuk 
digit ketiga yang paling signifikan, tapi menang ' t perubahan paling 
signifikan karena wendp (0) adalah 0. 

D Flip- Flop pada VHDL

Sebuah contoh program vhdl dari D flip-flop edge triggered positif dengan asynchronous Reset:

library ieee;
use ieee.std_logic_1164.all;
entity DFF_RST is
port (CLK, RESET, D : in std_logic;
Q : out std_logic);
end DFF_RST;

architecture BEHAV_DFF of DFF_RST is
begin
DFF_PROCESS: process (CLK, RESET)
begin
if (RESET = ‘1’) then
Q <= ‘0’;
elsif (CLK’event and CLK = ‘1’) then
Q <= D;
end if;
end process;
end BEHAV_DFF;

Library dan Package VHDL

Library IEEE:

use IEEE.std_logic_1164.all;

use IEEE.std_logic_textio.all;

use IEEE.std_logic_arith.all;

use IEEE.numeric_bit.all;

use IEEE.numeric_std.all;

use IEEE.std_logic_signed.all;

use IEEE.std_logic_unsigned.all;

use IEEE.math_real.all;

use IEEE.math_complex.all;


Library STD:

use STD.standard.all;

use STD.textio.all;

Library WORK:
pendeklarasian yang implisit,dimana semua source codenya akan dimasukkan ke library tersebut.



example:

use WORK.data_types.all;