Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno...

29
Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos Projeto Convencional Projeto com HDLs e FPGAs Fluxo de Projeto Moderno Codificação em HDLs 2 Altera DE2 Digilent Nexys 3

Transcript of Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno...

Page 1: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Projeto Moderno de Sistemas

Digitais

Edson Midorikawa

1

Tópicos

• Projeto Convencional

• Projeto com HDLs e FPGAs

• Fluxo de Projeto Moderno

• Codificação em HDLs

2

Altera DE2

Digilent Nexys 3

Page 2: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Tecnologias de Lógica Digital

3

Fon

te: R

apid

Pro

toty

pin

g o

f D

igit

al S

yste

ms

-So

PC

Edit

ion

, 20

07

Projeto

convencionalProjeto

moderno

Projeto

VLSI

Tecnologias de Lógica Digital

4

Fon

te: R

apid

Pro

toty

pin

g o

f D

igit

al S

yste

ms

-So

PC

Edit

ion

, 20

07

Page 3: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Projeto Convencional

• Captura Esquemática

– Uso de blocos padrão para projeto digital.

– Baseado em portas lógicas e outros componentes MSI e SSI.

– Bastante usado atéinício da década de 90.

– Muitos softwares EDA (Electronic Design

Automation) ainda oferecem suporte(ex. Altera Quartus II).

5

Projeto Convencional

• Captura Esquemática

– Crítica: uso de blocos padrão pode ser um “inconveniente”.

– Exemplo: projeto de contador de 5 ou 12 bits• Os blocos padrão para contadores TTL são de 4 ou 8 bits.

• Solução: subutilização ou cascateamento de contadores.

© LEGO

6

Page 4: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Projeto Convencional

7

• Captura Esquemática

– Projeto com componentes SSI e MSI (CIs e placas de circuito impresso)

Fon

te: D

igit

al D

esig

n, 2

00

6, F

ran

k V

ahid

.

Projeto Convencional

• Captura Esquemática e Complexidade

– Problemas para projeto mais complexos.

– Suporte a projeto modular e hierárquico.

8Bus

Módulos

Page 5: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Projeto Convencional

• Captura Esquemática e ASICs

– Uso de captura esquemática em projeto de ASICs(application-specific integrated circuits) foi amplo até a década de 80.

– Com o aumento do tamanho (número de portas lógicas equivalente) e complexidade, a captura esquemática se tornou mais um obstáculo do que uma ferramenta para auxílio ao projeto de CIs.

– Atualmente projetos de ASICs usam HDLs (hardware

description languages - linguagens de descrição de hardware).

9

Fonte: VHDL Coding and Logic Synthesis with Synopsys, 2000.

Projeto com HDLs e FPGAs

• Histórico

• Mudança na forma de projetar circuitos

• Baseado em ferramentas EDA

• FPGA

10

Page 6: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Projeto com HDLs e FPGAs

• Histórico

– Cerca de 1977:• primeiras linguagens de descrição de hardware

• ISP (Instruction Set Processor) - Carnegie Mellon University

• KARL - University of Kaiserslautern, Alemanha.

– Uso inicial na simulação de circuitos

– Outros:• 1983: ABEL

• 1985: Verilog

• 1987: VHDL

– VHDL:• Proposta do DoD para especificação de projetos de hardware.

• Uso para simulação lógica das propostas.

• Posteriormente usado para síntese de circuitos.

11

Projeto com HDLs e FPGAs

• Mudança na forma de projetar circuitos

– Com o aumento na complexidade de circuitos digitais, não é mais possível ter um único projetista com a visão global do projeto.

– Desenvolvimento organizado em grupos de projeto:• Divisão em módulos distintos;

• Grupos de projetistas;

• Uso de ferramentas de projeto;

• Teste e integração de módulos a partir de especificações.

– Uso de linguagens específicas:• HDL (hardware description language): p.ex: VHDL e Verilog;

• SDL (system description language): p.ex: SystemC.

12

Page 7: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Projeto com HDLs e FPGAs

• Baseado em ferramentas EDA

– Suporte de ferramentas de projeto:• Síntese de circuitos (p.ex. biblioteca de módulos, padrões de projeto)

• Simulação (verificação da lógica, restrições de tempo)

– Exemplos:• Altera Quartus II

• Xilinx ISE Design Suite

• ModelSim da Mentor Graphics

– Empresas de EDA (fonte: Wikipedia):• $3.85 billion - Synopsys

• $2.80 billion - Cadence

• $1.49 billion - Mentor Graphics

• $506 million - Magma Design Automation

• ¥13.22 billion - Zuken Inc.

13

Projeto com HDLs e FPGAs

• Algumas considerações:

– Evolução nos custos

14

Fon

te: T

he

Sim

ple

Art

of

SoC

Des

ign

. 20

11

.

Page 8: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Projeto com HDLs e FPGAs• O aumento nos custos de projeto de chips mostram

que a questão predominante se refere a escrita, teste e depuração de código.

15

Fon

te: T

he

Sim

ple

Art

of

SoC

Des

ign

. 20

11

.

Projeto com HDLs e FPGAs

• HARDWARE = SOFTWARE?

16

Fon

te: T

he

Sim

ple

Art

of

SoC

Des

ign

. 20

11

.

Page 9: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Projeto com HDLs e FPGAs

• Revoluções no projeto de hardware

17

Fon

te: T

he

Sim

ple

Art

of

SoC

Des

ign

. 20

11

.• Fluxo de

projeto com FPGAs

18

Fon

te: R

TL H

ard

war

e D

esig

n U

sin

g V

HD

L. P

on

gP.

Ch

u, 2

00

6.

Projeto com HDLs e FPGAs

Page 10: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

• FPGA (Field-Programmable Gate Array)

– Dispositivo programável no campo (após a fabricação)

– Contém alguns milhões de transistores conectados para realizar funções lógicas.

– Especificado usando HDLs, como SoCs, ASIPs e ASICs.

– Primariamente contém apenas componentes digitais.

– Outros tipos:• Mixed signal FPGAs

• Field-programmable

analog array (FPAA)

Projeto com HDLs e FPGAs

19

• FPGA (Field-Programmable Gate Array)

– Desenvolvido em 1985 pela Xilinx.

– Arquitetura interna:• CLB (Combinational Logic Block): elementos lógicos.

• IOB (Input/Output Block): interfaceamento (buffers) com pinos de E/S.

• Switch Matrix (chaves de interconexões): estruturareconfigurável de conexões de blocos lógicos e de E/S.

Projeto com HDLs e FPGAs

20

Page 11: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Projeto com HDLs e FPGAs

• Arquitetura interna de FPGAs

– Consiste de centenas ou milhares de CLBs e Switch Matrices(SMs) em um arranjo regular dentro do circuito integrado.

21

Projeto com HDLs e FPGAs

• Arquitetura interna de CLBs:

– Lógica programável com LUTs (look-up tables).

– Reconfigurabilidadebaseada em SRAMs.

– Exemplo: • função com

duas variáveis�� = ��. �� + ��. ��

• configuração consiste noarmazenamento de bits deconfiguração em memóriaespecífica.

22

Page 12: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Projeto com HDLs e FPGAs

• Arquitetura interna de CLBs:

– Associação de LUTs (funções com mais variáveis).

23

Fon

te: D

igit

al D

esig

n, 2

00

6, F

ran

k V

ahid

.

Projeto com HDLs e FPGAs

• Arquitetura Interna de Switch Matrices:

– Configuração também baseada em SRAM.

24

Fon

te: D

igit

al D

esig

n, 2

00

6, F

ran

k V

ahid

.

Page 13: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Projeto com HDLs e FPGAs

• Arquitetura interna de CLBs:

– CLBs contém também flip-flops para lógica sequencial.

25

Fon

te: D

igit

al D

esig

n, 2

00

6, F

ran

k V

ahid

.

Projeto com HDLs e FPGAs

• Arquitetura interna de CLBs:

– Reconfiguração dos flip-flops para lógica sequencial.

26

Fon

te: D

igit

al D

esig

n, 2

00

6, F

ran

k V

ahid

.

Page 14: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Projeto com HDLs e FPGAs

• Programação de FPGAs

27

Fon

te: D

igit

al D

esig

n, 2

00

6, F

ran

k V

ahid

.

Fluxo de Projeto Moderno

• Desenvolvimento de um projeto de um circuito integrado

• Etapas genéricas

• Baseado em HDLs

28

Page 15: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Fluxo de Projeto Moderno

29

Fon

te:

Ve

rilo

gC

od

ing

for

Log

icSy

nth

esi

s, 2

00

3.

12

3

4

5

67

8

9

Fluxo de Projeto Moderno

• Passo 1: Especificação

30

Fon

te:

Ve

rilo

gC

od

ing

for

Log

icSy

nth

esi

s, 2

00

3.

Page 16: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Fluxo de Projeto Moderno

• Passo 1: Especificação

– Parte mais importante do fluxo de projeto

– Definição das características e funcionalidades

– Desenvolvimento da especificação em VHDL (descrição comportamental)

31

Fluxo de Projeto Moderno

• Passo 2: Codificação RTL

32

Fon

te:

Ve

rilo

gC

od

ing

for

Log

icSy

nth

esi

s, 2

00

3.

Page 17: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Fluxo de Projeto Moderno

• Passo 2: Codificação RTL

– Início da fase de projeto

– Desenvolvimento da arquitetura a partir da especificação

– RTL = register transfer level

– Descrição do circuito como uma combinação de blocos combinatórios e registradores

– Implementação do projeto com a codificação em código RTL sintetizável

33

Fluxo de Projeto Moderno

• Passo 3: Testbench e Simulação

34

Fon

te:

Ve

rilo

gC

od

ing

for

Log

icSy

nth

esi

s, 2

00

3.

Page 18: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Fluxo de Projeto Moderno

• Passo 3: Testbench e Simulação

– Simulação do código RTL para verificação (funcional)

– Testbench = ambiente para simulação, incorporando a geração de estímulos e verificação dos resultados (formas de onda ou asserções)

– Se for detectado um erro no “código” VHDL, o projeto deve ser debugado e resimulado.

35

Fluxo de Projeto Moderno

• Passo 4: Síntese

36

Fon

te:

Ve

rilo

gC

od

ing

for

Log

icSy

nth

esi

s, 2

00

3.

Page 19: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Fluxo de Projeto Moderno

• Passo 4: Síntese

– Síntese do projeto = conversão do código RTL em portas lógicas

– A lógica sintetizada deve ter as mesmas funcionalidades lógicas do código RTL

– Entradas:• Código RTL

• Definição da tecnologia (p.ex. standard cells)

• Restrições de projeto (p.ex. timing, requisitos de carga)

– Otimizações possíveis:• Área, consumo de energia, velocidade

37

Fluxo de Projeto Moderno

• Passo 5: Análise Temporal Pré-layout

38

Fon

te:

Ve

rilo

gC

od

ing

for

Log

icSy

nth

esi

s, 2

00

3.

Page 20: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Fluxo de Projeto Moderno

• Passo 5: Análise Temporal Pré-layout

– Análise estática de tempos do projeto sintetizado

– Pré-layout = sem informação da geometria e alocação no chip

– Exemplo de análise:• Violação de tempos de setup (preparação) e hold (manutenção)

• Correção: inserção de blocos de atraso

39

Fluxo de Projeto Moderno

• Passo 6: APR (auto-place-route)

40

Fon

te:

Ve

rilo

gC

od

ing

for

Log

icSy

nth

esi

s, 2

00

3.

Page 21: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Fluxo de Projeto Moderno

• Passo 6: APR (auto-place-route)

– Portas lógicas do projeto sintetizado são alocadas e roteadas no circuito integrado.

– Caminho crítico (critical path): devem ser consideradas como de alta prioridade no processo de alocação e roteamento.

– Inclui também a síntese da árvore de clock. Deve minimizar problemas de clock skew.

41

Fluxo de Projeto Moderno

• Passo 7: Back annotation

42

Fon

te:

Ve

rilo

gC

od

ing

for

Log

icSy

nth

esi

s, 2

00

3.

Page 22: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Fluxo de Projeto Moderno

• Passo 7: Back annotation

– Extração de características elétricas (RC parasitics) a partir do layout do circuito integrado.

– O atraso de propagação de uma linha de interconexão pode ser calculado a partir destas características elétricas.

• Linhas longas = atrasos grandes de propagação

– Etapa importante que antecede a análise de tempos final do circuito integrado (layout final).

• Análises das etapas anteriores eram baseadas em estimativas não precisas de atrasos.

43

Fluxo de Projeto Moderno

• Passo 8: Análise Temporal Pós-layout

44

Fon

te:

Ve

rilo

gC

od

ing

for

Log

icSy

nth

esi

s, 2

00

3.

Page 23: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Fluxo de Projeto Moderno

• Passo 8: Análise Temporal Pós-layout

– Verificação de violações de tempo reais com a inclusão de informação do layout físico do circuito integrado.

– Informação de atrasos da rede de interconexão provenientes da etapa de back annotation é usada nesta análise.

– Se houver alguma violação de requisitos, deve-se redefinir a etapa de alocação e roteamento dos componentes (repetição dos passos até que os requisitos sejam alcançados).

45

Fluxo de Projeto Moderno

• Passo 9: Verificação Lógica

46

Fon

te:

Ve

rilo

gC

od

ing

for

Log

icSy

nth

esi

s, 2

00

3.

Page 24: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Fluxo de Projeto Moderno

• Passo 9: Verificação Lógica

– Última verificação do projeto para analisar o correto funcionamento do circuito

– Usa os mesmos arquivos de teste do passo 3 (testbenches).

– Resimulação considerando os tempos de atraso reais.

47

Codificação em HDLs

• Estilos de codificação em HDL:

– Comportamental

– Fluxo de dados

– Estrutural

– RTL

48

Page 25: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Codificação em HDLs

49

Fon

te:

Ve

rilo

gC

od

ing

for

Log

icSy

nth

esi

s, 2

00

3.

50

Page 26: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Codificação em HDLs

• Descrição Comportamental

– Visão “caixa preta” do sistema em desenvolvimento

– Uso no teste no nível de sistema

– “algoritmo” interno → comandos sequenciais

51

52

Page 27: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Codificação em HDLs

• Descrição em Fluxo de Dados

– Descrição de como as entradas e saídas estão conectadas usando componentes primitivos (p.ex. portas),ou seja, como dos sinais (dados) fluem pelo circuito.

– Uso de comandos concorrentes.

– Exemplo: latch SR

53

entity latch isport (s,r : in bit;

q,nq : out bit);end latch;

architecture dataflow of latch isbeginq <= r nor nq;nq <= s nor q;

end dataflow;

Codificação em HDLs

• Descrição Estrutural

– Estrutural = blocos conectados

– Definição dos componentes que compõem o sistema

– Detalhamento das conexões entre os componentes

– Exemplo: latch SR

54

architecture structure of latch iscomponent nor_gateport (a,b: in bit;

c: out bit);end component;

beginn1: nor_gateport map (r,nq,q);

n2: nor_gateport map (s,q,nq);

end structure;

Page 28: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Codificação em HDLs

• Descrição RTL (Register Transfer Level)

– Usado na síntese de circuitos

– Subconjunto da linguagem VHDLIEEE Std 1076.6 - IEEE Standard for VHDL Register Transfer

Level (RTL) Synthesis

55

Próximo Módulo

• Módulo II: Projeto de Circuitos Digitais com VHDL

– Alguns elementos de linguagem

– Descrição de circuitos combinatórios

– Introdução aos circuitos sequenciais (flip-flops e registradores)

– Pequenos exemplos

– Hands-on com Altera Quartus II• Criação de projetos

• Compilação

• Simulação

56

Page 29: Projeto Moderno de Sistemas Digitais - pcs.usp.brlabdig/material/1.projeto.pdf · Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos • Projeto Convencional • Projeto

Próximo Módulo

• Módulo II: Projeto de Circuitos Digitais com VHDL

– Preparação:

Leitura da documentação da Altera

1. “Quartus II Introduction using VHDL Designs”ftp://ftp.altera.com/up/pub/Altera_Material/9.1/Tutorials/VHDL/Quartus_II_Introduction.pdf

2. “Quartus II Simulation using VHDL Designs”ftp://ftp.altera.com/up/pub/Altera_Material/9.1/Tutorials/VHDL/Quartus_II_Simulation.pdf

57