Introdução ao Desenvolvimento de Circuitos Digitais Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 2h/60h



Documentos relacionados
Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

Introdução a Organização e Arquitetura de Computadores

Conceitos de Linguagens de Descrição de Hardware (Verilog, VHDL) Alex Vidigal Bastos

TE 130 PROJETO DE CIRCUITOS INTEGRADOS DIGITAIS

Organização e Arquitetura de Computadores I. de Computadores

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

Organização e Arquitetura de Computadores I. Introdução. Ivan Saraiva Silva Leonardo Casillo

Parte 01. Fundamentos de Arquitetura de Computadores. Prof. Pedro Neto

GUIA DE LABORATÓRIO DE SISTEMAS DIGITAIS PARA O CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO

Fundamentos da Informática. História dos Computadores Prof. Hélder Almeida

Arquitetura e Organização de Computadores

Sistemas Digitais. Módulo 15 Prof. Celso PLD - DISPOSITIVOS LÓGICOS PROGRAMÁVEIS

Dispositivos Lógicos Programáveis

1. NÍVEL CONVENCIONAL DE MÁQUINA

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Você acha que não precisa de um FPGA? Pense melhor!

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Informática I. Aula 4. Aula 4-11/09/2006 1

Capítulo 1 Introdução

Sistemas de Informações Gerenciais

APOO Análise e Projeto Orientado a Objetos. Requisitos

O diagrama ASM contém dois elementos básicos: o bloco de estado e o bloco de decisão.

Desenvolvimento de Modelo ESL para Controlador de Acesso Direto à Memória (DMA)

Introdução à Computação

Ciclo de Seminários Técnicos

Feature-Driven Development

Curso Técnico em Redes

Extração de Requisitos

Introdução à Arquitetura de Computadores IFES Campus Serra

Máquinas Multiníveis

Arquitetura de Computadores. Ivan Saraiva Silva

Verificação Funcional do Controlador USB Host

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

UNIVERSIDADE PRESBITERIANA MACKENZIE Decanato Acadêmico

Hardware de Computadores

Programa do Curso de Pós-Graduação Lato Sensu MBA em Engenharia de Software Orientada a Serviços (SOA)

SIS17-Arquitetura de Computadores

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

15 Computador, projeto e manufatura

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

1. Apresentação Objetivos

ENGENHARIA DE SOFTWARE I

1 Introdução Motivação

Prototipação de Sistemas Digitais. Metodologia de Projetos Cristiano Araújo

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

André Aziz Francielle Santos

Engenharia de Software III

Organização de Computadores 1. Prof. Luiz Gustavo A. Martins

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

Processo de Desenvolvimento de Software

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

CONTROLE DE UM SERVO MOTOR

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP.

Projeto Dirigido: Genius

IDENTIFICAÇÃO DO CANDIDATO (DEIXAR EM BRANCO) RESULTADO Q1 Q2 Q3 Q4 TOTAL INSTRUÇÕES

Engenharia de Software I

Plano de Trabalho Docente Ensino Técnico

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

DESENVOLVIMENTO DE UMA BIBLIOTECA PARA COMUNICAÇÃO COM A CAMADA FÍSICA USB PADRÃO ULPI

Engenharia de Software II: Definindo Projeto I. Prof. Msc Ricardo Britto DIE-UFPI

Fundamentos de Sistemas Computacionais Introdução

Gerações de Computadores. INF005 - Arquitetura de Computadores e Software Básico Aula 3 Flávia Maristela (flavia@flaviamaristela.

1.1. Organização de um Sistema Computacional

FPGA & VHDL. Tutorial

AUTOMAÇÃO DE ESCRITÓRIOS ADE

Interação Homem-Computador: As Interfaces

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

Introdução. Hardware X Software. Corpo Humano Parte Física. Capacidade de utilizar o corpo em atividades especificas explorando seus componentes

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

FUNCIONAMENTO, VANTAGENS E DESVANTAGENS DAS DIVERSAS TECNOLOGIAS

UFG - Instituto de Informática

Introdução à Programação. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

Portas Lógicas Básicas Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 2h/60h

MC-102 Aula 01. Instituto de Computação Unicamp

COMPILADORES E INTERPRETADORES

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

Trabalho de: Alexandre / Paulo / Rui

UNIVERSIDADE FEDERAL DE SANTA CATARINA MODELAGEM DE UMA PLATAFORMA VIRTUAL PARA SISTEMAS EMBUTIDOS BASEADA EM POWERPC

Introdução ao Processamento Paralelo

Testes de Software. Testes de Software. Teste de Validação. Teste de Defeito. Modelo de Entrada e Saída. Modelo de Entrada e Saída

PROFESSOR: CRISTIANO MARIOTTI

ARQUITETURA CORPORATIVA PARA IMPLEMENTAÇÃO DE UMA ESTRATÉGIA DE GOVERNANÇA DE TI SUSTENTÁVEL. Março 2013

Arquitetura de Computadores. Prof. Marcelo Mikosz Gonçalves

Aula 26: Arquiteturas RISC vs. CISC

Introdução a Informática. Prof.: Roberto Franciscatto

MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA

Plano de Trabalho Docente Ensino Técnico

Engenharia de Software. Tema 1. Introdução à Engenharia de Software Profa. Susana M. Iglesias

Transcrição:

Introdução ao Desenvolvimento de Circuitos Digitais Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h

A grande ideia! O processo de concepção de um produto (chip) é muito demorado. Tempo; Esforço; Dinheiro;

Tempo Quanto Custa? Meses e até anos para desenvolver um produto; Esforço Grande grupo de engenheiros dedicado inteiramente em desenvolver a arquitetura, implementar e verificar o produto; Dinheiro Milhões de dólares.

Objetivo Descrever a evolução e a história do desenvolvimento de circuitos integrados (CI); Identificar os principais passos do fluxo de desenvolvimento de CI; Desafios encontrados no desenvolvimento de CI digitais atuais;

Exercícios - instruções Nesse Exercício você deverá: Completar um fluxograma com os passos que devem ser executados num fluxo de projeto; Incluir o fluxo de desenvolvimento; Incluir as entradas e saídas necessárias;?????

Design no fluxo de projeto de um CI Implementação e codificação são sinônimos no fluxo de projeto. A equipe de codificação é responsável por, a partir de uma especificação e arquiteturas definidas, transformar em um código de uma linguagem de descrição de harware que, após sintetizado, se transforma em um circuito que realiza a função desejada, seja programado em um FPGA, ou transformado em um circuito integrado (CI).

Design no fluxo de projeto de um CI O codificador tem que dominar a linguagem de hardware e utilizá-la da melhor forma possível para traduzir o que está na especificação para um código que seja sintetizável e realize todas as funções desejadas.

Agenda História Fluxo Básico Desafios

Evolução das técnicas de projeto - complexidade

Definição de HDL HDL (Hardware Description Language) Definição: Linguagem de software que descreve circuitos eletrônicos, operações, design e estrutura; Exemplo: Em vez de fazer a captura de esquemáticos, é utilizado HDL para descreve-los.

HDL - Gerações SystemVerilog VHDL Verilog ABL ISP, KARL

HDL e CIs - Gerações VLSI, Ultra VLSI SystemVerilog Verilog VHDL CIs de larga escala CIs de média escala

Questões Como eram implementados os chips antes de Verilog? Como o advento das HDLs mudaram os Circuitos integrados?

Antes de Verilog e VHDL Antes das Linguagens de descrição de hardware (até meados dos anos 80): Desenho feito a mão, transistor por transistor, fio por fio; Uma mudança ou erro de projeto implicava em um retrabalho imenso; Simulações SPICE eram necessárias.

Antes de Verilog e VHDL

Após as Linguagens de descrição de hardware Modificada facilmente; A arquitetura não é definida no código, apenas na síntese; Pode ser simulada com simuladores de HDLs; Codifica-se geralmente a função do circuito.

Agenda História Fluxo Básico Desafios

Partição de projeto Para lidar com a alta complexidade, o projeto de CIs é particionado em etapas segundo o fluxo de projeto. Outra técnica utilizada é o projeto hierárquico. O sistema é particionado em unidades, que são divididas em blocos funcionais, que contém células, que são formadas por transistores. Cada nível da hierarquia é chamado de nível de abstração.

Partição de projeto Cada nível mais alto esconde mais detalhes do projeto. Muitas das etapas de projeto são automatizadas e realizadas por ferramentas. Cabe ao projetista conhecer bem o que a ferramenta faz para atingir os requisitos do projeto.

Partição de projeto

Fluxo Básico Em alto nível de abstração, quais tarefas são necessárias para desenvolver um chip, partindo da ideia. Implementação: transformar a concepção da idéia ou especificação para representações de hardware físico e lógico; Verificação: garantir a funcionalidade, Implementação o tempo e a integridade das mudanças do design através de todo o processo de concepção do hardware; Verificação

Implementação Representações em uma implementação de chip: Especificação: textual, gráfica ou representação de software do comportamento e objetivos do design; Microarquitetura: textual, gráfica ou representação de software da implementação inicial da especificação; RTL: descrição de hardware do design a ser implementado;

Implementação Representações em uma implementação de chip: Portas sintetizadas: representação lógica do design depois do mapeamento lógico discreto; Placed/Routed gates: representação física e lógica do design depois de ser desenvolvido as etapas de placed/routed. GDSII: representação física do design antes do tapeout;

Implementação Representações em uma implementação de chip: Designer: arquitetura do chip desenvolvida em nível de blocos pelo grupo de engenheiros; Síntese lógica: processo de tradução do RTL para lógica discreta; Place/Route: processo de implementação física da lógica discreta;

Verificação Várias etapas são necessárias desenvolve a verificação de um chip: Simulação de Sistemas: simulação do comportamento ou nível de sistema; Simulação Lógica: simulação do em nível de RTL; Simulação em nível de portas: simulação de lógica discreta;

Verificação Várias etapas são necessárias desenvolve a verificação de um chip: Verificação Física: checagem de regras de implementação e verificação layout vs. esquemático; Verificação Formal: checagem de equivalência lógica; Timing signoff: Static Timing Analysis;

Fluxo de Implementação e Verificação

Importancia do RTL RTL é a principal etapa do fluxo: Busca fazer uma descrição estrutural da especificação e da microarquitetura; A maioria dos RTLs são criados manualmente por engenheiros de projetos experientes e qualificados; A qualidade do RTL é diretamente proporcional aos custos do projeto;

Perguntas Recapitulando o fluxo de desenvolvimento de um projeto ASIC, como vocês organizariam um grupo de engenheiro para produzir um chip tendo como princípio a ideia? Como a especificação do chip influencia o desenvolvimento de um chip?

Agenda História Fluxo Básico Desafios

Desafios Design: Tamanho e Complexidade: divisão de um projeto com milhões de portas lógicas entre os membros da equipe, módulos e interfaces; Power: requisito de consumo devem ser considerados num projeto de design; Implementação Design Verificação

Desafios Design: Performance: para projetos com alta frequência de clock, devem ser considerados informações da tecnologia utilizada no processo; IP: escolha dos ip corretos devem ser considerados num projeto de chip; Implementação Design Verificação

Desafios Verificação Tamanho e complexidade: design grandes e complexos, requerem sofisticadas estratégias de verificação; Testbenches: engenheiros devem criar ambientes de verificação que consiga abranger todas as funcionalidades do sistema; Implementação Design Verificação

Desafios Verificação Corner cases/casos específicos: engenheiros devem entender o comportamento do sistema completo, incluindo todas as exceções. Essas exceções são os casos específicos; Desing dirigido a testes: engenheiros devem projetar o design considerando a estratégia de teste no final do produto; Implementação Design Verificação

Desafios Implementação Tamanho e complexidade: quanto maior o sistema, mais longo será o tempo de implementação; Consumo: engenheiros devem abordar técnicas específicas com estratégias bem sofisticadas para garantir requisitos de consumo; Implementação Design Verificação

Desafios Implementação Tempo e Requisitos de Projeto: com o avanço das tecnologias de processo, está cada dia mais difícil convergir requisitos de tempo com as regras de projeto; Rendimento (Yield): influencia diretamente no tempo de implementação do projeto; Implementação Design Verificação

Histórico: Sumário Circuitos integrados tem evoluídos durante os últimos 50 anos e mais rápido nos últimos 20 anos; O advento das HDL habilitou a expansão rápida do tamanho e complexidade dos circuitos integrados; Fluxo Básico: O fluxo básico de um projeto de hardware segue alguns passos que envolvem design, implementação e verificação; RTL é muito importante para descrever a especificação de um projeto para uma implementação final;

Desafios: Sumário Existem muitos desafios que devem ser analisados antes e durante um projeto de chip, tanto nas áreas de projeto e verificação, quanto na área de implementação; Em todas as etapas, tamanho e complexidades são os principais desafios de um projeto de circuito integrado atual.