Introdução ao System Generator - DECOM

Transcrição

Introdução ao System Generator - DECOM
ComL@b – Laboratório de Comunicações Digitais
www.decom.fee.unicamp.br/~cardoso
Aula 6: Introdução ao System
Generator
Fabbryccio Cardoso
Marcelo Fernandes
Dalton S. Arantes
DECOM-FEEC-UNICAMP
ComL@b – Laboratório de Comunicações Digitais
Casos de Uso
„
Desenvolvimento e análise de algoritmos visando
hardware FPGA.
…
visualização, geração de estímulos, simulação com
blocos do Simulink, estimação de recursos de HW, cosimulação.
„
Implementação de um projeto completo.
„
Implementação de componentes para projetos
maiores.
ComL@b – Laboratório de Comunicações Digitais
Vantagens
„
Esconde vários detalhes de HW para facilitar a
abordagem de processamento digital de sinais.
„
Possibilita uma visão sistêmica e conceitual do
projeto com vários níveis de detalhamento.
„
Possibilita a geração de código HDL eficiente a
partir de um modelo sistêmico.
„
Aproveita todos os recursos de visualização,
análise e de simulação disponíveis no Simulink.
„
Possibilita interagir a simulação em software com a
execução em HW – hardware no loop de simulação.
ComL@b – Laboratório de Comunicações Digitais
Limitações
„
Não possibilita o gerenciamento e a distribuição de
sinais de clock.
„
Não possui pinos bidirecionais.
„
Conseqüência: limitações na implementação de
interfaces sofisticadas que envolvam restrições de
tempo muito precisas.
„
Solução: utilizar o SysGen para desenvolver
componentes para serem integrados externamente
(ISE) em VHDL.
ComL@b – Laboratório de Comunicações Digitais
Blocos Básicos
Possibilita gerar código VHDL, netlists, componentes e binários.
Possibilita simular os blocos do SysGen no Simulink.
Possibilita gerar binário para co-simulação.
Possibilita co-simulação com HW e ModelSim.
Faz o mapeamento do tempo base de amostragem para o clock.
System
Generator
DSP
original
double
dbl fpt
Fix_8_8
Gateway In
fpt
dbl
double
saida
Gateway Out
Sine Wave
|u|
Abs
erro
Time
Scope
Definem as fronteiras do projeto.
Entre estes blocos pode-se utilizar apenas blocos Xilinx.
São mapeados em HW para pinos de entrada e de saída.
ComL@b – Laboratório de Comunicações Digitais
System Generator Block
Pode ser:
• HDL Netlist (projeto ISE)
• NGC Netlist (componente)
• Bitstream (binário p/ prog)
• EDK Export Tool (EDK)
• HW Cosimulation
Tipo de compilação
Família do dispositivo
Síntese para VHDL ou Verilog:
• XST, Leonardo Spectrum,
• Synplify, Synplify Pro
Mapeado para o clock usado na
FPGA – este mapeamento irá
definir restrições de tempo para
síntese e implementação.
Período de amostragem base do modelo.
ComL@b – Laboratório de Comunicações Digitais
É boa prática trabalhar
com Sample Time
normalizado:
Sample Time = 1 para o
menor sample time do
modelo.
Motivo: menor sample
time é mapeado para o
clock do sistema.
Implementações de
Arredondar e Saturar
consomem área.
Localização dos pinos:
Para barramento de 8 bits é
necessário especificar 8
pinos
Gateway In
Fix ou UFix
Truncar ou Arredondar
Wrap, Saturar ou Flag as Error.
ComL@b – Laboratório de Comunicações Digitais
Ajuste automático do tipo de sinal
1
x
Fix_8_5
a
xladdsub
a+b
b
Fix_8_5
z-2
Delay
AddSub
a
(ab)
xlmult
-3
bz
Mult
k =1
Constant
Fix_8_4
Fix_16_9
Fix_17_9
1
y
ComL@b – Laboratório de Comunicações Digitais
Exemplo Básico
System
Generator
dbl fpt
Sine Wave
original
Fix_8_5
DSP
Gateway In
fpt
dbl
saida
Gateway Out
|u|
Abs
histogram
Fix_8_5
[ -4, 3.9688 ]
passo = 0.03125
erro
Time
Scope
ComL@b – Laboratório de Comunicações Digitais
Exemplo Básico: Resultado Fix_8_5
Fix 8 5
0.1
Frequencia
0.09
0.08
0.07
0.06
0.05
0.04
0.03
0.02
0.01
0
-4
-3
-2
-1
0
Amostra
1
2
3
4
ComL@b – Laboratório de Comunicações Digitais
Exemplo Básico: Resultado Fix_8_6
Fix 8 6
Frequencia
0.1
0.08
0.06
0.04
0.02
0
-2
-1.5
-1
-0.5
0
0.5
Amostra
histogram
Fix_8_6
[ -2, 1.9844 ]
passo = 0.015625
1
1.5
2
ComL@b – Laboratório de Comunicações Digitais
Exemplo Básico: Resultado Fix_8_7
Fix 8 7
Frequencia
0.1
0.08
0.06
0.04
0.02
0
-1
-0.5
0
Amostra
histogram
Fix_8_7
[ -1, 0.99219 ]
passo = 0.0078125
0.5
1
ComL@b – Laboratório de Comunicações Digitais
Exemplo: equação de diferenças
y(n) = x(n) + a x(n-N)
x
System
Generator
y
double
fonte
sim_filtro
Fix_8_5
DSP double
fonte
Sine Wave
dblfpt
Gateway In
Fix_17_9
x
y
Sys_filtro
N=5
simulink
fpt dbl
Gateway Out
sysgen
|u|
DSP double
Sine Wave1
freq1 = 2/200 = 1/100 : 100 amostras por ciclo
freq2 = 20/200 =1/10 : 10 amostras por ciclo
erro
Time
Scope