| código no paco | 43309 |
| área científica | informática / arquitetura dos sistemas computacionais |
| créditos | 6 |
| escolaridade (t|tp|p) | 2|0|2 |
| responsável | valeri skliarov |
|
| objectivo(s) |
Os objectivos da disciplina Computação Reconfigurável consistem em introduzir a tecnologia de desenvolvimento de sistemas digitais reprogramáveis estática e dinamicamente para estender capacidades de computadores de uso geral, construir sistemas digitais de uso específico (orientados aos problemas), aumentar o desempenho de software (do ponto de vista do tempo de execução) e perceber como projectar system-on-chip e network-on-chip. |
|
| conteúdo(s) |
- Aulas teóricas: • Introdução aos sistemas reconfiguráveis. Computação reconfigurável. História e futuro de sistemas reconfiguráveis. Vantagens da computação reconfigurável. Reconfiguração dinâmica. Aceleração de solução de problemas para computadores de uso geral com a ajuda coprocessadores reconfiguráveis. • Sistemas reprogramáveis estática e dinamicamente. Introdução aos sistemas virtuais. Métodos e ferramentas utilizados para desenvolvimento de sistemas digitais reconfiguráveis. CPLDs (Complex Programmable Logic Devices) and FPGAs (Field Programmable Gate Arrays). Atquitecturas básicas. Prototipagem. • Sistemas de projecto assistido por computador (CAD Systems – Computer-Aided Design Systems) orientados a FPGAs. • Famílias de FPGAs da Xilinx. Xilinx ISE (Integrated Software Environment). • Linguagens de especificação ao nível de hardware. Modelação e síntese de hardware. VHDL – Very High Speed Integrated Circuit Hardware Description Language. Conhecimentos gerais sobre as linguagens de especificação ao nível de sistema tais como Handel-C e SystemC. • Interacção de FPGAs com dispositivos periféricos tais como LEDs, interruptores, botões, LCDs – Liquid Cristal Displays, monitor VGA, teclado, etc. • Utilização de métodos seguintes: modularidade e hierarquia; desenvolvimento de sistemas com base em abordagem top-down, bottom-up, e numa mistura destas; etc. Modelação e simulação de sistemas digitais. Modelação de sistemas digitais em linguagens de alto nível. • Métodos computacionais para sistemas reconfiguráveis. Utilização de templates. Tecnologias de reconfiguração. Unidades de controlo reprogramáveis. Grafos de algoritmos. Máquinas de estados finitos (MEF) reprogramáveis. MEF hierárquicas reprogramáveis. MEF paralelas. • Hierarquia, modularidade e recursividade. Implementação de algoritmos recursivos e iterativos. Resolução de problemas computacionais complexos. Comparação de algoritmos recursivos e iterativos para computação reconfigurável. • Comunicação entre computadores de uso geral e dispositivos reconfiguráveis. Partição de recursos computacionais entre processadores de uso geral e coprocessadores reconfiguráveis. • Aplicações práticas desenvolvidas utilizando métodos e ferramentas considerados na disciplina. Exemplos: aceleração de algoritmos computacionais utilizando coprocessadores reconfigurava, reconfiguração virtual para construir sistemas adaptáveis, minimização de recursos através da reconfiguração, etc. • Sistemas reconfiguráveis virtuais. Sistemas reconfiguráveis embutidos. - Aulas práticas: • Introdução as placas de prototipagem com FPGAs e sistemas de projecto assistido por computador. Xilinx ISE. • Projectos triviais. Interacção com LEDs, interruptores e botões. • Interacção com LCD. • Interacção com monitor VGA e teclado. • Interacção com memória (exemplos: SRAM, flash, etc.). • Sistemas de controlo baseados em FPGAs. • Sistemas embutidos baseados em FPGAs. • Implementação de algoritmos recursivos. |
|
| avaliação |
| Avaliação inclui um conjunto de testes sequenciais que permitem cobrir partes diferentes da disciplina. Há quatro componentes básicos de avaliação seguintes: três testes intermédios (mini exames) e avaliação do desempenho nas aulas práticas. |
|
| requisito(s) |
| Pré-requisitos: Matemática discreta; Sistemas Electrónicos; Sistemas Digitais; Programação I, II, III; Arquitectura de computadores; Sistemas de operação. As competências incluem: a) desenvolvimento de aceleradores de software para sistemas computacionais de uso geral; b) experiência no desenvolvimento de sistemas digitais utilizando linguagens de descrição de hardware, tais como a linguagem VHDL; c) desenvolvimento de sistemas computacionais reconfiguráveis utilizando sistemas CAD (Computer Aided Design); d) projecto de sistemas reconfiguráveis cujo funcionamento pode ser alterado estática e dinamicamente; e) conhecimentos gerais do paradigma de programação para projectar hardware com linguagens de especificação ao nível do sistema. |
|
| metodologia |
Os pontos principais são: 1) utilização de tutorials para melhorar aprendizagem; 2) utilização da Internet como um ponto central para a apresentação de todos os detalhes para aulas práticas e teóricas; 3) possibilidade de avaliação através de projectos (avaliação contínua); 4) relação directa entre aulas e aplicações práticas incluindo modelação e implementação física de todos os projectos principais. Disciplina inclui três componentes principais: 1) aulas teóricas; 2) aulas práticas; e 3) avaliação.
|
|
| bibliografia recomendada |
1) Página da disciplina: http://www.ieeta.pt/~skl e http://www.ieeta.pt/~iouliia/ 2) Publicações indicadas em http://www.ieeta.pt/~skl/Research/Papers/Tut.ppt 3) K. Parnell, N. Mehta, Programmable Logic Design Quick Start Hand Book (2006): http://www.xilinx.com/publications/products/cpld/logic_handbook.pdf 4) P.J. Ashenden, The Designer’s Guide to VHDL, Morgan Kaufmann Publishers, Inc., 1996-2006. 5) Informação sobre FPGAs e placas de prototipagem: http://www.xilinx.com. 6) V. Sklyarov, I. Skliarova, "Reconfigurable Systems and their Influence on Mobile and Multimedia Applications", tutorial - http://www.ieeta.pt/~skl/Research/Papers/Tut.ppt 7) V. Sklyarov, I. Skliarova, "Teaching Reconfigurable Systems: Methods, Tools, Tutorials and Projects", IEEE Transactions on Education, vol. 48, no. 2, May 2005, pp. 290-300. 8) Digital Design (VHDL): An Embedded Systems Approach Using VHDL. P.J. Ashenden Morgan Kaufmann Publishers, Inc. 2007 9) FPGA Prototyping Using VHDL Examples: Xilinx Spartan-3 Version. Pong P. Chu 2008 |
|
| competência(s) |
Pré-requisitos: Matemática discreta; Sistemas Electrónicos; Sistemas Digitais; Programação I, II, III; Arquitectura de computadores; Sistemas de operação. As competências incluem: a) desenvolvimento de aceleradores de software para sistemas computacionais de uso geral; b) experiência no desenvolvimento de sistemas digitais utilizando linguagens de descrição de hardware, tais como a linguagem VHDL; c) desenvolvimento de sistemas computacionais reconfiguráveis utilizando sistemas CAD (Computer Aided Design); d) projecto de sistemas reconfiguráveis cujo funcionamento pode ser alterado estática e dinamicamente; e) conhecimentos gerais do paradigma de programação para projectar hardware com linguagens de especificação ao nível do sistema.
|