Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b –...

24
ComL@b – Laboratório de Comunicações Digitais Aula 7: Implementação no System Generator Fabbryccio Cardoso Marcelo Fernandes Dalton S. Arantes DECOM-FEEC-UNICAMP www.decom.fee.unicamp.br/~cardoso

Transcript of Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b –...

Page 1: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Aula 7: Implementação no System Generator

Fabbryccio Cardoso

Marcelo Fernandes

Dalton S. Arantes

DECOM-FEEC-UNICAMP

www.decom.fee.unicamp.br/~cardoso

Page 2: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Agenda

Otimização do tipo do sinal, visando faixa

dinâmica, precisão e consumo de área.

Condições para que os blocos possam ser

implementados em HW.

Compensar a latência dos blocos.

Blocos Reinterpret, Convert, Concat e Slice.

Exercícios.

Page 3: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Representação do Sinal em Ponto Fixo

TimeScopehistogram

Fix_8_5[ -4, 3.9688 ]

passo = 0.03125

DSP

Sine Wave

fpt dblGateway Out

dbl fptGateway In

|u|

Abs

SystemGenerator

originalFix_8_5saida

erro

Aula7_01.mdl

Escolha do tipo do sinal visando a faixa dinâmica do sinal, a precisão e o consumo de área.

Page 4: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Referência: Tipo Fix_8_5

-4 -3 -2 -1 0 1 2 3 40

0.010.020.030.040.050.060.070.080.090.1

Amostra

Freq

uenc

ia

Fix 8 5

histogramFix_8_5

[ -4, 3.9688 ]passo = 0.03125

Faixa não utilizada

Faixa não utilizada

Page 5: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Ajuste do Ponto Binário: Tipo Fix_8_7

histogramFix_8_7

[ -1, 0.99219 ]passo = 0.0078125

-1 -0.5 0 0.5 10

0.02

0.04

0.06

0.08

0.1

Amostra

Freq

uenc

ia

Fix 8 7

Ajustou a faixa dinâmica, aumentou a precisão e manteve o consumo de área.

Page 6: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Ajuste do número de bits: Fix_6_5

histogramFix_6_5

[ -1, 0.96875 ]passo = 0.03125

Ajustou a faixa dinâmica, manteve a precisão e diminuiu o consumo de área.

-1 -0.5 0 0.5 10

0.02

0.04

0.06

0.08

0.1

Amos tra

Freq

üênc

ia

Fix 6 5

Page 7: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Consumo de área

Fix_6_5

Aula7_02.mdl

Adicionou-se o bloco Cmult com parâmetro de ganho de 0.8 vezes no modelo de referência do Slide 2 (aula7_01.mdl).

Fix_8_7 e Fix_8_5

Page 8: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Exemplo: equação de diferenças

freq1 = 2/200 = 1/100 : 100 amostras por ciclo : 1e-6 s : 1 MHzfreq2 = 20/200 =1/10 : 10 amostras por ciclo : 0.1e-6 : 10 MHz

y(n) = x(n) + a x(n-N)

x y

sim_filtro

TimeScope

x y

Sys_filtroDSP

Sine Wave1

DSP

Sine Wave

fpt dbl

Gateway Outdblfpt

Gateway In|u|

SystemGenerator

Fix_8_6

sysgen

simulink

double

fonte

fontedouble

double

Fix_17_10

erro

N = 5

Aula7_03.mdl

Tclk = 10 nsTs = 1

Page 9: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Faixa Dinâmica na Saída do Multiplicador

Aula7_03.mdl

Sinal de saída Fix_16_10 (Full precision), max(erro) ~ 3e-2

Page 10: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Faixa Dinâmica na Saída do Multiplicador

Aula7_03.mdl

Sinal de saída Fix_8_6, max(erro) ~ 3e-2

Page 11: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Estimativa do Erro (3e-2)histogramFix_8_6

[ -2, 1.9844 ]passo = 0.015625

1y

xlmultz-3

a

b(ab)

Mult

z-2

Delay

k =1

Constant

xladdsuba+ba

b

a

AddSub

1x

Fix_17_10

Fix_8_6

Fix_8_6

Fix_8_4

Fix_16_10

Erro = 0.0156

Erro = 0.0156

Erro = 0.032

Aula7_03.mdl

Page 12: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Blocos Implementáveis

Aula7_04.mdl

Although the behavior of this block, as configured, could be simulated, itwill not be possible to target it to hardware because:

--- Cannot be synthesized because no synthesizable multiplier code is provided and it does not map to a core because the block does not allow enough latency. To use a core, latency must be increased to atleast 2

1y

xlmulta

b(ab)

Mult

z -2

Delay

k =1

Constant

xladdsuba+ba

b

a

AddSub

1x

Fix_17_10Fix_8_6

Fix_8_6

Fix_8_4

Fix_16_10

Latência = 0

Page 13: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Blocos Implementáveis

Aula7_04.mdl

Although the behavior of this block, as configured, could be simulated, it will not be possible to target it to hardware because:

--- Cannot be synthesized because no synthesizable multiplier codeis provided and it does not map to a core because multiplier input port bit-widths must be between 2 and 64 (inclusive) for coreinstantiation

1y

xlmultz-3

a

b(ab)

Mult

z -2

Delay

k =1

Constant

xladdsuba+ba

b

a

AddSub

1x

Fix_10_6Fix_8_6

Fix_8_6

UFix_1_0

Fix_9_6

Page 14: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Implementar atrasos menores que a latência dos blocos

Aula7_05.mdl

To use a core, latency must be increased to at least 4.

Implementar: y(n) = x(n) + a x(n-2)Problema: Mult deve ter latência de pelo menos 4.

1y

xlmultz-3

a

b(ab)

Mult

z -2

Delay

k =1

Constant

xladdsuba+ba

b

a

AddSub

1x

Fix_65_32Fix_32_16

Fix_32_16

UFix_32_16

Fix_64_32

Page 15: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Implementar atrasos menores que a latência dos blocos

Aula7_05.mdl

Solução: Alinhar todos os ramos paralelos.

Resultado: o filtro é implementado com atraso de 4 amostras (ciclos de clock)

1y

xlmultz-4

a

b(ab)

Mult

z -2

Delay

k =1

Constant

z -4

Alinhamentoxladdsuba+ba

b

a

AddSub

1x

Fix_65_32Fix_32_16

Fix_32_16

UFix_32_16

Fix_64_32

double

Page 16: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Implementar atrasos menores que a latência dos blocos

Aula7_05.mdl

y(n) = x(n) + x(n-2)

x y

sim_filtro

TimeScope

x y-4Z

Sys_filtro

DSP

Sine Wave1

DSP

Sine Wave

ResourceEstimator

fpt dbl

Gateway Out

dbl fpt

Gateway In

Erro

z-4

Alinhamento

|u|

SystemGenerator

Fix_32_16

sysgen

double

fonte

double

double

Fix_65_32

erro

double

max(erro) ~ 3e-5

Page 17: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Bloco Reinterpret

O objetivo é reinterpretar o valor inteiro alterando-

se Pb ou o sinal.

Resultado: valor real é modificado enquanto o valor

inteiro é mantido.

InteiroValor 2 RealValor ×= −Pb

Page 18: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Bloco Convert

Altera-se o tipo Ufix_Nb_Pb ou Fix_Nb_Pb,

mudando-se Nb e Pb.

O objetivo é manter o valor real na conversão.

Resultado: o valor inteiro é modificado de forma a

preservar o valor real.

InteiroValor 2 RealValor ×= −Pb

Page 19: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Exemplo de Reinterpret e Convert

Aula7_06.mdl

1001.00 = 9

10010.0 = -14

01001.0 = 9

100100 = -28

001001 = 9

-28

x_reinterpreted3

fpt dbl

-14

x_reinterpreted1

fpt dbl

9

x_out

dbl fptx_in

9

x_converted3

fpt dbl

9

x_converted1

fpt dbl

fpt dbl

9

Signal FromWorkspace

xlcastforce

Reinterpret1

xlcastforce

Reinterpret

xlconvertcast

Convert1

xlconvertcast

Convert

SystemGenerator

UFix_6_2doublefonte

Fix_6_1

double

Fix_6_1

Fix_6_0

Fix_6_0

Page 20: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Blocos Slice e Concat

fpt dbl

xOut1

fpt dbl

xOut

dbl fpt

xIn1

dbl fpt

xIn

xlslice[a:b]

slice1

xlslice[a:b]

slice

fpt dbl

sinal1

fpt dbl

sinal

fix_6_1Valor Real = -1

Valor Inteiro = -2

Valor Binario =11111.0

fix_6_1Valor Real = 15

Valor Inteiro = 30

Valor Binario =01111.0

xlslice[a:b]

Slice_Sinal1

xlslice[a:b]

Slice_Sinal

-1

15

xlcastforce

xlcastforce

15

-1

1

0

k =1

k =0xlconcathi

locat

Concat1

xlconcathi

locat

Concat

SystemGenerator

double

double

Fix_6_1 UFix_1_0

Fix_6_1 UFix_1_0

double

double

UFix_5_0

UFix_1_0 UFix_6_0double

UFix_6_0UFix_5_0

UFix_1_0double

Fix_6_1

Fix_6_1

Aula7_07.mdl

Page 21: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Laboratório 1

Converter a representação binária do valor real 0.5

do tipo fix_8_6

no valor real 32/2048 = 0.015625 do tipo

fix_12_11

Usar blocos Concat e Reinterpret

Aula7_ex1.mdl

01

Page 22: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Laboratório 2

Implementar a conversão inversa do Exercício 1,

ou seja, do valor 0.015625 (fix_12_11) para o

valor 0.5 (fix_8_6)

Use os blocos slice e reinterpret

Aula7_ex2.mdl

Page 23: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Laboratório 3

Implemente o modelo seguinte e justifique os

resultados

Aula7_ex3.mdl

fix_8_0[ -128, 127 ]

passo = 1Valor Real = 32

Valor Inteiro = 32Valor Binario =00100000.

fix_8_0[ -128, 127 ]

passo = 1Valor Real = 0.5

Valor Inteiro = 0Valor Binario =00000000.

fix_8_6[ -2, 1.9844 ]

passo = 0.015625Valor Real = 0.5Valor Inteiro = 32

Valor Binario =00.100000

0.5Signal FromWorkspace

xlcastforce

Reinterpret

fpt dbl

Gateway Out1

fpt dbl

Gateway Out

dbl fpt

Gateway In

32Display1

0Display

xlconvertcast

Convert

SystemGenerator

Fix_8_6 doubledouble

double

Fix_8_0

Fix_8_0

Page 24: Aula 7: Implementação no System Generatorcardoso/ie344b/Aula7-Implementacao.pdf · ComL@b – Laboratório de Comunicações Digitais Agenda Otimização do tipo do sinal, visando

ComL@b – Laboratório de Comunicações Digitais

Laboratório 4

Implemente o modelo abaixo.

Use os blocos Mult, Reinterpret e Convert (apenas

um de cada) e estime os recursos de lógica.

Analise a faixa dinâmica do sinal z a partir do bloco

Histogram.

Ts = 1 Tclk = 10 nsfreq1 = 2/200 = 1/100 : 100 amostras por ciclo : Tseno = 1000 ns : 1 MHzfreq2 = 20/200 =1/10 : 10 amostras por ciclo : Tseno = 100 ns : 10 MHz

z(n) = x(n)*y(n)*4

fpt dbl

z

dbl fpt

y

dbl fpt

x

scope_z

x

yzz(n) = x(n)*y(n)*4

Sys_filtro

DSP

Sine Wave1

DSP

Sine Wave

ResourceEstimator

SystemGenerator

Fix_10_8

doublez

Fix_10_7

Fix_10_8

Aula7_ex4.mdl