Picproje Elektronik Sitesi

DİJİTAL & ANALOG ELEKTRONİK => Pld, Spld, Pal, Gal, Cpld, Fpga => Konuyu başlatan: electronious - 01 Temmuz 2011, 20:08:40

Başlık: VHDL ve Örnekler
Gönderen: electronious - 01 Temmuz 2011, 20:08:40
Merhaba arkadaşlar,

VHDL ile ilgili bilgilerimi ve örnek kodları paylaştığım blogumda VHDL ile 'and' kapısı örneğini paylaştım. VHDL ile ilgilenenler için faydalı olmasını diliyorum.

https://electronious.wordpress.com/2011/07/01/vhdl-ile-ve-kapisi/
Başlık: Ynt: VHDL ve Örnekler
Gönderen: electronious - 04 Temmuz 2011, 13:57:55
İlgilenenler için VHDL ile multiplexer örneği

https://electronious.wordpress.com/2011/07/04/vhdl-ile-multiplexer/
Başlık: Ynt: VHDL ve Örnekler
Gönderen: scaemteitn - 04 Temmuz 2011, 23:00:41
İlgilenenler için http://hobbyistmcu.blogspot.com/ adresindede birkaç örnek var
Başlık: Ynt: VHDL ve Örnekler
Gönderen: electronious - 07 Temmuz 2011, 13:24:45
VHDL ile Karaşimşek Uygulaması  :)

http://electronious.wordpress.com/2011/07/07/vhdl-ile-karasimsek-uygulamasi/
Başlık: Ynt: VHDL ve Örnekler
Gönderen: alicavuslu - 09 Eylül 2015, 18:49:48
VHDL ile kayan toplayıcı tasarım uygulaması...

http://www.alicavuslu.gen.tr/2015/06/24/vhdl-ile-kayan-toplayici-moving-sum-tasarimi/ (http://www.alicavuslu.gen.tr/2015/06/24/vhdl-ile-kayan-toplayici-moving-sum-tasarimi/)


mesaj birleştirme:: 09 Eylül 2015, 19:00:36

VHDL ile Cordic (sin & cos) Tasarımı...

http://www.alicavuslu.gen.tr/2014/12/23/vhdl-ile-cordic-tasarimi/ (http://www.alicavuslu.gen.tr/2014/12/23/vhdl-ile-cordic-tasarimi/)
Başlık: Ynt: VHDL ve Örnekler
Gönderen: Niyazi_SARAL - 09 Eylül 2015, 20:03:23
Kaynak Dokümanlar

Çizgi Tagem'den VHDL ve Verilog kitapçıkları.

Elektronik ve Gömülü Sistemlere Giriş Ders Notları (Türkçe) : Elektronik ve Gömülü Sistemlere Giriş
HDL Dilleri Temel Bilgiler (Türkçe) : HDL Dilleri Temel Bilgiler
Örnek HDL Kodlar: sample codes
VHDL Tutorial (Türkçe) :  VHDL Tutorial
Verilog Tutorial (Türkçe) : Verilog Tutorial

CPLD ve FPGA Sistemlere Giriş
Programlanabilir Devreler: CPLD ve FPGA
FPGA Programlama ve HDL Dillerine Giriş

http://www.cizgi-tagem.org/?lesson=gomulu-sistemler-ve-hdl-dilleri-temel-egitimi (http://www.cizgi-tagem.org/?lesson=gomulu-sistemler-ve-hdl-dilleri-temel-egitimi)
Başlık: Ynt: VHDL ve Örnekler
Gönderen: alicavuslu - 10 Eylül 2015, 21:09:05
VHDL ile FIR filtre tasarımı

http://www.alicavuslu.gen.tr/2014/06/12/vhdlde-fir-tiltre-tasarimi/ (http://www.alicavuslu.gen.tr/2014/06/12/vhdlde-fir-tiltre-tasarimi/)
Başlık: Ynt: VHDL ve Örnekler
Gönderen: alicavuslu - 21 Eylül 2015, 14:39:37
PWM ile Sinüs Üretme
http://www.alicavuslu.gen.tr/2015/05/04/nexys-4-karti-ile-pwm-ile-sinus-uretme/ (http://www.alicavuslu.gen.tr/2015/05/04/nexys-4-karti-ile-pwm-ile-sinus-uretme/)
Başlık: Ynt: VHDL ve Örnekler
Gönderen: Firzen - 22 Eylül 2015, 16:07:02
VHDL ile MAX23 entegresi ile Asenkron Haberleşme ( TxD veri gönderme)

library ieee;
use 
ieee.std_logic_1164.all;
use 
ieee.std_logic_unsigned.all;

entity TxD is Port (
saat   in  STD_LOGIC;
reset  in  STD_LOGIC;
gonder in  STD_LOGIC;
giris  in  STD_LOGIC_VECTOR (7 downto 0); 
tamam  out STD_LOGIC;
sonuc  out STD_LOGIC
);
end TxD;

architecture Behavioral of TxD is
	
constant saat_katsayisi 
	
 : 
INTEGER := 5200;
	
type durum_turu is (bekle_txdbasla_txdgonder_txddur_txd );
	
signal durumdurum_sonraki  durum_turu;
	
signal N,N_sonraki 
	
	
	
 : 
INTEGER ;
	
signal sayici,sayici_sonraki INTEGER ;
	
signal veriveri_sonraki
	
 : 
STD_LOGIC := '0';
begin
	
kontrol process (saat,resetis begin
	
	
	
	
if 
reset '1' then
	
	
	
	
	
durum  <= bekle_txd ;
	
	
	
	
	
sayici <= 0;
	
	
	
	
	
veri   <= '1';
	
	
	
	
	
N      <= 0;
	
	
	
	
elsif (RISING_EDGE(saat)) then
	
	
	
	
	
durum  <= durum_sonraki ;
	
	
	
	
	
sayici <= sayici_sonraki;
	
	
	
	
	
veri   <= veri_sonraki;
	
	
	
	
	
N      <= N_sonraki;
	
	
	
	
end if;
	
	
	
end process;
	
Sirala  process (durumsayiciNgondergirisveriis begin
	
	
	
	
durum_sonraki  <= durum ;
	
	
	
	
sayici_sonraki <= sayici;
	
	
	
	
veri_sonraki   <= '1';
	
	
	
	
N_sonraki      <= N;
	
	
	
	
tamam 
	
	
   <= 
'0';
	
	
	
	

	
	
	
	
case 
durum is
	
	
	
	
	
when bekle_txd =>
	
	
	
	
	
	
if 
gonder '1' then
	
	
	
	
	
	
	
durum_sonraki <= basla_txd ;
	
	
	
	
	
	
end if;
	
	
	
	
	
when basla_txd =>
	
	
	
	
	
	
sayici_sonraki <= sayici ;
	
	
	
	
	
	
veri_sonraki   <= '0';
	
	
	
	
	
	
if 
sayici saat_katsayisi then
	
	
	
	
	
	
	
sayici_sonraki <= 0;
	
	
	
	
	
	
	
durum_sonraki <= gonder_txd;
	
	
	
	
	
	
end if;
	
	
	
	
	
when gonder_txd =>
	
	
	
	
	
	
sayici_sonraki <= sayici 1;
	
	
	
	
	
	
veri_sonraki   <= giris(N);
	
	
	
	
	
	
if 
sayici saat_katsayisi then
	
	
	
	
	
	
	
if 
7 then
	
	
	
	
	
	
	
	
durum_sonraki <= dur_txd;
	
	
	
	
	
	
	
	
N_sonraki <= 0;
	
	
	
	
	
	
	
else
	
	
	
	
	
	
	
	
N_sonraki <= 1;
	
	
	
	
	
	
	
end if;
	
	
	
	
	
	
    
sayici_sonraki <= 0;
	
	
	
	
	
	
end if;
	
	
	
	
	
when dur_txd =>
	
	
	
	
	
	
sayici_sonraki <= sayici 1;
	
	
	
	
	
	
if 
sayici saat_katsayisi then
	
	
	
	
	
	
	
sayici_sonraki <= 0;
	
	
	
	
	
	
	
tamam <= '1';
	
	
	
	
	
	
	
durum_sonraki <= bekle_txd;
	
	
	
	
	
	
end if;
	
	
	
	
	
end case;
	
	
	
	
end process;
	
	
	
sonuc <= veri;
end Behavioral;


----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
library IEEE;
use 
IEEE.STD_LOGIC_1164.ALL;
use 
IEEE.STD_LOGIC_unsigned.ALL;



entity test is
    Port 
basla in  STD_LOGIC;
           
saat in  STD_LOGIC;
           
sonuc out  STD_LOGIC);
end test;

architecture Behavioral of test is

	
COMPONENT TxD
	
PORT(
	
	
saat   IN std_logic;
	
	
reset  IN std_logic;
	
	
gonder IN std_logic;
	
	
giris  IN std_logic_vector(7 downto 0);          
	
	
tamam  OUT std_logic;
	
	
sonuc  OUT std_logic
	
	
);
	
END COMPONENT;

type veri_turu is array (0 to 15of STD_LOGIC_VECTOR (7 downto 0);

constant veri veri_turu := (x"22"x"53"x"45"x"4c"x"41"x"4D"x"20"x"46",
	
	
	
	
	
	
	
	
	
	
x"50"x"47"x"41"x"22"x"00"x"00"x"00"x"00" );

signal sayicisayici_sonraki STD_LOGIC_VECTOR (3 downto 0) := (others => '0');
signal aktiftamam STD_LOGIC;
signal giris STD_LOGIC_VECTOR (7 downto 0);

begin
	
Inst_TxDTxD PORT MAP(
	
	
saat   => saat,
	
	
reset  => '0',
	
	
gonder => aktif,
	
	
giris  => giris,
	
	
tamam  => tamam,
	
	
sonuc  => sonuc
	
);

	
	
process (saatis begin
	
	
	
if(
RISING_EDGE(saat)) then
	
	
	
	
sayici <= sayici_sonraki;
	
	
	
end if;
	
	
end process;
	
	

	
	
aktif <= '1' when basla '1' and sayici <= "1101" else '0';
	
	
sayici_sonraki <= sayici 1 when tamam '1' else sayici ;
	
	
giris <= veri(CONV_INTEGER(sayici));

end Behavioral;


(http://i.hizliresim.com/rVPaMz.jpg) (https://hizliresim.com/rVPaMz)
(http://i.hizliresim.com/ng1aO0.jpg) (https://hizliresim.com/ng1aO0)


Çok öncelerden kurmuş olduğum kitaptan aldığım kodu göndereyim dedim.
Referans : Her Yönüyle FPGA ve VHDL
Başlık: Ynt: VHDL ve Örnekler
Gönderen: alicavuslu - 10 Aralık 2015, 12:57:41
VHDL ile SPI Protokulun gerçeklenmesi...

http://www.alicavuslu.gen.tr/2015/12/10/vhdl-ile-spi-prokolunun-gerceklenmesi/ (http://www.alicavuslu.gen.tr/2015/12/10/vhdl-ile-spi-prokolunun-gerceklenmesi/)


Sitede problem olduğundan linklere ulaşılamamaktadır...
Başlık: Ynt: VHDL ve Örnekler
Gönderen: MC_Skywalker - 10 Aralık 2015, 20:42:32
Yanıp sönen LED uygulamam
http://youtu.be/zRhq0cH3OBo (http://youtu.be/zRhq0cH3OBo)


FPGA ile BCD to Binary demultiplexer gerçeklemesi.
http://youtu.be/4BHIVRS0Hs4 (http://youtu.be/4BHIVRS0Hs4)

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

16bit yukarı/aşağı sayıcı
http://youtu.be/EQbJrg95WK4 (http://youtu.be/EQbJrg95WK4)


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

entity onalti is
    Port 
clk100 in STD_LOGIC;
           
anh in STD_LOGIC;
           
led015 out STD_LOGIC_VECTOR (15 downto 0));
end onalti;

architecture Behavioral of onalti is
            signal prescaller 
integer range 0 to 800000:=0;
            
signal sonuc integer range 0 to 65535:=0;
begin
    led015
<=STD_LOGIC_VECTOR(to_unsigned(sonuc,16));
        
process(clk100)
            
begin
            
if(clk100'event and clk100='1') then
             if(prescaller<800000) then
                prescaller<=prescaller+1;
             else
                prescaller<=0;
            end if;       
            
            if(prescaller=0) then
            case anh is
                when '
1' =>
                    if(sonuc<65535) then
                       sonuc<=sonuc+1;
                    else
                       sonuc<=0;
                    end if;
                when '
0' =>
                    if(sonuc>0) then
                       sonuc<=Sonuc-1;
                    else
                       sonuc<=65535;
                    end if;
            end case;
            end if;
            end if;
        end process;                        
end Behavioral;


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

VHDL ile Karaşimşek Uygulamam
http://youtu.be/rmpanx5cP8U (http://youtu.be/rmpanx5cP8U)


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

entity KaraSimsek is
    Port 
clk in STD_LOGIC;
           
led015 out STD_LOGIC_VECTOR (15 downto 0));
end KaraSimsek;

architecture Behavioral of KaraSimsek is

    constant SYS_CLK_PERIOD 
integer := 10; -- ns cinsinden
    constant NEW_CLK_PERIOD 
integer := 100_000_000; -- ns cinsinden
    constant CLK_COUNT 
integer := NEW_CLK_PERIOD / (SYS_CLK_PERIOD);
         
    
signal counterstd_logic_vector(3 downto 0):= "0000";
    
signal gecicistd_logic_vector(3 downto 0);
    
signal clk_new std_logic := '0';
    
signal count integer range 0 to 99999999 := 0;
    
signal r_led015 STD_LOGIC_VECTOR (15 downto 0):= X"0001";
    
signal fwd std_logic := '1';

begin
     process
(clk)
     
begin
        
if clk'1' and clk'event then
            if count = CLK_COUNT - 1 then
                count <= 0;
                clk_new <= not clk_new;
            else
                count <= count + 1;
            end if;
        end if;
     end process;
     
     process(clk_new)
     begin
        if rising_edge(clk_new) then
            if (fwd = '
1') then
                r_led015 <= r_led015(14 downto 0) & r_led015(15);
                    if (r_led015 = X"4000") then
                                fwd <= '
0';
                    end if;
             else
              r_led015 <= '
0' & r_led015(15 downto 1);
             if (r_led015 = X"02") then
                  fwd <= '
1';
             end if;
            end if; 
        end if;
     end process;
     led015 <= r_led015;
end Behavioral;

Başlık: Ynt: VHDL ve Örnekler
Gönderen: alicavuslu - 19 Aralık 2015, 01:12:25
VHDL ile kayan toplayıcı tasarım uygulaması... Güncellendi...

http://www.alicavuslu.gen.tr/2015/11/24/vhdl-ile-kayan-toplayici-moving-sum-tasarimi/ (http://www.alicavuslu.gen.tr/2015/11/24/vhdl-ile-kayan-toplayici-moving-sum-tasarimi/)
Başlık: Ynt: VHDL ve Örnekler
Gönderen: alicavuslu - 19 Temmuz 2016, 14:01:42
VHDL ile Sabit Noktalı Sayılarda Çarpma İşleminin Gerçeklenmesi

http://www.alicavuslu.gen.tr/2016/07/19/vhdl-ile-sabit-noktali-sayilarda-carpma-isleminin-gerceklenmesi/ (http://www.alicavuslu.gen.tr/2016/07/19/vhdl-ile-sabit-noktali-sayilarda-carpma-isleminin-gerceklenmesi/)
Başlık: Ynt: VHDL ve Örnekler
Gönderen: alicavuslu - 20 Temmuz 2016, 11:54:37
VHDL ile Sabit Noktalı Sayı Formatı Dönüşümü İşleminin Gerçeklenmesi

http://www.alicavuslu.gen.tr/2016/07/19/vhdl-ile-sabit-noktali-sayi-formati-donusumu-isleminin-gerceklenmesi/ (http://www.alicavuslu.gen.tr/2016/07/19/vhdl-ile-sabit-noktali-sayi-formati-donusumu-isleminin-gerceklenmesi/)
Başlık: Ynt: VHDL ve Örnekler
Gönderen: alicavuslu - 21 Temmuz 2016, 14:03:12
Rastgele Sayı Üreteci Modülünün VHDL ile Gerçeklenmesi

http://www.alicavuslu.gen.tr/2016/07/21/rastgele-sayi-ureteci-modulunun-vhdl-ile-gerceklenmesi/ (http://www.alicavuslu.gen.tr/2016/07/21/rastgele-sayi-ureteci-modulunun-vhdl-ile-gerceklenmesi/)
Başlık: Ynt: VHDL ve Örnekler
Gönderen: alicavuslu - 22 Temmuz 2016, 14:32:15
VHDL ile Değişinti (Variance) Hesaplama

http://www.alicavuslu.gen.tr/2016/07/22/vhdl-ile-degisinti-variance-hesaplama/ (http://www.alicavuslu.gen.tr/2016/07/22/vhdl-ile-degisinti-variance-hesaplama/)
Başlık: Ynt: VHDL ve Örnekler
Gönderen: alicavuslu - 23 Temmuz 2016, 16:28:41
VHDL ile Generic Döngüsel Artıklık Denetimi (CRC) Tasarımı

http://www.alicavuslu.gen.tr/2016/07/23/vhdl-ile-generic-dongusel-artiklik-denetimi-crc-tasarimi/ (http://www.alicavuslu.gen.tr/2016/07/23/vhdl-ile-generic-dongusel-artiklik-denetimi-crc-tasarimi/)
Başlık: Ynt: VHDL ve Örnekler
Gönderen: alicavuslu - 25 Temmuz 2016, 20:32:06
Tam Sayılar için Karekök Hesaplama İşleminin VHDL ile Gerçeklenmesi

http://www.alicavuslu.gen.tr/2016/07/24/tam-sayilar-icin-karekok-hesaplama-isleminin-vhdl-ile-gerceklenmesi/ (http://www.alicavuslu.gen.tr/2016/07/24/tam-sayilar-icin-karekok-hesaplama-isleminin-vhdl-ile-gerceklenmesi/)
Başlık: Ynt: VHDL ve Örnekler
Gönderen: alicavuslu - 11 Mart 2019, 16:52:36
CORDIC algoritmasının VHDL ile gerçekleştirilmesine ait yazının güncel hali

http://www.alicavuslu.gen.tr/2019/03/11/vhdl-ile-cordic-algoritmasinin-gerceklenmesi-dairesel-aci-donusumu/
Başlık: Ynt: VHDL ve Örnekler
Gönderen: alicavuslu - 25 Ağustos 2019, 19:19:08
VHDL ile Kayan Noktalı Sayılarda Çarpma İşleminin Gerçeklenmesi

http://www.alicavuslu.gen.tr/2019/08/07/vhdl-ile-kayan-noktali-sayilarda-carpma-isleminin-gerceklenmesi/