Mudanças entre as edições de "Implementação de sistemas de telecomunicações digitais utilizando simulink e HDL coder"
Linha 66: | Linha 66: | ||
O bloco '''Dfts''' realiza os cálculos das ''butterflies'' através de pequenas células (ver figura). O subsistema '''Dfts''' possui 16 entradas, sendo 8 correspondentes as amostras temporais do sinal de entrada do bloco '''FFT Decimation''', e 8 correspondentes ao valores calculados de Wn (mostrado abaixo). Esse bloco é implementado através de 12 blocos idênticos (células {DFT_Wn0_11 .. DFT_Wn043}) que realizam o cálculo da ''butterfly''. As saídas do .... | O bloco '''Dfts''' realiza os cálculos das ''butterflies'' através de pequenas células (ver figura). O subsistema '''Dfts''' possui 16 entradas, sendo 8 correspondentes as amostras temporais do sinal de entrada do bloco '''FFT Decimation''', e 8 correspondentes ao valores calculados de Wn (mostrado abaixo). Esse bloco é implementado através de 12 blocos idênticos (células {DFT_Wn0_11 .. DFT_Wn043}) que realizam o cálculo da ''butterfly''. As saídas do .... | ||
{| | {| | ||
− | |[[Imagem:Dfts.png]] | + | |[[Imagem:Dfts.png| 200 px]] |
− | |[[Imagem:Butter.png]] | + | |[[Imagem:Butter.png| 650 px]] |
|} | |} | ||
− | Em conjunto, os blocos do dft calculam as butterflies de acordo com a figura | + | Em conjunto, os blocos do dft calculam as butterflies de acordo com a figura 5. A célula recebe quatro entradas: '''({u, v})''' e '''({WnN, WnN_N})'''. As entradas '''({u, v})''' vem ou da entrada inicial do FFT Decimation ou da saída de uma outra butterfly. Os valores de '''{WnN, WnN_N}''' são oriundos do bloco '''Mwn''', que será explicado mais adiante. |
As quatro entradas se relacionam de acordo com a figura 5. A entrada '''v''' é multiplicada por '''WnN''' e por '''WnN_N'''. Os dois resultados gerados são somados com a entrada '''u'''. A butterfly gera, no fim, uma saída '''U''' e uma saída '''V''', que poderá ser a saída final da FFT ou pode ser cascateada para outra butterfly. | As quatro entradas se relacionam de acordo com a figura 5. A entrada '''v''' é multiplicada por '''WnN''' e por '''WnN_N'''. Os dois resultados gerados são somados com a entrada '''u'''. A butterfly gera, no fim, uma saída '''U''' e uma saída '''V''', que poderá ser a saída final da FFT ou pode ser cascateada para outra butterfly. | ||
− | + | [[Imagem:Celula.png| center | 150 px]] | |
− | + | <center> Figura 4 - Bloco-célula de uma butterfly </center> | |
− | + | ||
− | + | [[Imagem:Isolado.png| center | 600 px]]] | |
− | + | <center> Figura 5 - Esquema interno butterfly </center> | |
+ | |||
Seu esquema interno: | Seu esquema interno: | ||
− | [[Imagem:Fly.png]] | + | [[Imagem:Fly.png| center | 600 px]]] |
+ | <center> Figura 6 - Funcionamento didático butterfly </center> | ||
=== Bloco - "Mwn" === | === Bloco - "Mwn" === |
Edição das 10h25min de 17 de março de 2016
Resumo do projeto
Este projeto pretende-se realizar um trabalho de pesquisa que visa estudar a utilização do ambiente Simulink® associado ao HDL (Hardware Description Language) Coder, para a realização em hardware programável, especificamente FPGA (Field Programmable Gate Array), de blocos comumente utilizados em sistemas de telecomunicações. São objetivos do projeto o estudo do Simulink®, HDL Coder e HDL Verifier da Matworks. O desenvolvimento de blocos comumente utilizados em sistemas de telecomunicações tais como moduladores, filtros digitais, misturadores e geradores de sinal, utilizando para tal o Simulink, que é um ambiente de diagramas de blocos para a simulação de projetos baseados em modelos. A realização e teste destes blocos em hardware será feita através da conversão de código para VHDL utilizando os toolboxes HDL Coder e HDL Verifier e Modelsim da ALTERA. A síntese e programação dos blocos desenvolvidos em FPGA será realizada utilizando o software Quartus II da ALTERA.
Introdução e Justificativa da Proposição
A maioria dos setores que de produção de equipamentos eletrônicos, especialmente na área de telecomunicações utilizam nos circuitos eletrônicos digitais. Entre estes circuitos a maioria deles atualmente é implementada em hardware utilizandose ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processor) ou FPGAs (Field Programmable Gate Array). O projeto, simulação e síntese dos últimos dois tipos é realizada utilizandose ambientes de projeto assistido por computador (por exemplo Quartus II e Modelsim) e alguma linguagem de descrição de hardware (por exemplo Verilog ou VHDL) a qual permite descrever o circuito em um baixo nível, de modo a descrever até a ligação entre os componentes configuráveis nos FPGAs ou ASICs. Como a disponibilização de circuitos lógicos programáveis tais como os FPGAs a um custo cada vez mais baixo (menor que U$50,00), e velocidades crescentes de operação, está ocorrendo um grande aumento no interesse e aplicação dessa tecnologia de hardware em diversos aplicações anteriormente realizadas através de software ou eletrônica discreta. Empresas do setor de equipamentos de telecomunicações passaram a considerar essa tecnologia como uma possibilidade de implementação de grandes partes dos sistemas.
Objetivos do projeto:
- Primeira etapa - Utilizar o ambiente Simulink® para a modelagem e simulação de blocos comumente utilizados em sistemas de telecomunicações.
- Segunda etapa - Utilizar o HDL Coder e Verifier para a transformação dos blocos da primeira etapa em linguagem VHDL.
- Os circuitos da obtidos serão simulados utilizando ModelSim
- Terceira etapa - Os circuitos da segunda etapa serão sintetizados e programados no hardware programável do tipo FPGA.
- Aqui também serão feitos os testes finais.
Metodologia do projeto
- Estudo do Simulink®
- Estudo da sua configuração, interfaces, sinais, blocos, modelagem e simulação de sistemas, geração de código de software e hardware.
- Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).
- Estudo das bases da linguagem VHDL
- Esta etapa será baseada na leitura dos capítulos 18 e 19 de (PEDRONI, 2010).
- Estudo do HDL Coder e Verifier®
- Esta etapa será baseada na leitura de manuais e também sites de ajuda do próprio fabricante (MATHWORKS, 2015a, 2015c, 2015b).
- Análise de blocos disponibilizadas
- Analisar blocos disponibilizados por outras universidades e institutos de pesquisa (NAVAS, 2014; TYAGI, 2012; GIORDANO; LEVESQUE, 2015; KRUKOWSKI; KALE, 2011) na área de telecomunicações.
- Desenvolvimento de blocos para sistemas de telecomunicações
- Desenvolvimento de blocos tais como moduladores, filtros digitais, misturadores e geradores de sinal.
- Realização e teste em hardware FPGA
- Utilizando o HDL Coder para a conversão dos blocos para VHDL.
- A implementação será realizada utilizando um kit de desenvolvimento de FPGA.
- Para os testes finais tanto o SignalTap® da ALTERA como um equipamento analisador lógico externo serão necessários.
- Documentação do projeto
- Escrita de relatórios parciais e do relatório final do projeto.
- Preparação de pôster para apresentação em eventos do IFSC, e de artigo para submissão em revista.
- Gerenciamento do projeto
- Será feito através da plataforma dot.project (https://dotproject.sj.ifsc.edu.br/) disponível no campus São José.
Implementação - FFT utilizando simulink
Arquivos das versões da FFT: Versões FFT
Documentação das modificações da FFT: Versões
- Versão 3_0 - ultima versão
Uma visão geral dos blocos:
Blocos da FFT
Bloco - "FFT Decimation"
O bloco FFT Decimation é um subsistema que agrupa os subsistemas Dfts e Mwn. Na versão atual (3.0) as entradas são {x0_ENTRY .. x7_ENTRY} para 8 amostras temporais do sinal. As saídas no domínio transformado são {X0 .. X7}. Para a utilização do subsistema é necessário dividir o sinal de entrada em quadros de 8 amostras paralelas e processá-las. Para possibilitar uma melhor resolução de frequência da FFT é necessário aumentar o número de amostras do sinal no tempo, e para tal será desenvolvido um desserializador e um serializador para permitir o uso de entradas e saídas seriais, nas quais as amostras entram sequencialmente formando um quadro de N amostras.
Bloco - "Dfts"
O bloco Dfts realiza os cálculos das butterflies através de pequenas células (ver figura). O subsistema Dfts possui 16 entradas, sendo 8 correspondentes as amostras temporais do sinal de entrada do bloco FFT Decimation, e 8 correspondentes ao valores calculados de Wn (mostrado abaixo). Esse bloco é implementado através de 12 blocos idênticos (células {DFT_Wn0_11 .. DFT_Wn043}) que realizam o cálculo da butterfly. As saídas do ....
Em conjunto, os blocos do dft calculam as butterflies de acordo com a figura 5. A célula recebe quatro entradas: ({u, v}) e ({WnN, WnN_N}). As entradas ({u, v}) vem ou da entrada inicial do FFT Decimation ou da saída de uma outra butterfly. Os valores de {WnN, WnN_N} são oriundos do bloco Mwn, que será explicado mais adiante. As quatro entradas se relacionam de acordo com a figura 5. A entrada v é multiplicada por WnN e por WnN_N. Os dois resultados gerados são somados com a entrada u. A butterfly gera, no fim, uma saída U e uma saída V, que poderá ser a saída final da FFT ou pode ser cascateada para outra butterfly.
]
Seu esquema interno:
]
Bloco - "Mwn"
- O segundo grande bloco do subsystem FFT Decimation é o Mwn. Esse bloco é o responsável pelo cálculo dos Wn do sistema.
] |
- O subsistema possui apenas saídas. São 8 saídas que correspondem aos Wn calculados.
Esquema interno do Mwn:
- A constant8 (1/8) é na verdade 1/N, porém, a versão 3_0 comporta 8 entradas, por isso optou-se por uma constante de valor 1/8. Em futuras versão esse bloco irá ter 1 entrada que irá corresponder ao N (numero de entradas).
- bloco Wn:
- Esqueleto interno do bloco Wn:
- Para se adequar ao HDL Coder, foi necessário utilizar a seguinte estratégia para implementação:
- Dentro do Mwn existem 4 blocos responsáveis pelas potências de Wn (Wn^0, Wn^1, Wn^2, Wn^3)
Bloco Wn^0:
Esquema interno Wn^0:
Bloco Wn^1:
Esquema interno Wn^1:
Bloco Wn^2:
Esquema interno Wn^2:
Bloco Wn^3:
Esquema interno Wn^3:
Viabilidade da implementação dos Modelos do projeto: INCENTIVANDO O USO DO SIMULINK NOS CURSOS DE TELECOMUNICAÇÕES
- Os blocos que possuem suporte para HDL estão em: Blocos Simulink com suporte HDL
Modulações Analógicas (AM,FM,PM) | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Amostragem de sinais | |||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Quantização | |||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Modulação por Codificação de Pulso (PCM) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{{Collapse bottom}
|
Modulação por Amplitude de Pulso M-ária (PAM-M) | |||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Transmissão digital em banda base | |||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Modulações digitais binárias | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Modulações digitais M-árias | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Transmissão digital em banda passante | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Multipath Fading Channel | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Digital Communications Ber Performance in AWGN or Fading | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Orthogonal Frequency Multiplex Division (OFDM) | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Professor Orientador
Aluno bolsista
Características da Bolsa
O projeto será financiado com bolsa PIBITI do CNPq e será executado entre Agosto de 2015 e Julho de 2015.