Yapay sinir ağlarının otomatik olarak FPGA'ya uygulanması için veri yolu tasarım aracı
A datapaths design tool for automatically mapping artificial neural network on to FPGA s
Yazar: NAMIK KEMAL SARITEKİN
Danışman: YRD. DOÇ. DR. İBRAHİM ŞAHİN
Düzce Üniversitesi / Fen Bilimleri Enstitüsü / Elektrik Eğitimi Ana Bilim Dalı
Derece: Yüksek Lisans, 2011
Konu: Adli Tıp = Forensic Medicine ; Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control ; Elektrik ve Elektronik Mühendisliği = Electrical and Electronics Engineering
Dizin: FPGA = FPGA ; VHDL = VHDL ; Yapay sinir ağları = Artificial neural networks

Özet:
Yapay Sinir Ağları (YSA) günümüzde değişik alanlarda çok yaygın bir şekilde kullanılmaktadır. YSA'lar yazılım olarak gerçeklenebildiği gibi yazılım yetersiz kaldığı durumlarda donanım olarak da gerçeklenmektedir. Donanım ortamı olarak Alanda Programlanabilir Kapı Dizileri [Field Programmable Gate Arrays (FPGA)] ucuz olmaları, esnek olmaları, ilk üretimlerinin hızlı olması ve ölçeklendirilebilir olmaları gibi özelliklerinden dolayı tercih edilmektedirler. Bu çalışmada, yapay sinir ağlarının FPGA'ya uygulanmasının otomatikleştirilmesi, bu işlem için uzman gereksiniminin azaltılması ve uygulama sürecinin kısaltılması amacıyla, YSA'lar için otomatik veri yolu tasarımı yapabilen bir araç [Yapay Sinir Ağlarının VHDL Kodunu Oluşturucu - Artificial Neural Network GENerator (ANNGEN)] geliştirilmiştir. Bu kapsamda öncelikle ANNGEN tarafından kullanılan ve yapay sinir hücrelerinden oluşan örnek bir yapay sinir hücresi kütüphanesi oluşturulmuştur. Kütüphanede hâlihazırda altı değişik sinir hücresi bulunmaktadır. İstenildiğinde kütüphaneye yeni hücreler eklenebilmekte ve bunlar ANNGEN tarafından otomatik olarak tanınmaktadır. ANNGEN girdi olarak oluşturulmak istenen yapay sinir ağının metin tabanlı tanımlamasını, sinir hücresi kütüphanesini ve şablon dosyasını alır. FPGA yongalarına uygulanabilecek formatta tasarlanmak istenen yapay sinir ağı için gerekli veri yolu tasarımını yapar ve VHDL [Very High Speed Integrated Circuit HDL (Çok Hızlı Entegre Devre Donanım Tanımlama Dili)] kodunu üretir.Tez kapsamında ANNGEN'i test etmek amacıyla iki test durumu oluşturulmuştur. ANNGEN bu test durumları ile test edilmiş ve başarılı bir şekilde oluşturulmak istenen YSA'lar için VHDL kodunu ürettiği gözlenmiştir. Üretilen VHDL kodlarının doğruluğunu kontrol etmek amacıyla bir EDA [Electronic Design Automation (Otomatik Elektronik Tasarım Aracı)] aracı olan Xilinx'in ISE [Integrated Software Environment (Entegre Yazılım Ortamı)] kullanılmıştır. Üretilen kodlar ISE aracı ile önce yazım kontrolünden geçirilmiş ardında da sentezlenerek RTL [Register Transfer Level description (Transfer Seviye Kayıt Tanımlaması)] şeması başarılı bir şekilde oluşturulmuştur.Bu çalışmanın sonuçları göstermiştir ki metin tabanlı YSA tanımlaması verildiğinde ANNGEN sayesinde istenen YSA için veri yolu saniyeler içinde otomatik olarak tasarlanmakta ve VHDL kodu üretilebilmektedir. Dolayısıyla donanım tabanlı YSA tasarım süreci çok kısaltılmış ve bu işlem için uzman personel gereksinimi ortadan kaldırılmıştır.

Abstract:
Nowadays, Artificial Neural Networks (ANN) is a widely used in different applications. ANN can be produced as software. Although, ANN can be implemented as software, in cases where software implementations are not sufficient in terms of performance, ANN can be implemented as hardware. In hardware implementations, Field Programmable Gate Arrays (FPGAs) are preferred as cheap, flexible, scalable and faster first manufacturing alternative compared to the other hardware implementation techniques.In this study, a data paths design tool [Artificial Neural Network GENerator (ANNGEN)] was developed to help automate the application of ANNs to FPGAs, to reduce the design and implementation time and to minimize the expert requirements while mapping ANNs to FPGAs. With these goals in mind, first an artificial neuron library was developed. Currently, the library contains designs for six different neurons. As new neurons are designed, they can easily be added to the library and these new neurons are automatically recognized by ANNGEN and used if needed. ANNGEN takes three inputs which are text based definition of the ANN (NetList) to be mapped, a library and a template file. It, first, designs a data path for the given NetList, and then, produces a VHDL (Very High Speed Integrated Circuit Hardware Description Language) code for the design.Two different test cases were formed to test ANNGEN. It was tested with these test cases and it is observed that ANNGEN was able to successfully made designs and produced VHDL codes for the given test cases. Xilinx ISE (Integrated Software Environment) tool was used to verify correctness of the design and VHDL code produced by ANNGEN. First, Syntax checks of the VHDL codes were done. Then, the codes were synthesized and RTL (Register Transfer Level description) schematics were formed successfully.The results of this study showed that when a Net-List of an ANN is given to ANNGEN, it can easily design a data path for the given Net-List and produce VHDL code automatically in seconds. As a result, it reduced the time needed for ANN data path design and VHDL coding dramatically, and eliminated the expert requirement.