• Buradasın

    VHDL FPC Programlama Dersi: PWM Modülü ve Tricolor LED Sürme

    youtube.com/watch?v=L-my9ontFus

    Yapay zekadan makale özeti

    • Bu video, bir eğitmen tarafından sunulan VHDL FPC programlama derslerinin onbeşincisi olup, FPGA (Field-Programmable Gate Array) üzerinde PWM (Pulse Width Modulation) modülü tasarımı ve tricolor LED kontrolü konularını ele almaktadır.
    • Video, PWM modülünün mimari tasarımı, tricolor LED'in çalışma prensibi ve LED kontrolü için gerekli kodlamayı adım adım göstermektedir. Eğitmen önce PWM'in ne olduğunu, frekans ve duty cycle kavramlarını açıklamakta, ardından Vivado programında modülün kodlanması, simülasyonu ve test pence yazımı sürecini detaylı olarak anlatmaktadır.
    • Videoda ayrıca combinational output proses ve registered output proses arasındaki farklar, timing analizi için register kullanımı ve şematik görüntüleme gibi teknik detaylar da paylaşılmaktadır. Dersin sonunda eğitmen, bir sonraki derste Next 4 DDR kartındaki yedi segmentleri kullanacaklarını belirtmektedir.
    00:01PWM Modülü Tasarımı
    • VHTL FPC programlama derslerinin onbeşincisinde bir PWM modülü tasarlanacak.
    • Tasarlanacak modül ile board üzerindeki LD16 ve LD17 olmak üzere iki tricolor LED'in parlaklığı PWM ile ayarlanacak.
    • LED'lerin parlaklığı %0'dan %50'ye bir saniye boyunca yükseltip, %50'den %0'a bir saniye boyunca düşürecek.
    01:02LED Sürüş Mimarisi
    • Tricolor LED'lerin sürüşü için 5V girdi, direnç ve NPN transistör kullanılarak devre tasarlanacak.
    • LED'lerin her bir renk için ayrı bir output kullanılacak; kırmızı için R17, yeşil için G17 ve mavi için B17 transistörlerine akım verilerek renkler ayarlanacak.
    • İki LED için altı switch ile kontrol edilecek bir mimari tasarımı yapılacak.
    04:02PWM Teknolojisi
    • PWM (Pulse Width Modulation), frekans ve duty cycle adı verilen iki parametre içeren bir teknolojidir.
    • Duty cycle, sinyalin bir periyodunun ne kadarının yüksek seviyede olduğu oranını ifade eder.
    • Tasarlanacak sistemde, bir saniye boyunca duty cycle %0'dan %50'ye lineer bir şekilde yükseltilip, bir sonraki saniyede %50'den %0'a düşürülecek.
    05:37Sistem Mimarisi
    • Tasarlanacak sistemde bir main proses ve iki PWM modülü olacak.
    • PWM modüllerinde duty cycle inputu 7 bitlik olacak çünkü %100 duty cycle oluşturabilmek için en az 7 bit gerekiyor.
    • İki LED için duty cycle'ler zıt şekilde çalışacak; biri %10 duty cycle alırken diğeri %40 duty cycle alacak.
    07:51Kitap Tavsiyesi
    • Halil İnanc'ın "Devlet-i Aliye-i Osmaniyeye" adlı dört ciltlik eser Osmanlı İmparatorluğu'nun tarihini anlatıyor.
    • Kitaplar 1302'den 1900'e kadar yaklaşık 600 yıllık Osmanlı tarihini kapsıyor.
    • Kitaplar sadece savaşlar değil, toplumsal yapı, ekonomi ve siyasi idare gibi konuları da içeren detaylı araştırmalar içermektedir.
    10:10Vivado Projesi
    • Tasarlanacak kodlar en az 1-2 saat sürebilir, bu nedenle hazır kodlar kullanılacak.
    • PWM modülü için duty cycle inputu, clock ve pwm outputu olacak.
    • PWM frekansı için 1kHz alınmış, çünkü LED'leri PWM ile sürmek için 100Hz'in altı tavsiye edilmiyor.
    11:34PWM Tasarım ve Timer Mekanizması
    • Tasarımında bir timer kullanılacak ve bu timer, belirli bir periyoda kadar sayacak; örneğin, bir milisaniye periyodu için.
    • Timer limit değeri, clock frekansı 1 kHz için 1 ms olarak ayarlanmıştır ve duty cycle değeri %50 olabilir.
    • İki timer kullanılacak: biri high time timer, diğeri normal timer; timer, high time'dan küçükse PWM 1 olacak, aksi takdirde PWM çıkışı verilecek.
    13:25Duty Cycle Hesaplama ve Kodlama
    • Duty cycle değeri % olarak alınarak, timer limit değeri 100'e bölünüp duty cycle ile çarpılarak hesaplanır.
    • Çarpma işlemi için st_logic_vector tipindeki duty cycle değeri integer'a dönüştürülür.
    • Duty cycle değişken olduğundan, çarpma işlemi FPGA içinde bir DSP modülü kullanarak gerçekleştirilir.
    15:38Test Bench ve Simülasyon
    • Tasarımın doğruluğunu kontrol etmek için test bench yazıldı ve clock prosesi tanımlandı.
    • Duty cycle değeri integer olarak verildi ve st_logic_vector'e dönüştürüldü.
    • Simülasyonda duty cycle değerleri %10, %20, %30, %40, %50 ve %90 olarak test edildi ve beklenen sonuçlar elde edildi.
    18:07Top Modül Tasarımı
    • Top modülünde clock frekansı ve PWM frekansı generic olarak alındı.
    • Tasarımında bir main proses ve bir squash proses bulunuyor.
    • Counter, duty cycle değerini %100'den %50'ye 100 Hz (yirmi milisaniyede bir) artırmak ve sonra geriye doğru azaltmak için kullanılıyor.
    20:17PWM Modülü ve Duty Cycle İşlemi
    • Counter limit 50'den küçükse (0-49 arası) timer 50 Hz (20 ms) periyodu dolduğunda duty cycle LED7'yi bir arttırıyor.
    • İlk saniye boyunca counter 50 olana kadar 20 ms timer periyotlarında duty cycle artıyor, ikinci saniyede ise duty cycle 50'den 0'a doğru azalıyor.
    • LED16 için duty cycle, LED17'nin duty cycle'ının 50 eksiği olarak hesaplanıyor ve bunun için conversion fonksiyonları kullanılıyor.
    23:45VHDL Kodlama ve Sentezleme
    • PWM modülleri tasarlandıktan sonra, combinational output proses ve registered output proses olmak üzere iki farklı entleme işlemi yazıldı.
    • Combinational output prosesinde clock sensitivity yazılmadığı için çıkışlar combinational logic (LUT) kullanıyor, bu ise timing analizi için sorun yaratıyor.
    • Registered output prosesinde ise çıkışlar flip-flop'lar kullanarak register ediliyor, bu senkron dizel metodolojisine uygun bir uygulama sağlıyor.
    29:35Sentezleme Sonuçları ve Öneriler
    • Combinational output prosesinde sentezleme sonucunda çıkışlar LUT (Look-Up Table) kullanıyor, bu timing konusunda sorun yaratıyor.
    • Registered output prosesinde sentezleme sonucunda çıkışlar flip-flop kullanıyor ve doğrudan output buffer'a gidiyor.
    • Testbench yazarak doğru çalıştığını kontrol ettik ve convert integer ve convert std_logic_vector fonksiyonlarını kullanarak veri dönüşümleri yaptık.
    32:36FPC Programlama ve Tricolor LED Testi
    • Open target seçeneği ile FPC'nin gücü verildi ve auto connect özelliği kullanılarak FPC programlandı.
    • Kamera yakınlaştırıldı ve switchler sıfırda olduğu için hiçbir LED yanmıyor durumunda başlandı.
    • Tricolor LED'in mavi, yeşil ve kırmızı renkleri ayrı ayrı veya birlikte açılarak farklı renkler elde edildi: sarı, beyaz, mor ve açık mavi.
    34:09PWM ve Ders Özeti
    • LED'lerin sönme kısmı çok az gözlemlenebiliyor çünkü PWM'de LED her zaman biraz yanıyor.
    • Derste mimari tasarım yapılarak tricolor LED kullanıldı.
    • Önceki derste Next 4 DDR kartındaki seven segmentler kullanılmış, bu derste ise tricolor LED'ler kullanılmış ve bir sonraki derste hangi yapı kullanılacağı açıklanacak.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor