1 / 13

Aula 6, Exp 5: Implementação de Atrasos com FIFO

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:

Download Presentation

Aula 6, Exp 5: Implementação de Atrasos com FIFO

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. www.decom.fee.unicamp.br/~cardoso Aula 6, Exp 5: Implementação de Atrasos com FIFO Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP

  2. 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

  3. Configuração Física do Experimento

  4. 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;

  5. 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.

  6. 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.

  7. Interface do System Generator: Bitstream

  8. 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;

  9. 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

  10. 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.

  11. Dicas para a fase de testes de simulação Atraso total Atraso de leitura Primeira amostra é zero. Resultado esperado para atraso de 5.

  12. Avaliação • Visto do experimento = 7 pontos; • Modelo do Projeto SysGen = 3 pontos.

  13. 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.

More Related