Overordnede kursusmål
Dette avancerede, praktiske kursus i computerteknik undersøger
design og optimering af software- og hardwarekomponenter til Xilinx
Zynq-platformen. Studerende vil lære at udnytte ARM CPU-kernen til
softwareudvikling, implementere FPGA-baserede hardwareacceleratorer
og integrere brugerdefinerede IP-kerner. Kurset bruger forskellige
programmeringssprog, herunder C til softwareudvikling og
hardwarebeskrivelsessprog (for eksempel: Chisel, VHDL og HLS til
hardware-design). Studerende vil udforske implementering af
maskinlæringsacceleratorer, memory mapping og IO-grænseflader.
Kurset benytter ressourcer fra Zynq-bogen og den ledsagende
laboratoriebog og giver de studerende praktiske øvelser og
eksempler.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
- Forstå arkitekturen og komponenterne i Xilinx Zynq-platformen,
inklusiv ARM CPU'en og FPGA.
- Udvikle og optimere C-programmer til ARM CPU'en i et
"bare-metal" miljø.
- Profilere C-programmer for at identificere ydelsesflaskehalse
og muligheder for hardwareacceleration.
- Implementere hardwareacceleratorer på FPGA ved hjælp af
eksisterende IP-kerner og brugerdefinerede IP-kerner udviklet i et
hardwarebeskrivelsessprog (for eksempel: Chisel, VHDL eller
HLS)
- Udnytte AXI-bussen til kommunikation mellem ARM CPU'en,
IO-enheder og IP-kerner på FPGA'en.
- Udnytte ARM CPUens "interrupt system".
- Oprette og bruge brugerdefinerede IO-enheder i en
hardware-software-co-design-kontekst.
- Forstå "memory mapping" og anvend den i
kommunikationen mellem CPU'en, hukommelsen og
IO-grænseflader.
- Anvende den viden og færdigheder, der er erhvervet i kurset,
til at løse virkeligeverden computerteknikproblemer og
projekter.
Kursusindhold
• Xilinx Zynq platformarkitektur
o ARM CPU-kernen
o FPGA
• Softwareudvikling på ARM CPU'en
o C-programmering i et "bare-metal" miljø
o Programoptimeringsteknikker
• Hardwareudvikling på FPGA
o Brug af eksisterende IP-kerner
o Udvikling af brugerdefinerede IP-kerner i Chisel, VHDL eller HLS
• Profiling og ydelsesanalyse
o Identificering af flaskehalse
o Bestemmelse af muligheder for hardwareacceleration
• AXI-bus til CPU, IO-enheder og IP-kernekommunikation
• Interrupt System
• Design og styring for ARM CPU'en
• IO-enheder
• Oprettelse og anvendelse af brugerdefinerede IO-enheder i
hardware-software-co-design
• Memory mapping
• Communication mellem CPU, hukommelse- og IO-grænseflader
• Anvendelse af færdigheder og viden til computerteknikprojekter
• Laboratorieøvelser og vejledninger
• Praktisk læring med Zynq-bogen og ledsagende
laboratoriematerialer
Litteraturhenvisninger
The Zynq Book: Embedded Processing with the ARM Cortex-A9 on the
Xilinx Zynq-7000 All Programmable SoC
The Zynq Book Tutorials for Zybo and ZedBoard
Sidst opdateret
02. maj, 2024