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.
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. Solução: Sistema virtual: – Permite emulação do Hardware. – Desenvolvimento de software sobre esta plataforma. – Custo mais baixo de desenvolvimento.
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 SOs usados em simulações Linux (qualquer distribuição) VxWorks Windows (Mobile, XP, Vista) Solaris BSDs (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 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
// A very simple device dml 1.0; device simple_device; import "io-memory.dml"; bank b { register r0 size { method read() -> (value) { log "info": "Hello, bus!"; } Um pequeno exemplo de código DML Comentário Versão da linguagem Nome deste dispositivo Standard Library import Banco de Registos Nome do registo, tamanho e 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 Licenças Académicas Gratuitas !!! E agora vamos a uma pequena demonstração…