VHDL ile FPGA PROGRAMLAMA - Ders10: Sequential Logic Tasarımı Timer ve Counter Örneği

Поделиться
HTML-код
  • Опубликовано: 31 янв 2025

Комментарии • 31

  • @mehmet-mw2mz
    @mehmet-mw2mz 7 месяцев назад +1

    Hocam süpersiniz, ilk baştaki videolarınız sayesinde 2 günde vhdl yazabilir hale geldim. Süper bir tutorial serisi olmuş.

    • @mehmetburakaykenar
      @mehmetburakaykenar  7 месяцев назад

      2 gün bayağı iddialı olmuş 😅
      başarılar dilerim

  • @pusatberk4193
    @pusatberk4193 4 года назад +1

    Teşekkürler hocam, inşallah gelecekte diğer vhdl tutorların üzerinde bir tutorial olur.

  • @mehmetarifartan5633
    @mehmetarifartan5633 2 года назад

    Teşeşşürler..

  • @cavuserkan
    @cavuserkan Год назад

    Hocam merhaba, öncelikle paylaşımlarınız için teşekkür ederim.
    Arty-7 35T board üzerinde ilk denemelerime başladım. Board için 450 MHz'i aşan clock'a sahip olduğu yazıyor. Bu 450 MHz, sizin kartınız için tanımlanan 100 MHz mi demek? Benim kartta da default 100 MHz tanımlı. Yoksa bu clock FF'ler için geçerli latency mi?
    Umarım sorum size ulaşır. Şimdiden teşekkür ederim.

    • @mehmetburakaykenar
      @mehmetburakaykenar  Год назад

      merhaba, 450 MHz içerdeki ff larin ulaşabileceği clock frequency olarak düşünebilirsiniz. dışardan gelen 100 MHz clocku clocking wizard ile 450 mhzye çıkarabilirsiniz ama 450 MHz de çalışan devre kurmanız zor

    • @cavuserkan
      @cavuserkan Год назад

      @@mehmetburakaykenar cevabınız için teşekkür ederim.
      Bellek kullanmadan en azından 300-400MHz ile çalışan bir counter kuramaz mıyım? Donanımsal paralel çıkış alacağım.
      ###
      Bellek kullanırsam ~166 MHz'i aşamayacağım. Sonuçta değişken kullanıp kullanmamak bizim elimizde, yanlış mıyım? Yoksa ide ister istemez belleğe bulaştırıyor mu?
      ###
      Zordan kastınız, bir üst paragrafta bahsettiğim bellek erişim hızı ile alakalı mı?

    • @cavuserkan
      @cavuserkan Год назад

      Hocam, rica etsem zordan kastınızı biraz açabilir misiniz?
      Düzeltme: Başka soru sormayacağım. Darlama gibi bir niyetim yok, yanlış anlamayın lütfen.

    • @mehmetburakaykenar
      @mehmetburakaykenar  Год назад +1

      bellekle pek alakası yok counterin bildiğimiz FF larla yapar. zor dedim çünkü ancak iki ff arasında hiç Combinational logic olmazsa ve fflari da placement olarak çok yakın koyunca ancak o kadar yüksek hizlara çıkabilir devre

    • @cavuserkan
      @cavuserkan Год назад

      @@mehmetburakaykenar Teşekkür ederim.

  • @mayatzade
    @mayatzade 4 года назад

    Heralde '0' Warningle bi kodu implement edebilmem için 10 yıl tecrübe gerekecek(!) :DD

    • @mehmetburakaykenar
      @mehmetburakaykenar  4 года назад +7

      kadir hocam aslında ne kadar çok warning error çıkarsa o kadar iyi :) bunları okuyup düzeltmeye çalışırken harcanan efor, tecrübe ve know-how olarak geri dönüyor tasarımcıya

  • @aristotevez
    @aristotevez 3 года назад

    hocam hazırladığım projede in out pinleri when else yapısıyla düzgün çalışmıyor. örneğin "kapi1 = 1" ise "i_1" pini "o_1" çıkışına bağlansın, "kapi1=2" ise "i_1" pini "o_2" çıkışına bağlansın vs. combinational olarak when else yapısını kuruyorum. ancak "kapi2=2" için "i_2" pini "o_2" pinine bağlanması gerekirken "o_1" pinine bağlanıyor. aslında çok basit bir when else yapısı olması gerekiyor. when else yapısının hatasız çalışması için ne yapılmalı. bu yapıyı sequential olarak kurarsam sorun çözülür mü?

    • @mehmetburakaykenar
      @mehmetburakaykenar  3 года назад +1

      inout pinlerinin kullanım örneği için i2c uygulaması yapılan 27. derse ve githubda ilgili kodlara bakabilirsiniz. inout portlarda bu portu surmediginiz zaman high Z, yani vhdl de 'Z' olarak surmelisiniz ki input olarak kullanilabilsin

  • @oguzhantelli2148
    @oguzhantelli2148 4 года назад

    Hocam lojik kapılarla şu ikisinin toplamı buysa bunu yap değilse şunu yap nasıl yapabiliriz

    • @mehmetburakaykenar
      @mehmetburakaykenar  4 года назад

      blok olarak bakacak olursak, sunla şunun toplamı full adder ile yapılır (kaç bitse o kadar FA koyarız). buysa şunu yap değilse şunu yap için comparator gerekir, o da xor larla implement edilebilir ama blok olarak comparator düşünelim. suysa buysa seçimi de multiplexer blogudur, multiplexer implementasyonu da input sayısı ve genişliğine göre oluşturulabilir. bütün bunlar combinational logic blokları (full adder comparator multiplexer) oldukları için hepsinin lojik kapılarla implementasyonu bulunabilir, bulmanın en kolay yolu da Google :)
      tam bir logic design dersi ödev sorusu :D tabi vhdl de yapmak istesek < = > gibi comparison işaretleri ve + işaretiyle when else with select yapıları ya da process icinde if else ile kolayca yapılır

    • @oguzhantelli2148
      @oguzhantelli2148 4 года назад

      @@mehmetburakaykenar evet hocam bende soruyu çok beğendim vizede kopya çekmiş sınıfın çoğunluğu hoca bırakmak için böyle sordu bunun gibi 4 soru var 10 günümüz var.
      Bende birşeyler karaladim ama anlamadım gitti.
      Aklıma da belki kod ile yazıp şematik olarak görüntüleyip orda nasıl çizdiyse onu yapmak geldi.
      Doğru yolda mıyım hocam ?

    • @mehmetburakaykenar
      @mehmetburakaykenar  4 года назад +3

      kodu yazıp vivadoda elaborate dersen dediğin gibi logic gate olarak çıkarabilir ya da daha ziyade bloklar olarak da çıkarabilir denemek lazım. ama ben olsam önce dediğim gibi kutu kutu blok tasarımı yaparım, sonra bu blokların içini doldurması kolay olur, bloklarin içleri internette bulunabilir çünkü kolayca.
      bu uzaktan eğitim iyi hoş da öğrencilerin hatta ülke insanının hepsinin bilinçaltına yerleşen şey işim görülsün de gerisi önemli değil mantığı olduğundan derslerde amaç öğrenmek anlamak değil de dersi geçmek oluyor, e uzaktan eğitimde de kopya ile geçmenin önüne ne kadar gecilebiliyor soru işareti. öğrenci mezun oluyor aman ise gireyim de nasıl olursa olsun torpil vs, sonra ise giriyor aynı mantıkla iş yapıyor. bir hocam anlatmıştı Amerika'da doktora yaparken biri odevle ilgili bişey sormuş yol göstermesi için, hoca al direk cevabı vereyim geçir demiş (türk mantığı), adam sen benim öğrenmemi neden engellemeye çalışıyorsun bu ödevin amacı benim konuyu daha iyi öğrenmem demiş. yani ödevi ya da sınavı yapmak amaç değil araç aslında öğrenmek için.
      sözüm meclisten dışarı yanlış anlaşılmasin, ama üniversite, ödev sınav bunlar amaç değil araç aslında, bir gün inşallah bu şekilde düşünebilen öğrenciler ve toplum yetiştirmeyi başarmak nasip olur

    • @oguzhantelli2148
      @oguzhantelli2148 4 года назад

      @@mehmetburakaykenar hocam söylenecek çok şey var..
      Kopya çeken kendine çeker ileride birşey yapamaz ki
      Çekenler yüzünden çekmenler de sıkıntıda şuan
      Birde bizim hoca da ilk 5 hafta konuları yüklemedi vizeden 1 hafta önce 10 haftalık video yükleyip hepsinden sorumlu tuttu ve vizeden sonra kalan haftaları yabancı birisinin anlattığı videoları koymuş ve geçen senelerde vhdl yoktu onu da ekledi :)
      Herkesin hakli bir sebebi var yada yok uzun mevzular hocam :)

    • @mehmetburakaykenar
      @mehmetburakaykenar  4 года назад

      hayırlısı olsun diyelim :) vivadoda sentez deyip çıkan Lut larin truth table bilgisinden de yapılabilir bu arada

  • @h.m.2324
    @h.m.2324 Год назад

    Hocam neden 1 milyon vuruşta 1 saniye geçiyor ? Farklı bir değer olamaz mıydı referans olarak neden 1 milyon aldık anlamadım?

    • @mehmetburakaykenar
      @mehmetburakaykenar  Год назад +1

      tam neresi bahsettiğiniz yer hatırlamıyorum ama 1 MHz demek 1 milyon Hz demek, yani 1 saniyede 1 milyon saat vuruşu demek, saat frekansına göre düşünmek lazım, saat 50 MHz ise saniyede 50 milyon vuruş olur

    • @h.m.2324
      @h.m.2324 Год назад

      @@mehmetburakaykenar Sorum 1 MHz vuruşta 1 sn geçiyor olması varsayım mı yoksa saatimizin özelliği mi? Cevap verdiğiniz için teşekkür ederim.

    • @halitcukur
      @halitcukur Год назад

      fpga içindeki saatin özelliği@@h.m.2324

  • @Karakushamza
    @Karakushamza 3 года назад

    Selamlar herkese,
    Öncelikle Mehmet Burak Hocam ellerinize sağlık çok güzel bir seri oluyor. Benim fpga board'um yok ve haliyle biz öğrenciler için pahalı biraz :( Bu sebeple oluşturduğum simulasyon dosyasını size de yardımcı olması için buraya bırakıyorum. Kolay gelsin :)
    library IEEE;
    use IEEE.STD_LOGIC_1164.ALL;
    use IEEE.STD_LOGIC_ARITH.ALL;
    use IEEE.STD_LOGIC_UNSIGNED.ALL;
    entity tb_sequential_designed_counter is
    generic(
    c_clkFrequency : integer := 100_000_000
    );
    end tb_sequential_designed_counter;
    architecture Behavioral of tb_sequential_designed_counter is
    component sequential_design_exp is
    generic(
    c_clkFrequency : integer := 100_000_000
    );
    Port (
    clk : in std_logic;
    sw : in std_logic_vector (1 downto 0);
    led : out std_logic_vector (7 downto 0)
    );
    end component sequential_design_exp;
    constant clk_period: time:=10ns;
    signal clk : std_logic ;
    signal sw : std_logic_vector (1 downto 0) :="00";
    signal led : std_logic_vector (7 downto 0) :=(others =>'0');
    signal counter_2 : integer range 0 to (c_clkFrequency+100) := 0;
    signal second_counter : integer range 0 to 100 :=0;
    begin
    DUT : sequential_design_exp
    generic map (
    c_clkFrequency => c_clkFrequency
    )
    port map (
    clk => clk,
    sw => sw,
    led => led
    );
    clk_process:process
    begin
    clk

    • @mehmetburakaykenar
      @mehmetburakaykenar  3 года назад +2

      elinize sağlık 😊 az önce bir video çektim pazar yayınlarım inşallah, videoda ucuz bir FPGA geliştirme kartının unbox (kutu açma) işlemini gösterdim ve kartı tanıttim 😅 her zaman diyorum, ilk etapta FPGA gekistirme kartı almaya gerek yok, kod yazıp testbench ile simülasyon yapmak ilk başta yeterli. hem simülasyon yapmak karta gömüp test etmeye göre çok daha iyi geliştirir kişiyi