02214 Hardware/Software Codesign

2024/2025

Kurset er planlagt til at blive udbudt første gang i forår 2026. Kurset udbydes kun, hvis det er godkendt af DTU Compute Studienævn i tide.
Kursusinformation
Hardware/Software Codesign
Engelsk
5
Kandidat
F1B (tors 13-17)
Campus Lyngby
Forelæsninger, lab øvelser og projekt.
13-uger
F1B
Skriftlig eksamen og bedømmelse af rapport(er)
Skriftlig eksamen: 4 timer
Skriftlige hjælpemidler er tilladt
7-trins skala , intern bedømmelse
Dette kurset forudsætter at studerende har en god bagrund i computer engineering, digital design og programmeringssprog som: C, VHDL eller Chisel
Edward Alexandru Todirica , Tlf. (+45) 4525 3748 , eato@dtu.dk
01 Institut for Matematik og Computer Science
I studieplanlæggeren
Kontakt underviseren for information om hvorvidt dette kursus giver den studerende mulighed for at lave eller forberede et projekt som kan deltage i DTUs studenterkonference om bæredygtighed, klimateknologi og miljø (GRØN DYST). Se mere på http://www.groendyst.dtu.dk
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