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ı 12377 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
- DrivePro Yaşam Döngüsü Hizmetleri
- Batarya Testinin Temelleri
- Enerji Yönetiminde Ölçümün Rolü: Verimliliğe Giden Yol
- HVAC Sistemlerinde Kullanılan EC Fan, Sürücü ve EC+ Fan Teknolojisi
- Su İşleme, Dağıtım ve Atık Su Yönetim Tesislerinde Sürücü Kullanımı
- Röle ve Trafo Merkezi Testlerinin Temelleri | Webinar
- Chint Elektrik Temel DIN Ray Ürünleri Tanıtımı
- Sigma Termik Manyetik Şalterler ile Elektrik Devrelerinde Koruma
- Elektrik Panoları ve Üretim Teknikleri
- Teknik Servis | Megger Türkiye
ANKET