Buscar

1 projeto digital

Prévia do material em texto

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
Tecnologias de Lógica Digital
3
Fo
n
te
: R
ap
id
 P
ro
to
ty
p
in
g 
o
f 
D
ig
it
al
 S
ys
te
m
s 
-
So
P
C
Ed
it
io
n
, 2
0
0
7
Projeto
convencional
Projeto
moderno
Projeto
VLSI
Tecnologias de Lógica Digital
4
Fo
n
te
: R
ap
id
 P
ro
to
ty
p
in
g 
o
f 
D
ig
it
al
 S
ys
te
m
s 
-
So
P
C
Ed
it
io
n
, 2
0
0
7
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
Projeto Convencional
7
• Captura Esquemática
– Projeto com componentes SSI e MSI 
(CIs e placas de circuito impresso)
Fo
n
te
: D
ig
it
al
 D
es
ig
n
, 2
0
0
6
, F
ra
n
k 
V
ah
id
.
Projeto Convencional
• Captura Esquemática e Complexidade
– Problemas para projeto mais complexos.
– Suporte a projeto modular e hierárquico.
8
Bus
Módulos
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
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
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
Fo
n
te
: T
h
e 
Si
m
p
le
 A
rt
 o
f 
So
C
D
es
ig
n
. 2
0
1
1
.
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
Fo
n
te
: T
h
e 
Si
m
p
le
 A
rt
 o
f 
So
C
D
es
ig
n
. 2
0
1
1
.
Projeto com HDLs e FPGAs
• HARDWARE = SOFTWARE?
16
Fo
n
te
: T
h
e 
Si
m
p
le
 A
rt
 o
f 
So
C
D
es
ig
n
. 2
0
1
1
.
Projeto com HDLs e FPGAs
• Revoluções no projeto de hardware
17
Fo
n
te
: T
h
e 
Si
m
p
le
 A
rt
 o
f 
So
C
D
es
ig
n
. 2
0
1
1
.
• Fluxo de 
projeto 
com FPGAs
18
Fo
n
te
: R
TL
 H
ar
d
w
ar
e 
D
es
ig
n
 U
si
n
g 
V
H
D
L.
 P
o
n
g
P.
 C
h
u
, 2
0
0
6
.
Projeto com HDLs e FPGAs
• 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): estrutura
reconfigurável de conexões 
de blocos lógicos 
e de E/S.
Projeto com HDLs e FPGAs
20
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).
– Reconfigurabilidade
baseada em SRAMs.
– Exemplo: 
• função com
duas variáveis
�� = ��. �� + ��. ��
• configuração consiste no
armazenamento de bits de
configuração em memória
específica.
22
Projeto com HDLs e FPGAs
• Arquitetura interna de CLBs:
– Associação de LUTs (funções com mais variáveis).
23
Fo
n
te
: D
ig
it
al
 D
es
ig
n
, 2
0
0
6
, F
ra
n
k 
V
ah
id
.
Projeto com HDLs e FPGAs
• Arquitetura Interna de Switch Matrices:
– Configuração também baseada em SRAM.
24
Fo
n
te
: D
ig
it
al
 D
es
ig
n
, 2
0
0
6
, F
ra
n
k 
V
ah
id
.
Projeto com HDLs e FPGAs
• Arquitetura interna de CLBs:
– CLBs contém também flip-flops para lógica sequencial.
25
Fo
n
te
: D
ig
it
al
 D
es
ig
n
, 2
0
0
6
, F
ra
n
k 
V
ah
id
.
Projeto com HDLs e FPGAs
• Arquitetura interna de CLBs:
– Reconfiguração dos flip-flops para lógica sequencial.
26
Fo
n
te
: D
ig
it
al
 D
es
ig
n
, 2
0
0
6
, F
ra
n
k 
V
ah
id
.
Projeto com HDLs e FPGAs
• Programação de FPGAs
27
Fo
n
te
: D
ig
it
al
 D
es
ig
n
, 2
0
0
6
, F
ra
n
k 
V
ah
id
.
Fluxo de Projeto Moderno
• Desenvolvimento de um projeto de um circuito 
integrado
• Etapas genéricas
• Baseado em HDLs
28
Fluxo de Projeto Moderno
29
Fo
n
te
: 
V
e
ri
lo
g
C
o
d
in
g
fo
r 
Lo
g
ic
Sy
n
th
e
si
s,
 2
0
0
3
.
12
3
4
5
6
7
8
9Fluxo de Projeto Moderno
• Passo 1: Especificação
30
Fo
n
te
: 
V
e
ri
lo
g
C
o
d
in
g
fo
r 
Lo
g
ic
Sy
n
th
e
si
s,
 2
0
0
3
.
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
Fo
n
te
: 
V
e
ri
lo
g
C
o
d
in
g
fo
r 
Lo
g
ic
Sy
n
th
e
si
s,
 2
0
0
3
.
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
Fo
n
te
: 
V
e
ri
lo
g
C
o
d
in
g
fo
r 
Lo
g
ic
Sy
n
th
e
si
s,
 2
0
0
3
.
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
Fo
n
te
: 
V
e
ri
lo
g
C
o
d
in
g
fo
r 
Lo
g
ic
Sy
n
th
e
si
s,
 2
0
0
3
.
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
Fo
n
te
: 
V
e
ri
lo
g
C
o
d
in
g
fo
r 
Lo
g
ic
Sy
n
th
e
si
s,
 2
0
0
3
.
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
Fo
n
te
: 
V
e
ri
lo
g
C
o
d
in
g
fo
r 
Lo
g
ic
Sy
n
th
e
si
s,
 2
0
0
3
.
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
Fo
n
te
: 
V
e
ri
lo
g
C
o
d
in
g
fo
r 
Lo
g
ic
Sy
n
th
e
si
s,
 2
0
0
3
.
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
Fo
n
te
: 
V
e
ri
lo
g
C
o
d
in
g
fo
r 
Lo
g
ic
Sy
n
th
e
si
s,
 2
0
0
3
.
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
Fo
n
te
: 
V
e
ri
lo
g
C
o
d
in
g
fo
r 
Lo
g
ic
Sy
n
th
e
si
s,
 2
0
0
3
.
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
Codificação em HDLs
49
Fo
n
te
: 
V
e
ri
lo
g
C
o
d
in
g
fo
r 
Lo
g
ic
Sy
n
th
e
si
s,
 2
0
0
3
.
50
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
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 is
port (s,r : in bit;
q,nq : out bit);
end latch;
architecture dataflow of latch is
begin
q <= 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 is
component nor_gate
port (a,b: in bit;
c: out bit);
end component;
begin
n1: nor_gate
port map (r,nq,q);
n2: nor_gate
port map (s,q,nq);
end structure;
Codificação em HDLs
• Descrição RTL (Register Transfer Level)
– Usado na síntese de circuitos
– Subconjunto da linguagem VHDL
IEEE 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
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

Continue navegando