Overordnede kursusmål
At sætte deltagerne i stand til på systematisk vis at konstruere
større digitale kredsløb, f.eks. hardware acceleratorer, og at
realisere disse i FPGA-teknologi ved anvendelse af gængse
CAD-værktøjer (p.t. VHDL og XILINX Vivado).
At sætte deltagerne i stand til at analysere og optimere digitale
kredsløb mht. hastighed og areal.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
- Konstruere et digitalt kredsløb der udfører en given beregning,
som et sekventielt kredsløb bestående af en tilstandsmaskine og en
data-path.
- På systematisk vis pipeline et givent kredsløb samt
identificere fejl i et givent kredsløb som er forsøgt
pipelinet.
- Forklare parametrene throughput og latenstid, forklare den
indbyrdes sammenhæng mellem disse parametre, og optimere
hastigheden af et givent kredsløb.
- Analysere den tidsmæssige korrekthed af et givet sekventielt
kredsløb, herunder også kredsløb som rummer clock-skew.
- Redegøre for den interne opbygning i en gængs FPGA komponent
(p.t XILINX) og redegøre for, hvorledes dennes ressourcer bedst kan
udnyttes ved realisering af et givent kredsløb.
- Redegøre for hvorledes en given VHDL-beskrivelse af et ønsket
kredsløb syntetiseres til hardware (dvs. en struktur af registre og
kombinatorisk logik), og estimere størrelsen af dette kredsløb.
Optimere kredsløbet ved at ændre VHDL koden.
- Redegøre for fænomenet metastabilitet og beskrive hvorledes et
kredsløb med flere klok-domæner skal designes for at det fungerer
korrekt.
- Skrive effektiv VHDL-kode på et passende højt
abstraktionsniveau (RTL-niveau), hvorfra det ønskede kredsløb kan
syntetiseres.
- Udvikle og anvende testbenches til simulering og verifikation
af et kredsløbs funktion.
- Udvikle komplekse digitale kredsløb ved en trinvis forfining
fra en specifikation til et hardwarenært niveau, hvorfra der kan
syntetiseres en realisering.
- Organisere og planlægge design af større kredsløb i en gruppe
af studerende.
- Dokumentere dette arbejde (design, implementering og test) i
form af en teknisk rapport, som henvender sig til en udenforstående
fagfælle, og som overholder sædvanlige krav til form og
indhold/abstraktionsniveau.
Kursusindhold
Kurset vedrører design af digitale systemer på RTL-niveau, VHDL
sproget, syntese og FPGA teknologi. Kurset fokuserer på at skrive
effektiv RTL-kode og på sammenhægen mellem koden og den hardware
realisering som syntetiseres ud fra den.
Konstruktion af digitale systemer: Beregningskredsløb og
tilstandsmaskiner. Pipelineteknikker. Fra algoritme til kredsløb.
Kvantificering af hastighed (throughput og latenstid).
Designsproget VHDL og simulering af kredsløb beskrevet dette sprog.
Sammenhæng mellem VHDL kode og det tilsvarende syntetiserede
kredsløb.
Introduktion til FPGA teknologi. Hardwaresyntese. Udviklingsmetode
for design af digitale systemer (specifikation, trinvis forfining,
simulering, syntese, implementering og endelig afprøvning).
Tidsmæssig analyse af sekventielle kredsløb herunder kredsløb som
har clock-skew.
Sideløbende med forelæsningerne gennemføres en række øvelser, som
dels giver deltagerne en dybere indsigt i forelæsningsstoffet, og
dels gør deltagerne fortrolige med designsproget VHDL og de dertil
hørende CAD værktøjer til design, simulering og syntese af digitale
systemer. Til slut udføres en mindre selvstændigt designopgave.
Litteraturhenvisninger
Lærebog: Pong Chu, "RTL-Hardware Design Using VHDL - Coding
for Efficiency, Portability, and Scalability," Wiley, 2006.
Bemærkninger
Vejledende placering: tidligt i kandidatuddannelsen, subsidiært med
passende forudsætninger sidst i bachelor- eller
diplomingeniørstudiet.
Sidst opdateret
02. maj, 2024