Você está na página 1de 5

UNIVERSIDADE ESTADUAL DE FERA DE SANTANA

DEPARTAMENTO DE TECNOLOGIA/ÁREA DE ELETRÔNICA E SISTEMAS


TEC499 – MI – SISTEMAS DIGITAIS

Problema #2 – Conectando-se à Internet das Coisas


1 Tema

Desenvolvimento de interfaces E/S para o Processador NIOS

2 Objetivos de Aprendizagem

Ao final da realização deste problema você deve ser capaz de:


• Projetar circuitos digitais utilizando Linguagem de Descrição de Hardware (Verilog);
• Implementar testes de unidade e de integração para módulos Verilog;
• Compreender a comunicação entre o processador e a interface ethernet;
• Identificar características de operação e restrições em projetos de sistemas digitais;
• Analisar a implementação de circuitos sob o ponto de vista de dispositivos FPGA;
• Compreender a integração de sistemas digitais em nível de microarquitetura.

3 Contexto

Febre. Moda. Hype. Qualquer uma das três palavras descreve bem o cenário do conjunto de tecnologias conhecida
como Internet das Coisas (IoT, do inglês, Internet of Things). Uma profusão de plataformas em nuvem, sensores,
hardware diversos e módulos vêm aparecendo, gerados pelos mais diversos fabricantes. Intel, Microsoft, Samsung,
ARM, Google, IBM, Apple, só para citar algumas gigantes, têm hoje setores devotados a criar soluções para IoT.
Com este panorama, é ainda difícil dizer quais serão os líderes de mercado dos próximos anos em IoT, se é que
teremos algum.
Na área de protocolos não é diferente, inúmeras propostas e implementações já existem. Leves mudanças
de escopo, algumas pequenas diferenças de casos de uso já são suficientes para que a companhia proponha o seu
novo protocolo para IoT.
Um dos protocolos de troca de mensagens para IoT em uso recente é o MQTT (Message Queue Telemetry
Transport). Criado pela IBM no final da década de 90, obviamente o protocolo carrega muito do cenário de uso
original, mais voltado e adaptado para sistemas de supervisão e coleta de dados do tipo SCADA (Supervisory
Control and Data Acquisition ou Sistemas de Supervisão e Aquisição de Dados, em português). Mas, mesmo assim,
o MQTT encontrou seu espaço nesse amplo mercado de IoT. (Extraído de https://www.embarcados.com.br/mqtt-
protocolos-para-iot/)

4 Problema

O processador sintetizado e testado seguirá para uma nova fase de desenvolvimento, onde ele deverá ser imple-
mentado em uma plataforma dotada de um dispositivo FPGA e periféricos de E/S.
Até então, a plataforma SoC desenvolvida é apenas uma interface simples (chaves, botões e LEDs). Visando
um projeto de baixo custo, o cliente decidiu utilizar uma FPGA simples, que possui uma menor quantidade de
LEs. Ele também resolveu utilizar um módulo ESP-01 que utiliza o CI ESP8266 para implementar uma conexão
sem fio. Deste modo, a Integrated IP LLC. foi destacada para desenvolver um sistema digital que publique
mensagens em um Broker MQTT. A mensagem a ser transmitida será escolhida através da IHM já desenvolvida.

5 Requisitos

O SoC desenvolvido precisa ser embutido em dispositivo FPGA e deve atender as seguintes restrições:

Página 1 de 5
• Interligar o módulo ESP-01 ao processador embutido no dispositivo FPGA Cyclone IV EP4CE30 presente
na plataforma de testes Mercurio IV;
• Utilizar o ESP-01 no modo Comandos AT;
• Implementar a UART no processador desenvolvido;
• Deve ser utilizada a IHM previamente desenvolvida.

6 Produto

No prazo indicado no cronograma a seguir, cada equipe deverá apresentar:

1. Teste de comunicação entre a UART e um computador;


2. SoC composto pelo processador e os controladores de interface E/S;
3. Código do Publisher MQTT desenvolvido para o processador NIOS II;
4. Um relatório técnico contendo informações acerca das etapas de síntese lógica e física dos controladores,
incluindo, mas não limitando-se a: (i) indicação do caminho crítico do circuito; (ii) área total ocupada pelo
circuito em função dos elementos internos do dispositivo FPGA (número de LEs por modo de operação,
número de LABs, número de registradores, número de blocos de memória).

7 Cronograma
Turmas P01
Semana Data Descrição
01/07/2019 (seg) Ponto facultativo
17
04/07/2019 (qui) Apresentação do Problema #2
08/07/2019 (seg) Sessão Tutorial #1
18
11/07/2019 (qui) Sessão Tutorial #2
15/07/2019 (seg) Lab2 – Layout físico de circuitos FPGA
19
18/07/2019 (qui) Sessão Tutorial #3
22/07/2019 (seg) Sessão Desenvolvimento – Problema 2
20
25/07/2019 (qui) Sessão Tutorial #4
29/07/2019 (seg) Entrega do Problema #2
21
01/08/2019 (qui) Apresentação do Problema #3

Turmas P02
Semana Data Descrição
01/07/2019 (seg) Ponto facultativo
17
04/07/2019 (qui) Apresentação do Problema #2
08/07/2019 (seg) Sessão Tutorial #1
18
11/07/2019 (qui) Sessão Tutorial #2
15/07/2019 (seg) Sessão Tutorial #3
19
18/07/2019 (qui) Lab2 – Layout físico de circuitos FPGA
22/07/2019 (seg) Sessão Tutorial #4
20
25/07/2019 (qui) Sessão Desenvolvimento – Problema 2
29/07/2019 (seg) Entrega do Problema #2
21
01/08/2019 (qui) Apresentação do Problema #3

Página 2 de 5
Turmas P03
Semana Data Descrição
01/07/2019 (seg) Ponto facultativo
17
03/07/2019 (qua) Apresentação do Problema #2
08/07/2019 (seg) Sessão Tutorial #1
18
10/07/2019 (qua) Sessão Tutorial #2
15/07/2019 (seg) Sessão Desenvolvimento – Problema 2
19
17/07/2019 (qua) Sessão Tutorial #3
22/07/2019 (seg) Lab2 – Layout físico de circuitos FPGA
20
24/07/2019 (qua) Sessão Tutorial #4
29/07/2019 (seg) Entrega do Problema #2
21
31/07/2019 (qua) Apresentação do Problema #3

Turmas P04
Semana Data Descrição
01/07/2019 (seg) Ponto facultativo
17
04/07/2019 (qui) Apresentação do Problema #2
08/07/2019 (seg) Sessão Tutorial #1
18
11/07/2019 (qui) Sessão Tutorial #2
15/07/2019 (seg) Sessão Tutorial #3
19
18/07/2019 (qui) Sessão Desenvolvimento – Problema 2
22/07/2019 (seg) Sessão Tutorial #4
20
25/07/2019 (qui) Lab2 – Layout físico de circuitos FPGA
29/07/2019 (seg) Entrega do Problema #2
21
01/08/2019 (qui) Apresentação do Problema #3

Turmas P05
Semana Data Descrição
02/07/2019 (ter) Feriado
17
04/07/2019 (qui) Apresentação do Problema #2
09/07/2019 (ter) Sessão Tutorial #1
18
11/07/2019 (qui) Sessão Tutorial #2
16/07/2019 (ter) Lab2 – Layout físico de circuitos FPGA
19
18/07/2019 (qui) Sessão Tutorial #3
23/07/2019 (ter) Sessão Desenvolvimento – Problema 2
20
25/07/2019 (qui) Sessão Tutorial #4
30/07/2019 (ter) Entrega do Problema #2
21
01/08/2019 (qui) Apresentação do Problema #3

8 Avaliação

Para avaliar o envolvimento do grupo nas discussões e na apresentação, o tutor poderá fazer perguntas sobre o
funcionamento de qualquer componente, a qualquer membro, tanto nas sessões tutoriais quanto na apresentação.

Página 3 de 5
Formato da Avaliação

A nota final será a composição de 3 (três) notas parciais:

Desempenho nota de participação individual nas sessões tutoriais, de acordo com o interesse e
Individual entendimento demonstrados pelo aluno, assim como sua assiduidade, pontualidade
e contribuição nas discussões; Peso: 4,0 pontos.

Documentação nota atribuída à cada grupo, referente ao relatório técnico; Peso: 3,0 pontos

Processador nota atribuída à cada grupo, oriunda da análise da implementação em Verilog do


processador, incluindo sua descrição funcional e estruturas de teste/validação; Peso:
3,0 pontos.

9 Orientações

Vide Problema #1.

Geral

O atendimento ao que está sendo solicitado somente será possível com a organização do grupo, visitas aos labo-
ratórios e trabalho de pesquisa, em fontes confiáveis, fora do horário das reuniões tutoriais. As reuniões tutoriais
deverão ser usadas para análise, explanações sobre o que foi estudado, levantamento de hipóteses e para tomadas
de decisão. É recomendado ainda que todos os membros do grupo tutorial mantenham-se atualizados quanto à
possíveis alterações no cronograma, ou nos requisitos do problema por meio de acesso ao sítio do módulo, acessível
em: http://sites.ecomp.uefs.br/tec499.
Nós encorajamos fortemente que os grupos trabalhem juntos, no sentido da troca ideias acerca das suas
propostas de solução. A melhor forma de desenvolver novas habilidades é comparar hipóteses e discutir aspectos
de projeto com seus colegas e professores (inclusive com o seu tutor). Todavia, sob nenhuma circunstância,
compartilhe seu código-fonte.

Versionamento

Um dos critérios de avaliação utilizados em TEC499 é a análise do projeto final por meio de uma ferramenta
de controle de versionamento de código-fonte. Toda avaliação será conduzida a partir do conteúdo armazenado
neste repositório, sendo de inteira responsabilidade do grupo a manutenção da sua integridade.
Cada grupo deve indicar em um arquivo README as instruções de compilação síntese e execução dos testes.
Além disso, recomenda-se que os testes sejam especificados em uma pasta exclusiva, contendo um novo arquivo
README especificando a estrutura e descrevendo, de forma, objetiva, cada um dos testes.

Documentação Técnica

A documentação deve seguir o modelo adotado na disciplina, baseado no ipPROCESS e apresentar (não exclusi-
vamente) os seguintes elementos:

– Uma introdução contendo uma descrição geral do propósito do documento e como ele está organizado,
além de uma lista de possíveis acrônimos e abreviações utilizadas ao longo do mesmo;
– Uma visão geral da arquitetura do processador, de forma textual, usando elementos gráficos (ou melhor,
ambos), incluindo ainda as principais características e requisitos funcionais e não funcionais;
– Descrição completa e detalhada da arquitetura do conjunto de instruções do processador;

10 Recursos

Visite a página da disciplina para ter acesso ao acervo de documentos e modelos de documentação indicados para
uso no decorrer do semestre.

Página 4 de 5
Referências

BROWN, S. D.; VRANESIC, Z. G. Fundamentals of Digital Logic with Verilog Design. 2nd. ed. [S.l.]:
McGraw-Hill Higher Education, 2008.

HARRIS, D. M.; HARRIS, S. L. Digital Design and Computer Architecture. 2. ed. USA: Elsevier, 2013. ISBN
9780123944245.

KILTS, S. Advanced FPGA Design: Architecture, Implementation, and Optimization. [S.l.]: John Wiley & Sons,
2007.

PATTERSON, D. A.; HENNESSY, J. L. Arquitetura de Computadores. 3. ed. Brasil: Editora Elsevier, 2014.
709 p. Impresso. ISBN 9788535235852.

SPEAR, C. System Verilog for Verification : A Guide to Learning the Testbench Language Features. 2nd. ed.
[S.l.]: Springer, 2008.

Página 5 de 5

Você também pode gostar