• Buradasın

    VHDL ile UART Receiver Modülü Geliştirme Eğitimi

    youtube.com/watch?v=d7XPkZDWWQY

    Yapay zekadan makale özeti

    • Bu video, bir eğitmen tarafından sunulan VHDL ile FPGA programlama derslerinin on sekizinci bölümüdür. Eğitmen, VHDL'de test bench yazma ve simülasyon yapma konusunda uzman olduğunu belirtmektedir.
    • Video, UART protokolünün receiver kısmının sıfırdan kod yazarak implement edilmesini adım adım anlatmaktadır. İçerikte UART'ın temel çalışma prensibi, state machine tabanlı tasarım, RX input sinyalinin işlenmesi, bit timer ve bit counter'ların kullanımı, veri örnekleme süreci ve modülün farklı durumlarının yönetimi detaylı şekilde gösterilmektedir.
    • Eğitim, Vivado programında sentezleme, şematik görünümü inceleme ve TB (Testbench) dosyası ile simülasyon yapma süreçlerini kapsamaktadır. Ayrıca, generic parametrelerin önemi vurgulanarak, baud rate'i değiştirerek farklı hızlarda simülasyon yapma teknikleri anlatılmaktadır. Video, bir sonraki derste DDR kartından bilgisayarla haberleşme yapma konusuna geçileceğini belirterek sona ermektedir.
    00:01UART Programlama Dersinin Özeti
    • Bu derste UART protokolünün receiver (alıcı) kısmını sıfırdan kod yazarak implement edeceğiz.
    • Önceki derslerde UART transmitter kısmını FPGA 7000'den kod yazarak, simülasyon yaparak ve testpench kodu ile hataları tespit ederek geliştirmiştik.
    • UART protokolü bir bit start bit ile başlar, ardından sekiz bit veri ve bir veya iki bit stop bit ile sonlanır.
    01:28UART Veri Gönderimi ve Örnekleme
    • UART'ta baud rate, bir bitin gönderilme süresini belirler; örneğin 115200 bit/s için bir bitin gönderilme süresi 8,63 mikro saniyedir.
    • Transmitter'da idle, start, data ve stop state'lerinden oluşan bir mimari tasarımı yapmıştık.
    • Receiver'da gelen veriyi örneklemek için, verinin en stabil olduğu anda örneklemek en mantıklıdır.
    03:15Receiver Modülü Tasarımı
    • Receiver modülü için bir timer kullanarak, RX pin sıfıra düştüğünde start state'e geçip, data state'e geçerek T süre kadar sekiz kere örneklem alarak gelen veriyi shift ederek sonucu elde edebiliriz.
    • İnternette daha karmaşık receiver örnekleri de vardır, ancak bu derste en basit olanı yapacağız.
    • Receiver modülü için generic parametre olarak clock frekans ve baudrate kullanılacak, stop bit'e girmeme gerek yoktur.
    05:26Durum Makinesi ve Kodlama
    • Durum makinesinde idle'da RX pin düşerse start state'ine geçilir, start state'de T/2 kadar beklenir ve data state'e geçilir.
    • Data state'de T kadar beklenir, her T süre geçtiğinde bir örneklem alınır ve gelen veri data out'un MOS significant bitine yazılır, data out sağa doğru shift edilir.
    • Kodlama için "ders18" adında bir proje oluşturulup, önceki dersten UTX kodlarından faydalanılacak.
    09:34UART Modülü Kodlama
    • UART modülü için idle durumunda RX biti sıfıra düşerse start stateine geçiş yapılıyor.
    • Start stateinde T2 kadar süre bekleniyor ve bit timer limiti T kadar süre oluyor.
    • Bit timer limiti T-1'e kadar beklersek, bir counter tanımlaması gerekiyor.
    10:43Veri Alma İşlemi
    • Start stateinde bit timer limiti T-1'e eşitse state data olarak değiştiriliyor.
    • Data stateinde T kadar süre bekleyip gelen veriyi örnekleyip shift register'a alıyoruz.
    • Bit timer limiti T-1'e eşitse, shift register'ın en anlamlı yerine yeni gelen veriyi yazıp registerı sağa shift ediyoruz.
    13:17Örnekleme ve Stop İşlemi
    • Sekiz kere shift işlemi yaparak ilk gelen sıfırıncı bite gelmiş olacak ve verim tamamlanmış olacak.
    • Bit counter ile kaç bit örneklediğimizi sayıyoruz ve bit counter 7 iken stop stateine geçiş yapılıyor.
    • Stop stateinde T kadar bekleyip idle state'e geçiş yapılıyor ve RX biti 1 olarak işaretleniyor.
    17:05Çıkış İşlemi ve Şematik Görünüm
    • Data out çıkış sinyali, shift register'ın değerine eşitleniyor çünkü çıkış portuna doğrudan atama yapılamıyor.
    • Kod sentezlendikten sonra şematik görünümde karmaşık bir yapı oluşuyor.
    • Şematikte clock girişi, data out, shift register, flip flop, register ve multiplexer'lar görülebiliyor.
    20:14Test Pench Oluşturma
    • Test pench yazarak bilgisayardan veri gönderiyormuş gibi RX modülünün doğru çalışıp çalışmadığını test ediyoruz.
    • Test pench'te clock sinyali ve baud rate oluşturuluyor.
    • RX inputu için hex formatında bir sayı tanımlanarak simülasyonda test ediliyor.
    24:39UART Tasarımı ve Test Etme
    • UART tasarımı tasarımdan farklı bir dal olup, algoritmik ve yazılımsal bakış açısı gerektiriyor.
    • Verification konusunda uzman olmak için VHDL'de testler yapmak yeterli olabilir.
    • Tasarım için ücretsiz araçlar kullanılmalı: Zynq için Vivado, Intel için Quartus, Micro Semi için Libreo.
    25:42UART Simülasyonu
    • UART simülasyonu için for loop kullanılarak veri gönderilebilir.
    • VHDL'de syntax unutulabilir, önemli olan tasarımsal mantık ve internetten bilgi edinmek.
    • Simülasyonda start biti, veri bitleri ve stop biti sırasıyla gönderilerek bir byte simüle edilebilir.
    29:05Simülasyon Sonuçları
    • Simülasyon ayarlarında "rahat simulation" seçeneği kullanılabilir.
    • Simülasyonda clock periyodu, RX ve TX sinyalleri, state'ler ve bit timer değerleri gözlemlenebilir.
    • Baud rate değiştirilerek (örneğin 1 megabit/s) modülün farklı hızlarda da çalıştığı test edilebilir.
    33:20UART'ın Önemi ve Kullanım Alanları
    • UART ile bilgisayarla haberleşme sağlanabilir, bilgisayardan komutlar yollanabilir.
    • FPC'de toplanan veriler bilgisayara gönderilebilir, MATLAB gibi programlarda manipülasyonlar yapılabilir.
    • UART yüksek hızlara çıkamaz (Windows'ta 1-2 megabit), yüksek hızlar için Ethernet gibi protokoller kullanılabilir.

    Yanıtı değerlendir

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