fpganedir.com'da ara

fpganedir mail

 * Proje Hakk覺nda

 * Proje Oluturma(1)

 * Proje Oluturma(2)

 * GPIO Ekleme

 * Pin Atama

  * Program覺 Y羹kleme

Proje Hakk覺nda

Bu projemizde Xilinx Platform Studio program覺n覺 kullanarak bir adet Soft 襤lemci tasarlayaca覺z. Tasarlad覺覺m覺z ilemciyi C dilini kullanarak programlayaca覺z ve son olarak ilemciyi gelitirme board'umuza y羹kleyip 癟al覺t覺raca覺z.

Projede Neler Yapaca覺z?

Projeye Giri

Projeye balamadan 繹nce k覺saca MicroBlaze ve ara癟lar覺n覺 hat覺rlayal覺m.

MikroBlaze

MikroBLaze sanal bir ilemci olup, core ad覺 verilen bloklar覺n Xilinx FPGA i癟erindeki birletirilmesi ile oluturulur. MicroBlaze sanal bir ilemci olduu i癟in FPGA i癟erisinde birden fazla oluturulabilir ve her ilemciye istendii kadar core (Uart, ethernet, pci vb) eklenebilir.

襤lemci sitemi Xilinx Platform Studio program覺nda oluturulur. Xilinx Platform Studio program覺n覺nda (XPS) Base System Builder Wizard kullan覺larak otomatik olarak ilemci sistemi oluturulabilr.

Ayr覺ca Xilinx Platform Studio ile oluturulan ilemci, ISE'de bulunan herhangi bir projeye eklenebir. Bu ilemcilerin ModelSim veya ISE'nin kendine ait simulasyon ara癟lar覺 kullan覺larak sim羹lasyonu yap覺labilir.

C Program覺

Biz bu 繹rneizde basit bir C program覺 haz覺rlayaca覺z. MicroBlaze programlanmas覺nda kullan覺lan C dili geleneksel yaz覺l覺m diline ek olarak MicroBlaze core'lar覺na ait  繹zel C komutlar覺n覺 i癟erir. Bu 繹rneimizde bu 繹zel komutlardan yanl覺zca GPIO'ya ait komutlar覺 kullanaca覺z.

Program覺m覺z basit bir binary saya癟 i癟erecek ve saya癟 Led deikeni ile 8 adet Led'e balanacak. Programda ayr覺ca sayma h覺z覺n覺 art覺r覺p ve azaltan button ad覺nda bir giri bulunacak.

#include<xparameters.h>
#include<xgpio.h>

int main()
{
    XGpio led, button; // led ve button ad覺nda iki giri/癟覺k覺 deikeni tan覺mlan覺yor
   volatile long int delay;// gecikme i癟in deiken tan覺mlan覺yor.
   long int ust_limit;
   int i=0;


XGpio_Initialize(&led, XPAR_LEDS_DEVICE_ID);// Led deikenine Leds IP atan覺yor.
XGpio_SetDataDirection(&led,1,0); // Ledler 癟覺k覺 portu olarak ayarlan覺yor.
XGpio_Initialize(&button, XPAR_BUTTON_DEVICE_ID);//Button deikenine BUTTON IP atan覺yor
XGpio_SetDataDirection(&button,1,1); //anahtar giri portu olarak yarlan覺yor

while(1)
{
     for(i=0;i<255;i++)
        {
              if(XGpio_DiscreteRead(&button, 1)==1)
                     ust_limit=600000;
              else
                     ust_limit=999999;
             XGpio_DiscreteWrite(&led, 1, i);
             for(delay=0;delay<ust_limit;delay++){};

}
}
}

 

 

 

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.