Kategori: VHDL

Sinyal İşlemede Konvolüsyon İşleminin VHDL ile Gerçeklenmesi

Bu kısma kadar olan örneklerde genelde sayısal tasarımla alakalı uygulamalar gerçekleştirdik. Uygulamalarla VHDL ile ilgili kullanım şekillerini ve tasasrım yollarını göstermeye çalıştık. Bu örnekte ise temel bir işaret işleme uygulamasına geçiş yapıyoruz. Bu kısımda bahsedilen kavramları anlayabilmek için temel seviyede işaret işleme ile alakalı konuların bilinmesi gerekmektedir. Bu bölüme devam etmeden önce lütfen işaret işleme ile alakalı kaynakları gözden geçriniz….

VHDL’de FIFO tasarımı

Yaptığımız tasarımlarda zaman zaman farklı hızlarda çalışan modüller arasında veri alış-verişi yapmamız gerekebilir. Ya da bazı durumlarda işlenmesi gereken verilerin önce belli bir miktar biriktirilip daha sonra işlenmesi gerekebilir. Bu ve bunun gibi durumlarda en sık tercih edilen yaklaşım FIFO (First In First Out – İlk Giren İlk Çıkar) kullanımıdır. FIFO’ya giren veriler giriş sırasına çıkışından alınır. FIFO elemanını, hafıza…

VHDL ile Clock Domain Crossing İşlemi

Aşağıda A saat darbesi frekansında mevcut bir sinyalin B saat darbesi frekansında oluşturulmasını sağlayan VHDL kodları aşağıda verilmiştir.

VHDL’de RAM Bloğu Oluşturmak

RAM’ler (Random Access Memory – Rastgele Erişimli Hafıza), ROM’lardan farklı olarak verilerin hem okunmasına hem de yazılmasına izin veren bir hafıza birimidir. Rastgele erişim kontrol devresi ile saklanmış verilere rastgele sırada direk erişim sağlanır. Şekil 1’de NxM bitlik RAM gösterimi bulunmaktadır. Şekil 9‑24’den de görüleceği üzere in_ram_aktif giriş portunun aktif olması ile birlikte ile RAM’dan in_data_addr adresindeki data out_data çıkış…

VHDL ile Kayan Noktalı Sayılarda Çarpma İşleminin Gerçeklenmesi

Bu yazımızda kayan noktalı sayılarda çarpma işlemini pipeline mimaride fonksiyonlar ile gerçekleştirilmesini anlatacağız. Kayan noktalı sayılarda dört işlemle ilgili detaylı yazımıza buradan ulaşabilirsiniz. Yazıda çarpma işlemlerine ait gösterilen tüm adımlar birer fonksiyon olarak tanımlanmıştır. Aşağıda VHDL dili kullanılarak kayan noktalı sayılarda çarpma işlemini gerçekleştiren fonksiyon kodları verilmiştir. Koddan da görüleceği üzere ilk olarak işaret biti tanımlama işlemleri gerçekleştirilmektedir. Burada saklayıcı amacı ile…

VHDL’de Dosya Okuma ve Yazma İşlemleri

Yaptığımız tasarımları bilgisayarda benzetim ortamında test ederken, tasarım tarafından işlenecek pek çok veri olabilir. Örneğin imge üzerinde çeşitli işlemler yapan bir tasarımı sınamak için imgenin de tasarlanan sisteme giriş olarak verilmesi gerekebilir. Böyle durumlar için VHDL bize dosyadan veri okuma ve yazma imkanı sunmaktadır. VHDL ile dosyadan okuma  ve yazma işlemi yapabilmek için kütüphane bildirim kısmına aşağıda verilen söz diziminin…

VHDL’de ROM Bloğu Oluşturmak

ROM (Read Only Memory – Sadece Okunabilir Hafıza) sadece okunabilen sayısal verilerin saklanması için kullanılan depolama birimidir. Şekil 1’de NxM bitlik ROM gösterimi verilmiştir. Şekil 9‑22’den de görüleceği üzere in_rom_aktif giriş portunun aktif olması ile birlikte ile ROM’dan in_data_addr adresindeki data out_data çıkış portuna aktarılmaktadır. Şekil 1 NxM bitlik ROM Hafıza elemanları tasarlanırken genel olarak kullanılan bazı terimlere aşina olmak…

VHDL’de Saat Frekansı Bölme İşlemi

Zaman zaman tasarımlarımızda kullandığımız saat kaynağından daha yavaş çalışan, daha düşük frekanslı saat kaynaklarına ihtiyaç duyarız. Bu durumda kullanabileceğimiz çeşitli yöntemler mevcuttur. Örneğin FPGA üzreticileri tarafından sağlanan PLL (Phase Locked Loop), DCM (Digital Clock Manager) gibi hazır tasarım kütüphaneleri kullanılabilir. Bir diğer basit yaklaşım ise bir sayıcı kullanarak frekansı düşürmektir. Sayıcı kullanarak frekans bölmenin birden fazla yolu mevcuttur. Bu örnek…

VHDL ile Kayan Noktalı Sayılarda Çarpma İşleminin Gerçeklenmesi

Bu yazımızda kayan noktalı sayılarda çarpma işlemini pipeline mimaride fonksiyonlar ile gerçekleştirilmesini anlatacağız. Kayan noktalı sayılarda dört işlemle ilgili detaylı yazımıza buradan ulaşabilirsiniz. Yazıda çarpma işlemlerine ait gösterilen tüm adımlar birer fonksiyon olarak tanımlanmıştır. Aşağıda VHDL dili kullanılarak kayan noktalı sayılarda çarpma işlemini gerçekleştiren fonksiyon kodları verilmiştir. Koddan da görüleceği üzere ilk olarak işaret biti tanımlama işlemleri gerçekleştirilmektedir. Burada saklayıcı amacı ile…

Kara Şimşek Uygulamasının Nexys 4 Kartı Üzerinde Gerçeklenmesi

Aşağıda verilen VHDL kodunda hızı artırılabilen veya azaltabilen kayan led uygulaması verilmiştir. 8. satırda tanımlı parametre ile kaç adet led kullanılacağı tanımlanmaktadır. 9. satırda tanımlı parametre ile sistem saat darbesi frekans değeri tanımlanmaktadır. Nexys 4 kartı üzerinde 100 MHz’lik bir saat üreteci mevcuttur. 22-24 satırlarında limit değerleri ve hız artımı/azaltımında kullanılacak parametre değeri sabit olarak tanımlanmıştır. 38-51 satırları arasında tanımlı process içerisinde led’in sola…