VHDL Programlama 2. Bölüm |
ElektrikPort Akademi
Eş zamanlı (paralel) programlama dili olarak da bilinen VHDL bir tür donanım tanımlama dilidir. VHDL programlama derslerine 2. bölüm yazımızla devam ediyoruz.
12.10.2016 tarihli yazı 12445 kez okunmuştur.
Donanım Tanımlama İşlemi
Donanım tanımlama dili ile yazılan kodlardan mantıksal işlemler çıkartılır ve bu mantıksal işlemler ile lojik devreler oluşturulur. Yazılan kodun içeriğine göre oluşturulan bu lojik devreler tümleşik devrelere de dönüştürülebilir. Bu sayede yazdığımız kodlarla elimizde artık donanımsal bir devre vardır. Tabi bu işlemleri yapabilmek için kodu yazabileceğimiz bir derleyiciye ihtiyaç vardır. Derleyiciyi de şöyle açıklayabiliriz. Örneğin C bir programlama dilidir ama bu dil ile program yazarken hataları ayıklayabilmek, programın çıktısı görebilmek vs. ihtiyaçlar için derleyiciler kullanılır. VHDL’de de aynı durum söz konusudur. Yazılan VHDL koduyla bir donanım oluşturulacaktır. Bu donanımı da derleyici adını verdiğimiz programlar kodu sentezleyerek oluşturur.
Aslında C ile VHDL arasında uçurum farklar yok. Hatta algoritma yapısı olarak neredeyse C ile aynı. En büyük fark, farklı amaçlarla ve farklı işlevlerde kullanılıyor olmasıdır. C bir yazılım diliyken VHDL donanım dilidir. Aradaki benzerlikler ve işlemler oldukça fazladır. C bilen birisi için VHDL öğrenirken C ile bağdaştırmalar yapılarak VHDL çok daha kolay öğrenilecektir.
İlk VHDL Programı:
İlk VHDL programını yazabilmek için daha önceden ALTERA firmasının internet sitesinden indirip kurduğum uz Quartus II programını açıyoruz ve programı yazacağımız dosyaları oluşturuyoruz.
► File menüsünden New Project Wizard seçeneğine tıklıyoruz ve aşağıdaki gibi bir ekran açılıyor. Projeye isim verip next diyoruz.
► Daha sonra arada dosya eklemek için açılan pencerede de next dedikten sonra aşağıdaki pencere açılıyor. Bu pencerede kullanacağımız FPGA kitini seçiyoruz. Biz aşağıdaki seçtiğimiz kitle çalıştığımız için onu seçtik.
► Bu pencerede de aşağıdaki gibi ayarlamaları yaptıktan sonra next diyoruz.
► Projemiz sol alt penceredeki gibi xor_kapisi adıyla oluşturulmuş oluyor. Bizim projeye kodlarımızı yazacağımız dosyayı eklememiz gerekiyor. Bu işlemi File menüsü altından New menüsünü seçerek açılan sağ alt köşedeki pencereden VHDL File seçeneğine tıklayıp OK diyerek gerçekleştiriyoruz.
► Artık projemiz yazılmaya hazır. Açılan boş sayfaya kodlarımızı yazıyoruz.
► Kodlarımızı yazdıktan sonra Start Compilation butonu ile derledik.
Kod satırlarını açıklayacak olursak;
► 1. satırda kullanılan ‘-‘ karakteri C dilindeki ‘//’ karakteri ile aynı işlevi görüp yorum satırı eklemek için kullanılır. Burada programı daha okunabilir yapmak için kullandık.
► 2. satırda kütüphane bildirimi yapıp, 3. satırda ise bildirimi yapılan kütüphanenin kullanılan paket ve nesnelerinin bildirimini yaptık.
► 6. satır programın entity(varlık) yani port tanımlamalarının yapıldığı kısım. PIC mikrodenetleyicilerindeki TRIS ayarlarına benzetebiliriz J, xor_kapisi adında bir entity oluşturduk.
► 7. ve 8. satırlarda A ve B isminde std_logic türünde iki giriş tanımladık.
► 9. satırda SONUC adlıstd_logic türünde bir çıkış tanımladık.
► 11. satırda entity kısmını bitirdik.
Gelelim architecture kısmına; 14. satırda davranissal isimli bir architecture (mimari) oluşturduk. Architecture kısmı C dilindeki main kısmı ile bağdaştırılabilir. Bütün işlemler architecture kısmında yapılır. Her architecture begin ile başlar ve işlemler beginden sonra yapılır. Beginden önce yapılan bazı tanımlamalar vardır ama bunlara şimdi değinmeyeceğiz.
► 16. satırda A ve B girişlerini xor işlemine tabi tuttuk ve işlem sonucunu SONUC isimli çıkışa ‘<=’ karakterleri ile atadık.
► 17. satırdaarchitecture kısmını bitirdik.
► 2. satırda kütüphane bildirimi yapıp, 3. satırda ise bildirimi yapılan kütüphanenin kullanılan paket ve nesnelerinin bildirimini yaptık.
► 6. satır programın entity(varlık) yani port tanımlamalarının yapıldığı kısım. PIC mikrodenetleyicilerindeki TRIS ayarlarına benzetebiliriz J, xor_kapisi adında bir entity oluşturduk.
► 7. ve 8. satırlarda A ve B isminde std_logic türünde iki giriş tanımladık.
► 9. satırda SONUC adlıstd_logic türünde bir çıkış tanımladık.
► 11. satırda entity kısmını bitirdik.
Gelelim architecture kısmına; 14. satırda davranissal isimli bir architecture (mimari) oluşturduk. Architecture kısmı C dilindeki main kısmı ile bağdaştırılabilir. Bütün işlemler architecture kısmında yapılır. Her architecture begin ile başlar ve işlemler beginden sonra yapılır. Beginden önce yapılan bazı tanımlamalar vardır ama bunlara şimdi değinmeyeceğiz.
► 16. satırda A ve B girişlerini xor işlemine tabi tuttuk ve işlem sonucunu SONUC isimli çıkışa ‘<=’ karakterleri ile atadık.
► 17. satırdaarchitecture kısmını bitirdik.
Program çalıştırılacak olsaydı:
Örneğin; A girişinden 1, B girişinden 0 girildi. SONUC 1 olacaktı.
Yazar: Makbule Elif GÖK
YORUMLAR
Aktif etkinlik bulunmamaktadır.
- Dünyanın En Görkemli 10 Güneş Tarlası
- Dünyanın En Büyük 10 Makinesi
- 2020’nin En İyi 10 Kişisel Robotu
- Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı
- Üretimin Geleceğinde Etkili Olacak 10 Beceri
- Olağan Üstü Tasarıma Sahip 5 Köprü
- Dünyanın En İyi Bilim ve Teknoloji Müzeleri
- En İyi 5 Tıbbi Robot
- Dünyanın En Zengin 10 Mühendisi
- Üretim için 6 Fabrikasyon İşlemi
- NA8 Serisi Açık Tip Şalter Kurulum Kılavuzu | Chint Turkiye
- NKG3 Dijital Zaman Saati Kurulum Kılavuzu | Chint Türkiye
- NXU Serisi Parafudr Kurulum Kılavuzu | Chint Türkiye
- CJ19 Kondansatör Kontaktörü Kurulum Kılavuzu | Chint Turkiye
- NXZM Serisi Otomatik Transfer Şalterleri Kurulum Kılavuzu | Chint Türkiye
- Nasıl Dönüşür | İleri Dönüşüm
- Nasıl Dönüşür | Çevresel Etki
- Nasıl Dönüşür | Ekolojik Ayak İzi
- Motor Testinin Temelleri | Megger Türkiye | Webinar
- Webinar I Büyüyen Veri, Artan Güç: Sürdürülebilir Çözümler
ANKET