Projekt: Komprimierung von FPGA Bitstreams Ralph Kuhnert.
-
Upload
caecilie-kasser -
Category
Documents
-
view
103 -
download
0
Transcript of Projekt: Komprimierung von FPGA Bitstreams Ralph Kuhnert.
![Page 1: Projekt: Komprimierung von FPGA Bitstreams Ralph Kuhnert.](https://reader036.fdocument.pub/reader036/viewer/2022082806/55204d8749795902118da3dd/html5/thumbnails/1.jpg)
Projekt: Komprimierung von FPGA Bitstreams
Ralph Kuhnert
![Page 2: Projekt: Komprimierung von FPGA Bitstreams Ralph Kuhnert.](https://reader036.fdocument.pub/reader036/viewer/2022082806/55204d8749795902118da3dd/html5/thumbnails/2.jpg)
Projektbeschreibung:
• FPGA Bitstreams bestehen aus einem großen Teil aus Strom aus "Einsen" die nur hin und wieder von einer "Null" unterbrochen werden und besitzen somit eine relativ geringe Entropie. Der Konfigurationsspeicher für die FPGAs ist im Vergleich zu den FPGA selber relativ teuer, somit bietet sich aufgrund der Entropie des Bitstreams eine Kompression des Bitstreams an um an dem teuren Konfigurationsspeicher zu sparen.
![Page 3: Projekt: Komprimierung von FPGA Bitstreams Ralph Kuhnert.](https://reader036.fdocument.pub/reader036/viewer/2022082806/55204d8749795902118da3dd/html5/thumbnails/3.jpg)
Beispiel für einen Bitstream
• 0101110000101100000011000000000010100110000000000000000001010001001001101111111100000100101000101000110011111001110110101111111111111011101110111011111111111011101110111011111111111011111110111110111011101110111011111111111111111110111011111111111011111110111111101110111011101111111111101101111011101111111111101011011010111111111110111111101110111111111110111011101110111111111111111101000111111101
![Page 4: Projekt: Komprimierung von FPGA Bitstreams Ralph Kuhnert.](https://reader036.fdocument.pub/reader036/viewer/2022082806/55204d8749795902118da3dd/html5/thumbnails/4.jpg)
Umfang des Projektes:
• In diesem Projekt soll eine Schaltung entwickelt werden, die einen FPGA-Bitstream mit möglichst einfacher Hardware komprimiert und dekomprimiert und den FPGA konfiguriert. Hierzu soll die Entropie von FPGA-Bitstreams bestimmt werden, geeignete Algorithmen in Perl programmiert und getestet und schließlich ein geeignetes Verfahren in VHDL für einen CPLD oder Microcontroller implementiert werden.
![Page 5: Projekt: Komprimierung von FPGA Bitstreams Ralph Kuhnert.](https://reader036.fdocument.pub/reader036/viewer/2022082806/55204d8749795902118da3dd/html5/thumbnails/5.jpg)
Die Idee
• Wenn man den Bitstream betrachtet erkennt man, daß er zum größten Teil aus langen Folgen von Einsen besteht somit bietet sich eine Codierung durch das Zählen von Einsen an.
![Page 6: Projekt: Komprimierung von FPGA Bitstreams Ralph Kuhnert.](https://reader036.fdocument.pub/reader036/viewer/2022082806/55204d8749795902118da3dd/html5/thumbnails/6.jpg)
Das Skript
• Mit folgendem Perlskript ne_final.pl wurden dann Bitstreams verschiedener Auslastung auf Entropie, Länge und codierte Länge (Huffmann, Einserzählen) untersucht.
![Page 7: Projekt: Komprimierung von FPGA Bitstreams Ralph Kuhnert.](https://reader036.fdocument.pub/reader036/viewer/2022082806/55204d8749795902118da3dd/html5/thumbnails/7.jpg)
Ergebnis der Skriptes
• Sämtlich Zahlenwerte finden sich der Übersicht halber in folgender Datei: Bitfiles.xls
• Die Diagramme mit den Ergebnissen finden sich auf den nächsten Seiten
![Page 8: Projekt: Komprimierung von FPGA Bitstreams Ralph Kuhnert.](https://reader036.fdocument.pub/reader036/viewer/2022082806/55204d8749795902118da3dd/html5/thumbnails/8.jpg)
Einser zählen Diagramm
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
1 2 3 4 5 6 7 8 9
Bits für Code
Grö
ße
in %
sempro.bit
vga.bit
12x8mult.bit
display.bit
sid.bit
linuxram.bit
![Page 9: Projekt: Komprimierung von FPGA Bitstreams Ralph Kuhnert.](https://reader036.fdocument.pub/reader036/viewer/2022082806/55204d8749795902118da3dd/html5/thumbnails/9.jpg)
Huffmancodierung Diagramm
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
1 2 3 4 5 6 7 8 9
Bits für Code
Grö
ße
in
%
sempro.bit
vga.bit
12x8mult.bit
display.bit
sid.bit
linuxram.bit
![Page 10: Projekt: Komprimierung von FPGA Bitstreams Ralph Kuhnert.](https://reader036.fdocument.pub/reader036/viewer/2022082806/55204d8749795902118da3dd/html5/thumbnails/10.jpg)
Arithmetische Codierung Diagramm
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
1 2 3 4 5 6 7 8
Bits für Code
Grö
ße
in
%
sempro.bit
vga.bit
12x8mult.bit
display.bit
sid.bit
linuxram.bit
![Page 11: Projekt: Komprimierung von FPGA Bitstreams Ralph Kuhnert.](https://reader036.fdocument.pub/reader036/viewer/2022082806/55204d8749795902118da3dd/html5/thumbnails/11.jpg)
Histogramm 5 Bit Codierung
0
1000
2000
3000
4000
5000
6000
7000
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Codierte Einser
An
zah
l V
ork
om
mn
isse
sempro.bitvga.bit12x8mult.bitdisplay.bitsid.bitlinuxram.bit
![Page 12: Projekt: Komprimierung von FPGA Bitstreams Ralph Kuhnert.](https://reader036.fdocument.pub/reader036/viewer/2022082806/55204d8749795902118da3dd/html5/thumbnails/12.jpg)
Histogramm 5 Bit Codierung in %
0,00%
5,00%
10,00%
15,00%
20,00%
25,00%
30,00%
35,00%
40,00%
45,00%
50,00%
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Codierte Einser
An
zah
l V
ork
om
mn
isse
sempro.bitvga.bit12x8mult.bitdisplay.bitsid.bitlinuxram.bit
![Page 13: Projekt: Komprimierung von FPGA Bitstreams Ralph Kuhnert.](https://reader036.fdocument.pub/reader036/viewer/2022082806/55204d8749795902118da3dd/html5/thumbnails/13.jpg)
Vergleich verschiedener Verfahren für vga.bit(Breakoutspiel, 84%CLB-Auslastung)
100,00%
50,62%47,57%
41,86%
50,16%45,98%
41,02%
47,71% 47,36%
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
vga.bit 4 Bit Länge Huffman 4 Bit Arithmet. 4 5 Bit Länge Huffman 5 Bit Arithmet. 5 Zip Arj
Verfahren
Grö
ße
in
%
vga.bit
![Page 14: Projekt: Komprimierung von FPGA Bitstreams Ralph Kuhnert.](https://reader036.fdocument.pub/reader036/viewer/2022082806/55204d8749795902118da3dd/html5/thumbnails/14.jpg)
Die Implementierung
• Man kann sehen, daß das 4-Bit-Einser-zählverfahren trotz seiner Einfachkeit relativ effektiv ist
• Somit wurde die Dekodierung des gepackten Bitstreams versuchsweise für einen XC9536XL-CPLD implementiert
decoder.vhd