AND kapısı VHDL örneği

and_gate

Proje Tanımı:

Bu pojemizde bir adet iki girişli AND kapısı modül tasarlayacağız.

Projede neler yapacağız?

  • VHDL dilini kullanarak, proje programının yazılması
  • Proje simülasyonu için bir adet Test Bench tasarlanması
  • Modelsim ve Tina programlarını kullanarak proje simülasyonunun yapılması

Açıklama

Projemizin VHDL kodunu hazırlamadan önce VHDL’i hatırlayalım:

VHDL (Very High–Speed Integrated Hardware Description Language) en çok kullanılan HDL donanım tanımlama dillerinden birisidir. VHDL  kullanarak FPGA’imizi programlayabilir ve FPGA’e yükleyeceğimiz kodu test edebiliriz.

VHDL dilinde iki farklı kod grubuna rastlarız:

  • Sentezlenebilir kod: FPGA yüklenecek kodları içerir. VHDL kodlarının hepsi sentezlenebilir değildir. Bunun için FPGA tasarımcıları kod seçimde dikkatli olmalıdır.
  • Sentezlenemeyen kod : Bu VHDL kodları sentezlenemez olduğu için, FPGA’e yüklenemez. Sadece yüklenececek kodun test edilmesi için kullanılır. (guarded block gibi)

VHDL programı temel olarak üç kısımdan oluşur.

  • Entity:  Bu kısımda programımız için gerekli olan input (giriş) ve output (çıkış) portları tanımlanır.
  • Architecture: Bu kısım programın ana yapısını içerir.
  • Configuration: Farklı bir yerde oluşturulan bir kodun programınızın içerisinde kullanılmasıdır.

(Biz bu projemizde Configuration kısmını kullanmayacağız.)

VHDL KODU

VHDL programımıza, öncellikle kullanacağımız kodların bulunduğu kütüphaneyi tanımlayarak başlayacağız.

Bu projemizde, IEEE tarafından oluşturulan kütüphaneyi kullanacağız. Burada kendi tasarladığınız kütüphaneleri de kullanabilirsiniz.

Kütüphane tanımınlama işlemi bittikten sonra, programımızda Entity tanımlamamız gerekir.

Artık programımızı yazabiliriz. Bunun için bir architecture tanımlamamız gerekiyor.

Kullandığınız derleyici programlarında sentaks hatası olup olmadığını kontrol edebiliriz.

Böylelikle programımızı tamamlamış olduk. Artık programımızı test edebiliriz.

TEST BENCH / HATA AYIKLAMA ve PROGRAM DOĞRULAMA

Neden Simülasyon?

Yazdığımız kodda her ne kadar sentaks hatası olmasa da, programımızın istediğimiz sonuçları verip vermediğini bilemeyiz.

Özellikle büyük programlarda,  FPGA yüklenmeden önce programın doğru çalıştığı kontrol edilip, mantıksal hataların giderilmesi gerekir. Aksi taktirde beklenmedik sonuçlar elde edebiliriz. Bu nedenle, programımız için bir test programı hazırlayıp herhangi bir test platformunda simülasyonunu yapmamız gerekir.

Test Bench Yazma

Test bench, oluşturduğumuz projenin simülasyonunu yapmak için hazırladığımız test programıdır. Test Bench formatı, FPGA’e yüklenen program ile aynıdır.

Test Bench programımıza, kullanacağımız kodların bulunduğu kütüphaneyi tanımlayarak başlıyacağız.

Daha sonra entity tanımlayacağız. Fakat bu entity herhengi bir giriş yada çıkış portu içermeyecek.

Entity tanımladıkan sonra ARCHITECTURE kısmına geçip programımızı yazmaya başlayabiliriz. Bu kısımda simülasyonunu yapacağımız programı  test bench programına dahil edeceğiz.  Architecture ile begin arasında kalan kısımda programı deklare edip, girdi  ve çıktıları tanımlayacağız.

Artık component olarak tanımladığımız yapıyı kullanıp (instantiate) programa devam edebiliriz.

Yazdığımız program parçalarını birleştirdiğimizde aşağıdaki programı elde ederiz:

Artık Test Bench’imizin simülasyonuna başlayabiliriz.

Simülasyon

Sitemizdeki bütün örneklerin simülasyonunda Model Sim ve Tina programlarını kullanacağız.

Model Sim ve Tina programları hakkında detaylı bilgilere sitemizin Simülasyon sayfasından ulaşabilirsiniz.

Oluşturduğumuz Testbench programını Modelsim ile çalıştırırsak aşağıdaki sonucu elde ederiz:

and_gate_sim1

Programımızı Tina programı ile test edersek aşağıdaki  tabloyu elde ederiz:

and_gate_sim2

 

 KAYNAK : http://fpganedir.com

İlginize Çekebilir

Programlanabilir Mantık Tümdevreleri Tasarımı