fpganedir.com'da ara

fpganedir mail

FPGA PROGRAMLAMA

FPGA'leri yazılım ile programlanabilen donanımlar olarak tanımlamıştık.

FPGA'lerin kullanıma hazır hale getirilebilmesi için programlanmaları gerekir. (Xilinx'de derleyici program olarak ISE , Altera'da ise Quartus II programı kullanılır. )

FPGA programlamak için iki yöntem kullanılır.

Grafiksel tasarımda tasarım, derleyici programın (ISE, Quartus vs) kütüphanesinde yer alan araç ve mantık kapıları kullanılarak yapılır.

HDL(Donanım Tanımlama Dili) :Tasarımın, HDL dillerinden her hangi bir tanesinin kullanılarak yapılmasıdır.

HDL: bir donanım parçasını modellemek için kullanılan yazılım dilidir. VHDL ile Verilog en yaygın kullanılan iki türüdür. Biz örneklerimizde VHDL dilini kullanacağız.

Neden VHDL: Verilog ile VHDL arasında herhangi bir üstünlük veya yetersizlik yoktur. Her iki dilide FPGA programlamak için kullanabilirsiniz. Biz FPGA nedir ekibi olarak VHDL'e aşina olduğumuz için , örneklerimizde bu dili kullanacağız.

Program tasarlanırken hem grafik hemde VHDL kodu kullanılabilir. HDL ile oluşturduğunuz modellerinizin şematiklerini oluşturup, tasarımınıza grafiksel olarak da devam edebilirsiniz.

Anlatımımıza bir örnek ile devam edelim. Örneğimizde bir adet Half Adder'in hem Grafiksel hemde VHDL kullanılarak nasıl tasarlandığını görelim.

Grafik metodunda kulandığımız FPGA programında bir adet and kapısı ile bir adet xor kapısı seçip şematik dökümanına aşağıda verilen şekildeki gibi yerleştirelim ve pin bağlantılarını yapalım. Böylelikle Half Adder'ımızı tasarlamış olduk.

VHDL kullanarak programı yazar isek aşağıda kodu elde ederiz.

library IEEE;
use
IEEE.STD_LOGIC_1164.ALL;

entity HALF_ADDER is
       Port ( A              :  in  STD_LOGIC;
                  B              :  in  STD_LOGIC;
                  SUM        : out  STD_LOGIC;
                  CARRY   : out  STD_LOGIC);
       end HALF_ADDER;

architecture Behavioral of HALF_ADDER is
     begin
          SUM       <= A XOR B;
           CARRY  <= A AND B;
    end Behavioral;

Her iki yöntemle oluşturduğumuz tasarımları derler isek aynı program file'i elde ederiz.

VHDL ile ilgili daha deyaylı bilgiye sitemizin VHDL kısmından ulaşabilirsiniz.

Yukarıda verdiğimiz HALF_ADDER’in şematiğini oluşturup, tasarımıımıza grafiksel olarak da devam edebiliriz. Daha detaylı bilgi için örnekler kısmında yer alan ilk Quartus Projem'e bakabilirsiniz.

 

Oluşturduğuz proje, derleme işlemi boyunca aşağıda aşamalardan geçer.

Analiz ve sentezleme: Bu kısımda kullandığımız derleyici program, projenin yada kodu analiz edip, donanımsal olarak mümkün olup olmadığının kararını verir. Eğer yazılımın donanımsal çevirisi mümkünse kod sentezlenir ve RTL şeması çıkarılır.

RTL; oluşturulan kodun , register cinsinden tasarımının belirtilmesidir. Yani daha basit bir anlatımla VHDL kodumuza karşılık gelen mantık kapılarıdan oluşan devre  diyebiliriz.

Kısıtlamaların girilmesi: Program dosyasını oluşturmadan önce projemizde kısıtlamaların girilmesi gerekir. Bu kısımda zaman(var ise) ve pin kısıtlamaları(projeden oluşturdumuz portlara FPGA pinlerinin atanması) belirlenir.

Yerleşim ve bağlantıların yapılması (Place ve Routing): Derleyici programımız kısıtlamalarıda göz önünde bulundurarak programımızın yerleştirileceği logic elementleri belirler ve logic elementler ile pinler arasındaki bağlantılar yapılır.

Program dosyasının oluşturulması: Place ve Routing işleminden sonra derleyici program, programın yükleneceği cihazlara uygun programlama dosyalarını oluşturur. Mesala program direk FPGA yüklenecek ise JTAG dosyası, Konfigürasyon elemenı veya flash kullanılacaksa,  bu cihazların desteklediği program dosyaları oluşturulur.

Programın Yüklenmesi: Yukardaki işlemlerden sonra program dosyası Fpga veya konfigürasyon elemenlarına yüklenerek işlem tamamlanır. Böylelikle FPGA konfigüre edilmiş olur. FPGA Konfigürasyonu hakkında detaylı bilgiye FPGA Konfigürasyonu kısmından ulaşabilirsiniz.

 

                                                                                                                                                                                                          

 

Anasayfa | Fpga | VHDL | VHDL Sözlüğü | Embedded Sistem | Android | Sayısal Tasarım | Simulasyon | PCB | Örnekler | Forum | İletişim
Copyright © 2010-2013 FPGAnedir. All Rights Reserved.