Você está na página 1de 26

Projeto EA075

Prof Dr Leticia Rittner (Turma U)


Prof Dr Levy Boccato (Turma A)
Leandro Aparecido Sangalli (PED)

EA075 - Introduo ao Projeto de


Sistemas Embarcados.

O que um Sistema Embarcado?


Homer: Um sistema Embarcado?
Lisa: um Sistema Embarcado!
Homer: Huuuuummmm!!!!!!!!!!
Homer: Ha! Um Sistema, o qu?
Lisa: Embarcado!!!
Homer: Ha!!! um sistema com estrutura interna
(processador,
memria,
dispositivo
para
armazenamento, etc) semelhante a de um
computador pessoal dedicado a executar de
forma satisfatria determinada tarefa.
2

Exemplos de sistemas embarcados


Smartphones

MP3 players

PDAs
PDAs

Internet das coisas

Curiosidades
Smartphones
Samsung Galaxy y (ARMv6)
Samsung Galaxy S4 (ARM Cortex A-9)
Iphone 3 (ARM Cortex A8)
Outros modelos de Iphones
Iphone 5s (Apple A7 ARM 64 bits)

Internet das coisas


Conecta aparelhos do nosso dia-a-dia a
Internet provendo diferentes servios.

Principal Objetivo da disciplina


EA075
Mostrar que tudo que pode ser feito em
Software pode ser feito em Hardware
(co-design).

Objetivos das Atividades Prticas


Desenvolver as mesmas atividades em Software e
Hardware, em nosso caso, utilizaremos o simulador
ARMSim# (Software) e uma linguagem de descrio de
Hardware, o VHDL (Hardware).
Resultados esperados: perceber na prtica as principais
diferenas do desenvolvimento de projetos para
Software e para Hardware.
OBSERVAO IMPORTANTSSIMA: No vamos
aprender tudo sobre arquiteturas ARM e nem sobre
programao em VHDL.
Vamos ficar bem longe disso!
6

Objetivos com os Simuladores em


EA075
Objetivos gerais
Utilizar os simuladores ARMSim# e QuartusII
(VHDL) para auxiliar na compreenso dos
contedos estudados em sala de aula.
Mostrar via utilizao de exemplos prticos que:
tudo que desenvolvido em software pode ser feito
tambm em Hardware.
Objetivo especfico:
Simular no decorrer da disciplina o desenvolvimento
do projeto de um sistema embarcado utilizando
como base para Software o simulador ARMSim# e
para Hardware o simulador QuartusII (VHDL).
7

Simulador ARMSim#
Desenvolvedores:
Dr Nigel Horspool (University of Victoria)
Dale Lyons (University of Victoria)
Dr Micaela Serra (University of Victoria)

Simulador baseado no ARM7TDMI (1998);


http://armsim.cs.uvic.ca/

9
9

10

Descrio do Simulador
Distribuio gratuita para fins acadmicos;
Pr-Requisitos (SO)
Windows (a partir do Windows 98)
Simples instalao ( 3 minutos)

Linux;
Mac OS;

Observao: Os exemplos que sero apresentados


se baseiam na verso 1.9.1, utilizando Windows 7.

10

11

Descrio do Simulador

11

12

Descrio do Simulador (Cont.)


Possui 16 registradores (R0, R1, ..., R15) de
32-bits cada.
Onde R10, R11, ... , R15 so registradores de
controle.

Efetua diferentes tipos de operaes, como


por exemplo: aritmticas, lgicas, de estado,
entre outras.
Efetua operaes nas bases: decimal
(Signed/Unsigned) ou hexadecimal.

12

13

Descrio do Simulador (Cont.)


Instrues bsicas do ARMSim#para o primeiro
programa
mov Ra, #n: carrega o valor inteiro n no
registrador Ra.
add Ra, Rb, Rc: efetua a adio dos valores
que esto carregados em Rb e Rc,
armazenando o resultado dessa soma em
Ra.
sub Ra, Rb, Rc: subtrai o contedo
carregado em Rc do de Rb, armazenando o
resultado em Ra.
13

14

Primeiro Programa no ARMSim#


Joo tinha R$25,00 que sobrou da sua mesada do
ms de Fevereiro. Sabendo que ele ganha
R$100,00 por ms, quanto ele ter para gastar em
Maro?
Resposta: R$25,00 + R$100,00 = R$125,00.
Mas, Joo gostaria de comprar o novo FIFA15 que
custa R$180,00. Quanto ainda falta para Joo
efetuar tal aquisio?
Resposta: R$125,00 - R$180,00 = -R$55,00.
14

15

Primeiro Programa no ARMSim#


(Cont.)

mov R1, #25 @carrega o valor 25 no registrador R1.


mov R2, #100 @carrega o valor 100 no registrador R2.
add R3, R1, R2 @soma os valores carregados em R1 e
R2, armazenando o resultado em R3.
mov R4, #180 @carrega o valor 180 no registrador R4.
sub R5, R3, R4 @ subtrai o valor de R4 do valor
carregado em R3, armazenando o resultado final em
R5. (ATENO)
15

16

Breve anlise da programao em


Assembly
Quais as principais diferenas entre linguagens de
alto nvel e uma linguagem Assembly (por exemplo,
a do ARM)?
Assembly mais complexa;
Em linguagens de alto nvel os cdigos so
menores (otimiza o gasto de memria de
programa);
Assembly nos da mais controle sobre a
aplicao que esta sendo desenvolvida.
Por exemplo:Como uma linguagem de alto
nvel efetua a multiplicao de inteiros
grandes?
16

17

Adio de inteiros grandes


Por exemplo: Em linguagens de baixo nvel,
uma forma de implementar a multiplicao de
inteiros grandes :

17

18

Instrues para utilizao do


ARMSim#
Acesse: http://armsim.cs.uvic.ca/ Download
ARMSim# 1.91 1.91 Execute o arquivo
baixado.
Primeira execuo: abra um documento Bloco de
Notas e copie o programa do slide 15.
Salve este arquivo no formato .s (Por exemplo:
teste_arm.s).
Abra o simulador ARMSim# File Load teste_arm.s
Play ( ) .

Sugesto: faa a leitura do tutorial em:


http://armsim.cs.uvic.ca/AttachedFiles/ARMSim_UserGuide4Plus.pdf
18

Quartus II - VHDL
O QuartusII um software que da suporte para
simular o desenvolvimento de dispositivos lgicos
programveis via linguagens de descrio de
hardware, como por exemplo, VHDL (Linguagem
de descrio de hardware VHSIC "Very High Speed
Integrated Circuits").

19

VHDL
uma linguagem de descrio de hardware,
ou seja, esta possibilita uma forma estruturada para
descrio de circuitos digitais. Permite que circuitos
digitais sejam descritos por meio de sentenas matemtica (lgicas) similar a uma linguagem de programao usual, possibilitando a representao destes
circuitos basicamente por meio de: sinais e portas
lgicas.

20

Mais Detalhes sobre o QuartusII


Desenvolvido e distribudo pela Altera
https://www.altera.com/downloads/download-center.html
Neste endereo:
Download de todas as verses disponveis;
Informaes sobre funcionamento do QuartusII;
Sobre VHDL:
Internet (melhor referncia)

21

Informao Importante

Disponibilidade dos simuladores ARMSim# e QuartusII


Laboratrio LE27 Ambiente Windows
Disponivel: Simulador ARMSim# e
QuartusII Web Edition 13.osp1

22

Projeto como produto


Viso de empreendedor: um mini-computador
(processador, memria de armazenamento L/S,
entre outros) que efetue a cifragem (criptografia)
de caracteres que sejam digitados no teclado
e mostre na tela o caractere cifrado. Este tambm
deve efetuar a decifragem.

23

Gerenciamento
O que vamos desenvolver?
O sistema interno deste mini-computador.
Como vamos desenvolver?
Entendendo o que temos que fazer,
devemos discutir quais sero as etapas
do projeto e por onde devemos comear.

24

A viso do Sistema

25

Etapas do projeto
Etapa1: implementar o algoritmo de criptografia
One-Time Pad, para cifragem e decifragem de dados.
Etapa2: implementar um conversor de um nico
caractere (letra) para o formato hexadecimal da tabela
ASCII.
Etapa3: generalizar a Etapa2 para uma sequncia
finita de caracteres.
Etapa4: integrao das etapas.
26