Developed by Virtutech
Apresentação feita por:
Carlos Ferreira
Inês Ramos
1º Parte – Introdução ao Simics
• O que é ?
• Para que serve ?
• Benefícios da sua utilização
2º Parte – Extras do Simics
• Device Modeling Language
• Demonstração
1º Parte
Situação existente
• Aumento da complexidade dos sistemas electrónicos.
• Processo de desenvolvimento de sistemas focado no hardware.
• Necessidade de adopção de técnicas de debugging mais eficientes e
económicas.
Em relação ao hardware...
• Software tem de ser testado num sistema cujas características
coincidam minimamente com as do produto de hardware final.
• Hardware final pode estar a meses do seu lançamento!!!
• Dificil detecção de bugs de hardware.
Solução:
• Sistema virtual:
– Permite emulação do Hardware.
– Desenvolvimento de software sobre esta plataforma.
– Custo mais baixo de desenvolvimento.
Simics: O que é ?
• Simics não é igual ao VirtualBox ou VMWare!!!
• Solução de software que modela sistemas electrónicos e fornece uma
versão virtual do hardware final.
• O hardware final opera num ambiente virtual.
• Permite correr o software desenvolvido no ambiente virtual, cujos efeitos
serão reflectidos de forma similar na máquina final.
Simics Hindsight
• Usado no desenvolvimento e teste de software para correr
código, efectuar debug.
• É determinístico (com execução e debug reversíveis) .
Simics Model Builder
• Plataforma de desenvolvimento usada para criar os modelos
dos dispositivos e as configurações da máquina.
• Os modelos de dispositivos podem ser combinados numa
plataforma virtual de complexidade arbitrária.
Simics Ethernet Networking
• Providencía conectividade entre os sistemas virtuais numa
simulação.
• Conecta os sistemas virtuais a uma rede física.
Simics Accelerator
• Providencia escalabilidade e velocidade de execução tirando
partido de multiprocessadores e multicore hosts.
Simics Virtual Platform
• O modelo do hardware final que vai ser simulado.
• A plataforma virtual do Simics pode ser tão simples ou
complexa quanto o sistema físico final.
• Este pode conter desde um simples CPU e uma RAM a uma
rede complexa de computadores e sistemas.
Exemplos de SO’s usados em simulações
• Linux (qualquer distribuição)
• VxWorks
• Windows (Mobile, XP, Vista)
• Solaris
• BSD’s (FreeBSD, NetBSD, OpenBSD e outros)
• Muitos mais…
Exemplos de simulação
• MotherBoards
• Processadores
(single/dual/quad/N core)
• Sistemas heterogéneos
• SoC (System on Chip)
• Inter-System Communications
(USB, FireWire, Serial, SATA, etc)
Função: Desenvolvimento de plataformas
• Possibilidade de visualizar o estado dos registos do
processador/dispositivos durante o debug.
• Permite determinar onde ocorrem os erros (software ou hardware).
• O hardware virtual corre o mesmo software binário que o sistema físico
final.
Função: Desenvolvimento de aplicações
• Escalabilidade
• O debug é feito tomando o sistema como um todo.
• Possibilidade de restauro do estado actual do processador/dispositivos.
• Permite gerar interrupções.
• Profiling do código.
Função: Integração e teste do sistema
• Tarefas realizadas em paralelo (“Incremental integration”)
• Problemas identificados mais rapidamente com resolução mais fácil e
menos custosa.
• Integração e testes contínuos identificam problemas mais cedo
• Quando é detectado um bug, o estado de uma dada simulação pode ser
“empacotado” e enviado por email a engenheiros de software para
futuras correcções .
Função: Gestão do projecto
• Paralelização das fases de desenvolvimento
(redução do tempo das actividades críticas e do tempo total do projecto)
• Defeitos descobertos/solucionados mais cedo.
• Maior quantidade de defeitos descobertos
(melhor qualidade do produto final).
• Redução dos custos
• Redução do tempo de desenvolvimento e minimização do uso de
hardware.
Benefícios gerais:
• Agilidade
• Flexibilidade
• Desenvolvimento prévio do software/hardware
• Redução de riscos no projecto
• Redução dos custos do projecto
2º Parte
Linguagem usada para modelar Hardware de forma Eficiente
Características Principais:
• Não é uma linguagem de uso geral!
• Possui uma sintaxe expressiva adaptada ás necessidades da
programação do modelo de dispositivos.
• Linguagem Modelar baseada em Objectos
• É mais compacta.
• O compilador converte o código DML em código C que será
posteriormente compilado para código máquina.
• Providencía maior rapidez durante a simulação.
Características Especificas:
• Linguagem Imperativa, Declarativa, Orientada por Objectos
• Objectos contêm Métodos e Parâmetros
objectos → dispositivos, registos, memórias, etc
• Contém Logger interno
• A parte algorítmica é uma extensão do subset do ISO C
• Palavras reservadas do ISO/ANSI C estão reservadas em DML
(int, float, etc)
• Comportamento do DML similar com SystemC
Um pequeno exemplo de código DML
Comentário
// A very simple device
dml 1.0;
Versão da linguagem
device simple_device;
Nome deste dispositivo
import "io-memory.dml";
Standard Library import
bank b {
Banco de Registos
register r0 size 4 @0x0000 {
Nome do registo, tamanho e
method read() -> (value) {
log "info": "Hello, bus!";
offset
}
Método read() para ler o valor do
}
registro
}
Escreve no log “info” a msg
“Hello Bus”
• O Simics é uma solução de software com elevado grau de flexibilidade e
escalabilidade que permite modelar sistemas electrónicos com elevada
performance e fidelidade.
• Fornece ás corporações os meios necessários ao melhoramento do
processo de desenvolvimento dos seus produtos.
• As empresas produzem mais, melhor e a menor custo.
• Complementaridade MIECT – MIEET
– Engenheiros de MIEET preocupam-se em optimizar o hardware.
– Engenheiros de MIECT preocupam-se em optimizar o software.
– O desenvolvimento em paralelo permite ambos encontrarem-se no
final do projecto, para a junção de ambos os resultados.
Simics está disponível em http://www.virtutech.com/
Licenças Académicas Gratuitas !!!
E agora vamos a uma pequena demonstração…
Download

Simics