Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir eğitmen tarafından sunulan VHDL programlama derslerinin on birinci bölümüdür ve FPGA programlama konusunda bilgi aktarmaktadır.
- Videoda, VHDL'de state machine yapıları ve debounce (zıplama engelleme) devresi tasarımı ele alınmaktadır. Eğitmen, mekanik butonlarda görülen sinyal dalgalanmalarını engellemek için debounce devresinin nasıl tasarlanacağını adım adım göstermekte, timer kodunun yazımı ve FPGA Nexus'taki switchler ve LED'ler kullanılarak devresinin test edilmesi konularını kapsamaktadır.
- Videoda ayrıca debounce devresinin başlangıç değeri (init value), clock sinyali ile çalışma prensibi ve durum geçişleri detaylı olarak açıklanmaktadır. Eğitmen, VHDL kodu yazımı, state tanımlamaları ve timer kullanımı gibi teknik konuları uygulamalı bir şekilde anlatmaktadır.
- 00:01VHDL'de Durum Makinesi Yapıları
- Bu derste VHDL'de durum makinesi (state machine) yapıları gösterilecektir.
- Devreler karmaşıklaştıkça durum makinaları tasarımın yapılması için kolaylık sağlar.
- Örnek olarak debounce devresi tasarlanacaktır.
- 00:36Debounce Devresi Nedir?
- Debounce, mekanik butonlarda veya switchlerde sinyal değişimi sırasında oluşan dalgalanma (bounce) durumunu engelleyen bir devredir.
- Switch yukarı kaldırıldığında kontaklar bir anda sıfırdan bire geçmez, dalgalanma yapar ve bu dalgalanma nedeniyle birden çok rizege (switch hareketi) gerçekleşebilir.
- Debounce devresi, bu zıplamayı engelleyerek doğru sinyal algılamasını sağlar.
- 01:52Debounce Devresi Tasarımı
- Debounce devresi için dört durum (state) kullanılacak: initial, zero, one ve one to zero.
- Zero ve one durumlarında çıkış bir olacak, one to zero durumunda da çıkış bir olacak.
- Devre, switch yukarı kaldırıldığında oluşan rizege sayısını LED'de gösterecek.
- 03:20VHDL Kodu Yazımı
- Debounce modülü için generic yapı oluşturulacak: clock frekansı ve debounce süresi parametreleri.
- Timer limiti, frekans bölü debounce zamanı olarak hesaplanacak (örneğin 1000 MHz frekans için 1000 milisaniye).
- Initial değeri sıfır veya bir olarak ayarlanabilir, kritik durumlarda bir başlangıç değeri kullanılabilir.
- 05:13Devre Bileşenleri
- Devre için iki switch, bir resetleyici buton ve bir select switch kullanılacak.
- Select switch, hangi switch'in hareketini LED'de göstereceğini belirleyecek.
- On beş LED kullanılacak ve rizege sayısı gözlemlenecek.
- 07:08Timer ve Durum Tanımlama
- Timer, switch'ten sıfırdan bir algılandığında saymaya başlayacak ve belirli bir süre boyunca sayacak.
- Timer limiti, clock frekansı bölü debounce zamanı olarak belirlenecek.
- Durumlar için type tanımlanacak: initial, zero, one ve one to zero.
- 10:31Durum İşlemleri
- Her durum için case yapısı kullanılarak işlemler tanımlanacak.
- Initial durumunda, sinyal sıfır ise state zero, bir ise state one olacak.
- Zero durumunda, sinyal bir olduğunda state one olacak ve timer başlatılacak.
- Timer belirli bir süre boyunca bir kalırsa state one to zero olacak, sinyal sıfıra dönerse state zero olacak ve timer sıfırlanacak.
- 16:15Timer Kodu Yazımı
- Razing edge clock kullanılarak squential devre oluşturuluyor.
- Timer kodu için if timer enable kontrolü yapılıyor; enable değilse timer counter, enable edildiyse timer tick ve timer değerleri güncelleniyor.
- Timer limit değeri sıfırdan başladığı için eksi bir olarak hesaplanıyor.
- 18:05Kodun Test Edilmesi
- Yazılan kod Vivado'da sentezleniyor ve hata vermediği kontrol ediliyor.
- Ders için daha dikkatli yazıldığı belirtiliyor.
- Dersin ikinci kısmında debounce kodu devresi insan şehit edip bit top modülde FPGA Nexus'taki switchleri ve LED'leri kullanarak debounce olan ve olmayan bir switch'in hareketlerini gözlemlenecek.
- 19:16Debounce Devresi Özellikleri
- C frekansı her zaman constant jeneric olarak kullanılıyor ve debounce time değeri frekans cinsinden belirleniyor.
- Debounce time değeri 1000 milisaniye (1 MHz clock için 1 saniye) olarak ayarlanıyor.
- Init value değeri güç gelir gelmez sıfır olarak ayarlanıyor, böylece devre ilk başta sıfır değerini koruyor.
- 21:17Debounce Devresinin Çalışma Prensibi
- Debounce devresi, sinyal sıfırdayken debouncing gerçekleşiyor ve belirli bir süre daha bekliyor.
- Sinyal sıfıra düşerken de filtreleme yaparak atlamaları engelliyor.
- Bir sonraki derste debounce devresinin part iki kısmı olacak, simülasyon yapılacak ve top modül yazılacak.