Tez No İndirme Tez Künye Durumu
901395
High-level synthesis of a hardware accelerator for quaternion to Euler angles conversion / Kuaterniyondan Euler açılarına dönüşüm için donanım hızlandırıcısının yüksek seviyeli sentezi
Yazar:SERKAN ŞENEL
Danışman: DR. ÖĞR. ÜYESİ RAMAZAN YENİÇERİ
Yer Bilgisi: İstanbul Teknik Üniversitesi / Lisansüstü Eğitim Enstitüsü / Uçak ve Uzay Mühendisliği Ana Bilim Dalı / Uçak ve Uzay Mühendisliği Bilim Dalı
Konu:Elektrik ve Elektronik Mühendisliği = Electrical and Electronics Engineering ; Uçak Mühendisliği = Aeronautical Engineering
Dizin:
Onaylandı
Yüksek Lisans
İngilizce
2023
77 s.
Bu yüksek lisans tezi, kuaterniyondan Euler açılarına dönüşüm yapabilen bir donanım hızlandırıcısının tasarımını ve yüksek seviyeli sentezini gerçekleştirmeyi amaçlamaktadır. Kuaterniyonlar, dört bileşenli bir sayı sistemidir ve genellikle 3D grafik, uzay uçuş kontrolü, robotik ve diğer birçok alanda kullanılırlar. Kuaterniyonlar, üç boyutlu uzaydaki dönüşleri tanımlama ve hesaplama için kullanılır ve Euler açılarına dönüştürülebilir. Euler açıları, üç boyutlu uzayda nesnelerin yönelimlerini tanımlamak için kullanılırlar. Hava araçlarının yönelimi kuaterniyon veya Euler açıları kullanılarak temsil edilebilir. Hava araçlarının kontrolcüleri için kuaterniyon tabanlı kontrolcüler tasarlanabileceği gibi Euler açılarını kontrol eden kontrolcüler de tasarlanabilir. Euler açılarının kullanımıyla ortaya çıkabilecek potansiyel tekillik sorunları nedeniyle kuaterniyon gösteriminin kullanılması tercih edilirken, Euler açılarını kontrol etmek için bir kontrolcü tasarlandığında kuaterniyondan Euler açılarına geçiş gereklidir. Bu nedenle, kuaterniyondan Euler açılarına dönüşüm yapabilen bir donanım hızlandırıcısına ihtiyaç duyulmaktadır. Yüksek seviyeli sentez (HLS), tasarımcıların Verilog veya VHDL gibi donanım tanımlama dilleri (HDL) yerine C, C++ veya MATLAB gibi yüksek seviyeli programlama dillerini veya Simulink gibi grafiksel ortamlar kullanarak dijital donanım tasarımları oluşturmalarını sağlayan bir tasarım metodolojisidir. HLS araçları ilgili HDL kodunu otomatik olarak üretebildiği ve performansı artırmak ve uygulama maliyetini azaltmak için kaynak paylaşımı ve zamanlama gibi optimizasyonlar gerçekleştirme yeteneğine sahip olduğu için donanım tasarımında kullanılabilecek etkili bir yöntemdir. Tasarım çalışmalarına başlamadan önce literatürde araştırması yapılmış ve ihtiyaç duyulan kaynaklar tespit edilmiştir. Bu kaynaklarda kullanılan yöntemler detaylı olarak incelenmiştir. İncelemeler sonucunda kullanılan yöntemlerin avantajları ve dezavantajları irdelenmiş ve tez çalışmalarında kullanılacak yöntemlere karar verilmiştir. Tezin amacına ulaşmak için tasarım süreçleri en alt seviyeden başlamıştır. Tez çalışmasında, temel operatörler olan toplama, çıkarma, çarpma ve bölme işlemlerinin tasarımı başlangıç noktası olarak alınmıştır. Bu işlemler, IEEE 754 standardındaki tek duyarlı kayan nokta aritmetiği kullanılarak gerçekleştirilmiştir. Daha sonra, kuaterniyonlardan Euler açılarına dönüşüm işlemlerinin gerçekleştirilmesi için tasarlanmış bloklar eklenmiştir. Bunlar, ters tanjant ve sinüs fonksiyonları içeren bloklardır ve kuaterniyondan Euler açılarına dönüşüm işlemi için gereklidirler. Ters tanjant ve sinüs fonksiyonlarını içeren blokların tasarımları sırasında başlangıçta oluşturulan temel operatörler kullanılmıştır. Tasarımın her aşamasında, oluşturulan blokların güvenilebilir olduğundan emin olmak için doğrulama işlemleri gerçekleştirilmiştir. Bu doğrulama işlemleri için, Simulink'e ait standart bloklar referans alınmıştır. Tasarım aşamaları ve yapılan doğrulamalar sonucunda, kuaterniyonlardan Euler açılarına dönüşüm yapabilen donanım hızlandırıcısının yüksek seviyeli sentezi üretilmiştir. Bu çalışma, tezin aşamalarını anlatan beş bölümden oluşmaktadır. Özetin kalan kısmında bölümlerin içerikleri anlatılmıştır. Birinci bölümde tezin konusuyla ilgili genel bir giriş yapılmıştır. Tezde yapılan çalışmaya neden ihtiyaç duyulduğu ve kullanılan yöntem genel bir şekilde ifade edilmiştir. Birinci bölümde bir alt başlık oluşturulmuş ve burada tezin amacı net biçimde ifade edilmiştir. İkinci bölümde kullanılan yöntemler anlatılmıştır. Yüksek seviyeli sentezin tanıtımı yapılmış ve donanım tasarımındaki faydalarından bahsedilmiştir. Alanda programlanabilir kapı dizileri ve yapısı hakkında kısa bilgilendirme yapılmıştır. Daha sonra kayan nokta aritmetiği ve kayan nokta aritmetiği gösterimi için kullanılan IEEE 754 standartı anlatılmıştır. Bu standarta göre şekillenen iki farklı kayan nokta gösterimi olan tek duyarlı(32 bit) ve çift(64 bit) duyarlı gösterimler aktarılmıştır. İkinci bölümün son kısmında ise kuaterniyonların ile oryantasyonun nasıl ifade edildiği ve kuaterniyondan Euler açılarına geçiş için kullanılan denklemlerin elde edilmesi yer almaktadır. Üçüncü bölüm kuaterniyondan Euler açılarına dönüşüm yapan bloğun tasarım süreçleri barındırmaktadır. Öncelikle temel operatörlerin tasarımları anlatılmıştır. Temel operatörlerden olan toplama ve çıkarma işlemlerini gerçekleştirecek olan ve tek blok halinde tasarlanmış olan operatörün nasıl çalıştığı ile ilgili detaylı bilgi ve çalışma yönteminin akış diyagramı verilmiştir. Daha sonra karmaşık tasarıma sahip olan çarpma işlemini gerçekleştiren operatör anlatılmıştır. Çarpma işleminin gerçekleşme yöntemi gösterilmiş ve tasarım süreçleri aktarılmıştır. İlerleyen kısımda bölme işlemi için yaygın olarak kullanılan algoritmalardan iki tanesi olan Newton-Raphson algoritması ve yeniden kaydetmeli algoritma tanıtılmıştır ve tasarım için seçilen algoritmanın akış diyagramı verilmiştir. Sondan bir önceki kısımda ters trigonometrik fonksiyonların implementasyonu için literatürde bulunan yöntemler anlatılmıştır. Yine aynı kısımda tezde kullanılacak yöntemlerin belirlenme aşamaları ve hata karakterizasyonları detaylı olarak gösterilmiştir. Son kısımda tasarımı yapılan her blok için Simulink'te bulunan standart bloklar referans alınarak doğrulama işlemleri yapılmıştır. Dördüncü bölüm tasarım sonrasındaki süreçleri barındırmaktadır. Bu bölümde öncelikle otomatik donanım tanımlama dili kodunun üretim süreci ve bu süreçte kullanılan ayarlar anlatılmıştır. Bunlara ilave olarak daha sonra üretilen kodun doğruluğunu test etmek amacıyla oluşturulan doğrulama modelinin sonuçları kıyaslanmıştır. Sentez işlemi için yapılan ayarlar aktarılmış ve son olarak sentezleme işleminin yapılmasıyla kaynak kullanımı ve performansla ilgili sonuçlar aktarılmıştır. Aktarılan sonuçlar yalnızca kuaterniyondan Euler açılarına dönüşüm yapan blok için değil, bu aşamaya kadar oluşturulan her blok için yapılmıştır. Son bölüm olan beşinci bölümde, tez çalışmasında elde edilen sonuçlar kapsamlı şekilde değerlendirilmiştir. Değerlendirmeler sonucunda Simulink içerisinde bulunan ve kuaterniyondan Euler açılarına dönüşümü sağlayan standart bloğun mevcut durumda donanım kodunun üretilemediği ve sentezlenemediği görülmüştür. Bu durumda çalışmalar sonucunda ortaya çıkan kuaterniyondan Euler açılarına dönüşümü sağlayan bu bloğun donanım kodunun üretilebilmesi ve sentezlenebilmesi önem kazanmaktadır. Değerlendirmeler sonucunda bu alanda yapılabilecek çalışmalar ve mevcut çalışmanın hangi yönde geliştirilebileceği ifade edilmiştir.
This master's thesis aims to design and synthesize a hardware accelerator that can perform the transformation from quaternions to Euler angles. Quaternions are a four-component number system commonly used in 3D graphics, space flight control, robotics, and many other fields. They are used to define and calculate rotations in three-dimensional space and can be converted to Euler angles. Euler angles are used to define the orientation of objects in three-dimensional space and can be used to represent the orientation of aircraft. Controllers based on quaternions or Euler angles can be designed for aircraft control. While the use of quaternion representation is preferred due to potential singularity issues that may arise with the use of Euler angles, it is necessary to convert from quaternions to Euler angles when designing a controller that controls Euler angles. Therefore, a hardware accelerator that can perform the transformation from quaternions to Euler angles is needed. High-level synthesis (HLS) is a design methodology that allows designers to create digital hardware designs using high-level programming languages such as C, C++, or MATLAB, or graphical environments such as Simulink, instead of hardware description languages (HDL) like Verilog or VHDL (VHSIC Hardware Description Language). HLS tools can automatically generate the relevant HDL code and have the ability to perform optimizations such as resource sharing and timing to improve performance and reduce application costs, making it an effective method for hardware design. Prior to starting the design work, a literature review was conducted and the necessary resources were identified. The methods used in these resources were examined in detail. As a result of the examination, the advantages and disadvantages of the methods used were analyzed, and the methods to be used in the thesis work were decided. The design process started from the lowest level to achieve the goal of the thesis. In the thesis study, the design of the basic operators, addition, subtraction, multiplication, and division were taken as the starting point. These operations were implemented using single-precision floating-point arithmetic in the IEEE 754 standard. Later, blocks designed for the transformation of quaternions to Euler angles were added. These blocks include functions such as inverse tangent and sine and are necessary for the conversion from quaternions to Euler angles. During the design of the blocks containing inverse tangent and sine functions, the basic operators initially created were used. At every stage of the design, verification processes have been carried out to ensure the reliability of the created blocks. Standard blocks belonging to Simulink have been used as references for these verification processes. As a result of the design stages and the verifications conducted, a high-level synthesis of a hardware accelerator that can perform transformation from quaternions to Euler angles has been produced. This study consists of five sections that describe the stages of the thesis. The remaining part of the summary will cover the content of these sections. The first chapter presents a general introduction to the topic of the thesis. The need for the study conducted in the thesis and the methodology used have been expressed in a general manner. In the first chapter, a subsection has been created, and the aim of the thesis has been clearly stated. The second chapter discusses the methods used in the thesis. An introduction to high-level synthesis is presented, and its benefits on hardware design are discussed. A brief overview of field-programmable gate arrays and their structure is given. Then, floating-point arithmetic and the IEEE 754 standard used for floating-point representation are explained. Two different floating-point representations shaped by this standard, namely single-precision (32-bit) and double-precision (64-bit), are conveyed. The last part of the second chapter focuses on how quaternions express orientation and how to obtain the equations used for converting from quaternions to Euler angles. The third section encompasses the design process of the block that converts quaternions to Euler angles. Firstly, the designs of the basic operators are explained. Detailed information on the operation and flow diagram of the operator that performs addition and subtraction, one of the fundamental operators, is provided. Then, the operator that performs multiplication, which has a complex design, is explained. The method of multiplication is shown, and the design process is explained. Later in the section, algorithms that can be used for division are introduced, and the flowchart of the selected algorithm for the design is provided. In the penultimate part, the methods found in the literature for the implementation of inverse trigonometric functions are explained. In the same part, the stages of determining the methods to be used in the thesis and the error characterizations are presented in detail. In the last part, the accuracies of the designed blocks are compared with Simulink blocks. The fourth chapter covers the post-design processes. Firstly, the production process of the automatic hardware description language code and the settings used in this process are explained. Then, the results of the verification model created to test the accuracy of the generated code are compared. Finally, the results related to resource usage and performance are presented by performing the synthesis process. The results presented are not only for the block that converts quaternions to Euler angles, but also for every block created up to this stage. In the fifth and final section, the results obtained in the thesis study have been extensively evaluated. As a result of the evaluations, it has been observed that the standard block in Simulink which provides transformation from quaternion to Euler cannot currently be generated into hardware code and its not synthesizable. Therefore, it is important to be able to generate and synthesize the hardware code for this block that transforms from quaternion to Euler, which emerged as a result of the study. Possible future work in this area and directions in which the current study can be further developed have been expressed as a result of the evaluations.