Mudanças entre as edições de "Implementação de sistemas de telecomunicações digitais utilizando simulink e HDL coder"
Linha 59: | Linha 59: | ||
*FFT Decimation - É o grande subsystem do programa. Dentro dele se localiza todos os outros blocos vitais para o funionamento da FFT | *FFT Decimation - É o grande subsystem do programa. Dentro dele se localiza todos os outros blocos vitais para o funionamento da FFT | ||
− | + | [[Imagem:Imagem geral.png]] | |
− | * | + | *X0_ENTRY ~ X7_ENTRY -> Entradas da FFT. A versão 3_0 só suporta 8 entradas. |
+ | *x0 ~ x7 -> Saídas da FFT. A versão 3_0 tem 8 saídas. | ||
+ | * Bloco "Dfts" -> É onde está localizada as pequenas células que fazem o cálculos das butterflies. | ||
+ | |||
+ | [[Imagem:Dfts.png]] | ||
+ | |||
+ | *O subsystem Dfts possui 16 entradas. 8 delas são as entradas da FFT e as outras 8 são os Wn calculados | ||
+ | . | ||
+ | *Aqui dentro existem 12 blocos idênticos que são as células de cálculo da butterflie. (DFT_Wn0_11 ~ DFT_Wn043). | ||
+ | |||
+ | Em conjunto, os blocos do dft calculam as butterflies da seguinte forma: | ||
+ | |||
+ | [[Imagem:Butter.png]] | ||
+ | |||
+ | Bloco isolado de cada butteflie: | ||
+ | |||
+ | [[Imagem:Celula.png]] | ||
+ | |||
+ | Seu esquema interno: | ||
+ | |||
+ | [[Imagem:Isolado.png]] | ||
+ | |||
+ | *O bloco possui 2 entradas -> Nas primeiras butterflies essas entradas correspondem diretamente a entradas da FFT. Nos blocos seguintes essas entradas são os resultados das butterflies anteriores. | ||
+ | |||
+ | *Cada butterflie de forma isolada sua parte da seguinte forma: | ||
+ | |||
+ | [[Imagem:Fly.png]] | ||
+ | |||
*O segundo grande bloco do subsystem FFT Decimation é o Mwn. Esse bloco é o responsável pelo cálculo dos Wn do sistema. | *O segundo grande bloco do subsystem FFT Decimation é o Mwn. Esse bloco é o responsável pelo cálculo dos Wn do sistema. | ||
− | *Dentro do Mwn existem | + | [[Imagem:Mwn.png]] |
+ | |||
+ | *O subsistema possui apenas saídas. São 8 saídas que correspondem aos Wn calculados. | ||
+ | |||
+ | Esquema interno do Mwn: | ||
+ | |||
+ | [[Imagem:Interno.png]] | ||
+ | |||
+ | * 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: | ||
+ | |||
+ | [[Imagem:Wn.png]] | ||
+ | |||
+ | *Esqueleto interno do bloco Wn: | ||
+ | |||
+ | [[Imagem:Wn interno.png]] | ||
+ | |||
+ | *Para se adequar ao HDL Coder, foi necessário utilizar a seguinte estratégia para implementação: | ||
+ | |||
+ | [[Imagem:Sen.png] | ||
+ | |||
+ | *Dentro do Mwn existem 4 blocos responsáveis pelas potências de Wn (Wn^0, Wn^1, Wn^2, Wn^3) | ||
+ | |||
+ | Bloco Wn^0: | ||
+ | |||
+ | [[Imagem:wn0.png] | ||
+ | |||
+ | Esquema interno Wn^0: | ||
+ | |||
+ | [[Imagem:wn0 int.png] | ||
+ | |||
+ | Bloco Wn^1: | ||
+ | |||
+ | [[Imagem:wn1.png] | ||
+ | |||
+ | Esquema interno Wn^1: | ||
+ | |||
+ | [[Imagem:wn1 int.png] | ||
+ | |||
+ | Bloco Wn^2: | ||
+ | |||
+ | [[Imagem:wn2.png] | ||
+ | |||
+ | Esquema interno Wn^2: | ||
+ | |||
+ | [[Imagem:wn2 int.png] | ||
+ | |||
+ | Bloco Wn^3: | ||
+ | |||
+ | [[Imagem:wn3.png] | ||
+ | |||
+ | Esquema interno Wn^3: | ||
+ | |||
+ | [[Imagem:wn3 int.png] | ||
=Viabilidade da implementação dos Modelos do projeto: [[INCENTIVANDO O USO DO SIMULINK NOS CURSOS DE TELECOMUNICAÇÕES]]= | =Viabilidade da implementação dos Modelos do projeto: [[INCENTIVANDO O USO DO SIMULINK NOS CURSOS DE TELECOMUNICAÇÕES]]= |
Edição das 07h05min de 8 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
"A fast Fourier transform (FFT) algorithm computes the discrete Fourier transform (DFT) of a sequence, or its inverse. Fourier analysis converts a signal from its original domain (often time or space) to a representation in the frequency domain and vice versa. An FFT rapidly computes such transformations by factorizing the DFT matrix into a product of sparse (mostly zero) factors.[1] As a result, it manages to reduce the complexity of computing the DFT from O(n^2), which arises if one simply applies the definition of DFT, to O(n \log n), where n is the data size." retirado de [1]
Arquivos das versões: Versões FFT
Documentação das modificações: Versões
- Versão 3_0 - ultima versão
Uma visão geral dos blocos:
Na imagem acima percebe-se que a versão 3_0 é composta por:
- FFT Decimation - É o grande subsystem do programa. Dentro dele se localiza todos os outros blocos vitais para o funionamento da FFT
- X0_ENTRY ~ X7_ENTRY -> Entradas da FFT. A versão 3_0 só suporta 8 entradas.
- x0 ~ x7 -> Saídas da FFT. A versão 3_0 tem 8 saídas.
- Bloco "Dfts" -> É onde está localizada as pequenas células que fazem o cálculos das butterflies.
- O subsystem Dfts possui 16 entradas. 8 delas são as entradas da FFT e as outras 8 são os Wn calculados
.
- Aqui dentro existem 12 blocos idênticos que são as células de cálculo da butterflie. (DFT_Wn0_11 ~ DFT_Wn043).
Em conjunto, os blocos do dft calculam as butterflies da seguinte forma:
Bloco isolado de cada butteflie:
Seu esquema interno:
- O bloco possui 2 entradas -> Nas primeiras butterflies essas entradas correspondem diretamente a entradas da FFT. Nos blocos seguintes essas entradas são os resultados das butterflies anteriores.
- Cada butterflie de forma isolada sua parte da seguinte forma:
- 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:
[[Imagem:Sen.png]
- Dentro do Mwn existem 4 blocos responsáveis pelas potências de Wn (Wn^0, Wn^1, Wn^2, Wn^3)
Bloco Wn^0:
[[Imagem:wn0.png]
Esquema interno Wn^0:
[[Imagem:wn0 int.png]
Bloco Wn^1:
[[Imagem:wn1.png]
Esquema interno Wn^1:
[[Imagem:wn1 int.png]
Bloco Wn^2:
[[Imagem:wn2.png]
Esquema interno Wn^2:
[[Imagem:wn2 int.png]
Bloco Wn^3:
[[Imagem:wn3.png]
Esquema interno Wn^3:
[[Imagem:wn3 int.png]
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.