O relatório é submetido à Comissão de Revisão dos Trabalhos Finais do Curso de Ciência da Computação para análise e aprovação. O presente trabalho apresenta o desenvolvimento de componentes para simulação de hardware de sistemas embarcados em uma ferramenta genérica de simulação.
APRESENTAÇÃO
JUSTIFICATIVA
Assim, professores e alunos da UNIVALI (Universidade do Vale do Itajaí) serão beneficiados com esses componentes para simular arquiteturas básicas de microcontroladores e começar a estudar sistemas embarcados e projetos de rede em chip que possam ser lançados nesta instituição. Os componentes a desenvolver têm em conta a simulação de sistemas, sistemas embarcados e redes-on-chip, bem como o domínio de alguns circuitos digitais típicos.
IMPORTÂNCIA DO TRABALHO
OBJETIVOS DO TRABALHO
Objetivo Geral
Objetivos Específicos
METODOLOGIA
O mesmo procedimento utilizado na implementação de componentes de sistemas embarcados; . iii.c) Criação de propostas de modelos de simulação de sistemas embarcados. Se for um modelo físico, será transferido para uma ferramenta de simulação de sistema embarcado de acordo com suas propriedades.
SISTEMAS EMBARCADOS
Evolução dos Sistemas Digitais
Definição de Sistemas Embarcados
Características de Sistemas Embarcados
Custos de Fabricação: O custo total de um projeto de sistemas embarcados é muito importante quando um sistema é fabricado em larga escala. Consumo de Energia: Este fator extremamente importante afeta diretamente o custo geral de um projeto de sistema embarcado.
Alguns Problemas em Projeto de Sistemas Embarcados
Componentes de Sistemas Embarcados
- Microcontroladores/ Microprocessadores
- Memória
- Dispositivos Periféricos
- Redes-em-Chip
CPU (Unidade Central de Processador): É certamente o componente mais importante de um sistema embarcado, pois é necessário para gerenciar todo o microcontrolador. É um tipo de memória essencial a um computador, usada para armazenar dados e instruções de um programa. Paralelo se refere ao fato de que ele transporta sinais através de oito fios separados – um para cada bit de byte de dados – e dentro de um único cabo.
Em vez de indicar cada bit, o ponteiro poderia indicar o início de um pequeno fluxo de bits. Esta frequência é facilmente alterada (seja por ação em componentes passivos ou eletronicamente) dentro de um determinado valor. A informação digital é apresentada na forma de um número binário com um número fixo de dígitos.
Isto permite que um conversor seja conectado diretamente a um barramento de dados de um microprocessador que controla os dados. Esses canais consistem em uma série de fios que transportam dados de uma extremidade à outra.
SIMULAÇÃO DE SISTEMAS
Vantagens e Desvantagens
A simulação de sistemas é vista por diversos autores e pesquisadores da área como uma excelente ferramenta para resolução de problemas de diversos tipos. Quando o sistema é muito perigoso e se alguma alteração no sistema real pode causar algum tipo de acidente. Proporciona melhor controle sobre as condições experimentais do que seria possível no sistema real, pois é possível fazer diversas iterações do modelo, definindo os valores desejados para todos os parâmetros.
A metodologia de análise utilizada por simulação permite a avaliação de um sistema proposto, mesmo que os dados de entrada ainda estejam na forma de esquemas ou rascunhos. É possível entender melhor quais variáveis são mais importantes em relação ao desempenho e como elas interagem entre si e com outros elementos do sistema. A simulação é muito dependente do modelo desenvolvido, ou seja, não faz sentido realizar um estudo detalhado dos dados de saída, encontrando uma solução para o sistema, se o modelo criado não representa fielmente o sistema ou se os dados de entrada estão incorretos Banks & Carson (1994);
Classificação de Modelos e Simulação
- Modelos
- Simulação
As mudanças no estado do sistema ocorrem em pontos discretos no tempo à medida que o relógio da simulação avança. Em uma simulação orientada a eventos, a modelagem do sistema é realizada identificando seus eventos característicos e incondicionais, dependentes apenas da simulação. O estado do sistema: é um indicador de como estão as características do modelo simulado em um determinado momento;
Variável de estado: é um elemento do modelo que varia em função de uma característica do sistema; Tempo simulado: é o tempo do sistema como um todo que representa o comportamento do modelo na realidade; Obviamente, estas condições são raras e, portanto, uma abordagem determinística pode não ser suficiente para descrever mudanças no sistema (ZEIGLER, 1987).
Etapas de um Projeto Envolvendo a Simulação
Coleta de dados: As informações de entrada do sistema devem ser obtidas e coletadas dos sistemas existentes. O que não é interessante pelas distorções dos resultados após a simulação e consequentemente a possível validação do modelo. Codificação, verificação e validação do modelo: A codificação nada mais é do que a transferência do modelo de uma linguagem conceitual para uma linguagem computacional.
A validação é a confirmação de que o modelo desenvolvido corresponde ao sistema real, ou seja, se os resultados avaliados pela simulação são confiáveis e representam a realidade. Em geral, os testes estatísticos avaliam as diferenças entre os resultados do modelo e o sistema real. Dependendo das respostas dessas análises, o modelo pode precisar ser simulado diversas vezes para obter precisão estatística dos resultados.
Mecanismo de Avanço do Tempo
A verificação é uma varredura do modelo codificado para encontrar diferenças em relação ao modelo conceitual. Para obter resultados com nível de precisão adequado e confiável, o modelo simulado deve ser repetido diversas vezes para obter informações sobre seu comportamento. Seu funcionamento começa inicializando a variável de tempo em zero, e os próximos eventos são determinados através de uma lista de eventos, onde cada vez que ocorre um evento, há um avanço na unidade de tempo da variável até que o evento ocorra.
Este processo continua até que a condição de parada seja atendida ou até que não haja mais eventos na lista de eventos.
Estatística na Simulação
- Distribuição de Probabilidade
- Estimação de Parâmetros
- Testes e Validação em Estatística
- Problemas da Estatística Relacionados com a Simulação
Distribuição exponencial: se a probabilidade de um evento ocorrer em um pequeno intervalo de tempo for proporcional ao tamanho desse intervalo, se a probabilidade de outro evento ocorrer neste intervalo for igual a zero, ou se a ocorrência de um evento for independente do ocorrência de outro, então vai para a distribuição exponencial. Assim, juntamente com a estimativa dos parâmetros, a equação ou sistema de equações diferenciais considerado deve ser resolvido principalmente numericamente. O modelo matemático fornecido pelo criador do modelo deve pertencer a uma das seguintes categorias: equações diferenciais ordinárias com valores iniciais, equações diferenciais algébricas, equações diferenciais unidimensionais com derivadas parciais dependentes do tempo, equações diferenciais unidimensionais com derivadas parciais algébricas ( WERKEMA, 1996).
Equações diferenciais parciais podem conter equações algébricas, por exemplo, para resolver sistemas de ordem superior. Em geral, os resultados de um estudo são obtidos através de amostras, que muitas vezes, quando mal obtidas, interferem nos resultados da simulação e, consequentemente, na comparação com a realidade. Para conseguir a validação com os resultados de uma simulação, existem alguns métodos de validação baseados em amostras.
Simuladores de Sistemas Embarcados
- MAX+PLUS II
- Isis/Proteus
O software MAX+PLUS II (ALTERA Multiple Array MatriX Programmable Logic User System) é um sistema para desenvolvimento de dispositivos lógicos programáveis ou PLD (Program Logic Devices). MAX+PLUS é uma das ferramentas investigadas que propõe uma simulação determinística de baixo nível que chega à composição do modelo baseado no diagrama de circuito digital ou VHDL (VHSIC Hardware Description Language). A grande vantagem de usar uma ferramenta como Max+Plus II é que podemos testar o comportamento do circuito através de sua simulação sem ter que escrever primeiro no dispositivo PDL.
Por ser uma ferramenta comercial, o Max+Plus II é um tanto limitado em termos de aquisição profissional. Isis, também conhecido como Proteus, é um software produzido pela Labcenter Electronics e é um simulador especial para sistemas embarcados. Além disso, o uso adequado requer um conhecimento mais profundo dos componentes do sistema embarcado, como microcontroladores e sua programação.
O Simulador SSD
- Inclusão de componentes no SSD
- Classes básicas
Após a seleção, ele já faz parte do conjunto de componentes que podem ser utilizados com o simulador. O simulador SSD consiste em diversas classes que controlam tanto a aplicação em si (o software SSD) quanto os modelos que são criados. TSSDApplication: Esta classe gerencia os plugins carregados no simulador e os modelos nele criados.
TSIMAN: As principais funções que os modelos utilizam para representar um sistema a ser simulado estão disponíveis nesta classe. Os componentes desenvolvidos neste trabalho permitem ao SSD simular aspectos básicos de sistemas embarcados e redes-on-chip. Através da modelagem de alto nível do SSD e da utilização de dois modelos de sistema integrados desenvolvidos e já testados em outros instrumentos específicos, eles são comparados utilizando informações estatísticas extraídas dos dois instrumentos e verificando sua equivalência.
MODELAGEM
Componentes de Sistemas Embarcados
- Diagrama de Componentes
- Diagrama de Classes
- Estrutura e Funcionamento
Componentes de Redes-em-Chip
- Estrutura e Funcionamento de Redes-em-Chip
- Componentes de Redes-em-Chip
SE (Nucleo.aEntitySends < Nucleo.aMaxCoreSend) or (Nucleo.MaxCoreSend = -1) ENTÃO SSD.Model.SIMAN.AttributeValue['Entity.CoordX'] := Nucleo.aCoordXOrig SSD.Model.SIMAN.AttributeValue['Entity.CoordX'] := Nucleo.aCoordXOrig SSD.Model.SIMAN. CoordY'] := Nucleo.aCoordYOrig Nucleo.aEntitySends := Nucleo.aEntitySends + 1. SSD.Model.SIMAN.StringEvaluateFormula(Nucleo.aTimeBetweenSends) * TimeUnitConvert(Nucleo.aCoreTime.Unit.SI CStatAddValue(Nucleo.aNumberCoreCStatID, 1). SSD.Model.TraceExec(3, Nucleo.ID, entity, 'Arrival of core send ' + IntToStr(newInstructionID) + ' scheduled for time ' + FloatToStr(newTimeSend)).
CoreX = Trunc(SSD.Model.SIMAN.AttributeValue['Entity.CoordXto']) CoreY = Trunc(SSD.Model.SIMAN.AttributeValue['Entity.CoordXTo']) RoteadorIndex = 0.
Simulação de Sistemas Embarcados no SSD
Para melhor ilustrar a modelagem pretendida, a Figura 42 mostra um sistema embarcado criado pela ferramenta Proteus e a Figura 43 mostra um sistema semelhante direcionado na ferramenta genérica de simulação de SSD.
IMPLEMENTAÇÃO E VALIDAÇÃO
Estrutura para Implementação dos Componentes
- Arquivo Modelo (Template)
- Estrutura para Criação dos Modelos no SSD
Este arquivo template segue o padrão recomendado pelo autor e contém rotinas específicas (usersCreate, userRead, userSave, userVerify, userExecute) que devem ser executadas pelo desenvolvedor. Este nome será reconhecido pelo SSD ao ler o arquivo através de um componente previamente carregado pelo sistema.;. UserRead: Este método é executado quando um módulo deste tipo é carregado a partir de um arquivo de modelo.
Porém, esta ferramenta permite editar os modelos diretamente, editando o arquivo de texto em qualquer editor de texto do mercado. Block_Name: Nome do componente que o identifica visualmente caso exista mais de um módulo com o mesmo componente; A declaração acima é a maneira básica de declarar um módulo diretamente no arquivo de modelo SSD.
Modelos de Sistemas Embarcados Avaliados
Validação de Modelos de Sistemas Embarcados
O intervalo de confiança para o número médio de acessos à tela inclui o valor obtido no modelo Proteus (108), indicando que faz parte da estimativa deste parâmetro, feita a. O intervalo de confiança para o número médio de acessos à tela inclui o valor obtido no modelo Proteus (10), indicando que faz parte da estimativa deste parâmetro feita pelo modelo SSD. O intervalo de confiança para o número médio de acessos à tela inclui o valor obtido no modelo Proteus (2), indicando que faz parte da estimativa deste parâmetro feita pelo modelo SSD.
O intervalo de confiança para o número médio de acessos ao display inclui o valor obtido no modelo Proteus (11), indicando que faz parte da estimativa deste parâmetro feita a partir do modelo SSD. O intervalo de confiança para o número médio de acessos à tela inclui o valor obtido no modelo Proteus (19), indicando que faz parte da estimativa deste parâmetro feita a partir do modelo SSD. O intervalo de confiança para o número médio de acessos à tela inclui o valor obtido no modelo Proteus (30), indicando que faz parte da estimativa deste parâmetro feita a partir do modelo SSD.