BASYS3 Aldım ve başlangıç için yardım lütfen!

Başlatan hytozd, 03 Ekim 2016, 02:12:32

hytozd

Merhaba arkadaşlar,
BASYS3 aldım ve başlangıç için yardım istiyorum. Bilgisayara tanıtma ve uygulama yapma vs. adım adım gitmek için ne yapmam lazım?

MC_Skywalker

kartı taktığında tüm sürücüleri otomatik yüklenir
https://www.xilinx.com/products/design-tools/vivado.html adresinden vivado yu indir ve yükle

örnekler

Alıntı yapılan: MC_Skywalker - 10 Aralık 2015, 17:42:32
Yanıp sönen LED uygulamam
http://youtu.be/zRhq0cH3OBo


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

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

16bit yukarı/aşağı sayıcı
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

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 / (2 * SYS_CLK_PERIOD);
         
    signal counter: std_logic_vector(3 downto 0):= "0000";
    signal gecici: std_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;



alicavuslu

Adım adım gitme işlemi için öncelike hangi dili öğrenmek istediğine karar vermelisin. VHDL mi yoksa Verilog mu?

Dili belirledikten sonra yapman gereken o dile ait sentaksı öğrenmen. Daha sonra uygulamalar ile kendini  geliştirebilirsin.

sovalye

@alicavuslu hocam, peki ne sekilde uygulamalar? Ben de uzun zamandir baslamak istiyorum. Fpga icin mesela project euler, hackerrank gibi siteler sorular, cozumler var mi?

alicavuslu

Temel düzey uygulamaları için saat, takvim, karaşimşek, vb uygulamalar yapabilirsiniz. Biraz hakim olmaya başladıktan sonra matematiksel işlemleri gerçekleyebilirsiniz. Varyans, standart sapma, konvolusyon vb. Bu uygulamaları yaptıktan sonra görüntü işleme ve sinyal işleme uygulamalarının alt yapısını oluşturmuş olursunuz.

Site önerisi olarak vhdlguru sistesi biraz farklı uygulamalar paylaşmakta. Bazne bende kendi sitemde paylaşımlar yapıyorum. Ordan da faydalanabilirsiniz.

hytozd

İlginiz için herkese teşekkür ederim. Vivado 2015.4 indirdim lisans için .lic uzantılı dosyayı seçmeme rağmen

[Common 17-345] A valid license was not found for feature 'Synthesis' and/or device 'xc7a35t'. Please run the Vivado License Manager for assistance in determining
which features and devices are licensed for your system.
Resolution: Check the status of your licenses in the Vivado License Manager. For debug help search Xilinx Support for "Licensing FAQ".
bu hatayı alıyorum.

MC_Skywalker

#6
Vivado ilk kurulumdan sonra, lisans programcığı sorduğunda vivado yu indirirken oluşturduğunuz hesapa login olun. Vivado free lisance seçin lisans dosyası oluşur. Vivada lisans programcığı lisans serverinden lisansı çeker. Olmaz ise xilinx hesabınızdan .lic dosayasını indirip onu lisans programcığına gösteririsiniz.




hytozd

Hocam .lic dosyasını başarılı bir şekilde kopyaladı ama yine de aynı hatayı veriyor.

muuzoo

İki tür lisans var biri xml tabanlı , diğeri lic tabanlı. Help menüsünden lisans manager ı başlatıp lisans yöneticinden "View License status" kısmının ekran görüntüsünü alır mısın? Bir duruma bakalım.
gunluk.muuzoo.gen.tr - Kişisel karalamalarım...

hytozd


muuzoo

Alıntı yapılan: hytozd - 04 Ekim 2016, 02:13:58



Lisanslarda görünürde bir sorun yok gibi. Certified base lisans dosyanızı silip bir dener misiniz? Activation based lisasn ile çalışması lazım normal şartlar altında. Çünkü webpack sürümünü kullanıyorsunuz.
gunluk.muuzoo.gen.tr - Kişisel karalamalarım...

hytozd

Programı kaldırıp tekrar yükledim, çalıştı. İlginize teşekkür ederim.
Alıntı yapılan: muuzoo - 04 Ekim 2016, 11:01:02
Lisanslarda görünürde bir sorun yok gibi. Certified base lisans dosyanızı silip bir dener misiniz? Activation based lisasn ile çalışması lazım normal şartlar altında. Çünkü webpack sürümünü kullanıyorsunuz.

hytozd

Arkadaşlar generate bitstream yapınca bu hatayı veriyor. Uygulamalı adım adım bir örnek gösterebilir misiniz?



alicavuslu

#13
Pin atamalarında her bir pin için IOSTANDART'ı LVCMOS33 seçmen gerekiyor.

Örnek aşağıdaki videoda mevcut. Türkçe kaynak istiyorsan da:

http://urun.n11.com/bilgisayar-kitaplari/vhdl-ile-sayisal-tasarim-ve-fpga-uygulamalari-P53518678


! No longer available

MC_Skywalker

#14
pin dosyasını aşağıdaki gibi oluşturmalısın. 

"KaraSimsek.xdc"

set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
set_property BITSTREAM.CONFIG.CONFIGRATE 33 [current_design]
set_property CONFIG_MODE SPIx4 [current_design]
set_property IOSTANDARD LVCMOS33 [get_ports clk]
set_property PACKAGE_PIN W5 [get_ports clk]
set_property PACKAGE_PIN U16 [get_ports {led015[0]}]
set_property PACKAGE_PIN E19 [get_ports {led015[1]}]
set_property PACKAGE_PIN U19 [get_ports {led015[2]}]
set_property PACKAGE_PIN V19 [get_ports {led015[3]}]
set_property PACKAGE_PIN W18 [get_ports {led015[4]}]
set_property PACKAGE_PIN U15 [get_ports {led015[5]}]
set_property PACKAGE_PIN U14 [get_ports {led015[6]}]
set_property PACKAGE_PIN V14 [get_ports {led015[7]}]
set_property PACKAGE_PIN V13 [get_ports {led015[8]}]
set_property PACKAGE_PIN V3 [get_ports {led015[9]}]
set_property PACKAGE_PIN W3 [get_ports {led015[10]}]
set_property PACKAGE_PIN U3 [get_ports {led015[11]}]
set_property PACKAGE_PIN P3 [get_ports {led015[12]}]
set_property PACKAGE_PIN N3 [get_ports {led015[13]}]
set_property PACKAGE_PIN P1 [get_ports {led015[14]}]
set_property PACKAGE_PIN L1 [get_ports {led015[15]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led015[15]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led015[14]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led015[13]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led015[12]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led015[11]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led015[10]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led015[9]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led015[8]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led015[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led015[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led015[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led015[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led015[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led015[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led015[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led015[0]}]