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 og chip teknologi ved anvendelse af gængse
CAD-værktøjer.
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/Verilog-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/Verilog 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/Verilog-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/Verilog sproget, syntese og FPGA/chip 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/Verilog og simulering af kredsløb beskrevet
dette sprog. Sammenhæng mellem VHDL/Verilog 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/Verilog 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, 2025