5G uyumlu QC-LDPC kodlayıcının model tabanlı tasarım yöntemi ile etkinlik analizi
Effectiveness analysis of 5G compatible QC-LDPC encoder with model based design approach
Yazar: HAKAN TAŞ
Danışman: PROF. DR. SIDDIKA BERNA ÖRS YALÇIN
İstanbul Teknik Üniversitesi / Lisansüstü Eğitim Enstitüsü / Elektronik ve Haberleşme Mühendisliği Ana Bilim Dalı / Elektronik Mühendisliği Bilim Dalı
Derece: Yüksek Lisans, 2023
Konu: Elektrik ve Elektronik Mühendisliği = Electrical and Electronics Engineering
Dizin: 5G = Five-Generation Wireless Telephone Technology ; FPGA = FPGA ; Kanal kodlama = Channel coding ; Kodlama = Coding ; Kodlama teknikleri = Coding technique

Özet:
Mobil haberleşme sistemleri insanların gündelik hayatının önemli bir parçasını oluşturmaktadır. Kullanılan pos cihazınlarından telefona, televizyon yayınlarından araç iletişimine kadar bir çok gündelik cihazlarda kullanılmaktadır. Bu cihazlar kullanılırken yapılan yayından dolayı cihazların bir birleri ile etkileşimi artmaktadır. Hava ortamında yapılan yayınlarda bozulmalar olabilmektedir. Karşılıklı yayın yapan iki cihaz arasında bir çok etken cisim veya cisimler bulunmaktadır. Bu cisim veya cisimler yayın kalitesine doğrudan etki edebilmektedir ve haberleşmede hatalar oluşabilmektedir. Shannon'nın kanal kapasite teorimine göre teorik kanal kapasitesi düşük oranlarda iletim yapıldıgı sürece düşük hata oranlarında veri iletimi mümkündür. Veri iletimi esnasında hata oranlarının düşürülmesi için kanal kodlama teknikleri kullanılmaktadır.
Mobil haberleşme sistemlerinde standart kuruluşları ortak algoritmaların kullanılması için standart belirlemektedirler. 3GPP (3rd Generation Partnership Project) mobil haberleşme sistemlerinde standartlar üzerine çalışmalar yapmaktadır. Bu çalışmalar kapsamında şirketlere davetler göndererek algoritma kararı verilmesi üzerine çalışmalarda bulunmaktadırlar. Üçüncü ve dördüncü nesil mobil haberleşme standartlarında kanal kodlama algoritması için turbo kodlarının kullanılmasına karar verilmiştir. LDPC (Low-density Parity Check) kodlama ilk olarak 1962 yılında Robert G. Gallager tarafından tasarlanmıştır. Ancak üçüncü ve dördüncü nesil mobil haberleşmede LDPC kodlarının kullanılması mümkün olmamıştır. Algoritmanın mevcut sistemlere uygulanılabilirliği açısından donanımsal zorlukları olduğundan 1990'lara kadar haberleşme sistemlerinde kullanımı çok mümkün olmamıştır. Son olarak 3GPP (3rd Generation Partnership Project) üyesi firmalar tarafından beşinci nesil mobil haberleşmede veri kanallarının kodlanmasında standart olarak kabul edilip kullanılmaya başlanmıştır. Kanal Kodlama yöntemi olarak 3GPP tarafından daha donanım dostu bir algoritmik yapısı bulunan QC-LDPC yöntemi seçilmiştir. 
Tez çalışması kapsamında QC-LDPC kodlayıcı blok tasarımı model tabanlı olarak Xilinx Model Composer ve Xilinx AI Engine üzerinde yapılmıştır. Model Composer ile yapılan tasarım, donanım tanımlama dillerinden (HDL) Verilog'a çevirilerek IP üretilmiştir. Model tabanlı tasarımın sayesinde blok diagram tasarımından Verilog tasarımına kolaylıkla geçilebilmektedir. Bu çalışmalar kapsamında model tabanlı olarak tasarlanan QC-LDPC bloğun testlerinde MATLAB ortamı kullanılmıştır. MATLAB betikleri ile üretilen test verileri sisteme verilerek testler yapılmıştır. Simülasyon sonuçları ile donanım üzerinde çalışan sistemin sonuçlarının aynı olduğu gözlemlenmiştir. Simülasyon ortamında yapılan testler tasarım süreçlerini hızlandırmaktadır. Bu hızlanmanın nedeni tasarım ve testlerin aynı ortamda yapılmasıdır. Model tabanlı yapılmayan tasarımlar, HDL dillerinin kullanıldığı geleneksel tasarımlara kıyasla daha hızlı tamamlanmaktadır. Bunun nedeni teorik çalışmaların ortam değiştirmeden, aynı ortamda bloklar şeklinde tasarlanabilmesidir. Kısalan tasarım süresi ve test süresi sayesinde nihai tasarım daha hızlı elde edilebilmektedir.
Bu çalışmada, 5G standartlarına uygun LDPC kodlayıcı bloğu tasarımı yapılması amaçlanmıştır. Bu amaç doğrultusunda model tabanlı LDPC kodlayıcı bloğu tasarımı oluşturulmuştur. 3GPP standartında 2 farklı LDPC tablosu olmasına rağmen tasarımda sadece birinci LDPC tablosuna uygun tasarım yapılmıştır. Gelen konfigürasyon bilgisinde bulunan yükseltgenme faktörü bilgisine göre LDPC tablosu kullanılmaktadır. Bu çalışamada hem model tabanlı FPGA tasarımının yapılması hem de yeni bir mimarisi olan Xilinx'in AI Engine ile 5G standartlarına uygun QC-LDPC kodlayıcı tasarımının ve FPGA uygulamasının yapılması amaçlanmıştır.

Abstract:
Mobile communication systems constitute an important part of people's daily life. It is used in many everyday devices from POS devices to telephone, from television broadcasts to vehicle communication. Due to the broadcasts made while using these devices, the interaction of the devices with each other increases. There may be many active object(s) between two mutually broadcasting devices. There may be corruption in broadcasts made in the air environment. These object(s) can directly affect the communication quality and errors may occur in communication. According to Shannon's channel capacity theorem, data transmission at low error rates is possible if the theoretical channel capacity is transmitted at low rates. Channel coding techniques are used to reduce error rates during data transmission.
Standardization organizations, set standard for the use of common algorithms in mobile communication systems. 3GPP (3rd Generation Partnership Project) works on standardization in mobile communication systems. They send the invitation for the working groups. In these group they discuss about the algorithms and their efficiency. Many companies present about their opinions and their works during their meetings. Channel coding is one of the topics which is discuss in the meetings. According to studies and the presentations about channel coding, third and fourth generation mobile communication system use the Turbo coding for the channel coding algorithm. In some companies suggest the LDPC (Low-Density Parity Check) coding. However, LDPC algorithm implementation in the hardware were hard at these days. LDPC coding was first designed by Robert G. Gallager in 1962. But these algorithm is not hardware-friendly. This means hardware implementation is very hard. Until 1990s, the algorithm was not able to be used in communication systems due to hardware difficulties in terms of applicability to existing system. 3GPP working groups discuss about the channel coding for the fifth-generation mobile communication system and they decide the QC-LDPC for the data channels. The biggest reason for them to take this decision is that the QC-LDPC (Quasi-Cyclic Low-Density Parity Check) algorithm has a hardware-friendly algorithm.
In this thesis, the QC-LDPC encoder block design was made on a model-based on Xilinx Model Composer. These design test and debugging are also made on the Xilinx Model Composer. After this test and debugging parts design is implementation on the Xilinx UltraScale+ RFSoC. 
Xilinx production ZCU670 development board is used for this implementation. Also, software design was made for the testing these design on the FPGA implementation. For these software design Petalinux was used. This software is used for DMA (Direct Memory Access). This design can be work with software and hardware cooperate. Also, QC-LDPC encoder block design was made on Xilinx AI Engine. These design test and debugging are made on Xilinx model-based design platform, Model Composer. After this test and debugging parts design is implementation on the Xilinx Versal ACAP. Xilinx production VCK190 development board is used for this implementation.
In this duration, it was also learned to run the development environments required for the programming of FPGA chips produced by Xilinx company, high speed FPGA design, monitoring of signals at run time using System ILA, using Petalinux for the software design, design and debugging Xilinx SDK on Linux.
This thesis was written with six main chapters. Chapter 1 is the introduction of the thesis. In this chapter, purpose of the thesis is explained. Also, two main design environment is explained briefly. 
Second chapter is preliminary. In this chapter LDPC was explained. It is also mentioned in the Tanner Diagram when describing LDPC. Also aim of the thesis, 5G NR (New Radio) channel codding LDPC and QC-LDPC are briefly explained. How to decide the base graph, lifting factor are explained in this chapter.
Third chapter is example work with Xilinx AI Engine blocks. In this chapter, the AI Engine was described. During the explanation of the AI Engine, matrix multiplication example is briefly explained. Aim of this example matrix multiplication is to understand the AI Engine's working principle and how to generate block is designed. Firstly, how to write AI Engine codes were described. After that,e AI Kernel and AI Graph were explained. How to connect these two structures were explained. After then, Vitis Tools Flow explained and how to use this flow. Extensible design was described. After then, how to design in Vivado dwas described. Test design in FPGA and monitor with ILA.
Fourth chapter is explained model-based design of the QC-LDPC encoder. In this chapter firstly, three design environment are compared according to resource consumption and design time. As a result of comparison, the design was made with the Model Composer. In the Xilinx Model Composer library, matrix digital signal processing blocks are not enough for the generation QC-LDPC encoder design. For this reason some blocks of the design sub blocks are generate from Xilinx Vitis HLS tools. In the Xilinx Model Composer design LDPC encoder design was made for base graph one which is define in 3GPP standard. Firstly, the Design accepts the control massage for the decision of which base graph will be used and lifting factor after the index information decision. When the base graph and lifting factor is determined, modulo operation will be used in the base graph. Every element in the base matrix is compared with the lifting factor value. If they are greater than the lifting factor value, subtract a lifting factor value from base matrix element. When the base matrix operation is done the system can accept the systematic bits from user. The system can accept a maximum of $22 \times Z_c$ bits for the base graph 1 and generate the $66 \times Z_c$ bits for the output. Actually, design generate the $68 \times Z_c$ which are systematic bits and parite bits. However, $2 \times Z_c$ bits remove in front of the stream. When the design is finished, testing and debugging the design is made in the Model Composer. When the testing finished IP generated and is used in the FPGA.
Fifth chapter is explained AI Engine design of the QC-LDPC encoder. In this chapter which operation were used in the design was explained. Model Composer design explained in this chapter. Also testing methodology is explained.
In the last chapter, based on the test results obtained, resource consumption, cycle time and design evaluation were made. Suggestions were made on how to make the design more effective. Information about the designs that can be derived from this study is given.
According to implementations, QC-LDPC encoder design can be made in model based on Xilinx Model Composer Design Suit. Also, can be designed in Xilinx AI Engine's.