FPGA İLE IEEE754 KAYAN NOKTALI SAYI FORMATINDA TÜREV ALICI TASARIMI VE GERÇEK ZAMANLI UYGULAMASI


Özkılbaç B., Karacalı T.

HOCA AHMET YESEVİ 2. ULUSLARARASIBİLİMSEL ARAŞTIRMALAR KONGRESİ, Erzurum, Türkiye, 6 - 09 Aralık 2019, ss.407-418

  • Yayın Türü: Bildiri / Tam Metin Bildiri
  • Basıldığı Şehir: Erzurum
  • Basıldığı Ülke: Türkiye
  • Sayfa Sayıları: ss.407-418
  • Atatürk Üniversitesi Adresli: Evet

Özet

Sahada Programlanabilir Kapı Dizileri (FPGA), programlanabilir mantık blokları, hafıza blokları, dijital sinyal işleme blokları, bu blokları birbirine bağlayan ara bağlantılar ve giriş çıkış pinlerinden oluşan tümleşik devrelerdir. Paralel çalışma, yeniden yapılandırılma, düşük güç tüketimi, çok fazla giriş çıkış pinine sahip olma gibi yeteneklerinden dolayı FPGA’ler günümüzde motor kontrolü, sinyal işleme, görüntü işleme, yapay sinir ağı tasarımı, dijital filtre uygulamaları gibi birçok alanda yaygın olarak kullanılmaktadır. FPGA ile gerçekleştirilen çeşitli uygulamalar için genellikle kesirli ya da büyüklüğü fazla olan sayılarla işlem gereksinimi duyulmaktadır. İkili sayılarda kesirli işlem yapmak ve değeri büyük olan sayıların bit olarak daha az yer kaplaması için ikili sabit noktalı sayılar ya da ikili kayan noktalı sayılar kullanılmaktadır. Kayan noktalı sayılarla işlem yapılırken genellikle IEEE’ nin 1985’te bir standart haline getirdiği IEEE754 kayan nokta sayı formatı kullanılmaktadır. Bu çalışmada Xilinx firmasına ait Zynq-7000 tümleşik devresi kullanılarak 2. dereceden polinomlar için türev hesabı gerçekleştirilmiştir. Yapılan matematiksel işlemler kesirli sayılar içerdiği için IEEE754 tek duyarlıklı kayan nokta sayı formatı kullanılmıştır. IEEE754 kayan noktalı sayı formatı ile Zynq-7000 tümleşik devresinde bulunan Kintex-7 FPGA içerisinde tasarlanan Aritmetik Mantık Birimi (ALU) modülü, aynı eleman üzerinde bulunan ARM Cortex-A9 işlemci ile kontrol edilip türev için gerekli hesaplamalar yapılmıştır. Yapılan türev hesabının sonuçları UART haberleşme protokolü üzerinden bilgisayara gönderilerek Tera Term VT seri port okuma programıyla ekranda gösterilmiştir. Tasarımın aritmetik mantık birimi modülü VHDL donanım tanımlama dili kullanılarak yazılmış, Xilinx firmasına ait Vivado ortamında modülün benzetimi yapılıp sentezlenmiştir. Daha sonra Xilinx SDK ortamında C programlama dili kullanılarak aynı Zynq-7000 üzerinde bulunan ARM Cortex-A9 işlemcisi programlanarak, tasarlanan aritmetik mantık birimi yapılacak matematiksel işlemler için kontrol edilmiştir. Xilinx firmasına ait Zedboard adlı FPGA geliştirme kartı kullanılarak tasarımın gerçek zamanlı uygulaması yapılmıştır.

Field Programmable Gate Arrays (FPGAs) are integrated circuits consisting of programmable logic blocks, memory blocks, digital signal processing blocks, interconnects connecting these blocks and input and output pins. FPGAs are widely used in many areas such as motor control, signal processing, image processing, artificial intelligence, filter applications due to their capabilities such as parallel operation, restructuring, low power consumption, and having many input and output pins. For various applications performed with FPGA, there is often a need for operations with fractions or large numbers. Binary fixed-point numbers or binary floating-point numbers are used to perform fractional operations on binary numbers and to take up less bits of large numbers. IEEE754 floating point number format, which IEEE made a standard in 1985, is generally used when dealing with floating point numbers. In this study, derivative calculation for second order polynomials are performed by using Zynq-7000 integrated circuit of Xilinx Company. Since mathematical operations include fractional numbers, IEEE754 single precision floating point number format is used. Arithmetic Logic Unit (ALU) module, designed in Virtex-7 FPGA in IEEE754 floating point number format, is controlled by ARM CortexA9 processor on the same chip and necessary calculations are made for derivative. The results of the derivative calculation are sent to the computer through UART communication protocol and displayed on the screen with Tera Term VT serial port program. The arithmetic logic module of the design is written using VHDL hardware description language and the module is simulated and synthesized in Vivado from Xilinx. Afterwards, the arithmetic logic unit designed by programming the ARM CortexA9 processor on the same chip using the C programming language in Xilinx SDK are controlled for mathematical operations. Real-time implementation of the design are made using the Zedboard FPGA development board from Xilinx.