Activitat Acte avaluatiu
Presentació de l'assignatura. Introducció a la gestió de projectes. Introducció al disseny basat en sistemes encastats.
Presentació de l'assignatura. Introducció a la gestió de projectes. Introducció al dispositius programables (FPGA) i als llenguatges de descripció de hardware.
Conceptes teòrics sobre la gestió de projectes. Definició del projecte. Etapes i tasques de desenvolupament.
Conceptes teòrics sobre la gestió de projectes i sobre el funcionament dels dispositius programables (FPGA)
Especificacions i objectius del projecte. Obtenir unes especificacions dels sistema a partir de les alternatives donades pel professor. Definició dels blocs de tasques de desenvolupament i distribució en els diferents grups de laboratori. Diagrama de Gannt del projecte. Diagrama de blocs del sistema complint amb les especificacions. Generar un primer esquema del Hardware de la placa base del sistema.
Aprendre conceptes de VHDL. Pautes del disseny de blocs tipus sumadors, comptadors, registres.
Discussió de les diferents alternatives. Consensuar una proposta d'objectius i prestacions. Estudiar els dispositius, interfícies i perifèrics externs que necessita el sistema per complir les especificacions. Identificació dels diferents blocs de tasques a realitzar. Distribuir els diferents blocs entre els grups de laboratori. Aprendre a utilitzar la captura d'esquemes de l'eina CAD de disseny de circuits impresos.
Recordar conceptes bàsics VHDL. Fer un exemple pas a pas i complert amb diagrama de blocs (Schematic) i després amb VHDL implementar un circuit fent servir els switch i els leds de la placa. Aprendre a fer servir el simulador Qsim. Explicar conceptes nous d'VHDL i pautes del disseny de blocs tipus sumadors, comptadors, registres. Explicar funcionament del rellotge de la placa FPGA i com fer-ne múltiples amb VHDL. Treballar en la connexió i jerarquia de components en VHDL.
Generar unes especificacions tècniques del sistema. Generar diagrama de Gannt del projecte. Generar l'esquema de blocs del sistema a partir de les especificacions del projecte. Generar un primer esquema hard de la placa base del sistema a partir del diagrama de blocs, utilitzant una eina de captura d'esquemes compatible amb eines CAD de disseny de circuits impresos.
Dissenyar blocs senzills (multiplexor Mx4-1). Aprendre a utilitzar els interruptors, polsadors i visors 7-segments de la placa. Fer un traductor d'alguns caràcters alfabètics codificats en 4 bits, emmagatzemats en un registre, al alfabet Morse i mostrar el resultat pels leds de la placa.
Obtenció de la placa base prototip del sistema. Implementació del software del sistema. Obtenir el firmware de control dels diferents dispositius externs (perifèrics, interfícies ,sensors i actuadors). Posada en funcionament de la placa base i dels dispositius externs.
Primer implementar un processador unicicle senzill tipus RISC. Aquest processador estarà format nomes per dos blocs (Banc de Registres i ALU) i una petita lògica de control. Aquest processador serà la base per més endavant desenvolupar-ne un més complert. Seguidament implementar un processador multicicle. Recordar el concepte de fases d'execució. A més a més el processador gestionarà una memòria RAM externa per a les dades i una memòria Flash amb el programa a executar.
Construcció d'un placa base prototip que inclou una CPU amb la connexió dels diferents dispositius extern (perifèrics, interfícies, sensors i actuadors) atenent a les metodologies descrites pel professor. Disposició dels elements necessaris per garantir l'alimentació de la placa base i de tots els dispositius externs. Posada en funcionament del prototip base i dels diferents dispositius externs. Depuració i perfeccionament del codi de funcionament de la placa base, així com del codi dels diferents dispositius externs per separat.
Primer aprendre l'arquitectura del processador bàsic, el seu repertori d'instruccions i el seu funcionament. Aprendre a fer un banc de registres i una ALU d'exemple en VHDL. Aprendre dissenyar el sistema d'arrancada per al processador. Aprendre a dissenyar una memòria (ROM/RAM) en una FPGA. Dissenyar el Banc de Registres del processador i l'ALU. Comprovar el seu funcionament amb un simulador. Dissenyar la lògica de control del processador. Fer una memòria ROM a la FPGA i carregar-hi instruccions per a ser executades. Executar el primer programa en el computador. Seguidament, aprendre el processador multicicle per poder fer accessos a memòria. Aprendre el sistema de memòria del processador (concepte bàsic). Recordar el concepte de fases d'execució (fetch, decode, execució, accés a memòria, escriptura dades). Aprendre a implementar un graf d'estats amb VHDL. Aprendre a generar diversos senyals de rellotge i a fer un circuit d'inicialització. Fer una ALU complerta per al processador. Aprendre a crear i interpretar correctament els diagrames de temps dels senyals d'un circuit. Aprendre a dissenyar un controlador de memòria per a l'ús de memòries externes a la FPGA. Crear diferents senyals de rellotge per al funcionament dels diferents components del computador. Implementar el graf d'estats de control del processador mitjançant VHDL. Modificar l'ALU del processador per a que sigui complerta. Modificar la UC per a suportar les noves instruccions. Afegir noves instruccions de salt i implementar el nou fetch. Afegir dispositius d'entrada/sortida.
Generació del codi del sistema base i dels dispositius externs en llenguatge C i amb l'entorn de desenvolupament proposat, atenent al disseny del software i a les recomanacions proposades pel professor.
Desenvolupar les tasques començades al laboratori.
Integració hardware de tots els dispositius externs a la placa base. Integració del firmware de control dels dispositius externs a la placa base.
Connectar dispositius d'entrada/sortida més complexos. Implementar sistemes i estructures avançades en un processador. Afegir suport a interrupcions i excepcions. Afegir un suport bàsic per part del processador per als sistemes operatius actuals (gestió de memòria virtual i execució d'instruccions de forma privilegiada). Inicialització del sistema operatiu. Anàlisi de recursos.
Connexió de tots els dispositius externs a la placa base. Integració del codi de control dels dispositius externs amb el codi de la placa base. Proves i depuració dels codis.
Connectar controladors de pantalla VGA y teclat PS/2 al processador dissenyat per crear un SoC (System on Chip). Afegir el sistema de gestió d'interrupcions i excepcions al processador i generar jocs de proves que funcionin per interrupcions. Definir el mode sistema del processador i afegir el sistema de crides a sistema. Definir i afegir una TLB al processador i les instruccions per a gestionar-la. Implementació d'un sistema d'arrancada per a un sistema operatiu. Dissenyar un mini sistema operatiu que funcioni sobre la placa amb el processador implementat. Aquest sistema operatiu gestionarà el mecanismes d'entrada/sortida al sistema i gestionarà la memòria basada en paginació i el control de processos. Analitzar els recursos utilitzats. Fer anàlisis del rendiment, cost. Possibles optimitzacions.
Adaptació dels codis, sistema base i control de dispositius externs per la integració en un únic sistema.
Desenvolupar les tasques començades al laboratori.
Verificar que les prestacions i el funcionament del sistema integrat compleixen les especificacions i objectius marcats inicialment. Correcció i ajust de les desviacions.
Proposar e implementar millores en les capacitats del processadors, en l'arquitectura del processador, en els dispositius d'entrada/sortida o en el sistema operatiu del projecte realitzat.
Correcció i ajust de les desviacions detectades en els objectius, prestacions o funcionament del sistema integrat.
A partir d'un disseny del processador que s'ha implementat afegir-li funcionalitats noves o millorar les ja existents a nivell d'arquitectura o sistema operatiu.
Proves en el entorn de treball del sistema. Detecció de les desviacions en els objectius, prestacions o funcionament del sistema respecte les marcades en les especificacions inicials. Valoració dels resultats obtinguts. Obtenció d'una memòria del projecte.
Desenvolupar les tasques començades al laboratori.
© Facultat d'Informàtica de Barcelona - Universitat Politècnica de Catalunya - Avís legal sobre aquest web - Configuració de privadesa