Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
ComL@b – Laboratório de Comunicações Digitais
www.decom.fee.unicamp.br/~cardoso
Aula 5, Exp 4: Representação em Ponto Fixo
Fabbryccio Cardoso
D lt S A tDalton S. Arantes
DECOM-FEEC-UNICAMP
ComL@b – Laboratório de Comunicações Digitais
Representação bináriaRepresentação binária-22 21 20 2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8 2-9 2-10 2-11 2-12 2-13
Value = -2.261108…
F t Fi 16 131 0 1 1 0 1 1 1 1 0 1 0 0 1 0 1
Integer Fraction
Format = Fix_16_13
(Sign: Fix = Signed Valueg (Sign: Fix = Signed Value UFix = Unsigned value) Format = Sign_Width_Binary point a partir do LSB
Menor negativo: 1 0 0 0 0 ..... 0 = -2N – p - 1
0 0 0001 0 001
0 0 000-1 1 111 = 7 - 2^3
2 0 0103 0 011
-2 1 110 = 6 - 8-3 1 101 = 5 - 84 1 100 = 4 84 0 100
5 0 1016 0 110
-4 1 100 = 4 - 8-5 1 011 -6 1 0106 0 110
7 0 1116 1 010
-7 1 001-8 1 000 = 0 - 8
ComL@b – Laboratório de Comunicações Digitais
Representação em Ponto Fixo no SysGenRepresentação em Ponto Fixo no SysGen
pMSB LSB
N: comprimento da palavra binária.
p ponto binário o fator de escala (0 1 N 1)
p
p: ponto binário ou fator de escala (0, 1, ..., N-1).
Com ou sem sinal.
Com sinal: Ufix_N_p.
Sem sinal: Fix_N_p.
N e p definem a faixa de valores da representação.
p define a precisão da representação.p define a precisão da representação.
ComL@b – Laboratório de Comunicações Digitais
Ponto Fixo: Números Inteiros PositivosPonto Fixo: Números Inteiros Positivos
Ufix_3_0 Ufix_4_0_ _0 000Ufix_2_0 0 0000
1 00011 0012 010
0 001 01
2 00103 00114 01002 010
3 0114 100
1 012 10
4 0100..........10 10104 100
5 1013 11
10 101011 101112 1100
6 1107 111
13 110114 111015 11117 111 15 1111
ComL@b – Laboratório de Comunicações Digitais
Passo e Faixas de valores para Ufix N pPasso e Faixas de valores para Ufix_N_p
UFix_8_0: 0, 1, 2, 3, ................................, 255passo = 1_ _ , , , , ,
0 255
UFix_8_2: 0,passo = ¼ = 0.25
0.25, 0.5, ......................, 255/4 = 63.75
0 255/4 = 63.75
passo = 1UFix N 0: p
0
UFix_N_0:
UFix_N_p:passo =
0
ComL@b – Laboratório de Comunicações Digitais
Representação Numérica (truncar)Representação Numérica (truncar)Q{x}
1.51.75 3
Ufix_3_20.00 = 0.000 01 = 0 251.0
1.25
0.01 = 0.250.10 = 0.500.11 = 0.75
20.5
0.75
0.11 0.751.00 = 1.001.01 = 1.25x0
0.25
1.10 = 1.501.11 = 1.75
7/4Ufix 2 01.0
7/4_ _00 = 0 01 = 1 10 = 2 11 = 3 0 x
ComL@b – Laboratório de Comunicações Digitais
Ponto Fixo: Números Negativos
MSB indica o sinal
Ponto Fixo: Números Negativos
0 0000 0 00000 1111Inverte e soma 1 = x + 1 = 2N - x
0 00001 0001
0 0000-1 1111
0 11111 11101 0001
2 00103 0011
1 1111-2 11103 1101
1 11102 11013 11003 0011
4 0100-3 1101-4 1100
3 11004 1011
5 01016 0110
-5 10116 1010
5 10106 10016 0110
7 0111-6 1010-7 1001
6 10017 1000
8 1000 -8 10008 0111
ComL@b – Laboratório de Comunicações Digitais
Ponto Fixo: Complemento de 2Ponto Fixo: Complemento de 2
Representa números na faixa de
2N 1 2N 1 1
0 00001 0001
0 0000-1 1111- 2N-1 a 2N-1 - 1 1 0001
2 00103 0011
-1 1111-2 1110-3 1101
O ZERO tem uma única
representação4 01005 01016 0110
-4 1100-5 10116 10106 0110
7 0111-6 1010-7 1001-8 1000
O circuito de adição não precisa analisar o sinal do
operando para decidir entre as operações de soma
8 1000
operando para decidir entre as operações de soma
e de subtração
http://en.wikipedia.org/wiki/Two%27s_complement
ComL@b – Laboratório de Comunicações Digitais
Tipos e Faixas de valoresTipos e Faixas de valores
Fix_N_p 0passo =
Fix_N_N passo = 00 5 0 5-0.5 ~ 0.5
Fix N N-1 0passo =Fix_N_N-1 0-1 ~ 1
passo =
Fix_N_N-2 02 2
passo =
-2 ~ 2
ComL@b – Laboratório de Comunicações Digitais
Tipos e Faixas de valoresTipos e Faixas de valores
UFix_N_p passo =
0
UFix_N_N passo =
0 10 ~ 1
UFix N N 1 passo =UFix_N_N-1
0 ~ 2
passo =
UFix_N_N-2
0passo =
0 ~ 4
ComL@b – Laboratório de Comunicações Digitais
Representação (truncar e saturar)Representação (truncar e saturar)
Fix 3 2Q{ x }
Fix_3_2
1.00 -4/4 -1.000.75
1.01 -3/4 -0.751.10 -2/4 -0.501 11 1/4 0 25
0.25
0.50
1.11 -1/4 -0.250.00 0 0.000 01 1/4 0 25
x
p−2-0 25
-0.00
0.01 1/4 0.250.10 2/4 0.500.11 3/4 0.75
= 0.25p2
0 75
-0.50
0.25
-1.00
-0.75
ComL@b – Laboratório de Comunicações Digitais
Representação com ArredondamentoRepresentação com Arredondamento
Fix 3 2Q{ x } Fix_3_2
1.00 -4/4 -1.000.75
1.01 -3/4 -0.751.10 -2/4 -0.501 11 1/4 0 25
0.25
0.50
1.11 -1/4 -0.250.00 0 0.000 01 1/4 0 25
x
p−2-0 25
-0.00
0.01 1/4 0.250.10 2/4 0.500.11 3/4 0.75
= 0.25p2
0 75
-0.50
0.25
-1.00
-0.75
ComL@b – Laboratório de Comunicações Digitais
VerificaçãoVerificação
Defina o formato e o valor da seguinte representação:p ç
1 1 0 0 0 1 1 0 1 0 1 1Format = < _ _ >Value =
Qual o formato para as seguintes faixas de valores:
a) Max value: +1 b) Max value: 0 8 ) M l 278
Format = < > Format = < > Format = < >
a) Max value: +1Min value: -1Quantized to 12 bit data
b) Max value: 0.8Min value: 0.2Quantized to 10 bit data
c) Max value: 278Min value: -138Quantized to 11 bit data
Complete a tabela:
Format = < _ _ > Format = < _ _ > Format = < _ _ >
Operation Full Precision Output Type <Fix_12_9> + <Fix_8_3> <Fix 8 7> x <Ufix 8 6> <Fix_8_7> x <Ufix_8_6>
ComL@b – Laboratório de Comunicações Digitais
VerificaçãoVerificação
Defina o formato e o valor da seguinte representação:p ç
1 1 0 0 0 1 1 0 1 0 1 1Formato = < Fix_12 _5 >Valor = -28.65625
Qual o formato para as seguintes faixas de valores:
a) Max value: +1 b) Max value: 0 8 ) M l 278
Format = < Fix 12 10 > Format = < Ufix 10 10 > Format = < Fix 11 1 >
a) Max value: +1Min value: -1Quantized to 12 bit data
b) Max value: 0.8Min value: 0.2Quantized to 10 bit data
c) Max value: 278Min value: -138Quantized to 11 bit data
Complete a tabela:
Format = < Fix_12_10 > Format = < Ufix _10_10 > Format = < Fix_11_1 >
Log2(279) = N-p-1p = N - 1 - log2(279)
Operation Full Precision Output Type <Fix_12_9> + <Fix_8_3> Fix_15_9 <Fix 8 7> x <Ufix 8 6> Fix 16 13 Fix_8_7 x Ufix_8_6 Fix_16_13
ComL@b – Laboratório de Comunicações Digitais
Exemplo SysGen: Equação de diferençasExemplo SysGen: Equação de diferenças
histograma Fix_8_6
[ -2, 1.9844 ]passo = 0.015625
fix_8_6[ -2, 1.9844 ]
passo = 0.015625
y(n)y(n-1)
x(n-1)x(n) x(n-5)
dbl fpt
Valor Real = -1.2344Valor Inteiro = -79
Valor Binario =10.110001
z-4z-1 z-1
Sy stemGenerator
double Fix_8_6Fix_8_6 Fix_8_6Fix 18 14dbl fpt
x_nfontePonto_fixo
zz
xlconvercast
Convert5078
)
16
2
Fix_18_14
Fix_18_14
x (-0
.05
x 0.
101
x 0.
199
aaaa double
Fix_16_14 Fix_16_14
Fix 19 14
Fix_18_14
fpt dbl
y_nScope
xladdsuba+bb
AddSub2
xladdsuba+b
a
b
a
AddSub1
xladdsuba+b
a
b
adoubley (n)
Fix_17_14Fix_18_14
Fix_19_14
AddSub
ComL@b – Laboratório de Comunicações Digitais
Otimização de tipo de dadosOtimização de tipo de dadosManter o comprimento da palavra binária em N = 8 bits.
y(n)y(n-1)
x(n-1)x(n) x(n-5)
dbl fpt
Valor InteiroValor Bina
10.1100z-4z-1 z-1
Generator
Fix_8_7
x_nfontePonto_
xlconvercast
Convert078)
6
2
(-1, 1) (-1, 1) (-1, 1)
xlconverConvert
x (-0
.05
x 0.
101
x 0.
1992
aa
Fix_8_8 Fix_8_8(-0.1, 0.1)
Fix_8_8
fpt dbl
y_n
xladdsuba+b
a
b
a
AddSub2
xladdsuba+b
a
b
a
xladdsuba+b
aa y (n)
(-1 1)
(-0.2, 0.2)
( 1 3 1 3)( 1 3 1 3)
(-0.07, 0.07)(-1.37, 1.37)
AddSub2AddSub1
b
AddSub
( 1, 1)(-1.2, 1.2)
Fix 8 6
(-1.3, 1.3)(-1.2, 1.2)
Fix 8 6
(-1.3, 1.3)
Fix 8 6_ _ _ _ _ _
ComL@b – Laboratório de Comunicações Digitais
Otimização de tipo de dadosOtimização de tipo de dadosManter a precisão da fonte.
y(n)y(n-1)
x(n-1)x(n) x(n-5)
dbl fpt
Valor InteiroValor Bina
10.1100z-4z-1 z-1
Generator
Fix_8_7
x_nfontePonto_
xlconvercast
Convert078)
6
2
(-1, 1) (-1, 1) (-1, 1)
xlconverConvert
x (-0
.05
x 0.
101
x 0.
1992
aa
Fix_7_7 Fix_7_7(-0.1, 0.1)
Fix_7_7
fpt dbl
y_n
xladdsuba+b
a
b
a
AddSub2
xladdsuba+b
a
b
a
xladdsuba+b
aa y (n)
(-1 1)
(-0.2, 0.2)
( 1 3 1 3)( 1 3 1 3)
(-0.07, 0.07)(-1.37, 1.37)
AddSub2AddSub1
b
AddSub
( 1, 1)(-1.2, 1.2)
Fix 9 7
(-1.3, 1.3)(-1.2, 1.2)
Fix 9 7
(-1.3, 1.3)
Fix 9 7_ _ _ _ _ _
ComL@b – Laboratório de Comunicações Digitais
HistogramaHistograma
0.02
Fix 8 6
0.016
0.018
0.012
0.014
cia
0.008
0.01
Freq
uenc
0.004
0.006
0
0.002
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2Amostra
ComL@b – Laboratório de Comunicações Digitais
Objetivo do ExperimentoObjetivo do Experimento
Aprender a implementar e testar em HW equações
de diferenças;
Aprender a ajustar os parâmetros de quantização
do algoritmo para otimizar a implementação.
ComL@b – Laboratório de Comunicações Digitais
Configuração Física do ExperimentoConfiguração Física do Experimento
ComL@b – Laboratório de Comunicações Digitais
Netlist do Projeto PrincipalNetlist do Projeto Principal
Baixar e copiar arquivo “principal.ngc” e
“principal.ucf” para a pasta do projeto SysGen que
contém o modelo “audio.mdl”.
Top-level do progeto: principal.ngc.
Componente do top level a ser implementado no
System Generator: audio clk wrapperSystem Generator: audio_clk_wrapper
ComL@b – Laboratório de Comunicações Digitais
Declaração do componente no top-levelDeclaração do componente no top level
component audio clk wrapper port (component audio_clk_wrapper port (audio_left_in: in std_logic_vector (15 downto 0);audio_right_in: in std_logic_vector (15 downto 0);ce: in std logic;ce: in std_logic;ce_clr: in std_logic;clk: in std_logic;audio left out: out std logic vector (15 downto 0);_ _ _ g _ ( );audio_right_out: out std_logic_vector (15 downto 0));
end component;
attribute box_type of audio_clk_wrapper : component is "black_box";
ComL@b – Laboratório de Comunicações Digitais
Arquitetura do ProjetoArquitetura do Projeto
Top Level: xupv2pro_wrapper
SData In audio left in_
SData_Out
audio_left_in
audio_right_in
Codec AC97LM4550 ac97_ifAC97Clk
(12.288 MHz)
audio_left_out
audio_right_out
audio_clk_wrapper
Controlador AC97
48 kHz1:500
Cristal 100 MH ClockGen100 MHz
Módulo System GeneratorDCM
24 MHz
FPGA Xilinx Virtex2P30
ComL@b – Laboratório de Comunicações Digitais
Implementação de Componente no SysGenImplementação de Componente no SysGen
Editar o modelo “audio.mdl”: não renomear o modelo nem as portas (gateways);modelo nem as portas (gateways);
Implementar a seguinte equação de diferenças para os canais esquerdo e direito do modelo:para os canais esquerdo e direito do modelo:
y(n) = 0.5*( x(n) + 0.8*y(n – M) )y(n) = 0.5 ( x(n) + 0.8 y(n M) )
onde M é o número de amostras do sinal tal que qM × Ts = 0.5 segundos.
Ajustar os parâmetros de quantização para os j p q ç pblocos do modelo, mas não alterar o número de bits das portas (gateways);
ComL@b – Laboratório de Comunicações Digitais
Módulo System GeneratorMódulo System Generator
ST 0
DisplaySystem
double
fpt dbldbl fpt y out0 xlregisterd qxlregisterd q
SystemGenerator
double Fix_16_14 Fix_16_14Fix_16_14 double
Fix_16_12 Fix_16_12
fpt dbldbl fpt
p
audio_left_out
p
audio_left_in
y_
xlregisterd q
g q
xlregisterd q
g q
Fix_16_14 Fix_16_14Fix_16_14 doublefpt dbl
audio_right_out
dbl fpt
audio_right_in
xlregisterd qxlregisterd q
Fix_16_12 Fix_16_12
Adicionar Sub-Sistema para implementar equações de diferenças.
ComL@b – Laboratório de Comunicações Digitais
Bloco “Subsystem”Bloco Subsystem
ComL@b – Laboratório de Comunicações Digitais
Interface do System GeneratorInterface do System Generator
ComL@b – Laboratório de Comunicações Digitais
Carregar o Binário: ImpactCarregar o Binário: Impact
Clicar com botão direito do mouse:1. Assign new configuration file;g g ;2. Program ...
ComL@b – Laboratório de Comunicações Digitais
AvaliaçãoAvaliação
Visto do experimento = 5 pontos;
Fontes do modelo e do exercício = 5 pontos.p
y(n) + 0 8 y(n-1) + 0 1 y(n-2) = x(n) + 3 x(n-4) + y(n) + 0.8 y(n-1) + 0.1 y(n-2) = x(n) + 3 x(n-4) +
6 x(n-10)
Quantizar entrada com N = 16 bitsQuantizar entrada com N = 16 bits