Mudanças entre as edições de "Diego da Silva de Medeiros"
Linha 111: | Linha 111: | ||
:# 2015-1 - '''Aliny Anselmo''' - [[Detecção Automática de Crises Epiléticas em Sinais de Eletroencefalograma|Detecção automática de crises epilépticas em sinais de eletroencefalograma]] | :# 2015-1 - '''Aliny Anselmo''' - [[Detecção Automática de Crises Epiléticas em Sinais de Eletroencefalograma|Detecção automática de crises epilépticas em sinais de eletroencefalograma]] | ||
:# 2015-2 - '''Aline da Silva Damasio''' - Lixo eletrônico: Uma análise sobre a quantidade e as ações de descarte declaradas pelos sujeitos do Instituto Federal de Educação, Ciência e Tecnologia de Santa Catarina - Câmpus São José, nos últimos cinco anos <span style="color:red">'''(colocar link para o trabalho)'''</span> | :# 2015-2 - '''Aline da Silva Damasio''' - Lixo eletrônico: Uma análise sobre a quantidade e as ações de descarte declaradas pelos sujeitos do Instituto Federal de Educação, Ciência e Tecnologia de Santa Catarina - Câmpus São José, nos últimos cinco anos <span style="color:red">'''(colocar link para o trabalho)'''</span> | ||
− | :# 2016-1 - '''Bruna Amante''' - Sistema | + | :# 2016-1 - '''Bruna Amante''' - [[Sistema Ubíquo para Apoio na Vacinação de Crianças de 0 a 10 Anos de Idade]] |
+ | :# 2016-1 - '''Kamila Rose da Silva''' - [[Estudo de Circuitos Aritméticos e Implementação em Dispositivos Lógicos Programáveis]] | ||
== Publicações == | == Publicações == |
Edição das 19h52min de 11 de setembro de 2016
Tecnólogo em Sistemas de Telecomunicações pelo Instituto Federal de Santa Catarina e Mestre em Engenharia Elétrica pela Universidade Federal de Santa Catarina. É desde agosto de 2011 Professor da Área de Telecomunicações do Instituto Federal de Santa Catarina, Campus São José.
- ÍNDICE
Currículo
Dígitro Tecnologia LTDA
- Janeiro de 2007 a junho de 2008: Suporte técnico em centrais de grande porte
- Junho a outubro de 2008: desenvolvimento de plataforma para acompanhamento de rotinas de testes
Associação Beneficente da Indústria Carbonífera de Santa Catarina - SATC
- Agosto a dezembro de 2009: Professor na disciplina de Sistemas Lineares no curso de Engenharia Elétrica.
Instituto Federal de Santa Catarina - IFSC
Formação acadêmica
- 2009 - 2013
- Mestrado em Engenharia Elétrica
- Universidade Federal de Santa Catarina - UFSC
- Grupo de Pesquisa em Comunicações - GPqCom
- Título: Cancelamento de sinais interferentes usando arranjo de microfones: aplicação em aparelhos auditivos
- Orientador: Leonardo Silva Resende
- 2005 - 2008
- Graduação em Sistemas de Telecomunicações
- Instituto Federal de Santa Catarina - IFSC - Campus São José
- Título: Transmissão de Seqüências de Imagens Através da Rede Celular GSM/EDGE
- Orientadores: Marcos Moecke e Mario de Noronha Neto
Cursos realizados
- Janeiro de 2008 - NGC Nível I para credenciados técnicos - Dígitro - Certificado
- Setembro de 2013 - Tecnologia FPGA Altera. Macnica DHW, Florianópolis/SC. (Incluir certificado)
- Semestre 2014-1 - Programa Avançado de Matemática - PAM. UFSC, Florianópolis/SC.
- H-CÁLCULO I - 108h - Certificado
Viagens de estudo
- 29/11/2010 a 01/12/2010 - Acompanhamento de alunos na III Jornada da produção científica da educação profissional e tecnológica da região sul, no IF-PR, Câmpus Foz do Iguaçu.
- 18/11/2013 a 22/11/2013 - Acompanhamento de alunos em visitas técnicas aos estabelecimentos:
Orientações
TCCs do CST em Sistemas de Telecomunicações
- 2011-1 - Natan Martins Jory - Reconhecimento de moedas via processamento de imagens
- 2011-2 - Antônio Manoel dos Santos Neto - Estudo e Desenvolvimento de um Aplicativo para Monitoramento de Vídeo Proveniente de DVR
- 2013-1 - Thayse Christine da Silva - Detecção de Tumores em mamografia
- 2013-1 - Sant'Clear Ali Costa - Fretum: Sistema WEB de armazenamento de arquivos
- 2013-2 - Ana Paula Rosa Negri - Detecção de crises epilépticas baseada em sinais de eletroencefalograma utilizando a transformada Wavelet
- 2014-2 - Kelly Hilleshein - Reconhecimento de Moedas por Discriminação de Texturas
- 2014-2 - Patrícia Alves Machado - Detecção de problemas em filmes antigos via processamento de imagens digitais
- 2016-2 - Vinicius Antonio Hames - Interface para captura e processamento de imagens em FPGA (Em andamento)
Participação em bancas
TCCs do CST em Sistemas de Telecomunicações
- 2010-2 - Juliana Camilo Inácio - Implementação de um Rádio Definido por Software usando MATLAB e um Par Transmissor/Receptor FM
- 2011-1 - Natan Martins Jory - Reconhecimento de moedas via processamento de imagens
- 2011-1 - Mattia Vismara - Análise e aperfeiçoamento de um sistema didático de transmissão SDR utilizando o MATLAB e um par transmissor/receptor FM
- 2011-2 - Ivon Eduardo Esser Rosa - Projeto de Equalizador Paramétrico Avançado para Aplicações em MP3
- 2011-2 - Glaucio Bertelli Peres - Sistema de análise de sinais: Módulo de interface VGA em FPGA
- 2011-2 - Antônio Manoel dos Santos Neto - Estudo e Desenvolvimento de um Aplicativo para Monitoramento de Vídeo Proveniente de DVR
- 2011-2 - Jânio Anselmo - Identificações de Impressões Digitais em Tempo Real
- 2012-1 - André Lucas Schlichting - Implementações em VHDL de um filtro FIR para controle ativo de ruído
- 2013-1 - Thayse Christine da Silva - Detecção de Tumores em mamografia
- 2013-1 - Sant'Clear Ali Costa - Fretum: Sistema WEB de armazenamento de arquivos
- 2013-2 - Ana Paula Rosa Negri - Detecção de crises epilépticas baseada em sinais de eletroencefalograma utilizando a transformada Wavelet
- 2013-2 - Christiane Fernandes Dias e Silva - Análise de um Cenário Corporativo para Aplicação do Uso de Femtocélulas
- 2014-1 - Bruno Mauri da silva - Controle de áudio baseado na normalização Loudness
- 2014-2 - Anderson Felisbino - Sensoriamento espectral em redes de rádio cognitivo
- 2014-2 - Kelly Hilleshein - Reconhecimento de Moedas por Discriminação de Texturas
- 2014-2 - Rafael da Silva Pereira - AVASS - Ambiente Virtual de Aprendizagem de Sinais e Sistemas - Módulos Estendidos
- 2014-2 - Patrícia Alves Machado - Detecção de problemas em filmes antigos via processamento de imagens digitais
- 2015-1 - Aliny Anselmo - Detecção automática de crises epilépticas em sinais de eletroencefalograma
- 2015-2 - Aline da Silva Damasio - Lixo eletrônico: Uma análise sobre a quantidade e as ações de descarte declaradas pelos sujeitos do Instituto Federal de Educação, Ciência e Tecnologia de Santa Catarina - Câmpus São José, nos últimos cinco anos (colocar link para o trabalho)
- 2016-1 - Bruna Amante - Sistema Ubíquo para Apoio na Vacinação de Crianças de 0 a 10 Anos de Idade
- 2016-1 - Kamila Rose da Silva - Estudo de Circuitos Aritméticos e Implementação em Dispositivos Lógicos Programáveis
Publicações
Graduação
- Jogo “Cinco em Linha” na Internet: Programação de Sockets e implementação de um algoritmo com baixo processamento: Pôster apresentado na I Jornada da Produção Científica da Educação Profissional e Tecnológica da Região Sul, de 8 a 10 de agosto de 2007, em São José/SC.
- Transmissão de sequências de imagens através da rede celular GSM/EDGE: Artigo apresentado na II Jornada da Produção Científica da Educação Profissional e Tecnológica da Região Sul, 27 a 29 de agosto de 2008, em Pelotas/RS.
- Transmissão de sequências de imagens através da rede celular GSM/EDGE: Pôster apresentado na Semana Nacional de Ciência e Tecnologia, nos dias 21 a 23 de outubro de 2008, em Florianópolis/SC.
Alunos
2013:
- Ana Paula Rosa Negri - Identificação de Crises Epilépticas Baseado em Sinais de Eletroencefalograma Utilizando Reconhecimento de Padrões: Pôster apresentado na Semana Nacional de Ciência e Tecnologia do IFSC Campus São José, nos dias 23 a 25 de outubro de 2013, em São José/SC.
2014:
- Thayse Christine Silva - Detecção automática de tumores em mamografias utilizando técnicas de processamento digital de imagem: Artigo apresentado no XXIV Congresso Brasileiro de Engenharia Biomédica, de 13 a 17 de outubro de 2014, em Uberlândia/MG.
- Ana Paula Rosa Negri - Identificação de crises epilépticas baseada em sinais de eletroencefalograma utilizando a transformada Wavelet: Artigo apresentado no V Simpósio de Processamento de Sinais da UNICAMP, nos dias 15 a 17 de setembro de 2014, em Campinas/SP.
- Stephany Guimarães - MATLAB: Software de Estudos Matemáticos: Pôster apresentado na 2ª Mostra Científico-Cultural do IFSC Campus São José, nos dias 14 a 16 de outubro de 2014, em São José/SC.
- Davi Goulart - Arduíno e robótica: Robô seguidor de linha: Pôster apresentado na 2ª Mostra Científico-Cultural do IFSC Campus São José, nos dias 14 a 16 de outubro de 2014, em São José/SC.
- Patricia Alves Machado - Restauração de filmes antigos via processamento de imagens digitais: Pôster apresentado na 2ª Mostra Científico-Cultural do IFSC Campus São José, nos dias 14 a 16 de outubro de 2014, em São José/SC.
Projetos
- 2013
-
- Edital: Chamada interna simplificada para projetos de curta duração Nº 3/2013 Campus São José
- Função: Coordenador
- Bolsista: Ana Paula Rosa Negri
- Execução: 15 de agosto a 15 de dezembro de 2013
- Produção: Identificação de Crises Epilépticas Baseado em Sinais de Eletroencefalograma Utilizando Reconhecimento de Padrões - Pôster.
-
- 2014
-
- Edital: Chamada pública MEC/SETEC/CNPq Nº 94/2013
- Função: Coordenador
- Professor consultor: Marcos Moecke
- Bolsista externo (DTI-A): Edgard Ubaldo Guillen Salas (Lattes)
- Empresa parceira: CataMoeda Pesquisa e Desenvolvimento de Máquinas S/A
- Execução: Janeiro de 2014 a dezembro de 2015
-
-
- Edital: Chamada pública Nº 20/2014 PRPPGI Campus São José
- Função: Coordenador
- Bolsista: Davi Goulart Soares
- Execução: Maio a setembro de 2014
- Produção: Arduíno e robótica: Robô seguidor de linha - Pôster.
-
-
- Edital: Edital de curta duração Nº 1/2014 Campus São José
- Função: Coordenador
- Bolsista: Patricia Alves Machado
- Execução: Abril a junho de 2014
- Produção: Restauração de filmes antigos via processamento de imagens digitais - Pôster.
-
-
- Edital: Edital de curta duração Nº 1/2014 Campus São José
- Coordenador: Jeremias Stein Rodrigues
- Função: Professor ministrante
- Bolsista: Stephany Padilha Guimarães
- Execução: Abril a junho de 2014
- Produção: MATLAB: Software de Estudos Matemáticos - Pôster.
-
- 2015
- Título: Oficina de construção de robôs
- Edital: Edital para projetos didático-pedagógicos Nº 13/2015 PRPPGI Campus São José
- Função: Coordenador
- Professor palestrante: Fernando Bruinjé Cosentino
- Bolsista: Vitor Hugo de Oliveira Vargas
- Execução: Maio a novembro de 2015
Ações de extensão
Disciplinas lecionadas
Curso Técnico Integrado de Telecomunicações
- ICO60801 - Introdução à Computação, nos semestres:
- 2011-1
- 2011-2
- 2012-1
- 2013-1
- 2016-2 - Reestruturação da disciplina com a professora Evanaska Nogueira
- ANC60805 - Análise de Circuitos, nos semestress:
- 2016-1
Material preparado - Clicar no "+" para expandir | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Informações da disciplina
Planejamento
Diário de aula
AulasApresentação da disciplina
Circuitos R, L e C em corrente contínuaO capacitorNesta aula é vista a construção, finalidade básica e funcionamento do capacitor. Além disso, é introduzido o conceito de capacitância. A associação de capacitores e a realização do cálculo da capacitância equivalente é apresentada. Por fim, é feita a análise do funcionamento do capacitor na carga e descarga. A apostila de base está disponível no (Link). Para melhor entender o conceito de taxa de variação, ver applet (Link)
Resolver os exercícios nas últimas páginas da apostila O indutorOs princípios básicos de funcionamento do indutor é estudado, com base nos experimentos de Faraday e Lenz. A indutância, associação série e paralelo e os processos de carga e descarga serão vistos. A aula foi baseada principalmente no material no quadro, porém, a apostila dos outros semestres pode ser usada (Link)
Resolver os exercícios nas últimas páginas da apostila Regime permanente em corrente contínuaOs componentes estudados são trabalhados juntos num circuito em regime permanente em corrente contínua. Neste caso:
Resolver os exercícios disponíveis em (Link) Circuitos R, L e C em regime permanente em corrente alternadaSinais senoidaisAula de revisão sobre as características dos sinais senoidais, usando como base a apostila disponível no (Link). Discussões:
FasoresUma forma de trabalhar com sinais senoidais usando números complexos. Facilita os cálculos de circuitos de corrente alternada. A apostila da aula está disponível em (Link).
Resolver os exercícios nas últimas páginas da apostila Observação: os exercícios sobre o sinal senoidal e fasores serão cobrados num segundo momento, pois a próxima matéria não faz uso dessas ferramentas. Assim, os exercícios ainda devem ser resolvidos, mas a sua correção ficará para depois. Componentes em corrente alternadaNesta aula, o comportamento dos componentes em corrente alternada é estudado. É introduzido o conceito de reatância indutiva e capacitiva, bem como os atrasos de fase entre tensão e corrente causado pela presença desses componentes no circuito. A resposta em frequência dos componentes é apresentada através de slides. Circuitos em corrente alternadaImpedânciaA impedância é uma grandeza que indica o quanto um elemento consegue "impedir" a passagem de corrente. Ela faz com que a análise de circuitos em CA seja semelhante à análise de circuitos em CC. Circuitos série em CAPara um circuito série, a impedância equivalente vista pela fonte é calculada a partir da equação: Assim, as leis de Ohm e de Kirchhoff podem ser usadas da mesma forma que era usada em CC. Circuitos paralelo em CAPara um circuito paralelo, a impedância equivalente vista pela fonte é calculada a partir da equação: Assim, as leis de Ohm e de Kirchhoff podem ser usadas da mesma forma que era usada em CC. Uso da calculadora Casio fx-82msVer vídeo disponível no Link ExercíciosA lista de exercícios pode ser acessada em (Link). Uma lista complementar pode ser acessada em (Link). Laboratório - Circuitos em CAOs exercícios podem ser desenvolvidos em laboratório. Nesta aula, vamos usar simuladores para observar o comportamento dos circuitos em CA. Vamos usar os simuladores Multisim, na versão de demonstração de 2001 (para instalar em casa, baixar programa do Link), e o Partsim, ferramenta Web acessível em Link. Como exemplo, vamos desenvolver o circuito abaixo:
O laboratório consistirá em 3 partes:
Análise de Malhas
Análise de Nós
|
Curso Técnico Subsequente de Telecomunicações
- 2010-1: Finalização das disciplinas do professor Willi Gonçalez Osaka, substituto que pediu exoneração
- 2010-2:
- 2011-1:
- 2011-2:
- 2013-1:
- Introdução à Computação, formado pelas disciplinas SOP12501 - Sistemas Operacionais e MAN12501 - Manutenção de Computadores
- 2013-2:
Curso Superior de Tecnologia em Sistemas de Telecomunicações
- CMS20706 - Comunicações Móveis e sem Fio II, nos semestres:
- 2010-2
- 2011-1
- 2011-2
- 2012-1
- 2012-2
- CDI20705 - Comunicação Digital, nos semestres:
- 2012-1
- 2012-2
- PSD20706 - Processamento de Sinais Digitais, nos semestres:
- 2012-1
- 2012-2
- 2013-1
- 2013-2
- 2014-1
- 2014-2
- 2016-1
- 2016-2
Material preparado - Clicar no "+" para expandir | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Informações da disciplina
Diário de aula
AulasApresentação da disciplina
Tutorial de MatlabTutorial Linux.m Tutorial Windows.m Versão em PDF do tutorial Sinais em tempo discretoReferência: Capítulo 3 do Livro do Lathi, pg. 224. Introdução à Sinais em Tempo Discreto
* Simulação.m * u.m * s.m
* Exemplo 3.1, pg. 226 * Exemplo 3.2, pg. 227 * Exercício E3.1, ppg. 226 * Exercícios E3.2, E3.3, E3.4 e E3.5, pg. 230 Funções Úteis
* Simulação.m * u.m * d.m * Comandos usados na aula
* Exemplo 3.3, pg. 232 * Exercícios E3.6 e E3.7, pg. 234 * Exemplos de computador: * C3.1 para o sinal , mostrando o sinal no intervalo de 0 a 10 * C3.2 para o sinal , mostrando o sinal no intervalo de 0 a 33 Laboratório - Sinais digitais
* Codigo.m * Audio.mp3
* Imagem.jpg * Codigo.m - Aula do dia 23/08/2016 Avaliação - InterpolaçãoTerminar o processo de interpolação iniciado em aula. Já foi feito o processo para linhas, fazer para colunas e diagonais. * Codigo.m - Completo Sistemas em tempo discreto
Ver exemplo 3.8 do Lathi, pg. 247
* Simulação.m - Solução do exemplo 3.8
* Exercício 3.4-1 e 3.4-2 pg. 295 * Exemplo 3.8, pg. 247 * Exercício E3.10, pg. 249 * Exemplo de computador C3.3 para o sinal do exercício E3.10 * Descrever todas as equações diferença dos exercícios anteriores com Notação Operacional Solução de Sistemas e Resposta de Entrada Nula
* Exemplo 3.10, pg. 252 * Exercícios E3.11, E3.12 e E3.13, pg. 255 * Exercício de computador C3.4 para os sistemas dos outros exercícios Resposta ao Impulso e Resposta de Estado Nulo
Ver exemplo 3.12, pg. 258
Ver exemplo 3.13, pg. 262
* Exemplo 3.11, pg. 256 * Exemplo 3.12, pg. 258 * Exercício E3.14, pg. 259 * Exercício 3.7-4, pg. 298 * Exemplo 3.13, pg. 262 * Exercício E3.15, pg. 263 * Exemplo 3.14, pg. 264 * Exemplo de computador C3.6 * Criar uma função no Matlab para realizar a convolução entre dois sinais causais Laboratório - Reposta ao impulso
d = zeros(30000,1); d(1) = 1; d(15000) = 1;
Construir uma simulação no Matlab que lê um dos arquivos de áudio e cria um efeito de que a voz foi falada à 45° do ouvinte (estéreo).
Resposta Total e Estabilidade
* Exemplo 3.22, pg. 285 * Exercício 3.10-2, pg. 303 Avaliação 1 - Sinais e sistemas de tempo discreto
Para 2016-2, a prova será aplicada no formato de um trabalho, com prazo para entrega em 30/09/2016.
Transformada ZReferência: Capítulo 5 do Livro do Lathi, pg. 442. Definição da Transformada Z Direta e Inversa
* Exemplo 5.1, pg. 444 * Exemplo 5.2, pg. 446 * Exercício E5.1, pg. 448 * Selecionar alguns itens do exercício 5.1-2, pg. 516 * Exercício 5.1-4, pg. 517 * Exemplo 5.3, pg. 448 * Exercício E5.2, pg. 451 * Exercício 5.1-5, pg. 517
Propriedades da Transformada Z
* Exemplo 5.4, pg. 456 * Exercício 5.2-3, 5.2-7 e 5.2-9, pg. 518 Solução de sistemas usando a Transformada Z
* Exemplo 5.5, pg. 461 * Exercício E5.10, pg. 462 * Exercício E5.11, pg. 463 * Exercício E5.12, pg. 464 * Exercícios 5.3-2, 5.3-3, 5.3-5, 5.3-6, 5.3-7, 5.3-8, 5.3-10, pg. 519 * Exemplo 5.6, pg. 466 * Exercício 5.3-18, pg. 519 * Exercícios 5.3-19, 5.3-20, 5.3-21, 5.3-23, pg. 520
Resposta em Frequência de Sistemas em Tempo Discreto
Ver Exemplo 5.10 do Lathi, pg. 476
* Exemplo 5.10, pg. 476 * Exercício E5.18, pg. 479 * Exercícios 5.5-1, 5.5-2, 5.5-4, pg. 521 * Exercícios 5.5-5, pg. 522 * Exercício 5.6-1, pg. 522 Laboratório de Transformada Z
Avaliação 2 - Transformada Z
Análise de Fourier de Sinais em Tempo DiscretoReferência: Capítulo 9 do Livro do Lathi, pg. 738. Série de Fourier de Tempo Discreto
* Periodicidade_senoide.m * Espectro_Fourier.m -- Simples * ExemploC9_2.m * Espectro_Fourier_3D.m * Espectro_Fourier_3D_onda_quadrada.m
* Exemplo 9.2, pg. 745 * Exercício E9.2, pg. 744 * Exercício 9.1-1, 9.1-4, 9.1-5 e 9.1-6, pg. 783 Transformada de Fourier de Tempo Discreto
* Exemplo 9.3, pg. 752 * Exemplo 9.4, pg. 753 * Exemplo 9.5, pg. 754 * Exemplo 9.6, pg. 756 * Exercício E9.4 e E9.5, pg. 756 Laboratório de Transformada de Fourier
linspace() - função utilizada para criar vetores em intervalos lineares fft() - função que calcula a transformada de Fourier fftshift() - função auxiliar no trabalho com a transformada de Fourier
Avaliação 3 - Trabalho sobre Transformada de Fourier
Laboratório de Processamento Digital de ImagensEste laboratório é uma apresentação da Área de Processamento Digital de Imagens. É baseado em alguns materiais de alunos do professor Manuel Menezes de Oliveira Neto (página), da UFRGS. (Colorização) Filtros DigitaisReferência: Capítulo 4, 5 e 6 do Livro do Shenoi. Introdução aos Filtros Digitais
Filtros FIR e IIR
Filtros FIR janelados
* Simulação.m * u.m * d.m A janela Kaiser
Laboratório de Filtros DigitaisAvaliação 4 - Filtros Digitais
Avaliações de Recuperação
|
- SST20707 - Síntese de Sistemas de Telecomunicações, nos semestres:
- 2015-1
- 2015-2
- 2016-1
- 2016-2
Material preparado - Clicar no "+" para expandir | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ementa e referências bibliográficasInformações da disciplina
Diário de aula
AulasApresentação da disciplina
Dispositivos lógicos programáveis - PLDPLDs em sistemas digitaisSistema digital: Saída digital definida em função de processamento realizado em entrada digital.
Os sistemas digitais foram por muito tempo projetados usando a chamada lógica fixa, composta por CIs (circuitos integrados) TTL que implementavam portas lógicas. Em meados de 1970, foram introduzidos os PLDs (Programmable Logic Devices), chips de uso geral cujo hardware pode ser configurado para atender especificações. Com os PLDs, sistemas digitais poderiam ser projetados a partir de CIs genéricos, com funções definidas a partir de configurações armazenadas em memórias. Desta forma, os PLDs possuem as seguintes vantagens sobre sistemas de lógica fixa [2]:
Uma alternativa de projeto é o uso de microcontroladores, dispositivos programáveis a nível de software. Porém, mesmo nesses casos, os PLDs possuem vantagens [3]:
Em função da arquitetura e tecnologia empregada, os PLDs foram classificados em SPLDs (simple PLDs) ou CPLDs (complex PLDs). SPLDsSão denominados SPLDs os seguintes dispositivos:
Um arranjo programável de portas AND seguido por um arranjo fixo de portas OR.
Essa foi a primeira implementação de PLDs, e se baseia no fato de que qualquer função lógica pode ser reescrita como uma soma de produtos (SOP - sum of products) [4]. Por exemplo, sendo abaixo a tabela verdade da soma aritmética de um bit u de uma posição de um circuito somador, como função de x e y e do carry ci
Sendo as linhas 2, 3, 5 e 8, as que possuem saída 1, podemos escrever u como [5]:
Muito semelhante aos PALs, os PLA diferenciam-se no fato de que tanto as ligações AND quanto OR são programáveis.
Características adicionais com relação aos PALs:
Um exemplo dessa arquitetura pode ser visto na figura abaixo:
CPLDsComo o próprio nome já adianta, os CPLDs possuem arquitetura muito mais complexa que os SPLDs. De fato, os primeiros CPLDs eram formados pela interconexão programável de vários SPLDs, além de outros avanços. Na figura abaixo, a arquitetura básica de um CPLD:
FPGAs - Field programmable gate arrays - Arranjo de portas programável em campoOs FPGAs estendem as capacidades dos CPLDs, sendo diferentes em arquitetura, tecnologia, características embutidas e custo. Por serem voláteis, precisam de uma memória de configuração não volátil para armazenar a programação do hardware. Uma simplificação da arquitetura de FPGAs pode ser vista na figura abaixo. No caso, CLBs (configurable logic blocks) e LABs (logic array blocks) são blocos semelhantes à SPLDs GAL.
Além desses blocos, FPGAs costumam possuir também:
Comparação entre dispositivosUma comparação entre os dispositivos vistos nesta aula pode ser vista na figura abaixo:
onde as características de armazenamento do programa são:
Informações complementares
Referências
Tecnologia de FPGAOs FPGAs são compostos por três tipos de componentes:
Os 3 blocos são interconectados em duas dimensões, otimizando as conexões entre os blocos
IOBSão usados para fazer a interface de entrada e saída do FPGA. Consiste em um buffer de entrada e um de saída, ambos com flip-flops, permitindo que saídas com clocks sejam disponibilizadas sem encontrar atrasos significantes e reduzindo a necessidade de manter sinais de entrada por muito tempo.
CLB [3]Contêm a lógica do FPGA, como mostra a simplificação abaixo:
Neste bloco:
As funções lógicas são implementadas a partir de suas tabelas verdade nos elementos lógicos usando uma memória chamada de Lookup Table (LUT). Com isso, um bloco de configuração lógica também pode ser usado como uma memória, em diferentes configurações dependendo dos multiplexadores. Nesses casos, as entradas F1 a F4 e G1 a G4 fornecem endereços, e as entradas C1 a C4 fornecem os dados e sinais de enable. Chaves de interconexõesOs CLBs estão imersos numa rede de interconexões configuráveis. As conexões possíveis por cada bloco lógico podem ser vistas na figura abaixo.
Um FPGA com 64 blocos de configuração lógica seriam a repetição dessa figura numa matriz de 8x8
Para fazer a ligação entre CLBs vizinhos, o caminho unidirecional direct pode ser utilizado. Porém, para o roteamento de dados em maiores "distâncias", 3 outros caminhos são disponíveis, dispostos como a figura abaixo:
Na figura, uma Matriz de Comutação Programável (Programmable Switch Matrix - PSM) pode ser vista, além dos 3 caminhos indiretos:
Os blocos PSM introduzem atraso na propagação do sinal no FPGA. Os 3 caminhos introduzem versatilidade ao balancear atrasos e propagação em longas distâncias. O bloco PSM efetua a conexão entre pinos seguindo o esquema da figura abaixo. No esquema, os círculos vermelhos são chamados de Elementos de Comutação Programável (Programmable Switch Element - PSE).
Com isso, várias formas de conexão são possíveis, como exemplifica a figura a seguir:
NOTA: Os nomes dos blocos disponíveis nesta aula seguem os termos utilizados pela Xilinx, e os blocos referem-se a uma família específica, a XC4000E. Para fabricantes diferentes, ou mesmo famílias diferentes, mudanças podem ser observadas. Para informações sobre a arquitetura dos FPGAs da Altera, consultar [7]. Tabela comparativa entre FPGAsA tabela a seguir é um exemplo de dados de fabricantes, no caso, da Xilinx.
Informações complementares (Altera)Toda a arquitetura apresentada aqui foi baseada nos dispositivos fabricados pela Xilinx. Como dito acima, mais informação sobre dispositivos Altera pode ser encontrada na referência [7], além do curso abaixo:
Referências
Projetos em FPGAAlteraA Altera é uma das maiores fabricantes de FPGAs e CPLDs. Há no seu portfólio PLDs dos mais baixo custo até dos mais avançados do mercado. O Quartus II é o software de desenvolvimento de PLDs da Altera.
LicençaA licença de uso é dada da seguinte forma:
Uma comparação entre as edições Web e Full está disponível em Link. Para configurar uma licença, acessar Link. A licença Web é gerada em Link. Acesso ao Quartus IIPara acessar o Quartus II, ver página (Uso do Quartus II nos Labs do IFSC). Para acesso ao Quartus II via servidor Cloud, ver página (Acesso ao IFSC-CLOUD) Como obter informaçõesA Altera preparou uma série de materiais sobre o desenvolvimento usando o Quartus II. Existem cursos on-line e presenciais, pagos e gratuitos:
Quartus IIAbaixo, um roteiro para o reconhecimento do software da Altera:
Fluxo de desenvolvimento em PLDs
Projeto no Quartus II
Formas de desenvolvimentoIr em File -> New, e selecionar um dos Design Files disponíveis.
Nesta aula, usaremos o desenvolvimento via Esquemático - Block File.
Desenvolvimento via esquemáticoUm exemplo de sistema será usado para apresentar a ferramenta. O sistema que será desenvolvido está disponível na figura abaixo:
O desenvolvimento é feito a partir dos seguintes passos:
Utilizando o FPGAO kit DE2-115O Kit Altera DE2-115 pode ser visto na figura abaixo.
Algumas características do kit:
Informações sobre kits da AlteraVeja abaixo um resumo dos kits da Altera mais comumente utilizados. Informação importante e constantemente utilizada é a distribuição da pinagem do FPGA no kit.
Exercício 1 - EsquemáticoExecutar o roteiro disponível em Link. São informações complementares ao roteiro:
Outros exercícios
Referências
Introdução ao VHDLVHDL vem de VHSIC (Very High Speed Integrated Circuito) Hardware Description Language. É a linguagem padrão IEEE para a descrição de hardware na indústria.
Unidades do código VHDLO código VHDL é inicialmente dividido em 3 seções: PACKAGE ENTITY ARCHITECTURE PACKAGEDeclara as bibliotecas utilizadas no sistema. Usa o formato:
Duas LIBRARYs disponibilizadas automaticamente:
A declaração do pacote IEEE ficaria assim:
ENTITYDefine a visão externa do modelo (símbolo). Usa o formato:
onde:
ARCHITECTUREDefine a função do modelo (esquemático). Segue o formato:
onde:
Nomes para identificadoresOs identificadores das entidades, arquiteturas e portas devem ser compactos e informativos. Abaixo, exemplos de nomes bons e ruins.
Desenvolvimento via VHDLUm exemplo de sistema será usado para apresentar o Quartus II e o VHDL. O sistema que será desenvolvido está disponível na figura abaixo:
O desenvolvimento é feito a partir dos seguintes passos:
Concorrência do códigoOs código VHDL tem uma característica importante que é a concorrência. Assim, todas as instruções tem a mesma procedência, diferentemente das linguagens de programação. O exemplo abaixo demonstra isso:
A solução do problema pode ser vista abaixo:
Erros clássicosEm desenvolvimento com VHDL, são comuns os seguintes erros [3]:
Tarefa - Introdução ao VHDLLer os capítulos 1, 2 e 3 do livro [4], resolvendo os exercícios do capítulo 3. Referências
Objetos e atribuiçõesObjetosHá quatro tipos de objetos em VHDL: CONSTANT, SIGNAL, VARIABLE e FILE. Vamos ver agora os dois primeiros [1]. CONSTANTÉ uma forma de atribuir um valor constante a um nome. Não pode então ser alterada durante a execução. É utilizada para melhorar:
A declaração segue o formato:
SIGNALRepresenta a interconexão entre blocos. É declarada da seguinte forma:
Um valor inicial é opcionalmente passado ao objeto, da seguinte forma:
Bit e múltiplos bitsNa atribuição de valores binários, há diferenças de declaração entre um único bit ou múltiplos bits:
IndexaçãoÉ possível atribuir valores à membros específicos de um barramento (vetor). Abaixo, alguns exemplos ilustrativos:
É possível ainda usar vírgulas e os operadores OTHERS e => para fazer atribuições específicas [2]:
Bases numéricasÉ possível atribuir à barramentos valores em bases numéricas diferentes. Para isso, o seguinte formato pode ser usado:
Atribuições simultâneasUma das maiores diferenças de VHDL para linguagens de programação de software é que as atribuições do código VHDL são simultâneas. De fato, todas as atribuições dentro de uma arquitetura representam processos implícitos que executam em paralelo. Quando um sinal de entrada do processo é alterado, o novo valor é imediatamente atribuído à variável. São três os tipos de atribuições simultâneas no VHDL: SimplesSão da forma:
No exemplo abaixo, há dois processos implícitos, cujas atribuições de sinais são feitas simultaneamente:
CondicionalSão da forma:
O exemplo abaixo representa dois multiplexadores (A e B) em série, onde:
De certa forma, o operador condicional é semelhante ao operador if em linguagens de programação de software. De seleçãoSão da forma:
No exemplo abaixo, um multiplexador de 4 entradas (a, b, c, d) e uma seleção de 2 elementos sel é desenvolvido:
OperadoresAbaixo, um resumo dos operadores utilizados nas expressões: Lógicos
Aritméticos
Comparação
ConcatenaçãoPara concatenar valores, usa-se o operador &:
Exercícios - Objetos e atribuiçõesResolver os seguintes exemplos do capítulo 4 do livro [3]:
Resolver os exercícios do capítulo 4 do livro [3] (Pg. 48). Referências
AbordagensHá 3 tipos de abordagens para escrever arquiteturas em VHDL: Data-flow, Behavioral e Structural. Data-flow (fluxo de dados)Especifica o circuito como uma representação do fluxo de dados através do circuito. São informadas as relações entre as entradas que geram as saídas do modelo, ou como o dado de entrada "flui" até a saída, a partir das operações descritas. As atribuições simples, condicional e de seleção fazem parte da abordagem Data-flow. Vantagens:
Desvantagens:
Behavioral (comportamental)Não traz detalhes de como o sistema será quando sintetizado. Modela como as saídas do sistema irão reagir às entradas do sistema, e os detalhes de implementação são deixados para a ferramenta de sintetização. Enquanto a abordagem Data-flow descreve como o circuito deve ser, a abordagem behavioral descreve o seu comportamento. Assim, a abordagem comportamental é considerada de um nível de abstração maior. PROCESSÉ o coração da abordagem behavioral, pois seu corpo possui instruções sequenciais. Possui a forma:
onde:
Lista de sensibilidadeTemos abaixo duas formas diferentes de descrever a mesma função, uma operação de XOR entre as portas de entrada A e B.
Na abordagem Data-flow, a cada vez que um sinal (A ou B) é alterado, a expressão é avaliada e o sinal do lado esquerdo do operador de atribuição (F) é atualizado. Na abordagem Behavioral, para o corpo da função ser executado, é necessário que haja alteração num dos sinais presentes da lista de sensibilidade. É importante ter em mente no entanto que embora seja composta por instruções sequenciais, a estrutura process é executada simultaneamente com instruções Data-flow dentro da mesma arquitetura. Execução sequencialAs instruções no corpo de um process são sintetizadas de forma a serem executadas sequencialmente, como numa programação de software comum. Abaixo, serão demonstrados os 3 tipos de instruções sequenciais do VHDL.
São as instruções vistas nas aulas anteriores, com o operador de atribuição "<=".
É a versão sequencial para a atribuição condicional vista anteriormente. Segue a forma:
Considerações:
Versão sequencial para a atribuição de seleção vista anteriormente. Segue a forma:
Considerações:
Referências
Atribuições de variáveis em simulaçõesAs atribuições de sinais podem ser agendadas usando a instrução AFTER:
Mesmo quando não há um agendamento explícito, as atribuições de sinais não são executadas imediatamente após a instrução. Tanto em processos implícitos (atribuições simples, condicionais e de seleção) quanto em processos explícitos (instrução PROCESS), as atribuições são realizadas após um tempo chamado de Delta Delay. O Delta Delay é definido como o tempo necessário para que todos os processos simultaneamente em execução sejam encerrados. Após esse tempo, todas as atribuições sem agendamento indicado são realizadas. Isso significa que as atribuições realizadas dentro de processos explícitos só serão efetuadas após a conclusão do processo. A necessidade deste fato pode ser confirmada no exemplo a seguir [1].
Para o circuito apresentado, duas formas de avaliação podem ser utilizadas:
Se esse comportamento não for bem definido, erros graves podem ser gerados na fase de compilação. Por isso, os Delta Delays são utilizados, e o problema é resolvido da seguinte forma:
Nos códigos abaixo, três formas aparentemente semelhantes são exibidas. Você consegue confirmar se os códigos são funcionalmente iguais?
SimulaçãoA simulação do modelo VHDL segue duas fases: inicialização e ciclos de simulação.
O objeto VARIABLEDentro de processos explícitos (instrução PROCESS) o objeto VARIABLE pode ser utilizado. Sua declaração é igual à declaração de objetos SIGNAL, mas há algumas diferenças:
Além disso, como objetos VARIABLE só podem ser declarados dentro de instruções PROCESS, eles são de escopo local. Uma forma de alterar isso é utilizar um objeto SHARED VARIABLE, normalmente declarado na arquitetura. Uma SHARED VARIABLE possui escopo global, mas só pode ser modificada em códigos sequenciais (dentro de um PROCESS, por exemplo). A passagem do seu valor à um SIGNAL pode ser feita em qualquer lugar [4].
Assim como variáveis globais em linguagens de programação de software, é recomendado que objetos SHARED VARIABLE sejam usados apenas em casos muito específicos. A tabela abaixo resume as diferenças entre objetos SIGNAL e VARIABLE [4]:
Tarefas
Referências
Outros tópicos em VHDLTipos de dados definidos pelo usuárioO projetista pode também criar seus próprios tipos de dados. Eles podem ser declarados na entidade, arquitetura, entre outros. Tipos de dados devem ser definidos sempre que possível, pois melhora a legibilidade do código [1]. Tipos baseados em inteirosSão declarados usando a forma:
onde <faixa de valores> define a faixa de valores que o tipo de dado pode assumir. Usa as palavras chaves TO ou DOWNTO. Exemplos: type scores is range 0 to 100; type years is range -3000 to 3000; type apples is range 0 to 15; type oranges is range 0 to 15; Tipos enumeradosDefinem uma lista de valores. Seguem o formato:
onde <lista de nomes ou números> define os valores possíveis, separados por vírgula. Exemplos:
Tipos baseados em arranjosSeguem a forma:
Exemplos [2]:
Laços de repetiçãoNo corpo de processos explícitos é possível criar laços de repetição. São normalmente utilizados para atribuição de valores à múltiplas portas, contagem, etc. FORUsado quando o desenvolvedor sabe o número de iterações a serem realizadas. Segue a forma:
onde:
Exemplos:
WHILEUsado quando o desenvolvedor não conhece o total de iterações necessárias, pois elas são realizadas até uma condição determinada ser atingida.
Controle de iteraçõesO VHDL fornece também instruções para controle de iterações
Pula o restante da iteração atual do laço, passando para a próxima. Duas formas são disponíveis, como pode ser visto nos exemplos abaixo:
Encerra toda a estrutura de repetição. As duas formas disponíveis ao NEXT podem ser utilizadas. Repetição de códigoAssim como linguagens de programação de software, VHDL também traz ferramentas para evitar a repetição de códigos. No caso, são utilizadas as estruturas FUNCTION, PROCEDURE e COMPONENT. As duas primeiras serão vistas agora. FUNCTIONSão blocos de código que podem ser chamados para realizar tarefas determinadas. Características:
São declaradas da forma:
onde:
Funções podem ser declaradas na parte declarativa da ARCHITECTURE, e podem ser chamadas em qualquer lugar do código
PROCEDUREAssim como as FUNCTIONs, PROCEDUREs são usados para evitar a repetição de código. Características:
São da forma:
onde <argumentos> define a lista de sinais de entrada e saída do PROCEDURE, e cada argumento necessita do seu modo (in, out, inout).
TarefasResolver os exercícios abaixo usando ao menos um tipo de dado definido, uma estrutura de repetição e uma função ou componente.
Referências
Abordagem estruturalDas três abordagens para escrever arquiteturas em VHDL (Data-flow, Behavioral e Structural) nos falta a última, que será vista agora com a introdução de uma nova estrutura: COMPONENT. Para isso, o projeto de um sistema específico será usado como exemplo ilustrativo. Toda esta aula segue o "Capítulo 8 - VHDL Modularity with Components" de [1]. Em VHDL, a abordagem Estrutural é obtida a partir do uso de uma estrutura chamada COMPONENT. O desenvolvimento de uma COMPONENT pode ser dividido nas etapas abaixo:
Assim, a estrutura COMPONENT é semelhante à criação de bibliotecas próprias na programação de software, com a criação de pequenos módulos (ou funções) e sua posterior declaração e utilização no código principal. Esta semelhança pode ser vista na tabela abaixo:
O exemplo: Comparador de 3 bitsO exemplo que será utilizado para demonstrar a abordagem estrutural pode ser visto na figura abaixo. São características:
Desenvolvendo o sistema usando a abordagem EstruturalA partir do sistema, a abordagem Estrutural segue os 5 passos abaixo:
Implementar os módulos do circuitoComo pode ser visto, o sistema faz uso de dois sistemas menores: a porta XNOR de 2 entradas e a porta AND de 3 entradas. Assim, é necessário implementar essas duas entidades. No Quartus II, criar um projeto novo com o nome da entidade de nível mais alto my_compare. Após isso, criar os dois arquivos abaixo:
Repare que os arquivos são desenvolvidos da mesma forma que sistemas como um todo. Declarar a entidade de nível mais altoAgora o comparador começará a ser desenvolvido, no arquivo my_compare.vhd. Como todo sistema, inicia-se pela entidade. A partir do diagrama acima e com base nas considerações apresentadas, a entidade será:
Declarar os módulos de mais baixo nívelA declaração das portas desenvolvidas (XNOR e AND3) no código principal são feitas usando as COMPONENTs. Para isto, basta copiar as ENTITYs criadas nos outros arquivos para a parte declarativa da ARCHITECTURE, alterando a palavra-chave ENTITY para COMPONENT.
Declarar os sinais internos usados para conectar os módulosOs sinais internos presentes no diagrama são declarados na arquitetura. Eles são utilizados para a interligação dos módulos criados. Instanciar as unidadesO último passo é criar as instâncias dos módulos. Isto é feito mapeando os sinais de entrada e saída das componentes no corpo da arquitetura. É usada a palavra-chave PORT MAP.
No caso acima, é usado o chamado mapeamento direto. Nele, a associação dos sinais da entidade de nível mais alto com os sinais internos das componentes é feito usando o operador "=>". Uma alternativa é usar o mapeamento implícito, onde os sinais da entidade de nível mais alto são associados pela ordem da declaração:
Sistema finalizadoO código completo pode ser visto na figura abaixo:
Mapeamento de constantesO mapeamento pode ser realizado para, além das portas, as GENERICs. Com isto, sistemas genéricos podem ser criados, facilitando futuras implementações. A entidade abaixo realiza a checagem de paridade de um número genérico de bits. Repare na declaração de n como um GENERIC.
Essa entidade é utilizada numa entidade de nível maior, como pode ser visto abaixo. Repare na instrução GENERIC MAP, que assim como o PORT MAP, faz o mapeamento do número de sinais de entrada a serem utilizados.
TarefasResolver exercícios do capítulo 8, pg 129, do livro [1]. Referências
Avaliação 1 - Sistemas combinacionais
Avaliação do semestre atualDesenvolver o sistema comparador do diagrama abaixo: As seguintes considerações devem ser feitas:
Circuitos sequenciais em VHDLMuitos sistemas precisam armazenar valores por períodos de tempo determinados. Nesta aula, vamos estudar como desenvolver esse tipo de sistema em VHDL. Baseados no capítulo 6 do livro [1], vamos desenvolver um Flip-Flop do tipo D, elemento de armazenamento de 1 bit. Flip Flop tipo DA figura abaixo apresenta o diagrama de um flip flop tipo D;
Abaixo, os estados possíveis do Flip Flop. Flip Flop tipo D em VHDL
Abaixo, a solução do problema.
Comentários:
Entrada set síncrona e ativo-baixoNeste caso, o Flip Flop tem as seguintes características:
A solução para o problema pode ser vista abaixo:
Comentários:
Entrada reset assíncrona e clock na borda de descidaNeste caso, o Flip Flop tem as seguintes características:
A solução para o problema pode ser vista abaixo:
Comentários:
Flip Flop tipo TA figura abaixo apresenta o diagrama de um flip flop tipo T;
Abaixo, os estados possíveis do Flip Flop. Flip Flop tipo T em VHDL
Abaixo, a solução do problema.
Comentários:
TarefasFazer exercícios 1 a 6 do capítulo 6 (pg 86) do livro [1]. Referências
AtributosTem por finalidade permitir a construção de códigos genéricos e monitorar sinais. Abaixo, alguns dos atributos mais utilizados: Atributos de tipos escalaresTendo sido criado um tipo enumerado, e uma variável deste tipo:
Alguns dos atributos disponíveis são:
Atributos de sinaisSão utilizados para monitorar mudanças em sinais. O mais comum deles é o s'EVENT, que retorna TRUE quando houve uma alteração de valor no sinal s. PacotesOs pacotes são utilizados para realizar operações comuns. Podem ser utilizados para fazer declarações gerais ou descrever subprogramas. Segue a forma:
Podem ser declaradas componentes, funções, generics e tipos de dados. A parte declarativa do pacote é utilizada para declaração de dados e o protótipo da função (parte do cabeçalho até "IS"). No corpo, as funções são construídas. Exemplo de sistema sequencialO exemplo abaixo, vindo de uma avaliação da disciplina do semestre 2015-1, implementa um relógio digital para contagem dos segundos. Foi desenvolvido a partir da seção 22.3 do livro do Pedroni [1], pelos alunos Nicole, Renan, Leonardo. Referências
Avaliação 2 - Sistemas sequenciais
Avaliação do semestre atualConstruir um relógio digital no kit Altera DE2-115. O relógio deve ter as seguintes características:
A avaliação será feita em duas partes:
Referências
Conversão de tipos de dados em VHDL
Máquina de estados finitos em VHDLIntrodução às máquinas de estados finitosUma Máquina de Estados Finitos (FSM - Finite State Machine) é um modelo matemático usado para representar sistemas. O estado atual é composto pelas informações armazenadas no sistema, e sofre modificações à medida que condições necessárias são atingidas. Assim, o próximo estado da máquina depende do estado atual e da entrada da máquina. Um exemplo de uso de uma FSM é a codificação convolucional. Outro exemplo são os porteiros eletrônicos com senha. O estado inicial indica que o sistema está aguardando os caracteres na entrada, e o último estado indica que a senha está correta. Os demais estados são o número de caracteres corretos entrados, e a entrada que faz o sistema transitar entre os estados é a senha correta.
Para um texto interessante sobre FSM, consultar o Link A figura abaixo apresenta um esquema de uma FSM. As entradas externas e o estado atual são convertidos pelo decodificador (Next State Decoder) para definir o próximo estado. No próximo pulso de clock, o novo estado é armazenado pelo registrador (State Registers), e o decodificador de saída (Output Decoder) define a saída baseado nesse novo estado.
Implementação em VHDLA implementação em VHDL de uma máquina de estados segue o esquema da figura abaixo. São comentários dessa abordagem:
Seguindo a abordagem do livro [1], a implementação será apresentada via exemplos:
Vamos escrever o código VHDL que implementa a máquina de estados da figura abaixo. À direita, a caixa-preta do sistema (dica para a declaração da entidade):
O código com a solução está disponível na figura abaixo:
São comentários da solução:
Uma possível necessidade do projeto de FSMs, é que o estado atual seja também uma saída. Nesse caso, o sistema agiria como o diagrama ao lado, e o código de solução para o problema pode ser visto abaixo: Comentários:
Vamos escrever o código VHDL que implementa a máquina de estados da figura abaixo. À direita, a caixa-preta do sistema (dica para a declaração da entidade):
O código com a solução está disponível na figura abaixo:
São comentários da solução:
Vamos escrever o código VHDL que implementa a máquina de estados da figura abaixo. À direita, a caixa-preta do sistema (dica para a declaração da entidade):
O código com a solução está disponível na figura abaixo:
São comentários da solução:
Implementação no kit didáticoAlguns problemas podem ocorrer no momento da implementação real num kit didático. Abaixo, são destacadas algumas soluções conhecidas: Problema "State-Bypass"Quando botões são usados para gerar a transição entre estados, o uso do nível faz com que sejam efetuadas múltiplas transições entre os estados. O código abaixo resolve esse problema, a partir do uso de um "Flag". Esta solução foi retirada da seção 11.5 do livro [3].
TarefasResolver os exercícios do capítulo 7 do livro [1] indicados abaixo. Desconsidere a frase "The state variables should be encoded as listed" nos exercícios.
Estudar os exemplos dos capítulos 23.1 e 23.3 do livro [2]. Referências
Simulação de circuitos usando VHDLNesta aula, vamos entender como usar o VHDL para simular um circuito. Assim, o VHDL pode ser usado para:
Toda esta seção é baseada no capítulo 24 e no anexo A (Link) do livro [1]. Tipos de testbenchesA simulação em VHDL é dividida em funcional e temporal, onde a segunda inclui os tempos de propagação dos sinais dentro do circuito. Assim, adicionando a possibilidade de verificar automaticamente as saídas produzidas pelo sistema, são 4 os tipos de testbenches disponíveis em VHDL:
Instruções de tempo em VHDLPara definir os sinais a serem usados nas simulações, estão disponíveis instruções temporais em VHDL: AFTERRealiza a atribuição (concorrente) após um período de tempo pré-definido:
A instrução acima indica que A receberá o resultado de "B and C", 5 nano segundos após a geração do evento que fez a instrução ser executada (alteração nos sinais B ou C). WAITUsado dentro de processos explícitos (sequencial) sem lista de sensibilidade, o WAIT faz o processo aguardar 3 tipos de situações:
Geração de sinais para simulaçãoAbaixo, formas de gerar sinais para simulação, mostradas na figura abaixo:
Formas de onda periódicas regularesUsadas geralmente na construção de sinais de clock.
Formas de onda de um só pulsoUsadas principalmente na geração de sinais de enable ou reset. Por não trazer uma condição limite, a última instrução WAIT prende a execução do processo.
Formas de onda não periódica irregularPodem ser utilizadas para simular um padrão de entrada de um sistema de comunicação.
Formas de onda periódica irregular
Formas de onda Multibit
Geração de TestbenchesUm código genérico para gerar testbenches está disponível abaixo. Repare que o DUT (Design Under Test) é trazido para o testbench como uma componente, e são gerados os sinais de entradas como na seção anterior.
onde:
Testbenches tipo 1 e 2Nestes tipos de testbench, temos uma simulação sem e com os atrasos de propagação e a verificação dos resultados é feita sempre manualmente. Será feita a simulação para um sistema divisor de clock, que divide o seu clock de entrada por 10. Uma entrada enable (ena) ativa alta é prevista para habilitar a divisão de clock ou não (saída zero). O código VHDL do sistema a ser testado (DUT) está disponível abaixo:
E o código VHDL do testbench é:
Para executá-los no Modelsim, estudar as seções 24.6 e 24.7 do livro [1], fazendo uso do apêndice A do mesmo livro, disponível em (Link). Executando o Modelsim no Laboratório de programaçãoExecutar a linha abaixo para abrir o Modelsim: /opt/altera/13.0/quartus/modelsim_ase/linuxaloem/vsim Para acesso via Cloud, ver tutorial em Link. Um tutorial interessante sobre o uso do Modelsim foi escrito pelo Professor Marcos Moecke, disponível em Link Testbenches tipo 3Este caso representa as simulações com verificação automática, sem a consideração dos atrasos de propagação. Vamos usar o mesmo projeto de divisor de clock da seção anterior, porém o testbench é modificado com as instruções de verificação. O código do testbench pode ser visto abaixo:
São comentários:
A execução dos testes no Modelsim segue o tutorial do exemplo anterior. Repare que como o sinal template não recebe a informação do valor inicial, o Modelsim cairá no caso em que ele e output são diferentes. Para corrigir este provlema, basta adicionar o valor inicial ao sinal. Testbenches tipo 4A principal diferença do tipo 3 para o tipo 4 é que o sinal desejado deve considerar os atrasos de propagação. Para isso, faz-se um teste com a verificação manual (tipo 2) e analisa-se o atraso gerado. Este atraso deve ser incluído no sinal desejado. No exemplo da seção anterior, a única diferença é que o atraso inicial do sinal de saída desejado seria maior que 330 ns. Referências
Signal TapNesta aula temos um caso de uso da ferramenta de depuração Signal Tap, disponível no Quartus II. Na apresentação, é criado um sinal senoidal usando o MegaWizard, e o sinal é visualizado na ferramenta. A aula é baseada totalmente no desenvolvimento do sistema e configuração das ferramentas, e um tutorial sobre o Signal Tap pode ser visto em Configuração e uso do Signal Tap. Oficina NCO e Filtros DigitaisNesta aula construiremos um sistema composto pela geração de sinais senoidais e a construção de filtros digitais em FPGAs Altera, usando o Quartus II. O sistema criado gera sinais senoidais de 1 MHz e 4 MHz, soma os dois sinais e realiza uma filtragem passa baixas, visando manter apenas o sinal de 1 MHz. Um passo a passo está disponível em Link. Nios IIA Altera disponibiliza um processador para ser embarcado no FPGA, chamado de Nios II. Vamos desenvolver uma aplicação simples em software e fazê-la rodar no FPGA. O sistema consistirá dos seguintes blocos: Vamos precisar destes documentos para desenvolver este tutorial:
Avaliação 3
Avaliação do semestre atualA avaliação final consistirá da finalização do relógio digital iniciado na avaliação 2. MacetárioAbaixo, as estruturas da linguagem VHDL:
ReferênciasSitesLivros, artigos, apostilas |
Engenharia de Telecomunicações
- PJI29008 - Projeto Integrador III, nos semestres:
- 2016-1
- 2016-2
Gestão, Comissões e Representações
Para acesso às portarias, consultar Página
Homenagens
- Paraninfo da turma de 2010-1 do Curso Técnico Subsequente de Telecomunicações, com ênfase em Redes de Computadores. Em 25 de agosto de 2011.
- Paraninfo da turma de 2010-2 do Curso Técnico Subsequente de Telecomunicações, com ênfase em Telefonia. Em 29 de março de 2012.
- Nome de turma da turma de 2010-2 do Curso Superior de Tecnologia em Sistemas de Telecomunicações. Em 22 de março de 2014.
- Nome de turma da turma de 2011-2 do Curso Superior de Tecnologia em Sistemas de Telecomunicações. Em 07 de março de 2015.
- Paraninfo da turma de 2012-1 do Curso Superior de Tecnologia em Sistemas de Telecomunicações. Em 10 de setembro de 2015.
- Paraninfo do Curso Superior de Tecnologia em Sistemas de Telecomunicações. Em 07 de abril de 2016.
Assuntos de interesse
Processamento de imagens
- Página do professor Dennis Giovani Balreira, da UFRGS, sobre a disciplina de Fundamentos de Processamento de Imagens Link.
- Lugar onde se pode pegar as imagens para testes Link