130 likes | 214 Views
www.decom.fee.unicamp.br/~cardoso. Aula 6, Exp 5: Implementação de Atrasos com FIFO. Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP. Objetivo do Experimento. No Experimento 4 foi implementada a equação de diferenças y(n) = x(n) + 0.8*x(n – 6000), onde:
E N D
www.decom.fee.unicamp.br/~cardoso Aula 6, Exp 5: Implementação de Atrasos com FIFO Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP
Objetivo do Experimento • No Experimento 4 foi implementada a equação de diferenças y(n) = x(n) + 0.8*x(n – 6000), onde: • 1 slice e 1 bit -> 2 SRL16 + 2 Reg -> Ratraso = 34 ciclos/slice • 1 slice e 16 bits -> Ratraso = 34/16 = 2.125 ciclos/slice • Nslice = 6000 / 2.125 = 2824 (XCV2P30 tem 13969). • Utilizar FIFOs, implementadas com BRAM, para implementar atrasadores e economizar slices de lógica; • Obs: • A FPGA XC2VP30 possui 136 BRAMs de 18kb cada; • 6000x16 = 96 kb ~6 BRAMs de 18kb
Metodologia • Utilizar o netlist do projeto principal (top-level) “xupv2pro_wrapper.ngc” e UCF “xupv2pro_wrapper.ucf” do Experimento 4 ; • Gerar o bitstream do projeto a partir do SysGen (observe que o SysGen irá gerar o componente audio_clk_wrapper.ngc a partir do modelo audio.mdl para então executar a fase de implementação do fluxo de projeto, ligando o componente SysGen ao projeto principal) • A implementação da equação de diferenças deve ser feita no modelo “audio.mdl” que irá gerar o componente audio_clk_wrapper para o projeto principal;
Implementação de Componente no SysGen • Editar o modelo “audio.mdl”: não renomear o modelo nem as portas (gateways); certificar que as portas estão configuradas para 16 bits; (se estes requisitos não forem atendidos haverá um descasamento entre o componente audio_clk_wrapper.ngc esperado pelo projeto principal e o gerado pelo ISE, resultando em erro na fase de implementação) • Implementar a equação de diferenças para os canais esquerdo e direito do modelo a partir de FIFOS:y(n) = x(n) + 0.8*x(n – 6000); • Usar o bloco Resource Estimator para estimar os recursos da FPGA necessários para implementação do componente.
double 0 ST Display System Generator Fix_16_14 Fix_16_14 Fix_16_14 double double 0 dbl fpt xlregister d q xlregister d q fpt dbl y_out audio_left_out audio_left_in Fix_16_14 Fix_16_14 Fix_16_14 double dbl fpt xlregister d q xlregister d q fpt dbl audio_right_out audio_right_in Módulo System Generator Adicionar Sub-Sistema para implementar equações de diferenças.
Dicas Gerais • Aproveite o modelo do Experimento 4 e use um subsystempara implementar o atrasador desejado em substituição ao bloco “delay” do SysGen; • Na FIFO, din é o sinal de entrada e dout é o sinal de saída; as portas we e re são para controle; e empty, %full e full são para inspecionar o estado da FIFO; • Se a FIFO não estourar ou esvaziar, todo sinal que é escrito na FIFO (din) quando we = 1 deve ser recuperado em dout quando re = 1, seguindo a lógica first in first out;
0 1 2 3 4 71 72 73 Lógica do atrasador Cont: 1 we: re: A B C D E G H I F J din: dout: 0 0 0 0 0 0 0 A C 0 B D Atraso de leitura. Atraso total = 72 + 1 = 73 Use o bloco “terminator” da biblioteca Simulink/Sinks nas portas de saída não utilizadas
Testes • Inspecionar os sinais de entrada e saída da FIFO para comprovar se a lógica obtém o atraso desejado; Verifique se funciona, por exemplo, para um atraso de 5; • Para inspecionar os resultados use o bloco “scope” da biblioteca Simulink/Sinks; • Para se inspecionar os sinais do SysGen com o scope também é necessário utilizar o bloco Gateway Out para converter os dados para o formato do Simulink.
Dicas para a fase de testes de simulação Atraso total Atraso de leitura Primeira amostra é zero. Resultado esperado para atraso de 5.
Avaliação • Visto do experimento = 7 pontos; • Modelo do Projeto SysGen = 3 pontos.
O que deve ser entregue • No lugar do relatório, deverá ser entregue o modelo SysGen do projeto com o netlist e o UCF do projeto principal. • Adicionar comentário no modelo comparando a ocupação de área (slices) e de BRAMS dos atrasadores dos experimentos 4 e 5. • Entregar também o modelo de teste com atraso de 5 ciclos.