| Ementa: |
1. Conceitos básicos de projeto com dispositivos lógicos programáveis (nivelamento): Níveis de abstração de projeto. Domínios de representação, Fluxo de projeto, Linguagens de descrição de hardware, Arquitetura interna de um FPGA, Plataformas comerciais e tecnologias, Ferramentas EDA, Ferramentas de simulação comportamental e funcional. 2. Projeto lógico combinacional em FPGAs (nivelamento): Descrição hardware de funções booleanas, Descrição hardware de processos combinacionais, Descrição hardware de decodificadores e muxes, Simulação de circuitos combinacionais. 3. Projeto lógico sequencial em FPGAs (nivelamento): Descrição hardware de flip-flops, latches e registradores, Descrição hardware de máquinas de estados finitos, Descrição hardware de somadores, comparadores, shifters, contadores, multiplicadores, Simulação de circuitos sequenciais. 4. Projeto RTL (nivelamento): Máquinas de estado finito de alto nível, Definindo bloco operacional, Exemplos práticos, Uso de blocos de Propriedade Intelectual (IP-Cores): Aritmética de ponto fixo vs aritmética de ponto flutuante, Instanciação de IPs, Encapsulamento e configuração de IPs, Exemplos práticos com IP-cores de ponto flutuante. 5. Simulação automática: Criação de testbenches para leitura e escrita de dados, Simulação de timing, Analisador lógico integrado (ILA) para debug em hardware, Análise de desempenho de arquiteturas de hardware: Estimação de latência e throughput. Estimação do consumo de recursos de hardware. Otimização e trafeoff, Análise de timming. Otimização e trafeoff, Estimação do consumo de potência. Otimização e trafeoff, 6. Comunicação intrachip: Arquitetura do MicroBlaze, Arquitetura da plataforma Zynq, Barramentos AXI Lite, AXI Stream, AXI DMA. 7. Co-projeto Hardware-Software: Code Profiling usando GPROF, Particionamento HW/SW, Encapsulamento de IP-cores usando barramentos AXI, Aceleradores de hardware no ARM e MicroBlaze, Integração HW/SW com MicroBlaze, Integração HW/SW com ARM. |