Kurset handler om udvikling af systemer hvoraf dele kan realiseres i hardware eller software efter ønske. Kurset understreger en teknisk og begrebsmæssig sammenhæng mellem udvikling af hardware og software, og det giver en indføring i de grundlæggende teknikker i codesign.
Gennemførelse af kurset vil gøre deltagere i stand til at beskrive de væsentligste komponenter i datamaskiners fysiske opbygning og sammenhængen mellem komponenterne. De vil være i stand til at beskrive og bruge udvalgte programmer til hjælp under software udvikling. De vil kunne forstå og bruge fagets terminologi på området i tekniske rapporter. De vil kunne designe mindre digitale systemer og udtale sig rimeligt om disses forventede egenskaber, specielt med hensyn til forventet hastighed, størrelse og energiforbrug. De vil kunne udvikle og dokumentere programmer og programbiblioteker, der bygger bro mellem maskinnære detaljer og programmer skrevet i traditionelle programmeringssprog.
Læringsmål:
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
identificere software og hardware komponenter af et indlejret system
identificere og beskrive funktionaliteten af en eksekveringsplatform, herunder generelle processorer, anvendelses specifikke processorer, dedikeret hardware og operativ systemer og middleware
anvende et software program som en eksekverbar specifikkation
udvikle et program til en indlejret processor
analysere korrekthed og performanceaf et program
designe en hardware arkitektur ved brug af et hardwarebeskrivende sprog (HDL)
analysere korrethed og performance af en hardware arkitektur
foreslå en hardware arkitektur ved at opdele et program eller en eksekverbar specifikation, i henholdvis kontrol og data flow
sammenligne og analysere software og hardware realiseringer fra en eksekverbar specifikation
foreslå og argumentere for en software/hardware arkitektur fra en eksekverbar specifikation
bruge en tool chain for design af indlejrede systemer
skrive en teknisk rapport som dokumenterer resultater og analyser på en klar og præcis form
Kursusindhold:
Opbygningen af generelle processorer, herunder datavejen, kontrolenhed og hukommelses elementer. Design og konstruktion af specialiserede processorer, herunder kombinatorisk og sekventiel logik, tilstandsmaskiner, sammenkobling af komplekse komponenterved hjælp af busser.
Programmering på maskinnært niveau, hjælpemidler til udvikling af programmer, oversættelse og fortolkning, test og verifikation, datamaskiner som lagdelte systemer, operativsystemer på brugerniveau, programmers grænseflade til operativsystemer, simpel multiprogrammering.
Litteratur:
Et kompendium vil være tilgængeligt ved kursus start.