25 resultados para Síntese de sistemas digitais
em Lume - Repositório Digital da Universidade Federal do Rio Grande do Sul
Resumo:
Na simulação heterogênea de um sistema eletrônico complexo, um mesmo modelo pode ser composto por partes distintas em relação às tecnologias ou linguagens utilizadas na sua descrição, níveis de abstração, ou pela combinação de partes de software e de hardware (escopo da co-simulação). No uso de modelos heterogêneos, a construção de uma ponte eficaz entre diferentes simuladores, em conjunto com a solução de problemas tais como sincronização e tradução de dados, são alguns dos principais desafios. No contexto do projeto de sistemas embarcados, a validação desses sistemas via co-simulação está sujeita a estes desafios na medida em que um mesmo modelo de representação precisa suportar a cooperação consistente entre partes de hardware e de software. Estes problemas tornam-se mais significativos quando abordados em ambientes distribuídos, o que aumenta a complexidade dos mecanismos que gerenciam os ítens necessários à correta cooperação entre partes diferentes. Contudo, embora existam abordagens e ferramentas voltadas para o tratamento de modelos heterogêneos, inclusive em ambientes distribuídos, ainda persiste uma gama de limitações causadas pela distribuição e heterogeneidade de simuladores. Por exemplo, restrições quanto à variedade de tecnologias (ou linguagens) utilizadas na descrição das partes de um modelo, flexibilidade para o reuso de partes existentes, ou em tarefas de gerenciamento de sincronização/dados/interface/distribuição. Além disso, em geral, nas soluções existentes para simulação heterogênea, alterações são necessárias sobre as partes do modelo, limitando a preservação de sua integridade. Esta é uma característica indesejável, por exemplo, no reuso de componentes IP (Intellectual Property) Neste contexto, esta tese apresenta o DCB (Distributed Co-simulation Backbone), cujo propósito geral é o suporte à execução distribuída dos modelos heterogêneos. Para isso, são observados de modo integrado quatro fatores básicos: a distribuição física; a independência dos componentes (partes); o encapsulamento das estratégias de gerenciamento de tempo, de dados e de comunicação; e a sincronização híbrida. Em geral, as soluções existentes valorizam um fator em detrimento dos demais, dependendo dos propósitos envolvidos e sua variação em relação ao grau de especificidade (soluções proprietárias ou restritas a um escopo de aplicações). O Tangram, também discutido nesta tese em termos de requisitos, é uma proposta de ambiente para projeto de modelos heterogêneos distribuídos. No contexto da especificação do DCB, esta proposta tem como objetivo geral agregar num mesmo ambiente funcionalidades de apoio para a busca e catalogação de componentes, seguidas do suporte à construção e à execução distribuída de modelos heterogêneos via DCB. À luz dos princípios de generalidade e flexibilidade da arquitetura do DCB, o Tangram visa permitir que o projetista reduza seu envolvimento com detalhes relacionados ao provimento de condições necessárias à cooperação entre componentes heterogêneos. No escopo desta tese, ênfase foi dada à co-simulação de sistemas embarcados, ênfase esta observada também na construção do protótipo do Tangram/DCB, e nos estudos de caso. Contudo, a estrutura do DCB é apropriada para qualquer domínio onde a simulação possa ser utilizada como instrumento de validação, entre outros propósitos.
Resumo:
Esta dissertação apresenta duas implementações de algoritmos para gerência dinâmica de memória em software, as quais foram desenvolvidas utilizando como alvo uma plataforma embarcada Java. Uma vez que a plataforma utilizada pertence a uma metodologia para geração semi-automática de hardware e software para sistemas embarcados, os dois algoritmos implementados foram projetados para serem integrados ao contexto desta mesma metodologia. Como forma de estabelecer comparações detalhadas entre as duas implementações desenvolvidas, foram realizadas diversas estimativas em desempenho, uso de memória, potência e energia para cada implementação, utilizando para isto duas versões existentes da plataforma adotada. Através da análise dos resultados obtidos, observou-se que um dos algoritmos desenvolvidos obteve um desempenho melhor para realização da gerência dinâmica da memória. Em contrapartida, o outro algoritmo possui características de projeto que possibilitam sua utilização com aplicações de tempo-real. De um modo geral, os custos adicionais resultantes da utilização do algoritmo de tempo-real, em relação ao outro algoritmo também implementado, são de aproximadamente 2% para a potência média dissipada, 16% para o número de ciclos executados, 18% para a energia consumida e 10% sobre a quantidade de total memória utilizada. Isto mostra que o custo extra necessário para utilização do algoritmo de tempo real é razoavelmente baixo se comparado aos benefícios proporcionados pela sua utilização. Como impactos finais produzidos por este trabalho, obteve-se um acréscimo de 35% sobre o número total de instruções suportadas pela arquitetura utilizada. Adicionalmente, 12% das instruções que já existiam no conjunto desta arquitetura foram modificadas para se adaptarem aos novos mecanismos implementados. Com isto, o conjunto atual da arquitetura passa a corresponder a 44% do total de instruções existentes na arquitetura da máquina virtual Java. Por último, além das estimativas desenvolvidas, foram também realizadas algumas sugestões para melhoria global dos algoritmos implementados. Em síntese, alguns pontos cobertos por estas sugestões incluem: a migração de elementos do processamento do escopo dinâmico para o estático, o desenvolvimento de mecanismos escaláveis para compactação de memória em tempo-real, a integração de escalonadores ao processo de gerência de memória e a extensão do processo de geração semi-automática de software e hardware para sistemas embarcados.
Resumo:
A validação de projetos de sistemas eletrônicos pode ser feita de diversas maneiras, como tem sido mostrado pelas pesquisas em síntese automática e verificação formal. Porém, a simulação ainda é o método mais utilizado. O projeto de um sistema digital típico pode ser desenvolvido em diversos níveis de abstração, como os níveis algorítmico, lógico ou analógico. Assim, a simulação também deve ser executada em todos esses níveis. A simulação apresenta, contudo, o inconveniente de não conseguir conciliar uma alta acuracidade de resultados com um baixo tempo de simulação. Quanto mais detalhada é a descrição do circuito, maior é o tempo necessário para simulá-lo. O inverso também é verdadeiro, ou seja, quanto menor for a acuracidade exigida, menor será o tempo dispendido. A simulação multinível tenta conciliar eficiêencia e acuracidade na simulação de circuitos digitais, propondo que partes do circuito sejam descritas em diferentes níveis de abstração. Com isso, somente as partes mais críticas do sistema são descritas em detalhes e a velocidade da simulação aumenta. Contudo, essa abordagem não é suficiente para oferecer um grande aumento na velocidade de simulação de grandes circuitos. Assim, surge como alternativa a aplicação de técnicas de processamento distribuído à simulação multinível. Os aspectos que envolvem a combinação dessas duas técnicas são abordados nesse trabalho. Como plataforma para os estudos realizados, optou-se por usar duas ferramentas desenvolvidas nessa Universidade: os simuladores do Sistema AMPLO e o Sistema Operacional HetNOS. São estudadas técnicas de sincronização em sistemas distribuídos, fundamentais para o desenvolvimento dos simuladores e, finalmente, são propostas alternativas para a distribuição dos simuladores. É realizada, ainda, uma análise comparativa entre as versões propostas.
Resumo:
No intuito de validar seus projetos de sistemas integrados, o Grupo de Microeletrônica da UFRGS tem investido na inserção de estruturas de teste nos núcleos de hardware que tem desenvolvido. Um exemplo de tal tipo de sistema é a “caneta tradutora”, especificada e parcialmente desenvolvida por Denis Franco. Esta caneta se utiliza de um microcontrolador 8051 descrito em VHDL, o qual ainda carece de estruturas dedicadas com funções orientadas à testabilidade. Este trabalho exemplifica a integração de teste em um circuito eletrônico préprojetado. Neste caso específico, foi utilizado o microcontrolador 8051 fonte compatível que será inserido no contexto da caneta tradutora. O método utilizado apoiou-se na norma IEEE1149.1, destinada a definir uma infra-estrutura baseada na técnica do boundary scan para o teste de placas de circuito impresso. São apresentadas características de testabilidade desenvolvidas para o microcontrolador, utilizando-se a técnica do boundary scan em sua periferia e a técnica do scan path em seu núcleo. A inserção destas características de teste facilita a depuração e testes em nível de sistema, imaginando-se o sistema como algo maior, fazendo parte do sistema da caneta tradutora como um todo. São elaborados exemplos de testes, demonstrando a funcionalidade do circuito de teste inserido neste núcleo e a possibilidade de detecção de falhas em pontos distintos do sistema. Finalmente, avalia-se o custo associado à integração desta infra-estrutura de teste, tanto em termos de acréscimo de área em silício, quanto em termos de degradação de desempenho do sistema.
Resumo:
A tarefa de estimação de movimento, utilizada na compressão de vídeo digital, é normalmente realizada em hardware por processador dedicado, uma vez que demanda expressiva capacidade computacional. Este trabalho propõe e desenvolve uma arquitetura de hardware para realizar o cálculo dos vetores de movimento no contexto de compressão de vídeo digital. Essa arquitetura para estimação de movimento é composta pelos blocos: interface de entrada e saída (E/S), matriz de processamento com 64 elementos de processamento, unidade de comparação e unidade de controle. A arquitetura foi descrita em linguagem VHDL de maneira que o número de bits utilizados para representação da luminância dos pontos é configurável. A partir desta descrição, foi gerado um protótipo para dados representados em 4 bits utilizando um kit de desenvolvimento baseado no dispositivo FPGA XC2S150 da Xilinx. Para validação do algoritmo e da arquitetura implementada, além da simulação, foi desenvolvido um software para plataforma PC capaz de exercitar as funcionalidades do protótipo. O PC é utilizado como dispositivo controlador de E/S para esta validação, na qual uma implementação do algoritmo em software e outra em linguagem de descrição de hardware são comparadas. A máxima freqüência de trabalho do protótipo, estimada por simulação da arquitetura mapeada no FPGA XC2S150, é de 33 MHz. A esta freqüência o núcleo da arquitetura paralela de 64 elementos de processamento realiza cerca de 2,1 GOps (bilhões de operações inteiras por segundo). Esta arquitetura de hardware calcula os vetores de movimento para vídeo no formato 640x480 pontos à taxa de 107,32 quadros por segundo, ou um quadro a cada 9,3 ms. A arquitetura implementada para luminânica em 4 bits ocupa 16 pinos de E/S, 71,1% dos blocos lógicos do FPGA e 83,3% dos blocos de memória disponíveis no dispositivo XC2S150.
Resumo:
O aumento na complexidade dos sistemas embarcados, compostos por partes de hardware e software, aliado às pressões do mercado que exige novos produtos em prazos cada vez menores, tem levado projetistas a considerar a possibilidade de construir sistemas a partir da integração de componentes já existentes e previamente validados. Esses componentes podem ter sido desenvolvidos por diferentes equipes ou por terceiros e muitas vezes são projetados utilizando diferentes metodologias, linguagens e/ou níveis de abstração. Essa heterogeneidade torna complexo o processo de integração e validação de componentes, que normalmente é realizado através de simulação. O presente trabalho especifica mecanismos genéricos e extensíveis que oferecem suporte à cooperação entre componentes heterogêneos em um ambiente de simulação distribuída, sem impor padrões proprietários para formatos de dados e para a descrição do comportamento e interface dos componentes. Esses mecanismos são baseados na arquitetura DCB (Distributed Co-Simulation Backbone), voltada para co-simulação distribuída e heterogênea e inspirada nos conceitos de federado (componente de simulação) e federação (conjunto de componentes) que são definidos pelo HLA (High Level Architecture), um padrão de interoperabilidade para simulações distribuídas. Para dar suporte à co-simulação distribuída e heterogênea, esse trabalho descreve mecanismos que são responsáveis pelas tarefas de cooperação e distribuição, chamados de embaixadores, assim como o mecanismo gateway, que é responsável pela interoperabilidade entre linguagens e conversão de tipos de dados. Também é apresentada uma ferramenta de suporte à geração das interfaces de co-simulação, que são constituídas de dois embaixadores configuráveis e um gateway para cada federado, gerado a partir de templates pré-definidos.
Resumo:
As modernas aplicações em diversas áreas como multimídia e telecomunicações exigem arquiteturas que ofereçam altas taxas de processamento. Entretanto, os padrões e algoritmos mudam com incrível rapidez o que gera a necessidade de que esses sistemas digitais tenham também por característica uma grande flexibilidade. Dentro desse contexto, tem-se as arquiteturas reconfiguráveis em geral e, mais recentemente, os sistemas reconfiguráveis em um único chip como soluções adequadas que podem oferecer desempenho, sendo, ao mesmo tempo, adaptáveis a novos problemas e a classes mais amplas de algoritmos dentro de um dado escopo de aplicação. Este trabalho apresenta o estado-da-arte em relação a arquiteturas reconfiguráveis nos meios acadêmcio e industrial e descreve todas as etapas de desenvolvimento do processador de imagens reconfigurável DRIP (Dynamically Reconfigurable Image Processor), desde suas origens como um processador estático até sua última versão reconfigurável em tempo de execução. O DRIP possui um pipeline composto por 81 processadores elementares. Esses processadores constituem a chave do processo de reconfiguração e possuem a capacidade de computar um grande número de algoritmos de processamento de imagens, mais específicamente dentro do domínio da filtragem digital de imagens. Durante o projeto, foram desenvolvidos uma série de modelos em linguagem de descrição de hardware da arquitetura e também ferramentas de software para auxiliar nos processos de implementação de novos algorimos, geração automática de modelos VHDL e validação das implementações. O desenvolvimento de mecanismos com o objetivo de incluir a possibilidade de reconfiguração dinâmica, naturalmente, introduz overheads na arquitetura. Contudo, o processo de reconfiguração do DRIP-RTR é da ordem de milhões de vezes mais rápido do que na versão estaticamente reconfigurável implementada em FPGAs Altera. Finalizando este trabalho, é apresentado o projeto lógico e elétrico do processador elementar do DRIP, visando uma futura implementação do sistema diretamente como um circuito VLSI.
Resumo:
A maioria dos métodos de síntese e sintonia de controladores, bem como métodos de otimização e análise de processos necessitam de um modelo do processo em estudo. A identificação de processos é portanto uma área de grande importância para a engenharia em geral pois permite a obtenção de modelos empíricos dos processos com que nos deparamos de uma forma simples e rápida. Mesmo não utilizando leis da natureza, os modelos empíricos são úteis pois descrevem o comportamento específico de determinado processo. Com o rápido desenvolvimento dos computadores digitais e sua larga aplicação nos sistemas de controle em geral, a identificação de modelos discretos foi amplamente desenvolvida e empregada, entretanto, modelos discretos não são de fácil interpretação como os modelos contínuos pois a maioria dos sistema com que lidamos são de representação contínua. A identificação de modelos contínuos é portanto útil na medida que gera modelos de compreensão mais simples. A presente dissertação estuda a identificação de modelos lineares contínuos a partir de dados amostrados discretamente. O método estudado é o chamado método dos momentos de Poisson. Este método se baseia em uma transformação linear que quando aplicada a uma equação diferencial ordinária linear a transforma em uma equação algébrica evitando com isso a necessidade do cálculo das derivadas do sinais de entrada e saída Além da análise detalhada desse método, onde demonstramos o efeito de cada parâmetro do método de Poisson sobre o desempenho desse, foi realizado também um estudo dos problemas decorrentes da discretização de sinais contínuos, como por exemplo o efeito aliasing decorrente da utilização de tempos de amostragem muito grandes e de problemas numéricos da identificação de modelos discretos utilizando dados com tempos de amostragem muito pequenos de forma a destacar as vantagens da identificação contínua sobre a identificação discreta Também foi estudado um método para compensar a presença de offsets nos sinais de entrada e saída, método esse inédito quando se trata do método dos momentos de Poisson. Esse trabalho também comprova a equivalência entre o método dos momentos de Poisson e uma metodologia apresentada por Rolf Johansson em um artigo de 1994. Na parte final desse trabalho são apresentados métodos para a compensação de erros de modelagem devido à presença de ruído e distúrbios não medidos nos dados utilizados na identificação. Esses métodos permitem que o método dos momentos de Poisson concorra com os métodos de identificação discretos normalmente empregados como por exemplo ARMAX e Box-Jenkins.
Resumo:
Neste trabalho tratou-se do estudo da Reação de Acoplamento de Eschenmoser e da redução dos sistemas β-enaminocarbonílicos derivados da mesma com sua aplicação da síntese de alcalóides com atividade biológica. Estudou-se condições de formação de compostos β-enaminocarbonílicos trissubstituídos e tetrassubstituídos, secundários e terciários. Métodos de redução via hidreto ou através de hidrogenação catalítica foram estudadas neste trabalho. O efeito do tamanho do anel (5 e 6 membros) na Reação de Acoplamento de Eschenmoser foi estudado ajudando no esclarecimento do mecanismo da mesma. A metodologia desenvolvida foi aplicada na síntese dos alcalóides Noralosedamina e Fenidato de Metila.
Resumo:
Este trabalho descreve a síntese e caracterização de novos sistemas fotoluminescentes com conjugações π-estendidas com potencial para aplicação tecnológica em sistemas OLEDs. Novos sistemas fotoluminescente com a unidades 2,1,3-benzotiadiazola (BTD) com extensão da conjugação π nas posições 4 e 7 foram sintetizadas em altos rendimentos. As novas estruturas foram plenamente caracterizadas e suas propriedades eletroquímicas e fotofísicas investigadas. Os moléculas BTDs foram utilizados para o desenvolvimento de uma nova metodologia de extrusão de enxofre nesses sistemas utilizando-se o sistema catalítico redutor CoCl2⋅6H2O(cat)/NaBH4/EtOH. Um novo ligante fotoluminescente de conjugação π-estendida nas posições 2 e 3 da unidade quinoxalina (QX) foi sintetizado em alto rendimento global. O ligante é apropriado para testes de formação de um novo sistema paladaciclo fotoluminescente com dois átomos de paládio na estrutura. Também sintetizou-se um novo ligante fotoluminescente contendo a unidade fenazina (FN) em um alto rendimento global. Essa estrutura com o grupo FN serve em testes para a formação de novos complexos fotoluminescentes de rutênio (II) ou cobre (II) com potencial aplicação na tecnologia de OLEDs. Novas estruturas BTDs fotoluminescentes foram sintetizadas e testado o seu comportamento de cristal líquido, para uma possível aplicação como mesofases emissivas em tecnologia de sistemas OLEDs.
Resumo:
Este trabalho apresenta uma metodologia para a geração automática de ASICs, em VHDL, a partir da linguagem de entrada Java. Como linguagem de especificação adotou-se a Linguagem Java por esta possuir características desejáveis para especificação a nível de sistema, como: orientação a objetos, portabilidade e segurança. O sistema é especificamente projetado para suportar síntese de ASICs a partir dos modelos de computação Máquina de Estados Finita e Pipeline. Neste trabalho, adotou-se estes modelos de computação por serem mais usados em sistemas embarcados As principais características exploradas são a disponibilização da geração de ASICs para a ferramenta SASHIMI, o alto nível de abstração com que o projetista pode contar em seu projeto, as otimizações de escalonamento realizadas automaticamente, e o sistema ser capaz de abstrair diferentes modelos de computação para uma descrição em VHDL. Portanto, o ambiente permite a redução do tempo de projeto e, consequentemente, dos custos agregados, diminuindo a probabilidade de erros na elaboração do projeto, portabilidade e reuso de código – através da orientação a objetos de Java – podendo-se proteger os investimentos prévios em desenvolvimento de software. A validação desses conceitos foi realizada mediante estudos de casos, utilizando-se algumas aplicações e analisando os resultados obtidos com a geração dos ASICs.
Resumo:
Sabe-se que a fala é a principal maneira de comunicação entre as pessoas. A Síntese de fala (geração automática da fala pelo computador) tem recebido atenção da comunidade acadêmica e profissional por várias décadas. Ela envolve a conversão de um texto de entrada em fala, usando algoritmos e algumas formas de fala codificada. O texto pode ser digitado pelo teclado ou obtido por reconhecimento de caracteres ou, ainda, obtido de um banco de dados. A síntese de fala pode ser usada em vários domínios de aplicação, tais como: auxílio para deficientes visuais, telecomunicações, multimídia, etc. Este trabalho apresenta um estudo sobre a produção da fala e da área de síntese de fala visando servir de subsídio para dissertações e pesquisas futuras, bem como para o Projeto Spoltech, um projeto de cooperação entre os Estados Unidos e o Brasil para o avanço da tecnologia da língua falada no Brasil (Português Brasileiro). Dentro deste estudo serão apresentadas as principais técnicas de síntese de fala, entre as quais destaca-se: Texto para Fala (TPF). Problemas de separação de sílabas, determinação da sílaba tônica, pronunciação das vogais “e” e “o” como um fonema aberto ou fechado, etc, são enfrentados dentro do contexto da área de síntese de fala para o português falado no Brasil. Tendo conhecimento destes problemas, o principal objetivo deste trabalho será criar regras para resolver o problema de pronunciação das vogais “e” e “o” de forma automática, visando obter produção sonora mais inteligível, por intermédio da implementação de um analisador estatístico, o qual verificará a letra anterior e posterior ao “e” ou “o” de uma palavra e, com isso, determinar a pronúncia dos mesmos para aquela seqüência de letras. As mesmas poderão tornar-se regras válidas para a solução do problema se atingirem 80% dos casos de ocorrência no dicionário com fonema “e” ou “o” aberto (limiar), sendo que elas serão lidas por um interpretador Scheme utilizado pelo programa Festival - ferramenta para a construção de sistemas de síntese de fala desenvolvida pelo Centre for Speech Technology Research (University of Edinburgh, Reino Unido), a qual utiliza TPF como método de síntese. Sabendo-se que o Festival gera os fonemas “e” e “o” como fechados se não há uma regra para inferir o contrário, serão consideradas apenas as regras encontradas para os fonemas abertos. Para possibilitar esta análise será utilizado um dicionário eletrônico de pronunciação (com 19.156 palavras), o qual possui a palavra e a sua respectiva pronúncia, conforme pode-se verificar no exemplo do Anexo 1.
Resumo:
Este trabalho descreve a aplicação da Programação Genética, uma técnica de Computação Evolucionária, ao problema da Síntese de Fala automática. A Programação Genética utiliza as técnicas da evolução humana para descobrir programas bem adaptados a um problema específico. Estes programas, compostos de instruções, variáveis, constantes e outros elementos que compõe uma linguagem de programação, são evoluídos ao longo de um conjunto de gerações. A Síntese de Fala, consiste na geração automática das formas de ondas sonoras a partir de um texto escrito. Uma das atividades mais importantes, é realizada através da conversão de palavras e letras para os sons da fala elementares (fonemas). Muitos sistemas de síntese são implementados através de regras fixas, escritas por programadores humanos. Um dos mais conhecidos sistemas de síntese é o FESTIVAL, desenvolvido pela Universidade de Edimburgh, usando a linguagem de programação funcional LISP e um número fixo de regras. Neste trabalho, nós exploramos a possibilidade da aplicação do paradigma da Programação Genética, para evoluir automaticamente regras que serão adotadas para implementação do idioma Português na ferramenta FESTIVAL, desenvolvido no projeto SPOLTECH (CNPq – NSF cooperação entre UFRGS e Universidade do Colorado). A modelagem do problema, consiste na definição das regras de pronúncia do Português Brasileiro, que a implementação do sistema FESTIVAL pronuncia erradamente, já que o mesmo foi implementado primariamente para o idioma Inglês. A partir destas regras, o sistema de Programação Genética, desenvolvido neste trabalho, evolui programas que constituem boas soluções para a conversão de letras para fonemas. A descrição dos resultados obtidos, cobre detalhes sobre a evolução das soluções, complexidade e regras implementadas, representadas pelas soluções mais bem adaptadas; mostrando que a Programação Genética, apesar de ser complexa, é bastante promissora.
Resumo:
Este trabalho foi realizado dentro da área de reconhecimento automático de voz (RAV). Atualmente, a maioria dos sistemas de RAV é baseada nos modelos ocultos de Markov (HMMs) [GOM 99] [GOM 99b], quer utilizando-os exclusivamente, quer utilizando-os em conjunto com outras técnicas e constituindo sistemas híbridos. A abordagem estatística dos HMMs tem mostrado ser uma das mais poderosas ferramentas disponíveis para a modelagem acústica e temporal do sinal de voz. A melhora da taxa de reconhecimento exige algoritmos mais complexos [RAV 96]. O aumento do tamanho do vocabulário ou do número de locutores exige um processamento computacional adicional. Certas aplicações, como a verificação de locutor ou o reconhecimento de diálogo podem exigir processamento em tempo real [DOD 85] [MAM 96]. Outras aplicações tais como brinquedos ou máquinas portáveis ainda podem agregar o requisito de portabilidade, e de baixo consumo, além de um sistema fisicamente compacto. Tais necessidades exigem uma solução em hardware. O presente trabalho propõe a implementação de um sistema de RAV utilizando hardware baseado em FPGAs (Field Programmable Gate Arrays) e otimizando os algoritmos que se utilizam no RAV. Foi feito um estudo dos sistemas de RAV e das técnicas que a maioria dos sistemas utiliza em cada etapa que os conforma. Deu-se especial ênfase aos Modelos Ocultos de Markov, seus algoritmos de cálculo de probabilidades, de treinamento e de decodificação de estados, e sua aplicação nos sistemas de RAV. Foi realizado um estudo comparativo dos sistemas em hardware, produzidos por outros centros de pesquisa, identificando algumas das suas características mais relevantes. Foi implementado um modelo de software, descrito neste trabalho, utilizado para validar os algoritmos de RAV e auxiliar na especificação em hardware. Um conjunto de funções digitais implementadas em FPGA, necessárias para o desenvolvimento de sistemas de RAV é descrito. Foram realizadas algumas modificações nos algoritmos de RAV para facilitar a implementação digital dos mesmos. A conexão, entre as funções digitais projetadas, para a implementação de um sistema de reconhecimento de palavras isoladas é aqui apresentado. A implementação em FPGA da etapa de pré-processamento, que inclui a pré-ênfase, janelamento e extração de características, e a implementação da etapa de reconhecimento são apresentadas finalmente neste trabalho.
Resumo:
A linguagem síncrona RS é destinada ao desenvolvimento de sistemas reativos. O presente trabalho tem como objetivo criar meios que facilitem o uso da linguagem RS no projeto e implementação desses sistemas, permitindo que, à partir da especificação de um sistema reativo, seja realizada a sua implementação de forma automática. Deste modo, a linguagem RS é utilizada para a descrição do comportamento de um sistema em um alto nível de abstração, antes de serfeitas a decomposição do sistema em componentes de software ou hardware. A implmentação do protótipo do sistema computacional dedicado é obtida através de uma síntese automática desse modelo de alto nível. Foram implementados geradores de código que utilizam o código objeto fornecido pelo compilador da linguagem RS. Os geradores fazem a tradução para a linguagem C, para a linguagem JAVA, ou para a linguagem de descrição de hardware VHDL. A partir da síntese desses códigos poderá ser obtida a implementação do sistema em um micrcoomputador comercial, em um microcomputador Java de dedicado (ASIP Java), ou em um hardware de aplicação específica (ASIC). Foram realizados estudos de caso representativos dos sistemas reativos embaraçados e de tempo rel. Estes estudos de caso serviram para validar os geradores de código bem como para analisar o uso da linguagem RS no projeto e implementação desses sistemas.