System-on-chip design with open-source FPGA IP
Açık kaynak gömülü FPGA IP'si ile kırmık üstü sistem tasarımı
- Tez No: 937004
- Danışmanlar: PROF. DR. MÜŞTAK ERHAN YALÇIN, DR. HASAN ERDEM YANTIR
- Tez Türü: Yüksek Lisans
- Konular: Elektrik ve Elektronik Mühendisliği, Electrical and Electronics Engineering
- Anahtar Kelimeler: Belirtilmemiş.
- Yıl: 2025
- Dil: İngilizce
- Üniversite: İstanbul Teknik Üniversitesi
- Enstitü: Lisansüstü Eğitim Enstitüsü
- Ana Bilim Dalı: Elektronik ve Haberleşme Mühendisliği Ana Bilim Dalı
- Bilim Dalı: Elektronik Mühendisliği Bilim Dalı
- Sayfa Sayısı: 69
Özet
Son yıllarda, gerek nesnelerin interneti gerek yapay zeka uygulamaları sebebiyle hesaplama gücüne talep artmıştır. Bu talebi karşılamak için alanda programlanabilir kapı dizilerine (Field Programmable Gate Arrays, FPGA) eşzamanlı hesaplama, tekrar tekrar programlanabilme ve yüksek bant genişliğinde veri üretebildikleri için sıklıkla başvurulur. Ancak, FPGA'leri sisteme entegre etmek zordur. Birden fazla gerilim seviyesi kullandığı için ve çok güç tükettiği için uygun baskı devre kartının üretilmesi geliştirme süresi zaman almakta ve tasarım maliyetlerini arttırmaktadır. Aynı zamanda FPGA paketleri büyük ve parça başı fiyatı birçok tümdevreye göre pahalıdır, bu yüzden FPGA içeren ürünlerin tedarik maliyetleri de yüksektir. Bu sorunları, kırmık üstü sisteme bağlanan gömülü FPGA'ler çözmeyi hedeflemekte. Gömülü FPGA üreticileri, müşterilerin isterlerine göre daha az sayıda başvuru tablosu (lookup table - LUT) içeren, bir diğer deyişle daha az alan kaplayan ve güç tüketen FPGA'ler üretebilir. Gömülü FPGA'lerde sabit ve esnek diye iki farklı tasarım yöntemi vardır. Sabit gömülü FPGA'ler, ayrı FPGA'lere benzer şekilde transistör seviyesi tasarlanır, bir yarı iletken üretim teknolojisine mahsustur. Esnek ise kayıtçı transfer seviyesi (register transfer level - RTL) kodu halinde bulunur, üretim teknolojisinden bağımsız oldukları için mimarilere kolaylıkla ince ayarlamalar yapılabilir, farklı teknolojilerde üretilebilir. Bu çalışmada, esnek gömülü FPGA IP'si içeren bir kırmık üstü sistem tasarlandı. Literatürde benzer çalışmalar bulunmasına karşın, bu çalışmada açık kaynak araçlar ve tasarımlar kullanarak böyle bir kırmık üstü sistemin nasıl tasarlanabileceğini göstermek hedeflenmektedir. Gömülü FPGA IP'sinin yanı sıra, işlemci, FPGA için bit akış dosyası ve işlemci için program verilerini kaydeden hafıza elemanı ve biri işlemcinin kullanması, biri de hafıza elemanının verilerini yüklemesi için iki Universal Asynchronous Receiver-Transmitter (UART) elemanını içerir. Kırmık içi haberleşme Advanced Microcontroller Bus Architecture (AMBA) standardının Advanced eXtensible Interface 4 (AXI4) protokolü ile sağlanmaktadır. Sistem çoğunlukla açık kaynak tasarım araçlarıyla veya açık kaynak projelerden alınarak hazırlandı. İşlemci, önceden ETH Zürich'in PULP Platform grubunda geliştirilen, şimdi Open HW Group sürdürülen CVA6'dır. 64-bit ve açık kaynaklı RISC-V mimarisinde olup I, M, C ve A uzantılarını destekler. Parametrik bir işlemcidir, oluşturan parametreler değiştirilerek en iyi performansı sağlayan kombinasyon elde edilebilir. Gömülü FPGA IP'si, OpenFPGA açık kaynaklı FPGA üreticisiyle üretildi. OpenFPGA, Yosys açık kaynak RTL sentezleyicisini ve VPR, FPGA yerleştirme ve rotalama programını içeren istenilen mimariye uygun Verilog formatında FPGA için RTL kodlarını, doğrulama ortamını, Synopsys zamanlama kısıtlama komutlarını ve FPGA'ye uygun bit akış dosyalarını üretebilmektedir. Bu çalışmada hazırlanan FPGA 1960 adet altı girişli LUT, 1960 adet flip-flop, 50 giriş-çıkış hücresi ve kayıtçı arayüzü içermektedir. FPGA içindeki lojik bloklar onar adet LUT, onar adet flip-flop ve yerel rotalama çoklayıcılarından oluşmuştur. Bu yöntem alan-gecikme çarpımı bakımından en düşük değeri vermektedir. Yerel rotalama çoklayıcılarının arasındaki bağlantı %50 oranında azaltılmıştır. Böylece lojik bloğun işlevselliğine zarar vermeden kritik yol sayısı ve çoklayıcıların kapladığı alan azaldı, performans arttı. Anahtarlama bloğu rotalanabilirlik ve alan açısından en iyisi olan Wilton stili'dir ve esneklik katsayısı üçtür. FPGA içindeki anahtarlarda dijital tasarım araçlarında üç durumlu buffera göre daha az alan kapladığı ve dijital tasarım araçları içinde daha iyi optimize edilebildiği için çoklayıcı kullanılmıştır. Rotalama mimarisinde FPGA boyutunun küçük olması sebebiyle L4 segment kullanılmış, daha uzunları tercih edilmemiştir. Giriş-çıkış (GÇ) blokları tercih edilen üretim teknolojisinin standart giriş-çıkış blokları kullanıldı ve teknolojideki ızgara sistemine uygun olması için dikey ve yatay GÇ blokları olarak iki türe ayrıldı. Kayıt arayüzü, işlemci ve diğer blokların bağlandığı AXI arayüzünü FPGA içindeki tasarımla haberleşmesini sağlar. Gömülü FPGA'yi kontrol etmeyi sağlayan arayüz, iki adet kontrol ve durum kayıtçısına ve altı adet 64-bitlik veri kayıtçısını oluşturur. Kayıtçılar aracılığıyla IP'nin durumu öğrenilebilir ve toplam 384-bitlik veriyi aynı anda FPGA'ye aktarabilir. Gömülü FPGA'yi programlama için OpenFPGA'deki beş programlama protokolünden QL hafıza bankası seçildi. Programlanabilir hafıza için latch yapısına ve kaydırma kayıtçısı kullanılabilmesine izin verdiğinden dolayı diğer protokollerden daha az alan kaplamaktadır. Sistem içindeki hafızada üçe kadar bit akışı dosyaları saklanabilir, bu verilerle çalışma sırasında FPGA tekrar programlanabilmektedir. Tercih edilen protokole uygun FPGA'yi programlamayı sağlayan bir devre de bu çalışmada tasarlandı. Programlanabilir her eleman word line (WL) ve bit line (BL) sinyalleriyle kontrol edilir. Elemanlara yazılacak veri BL, yazılacak elemanları seçen adres bilgisi WL kaydırma kayıtçılarına yüklenir. Kaydırma kayıtçılarına yükleme bittikten sonra WL için etkinleştirme sinyalinin verilmesiyle istenen adresteki latchlere yükleme yapılır. Bütün elemanlar bu yöntem izlenerek 38849 saat vuruşu içinde programlanabilmekte. Tasarlanan sistem, Cadence Xcelium'da davranışsal simülasyonda dört farklı uygulamayla test edildi. Uygulamalar; gömülü FPGA beraber kullanılmış versiyonlarıyla tamamı işlemcide çalıştırılan, yazılım versiyonları performans açısından karşılaştırıldı. Gömülü FPGA'den destek alındığı takdirde Advanced Encryption Standard (AES) şifrelemede 3,14 kat, CRC-32'de 8 kat, Finite Impulse Response (FIR) filtrede 2,8 kat, 2 boyutlu konvolüsyon işleminde 1,36 kat performans artışı gözlemlendi. Son olarak yapılan sistemin Synopsys Design Compiler (DC) ve IC Compiler II (ICC2)'de fiziksel tasarımı yapıldı. Fiziksel tasarım; yerleştirme ve rotalama akışları uzun sürdüğü için lojik blok, FPGA ve kırmık üstü sistem şeklinde üçe aşamaya ayrılmıştır. CLB, DC'de 100 MHz saat sinyali için sentezlendi, ICC2'de 60um kenar uzunluğuna sahip bir kare şeklinde yerleşim planına serimi yapılmıştır. Bu sırada tasarımdaki homojenlik bozulmaması için yerleştirme, saat ağacı sentezi ve rotalama aşamalarında buffer ekleyen ve bloklar arasındaki bağlantıları değiştirebilecek optimizasyonlar devre dışı bırakıldı. Kritik yolları azaltarak ICC2'nin performansını iyileştirmek için herhangi bir anahtarlama aktivitesi göstermeyen latch çıkışlarından yapılan zamanlama analizler kapatıldı. Güç hatları, ızgara şeklinde en yüksek iletkenliğe sahip olan en üstteki iki arka yüz katmanında, standart hücreleri besleyen hatlar ise hücrelere en yakın katmanda oluşturuldu. Lojik bloğun serimi bittikten ve karakterize edildikten sonra FPGA, lojik blok ile aynı saat frekansında sentezlendi. ICC2'de lojik bloklara uygulanan aynı ayarların kullanılmasının yanı sıra anahtarlama bloklarındaki çıkışlar kombinazonel döngüler oluşturmaması için kapatılmıştır. FPGA için makro yerleştirmesi OpenFPGA akışından alınan yerleşim planına uygun şekilde 1.5 mm kenar uzunluğunda bir kare alana yerleştirildi. FPGA de sabitlendikten sonra kırmık üstü sistem için akış koşuldu. Tasarımda potansiyel kombinezonal döngüler FPGA içinde kaldığından ve optimizasyonlar işlemcinin performansına katkıda bulunduğundan önceden tercih edilen zamanlama analizlerinin ve optimizasyonları kapatılmasına ihtiyaç duyulmamıştır. Yerleşim planlaması sırasında akışın sorunsuz geçmesi için FPGA ortaya yakın, program hafızası ve bit akış dosyaları için SRAM blokları tasarımın kenarlarına yerleştirilmiştir. Böylece, tüm tasarım 100 MHz saat frekansı için 4mm^2 alana yerleştirilebildi. Sonuç olarak, kullandığımız açık kaynak araçlarla ve tasarımlarla çeşitli uygulamalar için gömülü FPGA içeren bir kırmık üstü sistem yapılabilir. Ancak ticari FPGA'lerdeki farklı anahtarlama bloğu modelleri, kombinasyonel döngü oluşturmayan RTL kodu, saat ağacı bölgeleri gibi özellikler OpenFPGA'de desteklenmediği için ticari FPGA'lerle yarışacak tasarımlar elde edilememektedir. Bunun yanında sistemin fiziksel tasarımı, zamanlama kısıtlamaları haricinde OpenFPGA'in araçları kullanılmadan yapılmıştır. Topluluğunun ve geliştiricilerin projeye daha fazla katkı vermesi durumunda, kullanılan açık kaynak araçlar daha geniş kullanım alanları elde edebilir.
Özet (Çeviri)
In recent years, the demand for computing power has increased due to the increasing number of Internet of Things (IoT) devices and artificial intelligence applications. Field programmable gate arrays (FPGA) are frequently used to meet this demand because of their simultaneous computation, reconfigurability, and high bandwidth. However, integrating FPGAs into the system is challenging. Since they use multiple voltage levels and consume lots of power, producing a suitable printed circuit board (PCB) takes time to develop and increases design costs. At the same time, FPGA packages are large, and the price per piece is higher compared to many integrated circuits, so the procurement costs of products containing FPGAs are also high. Embedded FPGAs (eFPGA) aim to solve these problems by integrating FPGA fabrics into the system-on-chips (SoC). EFPGA vendors can produce FPGA fabrics with fewer look-up tables (LUT), i.e. fabrics with less space and power consumption, to satisfy customer requirements. There are two different design methods for embedded FPGAs: hard and soft. Hard eFPGAs are designed at the transistor level, similar to discrete FPGAs, and are specific to a semiconductor manufacturing technology. Soft eFPGAs are generated as RTL code, and since they are independent of the manufacturing technology, the architectures can be easily fine-tuned and manufactured using different technologies. In this study, a system-on-chip system with soft eFPGA intellectual property (IP) is designed. There are similar studies on this topic, but the aim is to show that it is possible to design an SoC with open-source tools and designs. In addition to the embedded FPGA IP; the processor, the memory that stores the program data for the processor and bitstream files for the FPGA, and two UART elements, one for the processor to use and one for loading the data of the memory element. The Advanced eXtensible Interface 4 (AXI4) protocol of Advanced Microcontroller Bus Architecture (AMBA) standard provides the on-chip communication. The system is mostly prepared with open-source design tools or taken from open-source projects. The processor is CVA6, previously developed in the PULP Platform group of ETH Zürich and now maintained by Open HW Group. It is a 64-bit processor, has open-source RISC-V architecture and supports I, M, C and A extensions. It is a parametric core, the optimum performance can be obtained by changing the parameters which define the core. The embedded FPGA IP is generated with an open-source FPGA fabric generator called OpenFPGA. OpenFPGA can produce RTL codes for FPGA in Verilog format, verification environment, Synopsys timing constraint commands and bitstream files suitable for the desired architecture with Yosys open source RTL synthesizer and Versatile Place-and-Route (VPR), FPGA placement and routing program. The FPGA prepared in this study includes 1960 six-input LUTs, 1960 flip-flops, 50 input-output cells and a register interface. The logic blocks in the FPGA consist of ten LUTs, ten flip-flops and local routing multiplexers. This method gives the lowest value in terms of area-delay multiplication. Local routing multiplexers are reduced to 50\% and reduce the delays in the logic block. Thus, the critical paths and the area covered by multiplexers are reduced without damaging the logic block functionality. The switching block is the Wilton style, which is the best in terms of routability and area, and its flexibility coefficient is 3. Multiplexers are selected for the switches in the FPGA because they cover a smaller area than tri-state buffers and can be optimized in digital implementation tools. Due to the small size of the routing architecture, L4 segments were used; longer ones were not preferred. Input-output (IO) blocks are used as standard input-output blocks of the preferred production technology, and vertical and horizontal IO blocks are made of separate cells to be compatible with the grid in the technology. The register interface provides the AXI interface to which the processor and other blocks are connected to communicate with the design inside the FPGA. The interface consists of two control and status registers and six 64-bit data registers so that the status of the eFPGA can be learnt and a total of 384-bit data can be transferred to the FPGA simultaneously. For programming the embedded FPGA IP, the memory bank was selected from five programming protocols in OpenFPGA. It takes up less space than other protocols because it allows the latch structure for programmable memory. Inside the system, up to three bitstream files can be stored and read from them to reprogram during runtime. A configuration circuit is designed to program the IP according to the preferred protocol in this study. Each configurable element is controlled through bit line (BL) and word line (WL) signals. The data to be written to the elements are loaded into BL, and the address information is loaded into the WL shift registers. When the loading to the shift registers is finished, an enable signal is sent to WL to load the data to selected latches. Each element in FPGA is programmed by following this sequence in 38849 clock cycles. The system was tested with four different applications in behavioural simulation on Cadence Xcelium. The eFPGA-augmented and software versions, which run solely on the processor, are compared in terms of performance. When supported by embedded FPGA, a performance increase of 3.14 times in Advanced Encryption Standard (AES) encryption, 8 times in CRC-32, 2.8 times in Finite Impulse Response (FIR) filter and 1.36 times in 2D convolution operation was observed. Finally, the physical design of the system was made in Synopsys Design Compiler (DC) and IC Compiler II (ICC2). The physical design is divided into three sections since the flows take long times: logic block, FPGA and the system-on-chip. The logic block is synthesized in 100 MHz clock frequency and its layout is made on a square with a side length of 60 um. Optimizations which can add buffers or change the net connections are turned off in placement, clock tree synthesis, and routing. Also, timings in the latch outputs which do not show any switching activity are disabled to increase the performance of ICC2. The power meshes are created in the top two metal layers, which have the highest conductivity and the standard cell rails are created in the metal layers nearest to the standard cells. After working the logic block layout and characterization are finished, the FPGA is synthesized with the same clock frequency with logic blocks. Aside from the settings used before, switch block outputs are turned off to break combinational loops. Macro placement for the FPGA is done on a square with a side length of 1.5 mm, according to the placement plan taken from the OpenFPGA flow. After the FPGA is hardened, the system-on-chip flow is run. Since the potential combinational loops are in the FPGA and the optimizations are important for the processor performance, the settings used before were not preferred in the SoC. In the floorplanning stage, the FPGA is placed near to the center and SRAM blocks of the bitstreams and the program memory are placed at the edge of the design to complete flow without issues. Thus, the SoC is place-and-routed in 4.84 mm2 area for 100 MHz clock frequency. As a result, a system-on-chip system with embedded FPGAs can be built for various applications with the open-source tools and designs we use. However, features such as custom switch block models, loop-free FPGA fabric, and clock tree regions are not supported in OpenFPGA. So, designs that compete with commercial FPGAs cannot be obtained. In addition, the physical design of the system was made without using OpenFPGA tools, except for timing constraints. If the community and developers contribute more to the project, the open-source tools used can be used in wider areas.
Benzer Tezler
- Hardware implementation of the post-quantum cryptography algorithm falcon
Kuantum sonrası kriptografi algoritması falcon'un donanım gerçeklemesi
YASİN YILMAZ
Yüksek Lisans
İngilizce
2025
Elektrik ve Elektronik Mühendisliğiİstanbul Teknik ÜniversitesiElektronik ve Haberleşme Mühendisliği Ana Bilim Dalı
PROF. DR. SIDDIKA BERNA ÖRS YALÇIN
- Designing custom rısc-V based socs: from ıntegration to ısa optimization
Özel risc-V tabanli soc tasarimi: entegrasyondan isa optimizasyonuna
AMER MOHAMMAD NAYEF DYAB
Yüksek Lisans
İngilizce
2025
Elektrik ve Elektronik MühendisliğiÖzyeğin ÜniversitesiElektrik-Elektronik Mühendisliği Ana Bilim Dalı
PROF. HASAN FATİH UĞURDAĞ
- Development of side channel analysis environment using simulation data of system-on-chip processors
Kırmık üstü sistem işlemcilerinin benzetim verileri ile yan kanal analizi ortamı geliştirilmesi
YASİN FIRAT KULA
Yüksek Lisans
İngilizce
2019
Elektrik ve Elektronik Mühendisliğiİstanbul Teknik ÜniversitesiElektronik ve Haberleşme Mühendisliği Ana Bilim Dalı
DOÇ. DR. SIDDIKA BERNA ÖRS YALÇIN
- Architectural exploration of FPGAS and RTL2GDSII implementation of an FPGA
FPGA mimarileri araştırması ve düşük alanlı bir FPGA mimarisinin RTL2GDSII tasarımı
MEHMET SAİT EROĞLU
Yüksek Lisans
İngilizce
2023
Elektrik ve Elektronik MühendisliğiBoğaziçi ÜniversitesiElektrik-Elektronik Mühendisliği Ana Bilim Dalı
YRD. DOÇ. DR. İSMAİL FAİK BAŞKAYA
- Açık kaynak kodlu OpenRISC tabanlı kırmık üstü sistemlerin gerçeklenmesi ve uygulamaları
Implementation and applications of open source OpenRISC based SOC's
LATİF AKÇAY
Yüksek Lisans
Türkçe
2015
Elektrik ve Elektronik Mühendisliğiİstanbul Teknik ÜniversitesiElektronik ve Haberleşme Mühendisliği Ana Bilim Dalı
DOÇ. DR. SIDDIKA BERNA ÖRS YALÇIN