• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 1
  • Tagged with
  • 1
  • 1
  • 1
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

The development of a hardware abstraction layer generator for system-on-chip functional verification

Sampaio Lins, Tiago 31 January 2009 (has links)
Made available in DSpace on 2014-06-12T15:58:20Z (GMT). No. of bitstreams: 2 arquivo3518_1.pdf: 1045256 bytes, checksum: e867a269b3f60e64d58cb765a97aec17 (MD5) license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5) Previous issue date: 2009 / Conselho Nacional de Desenvolvimento Científico e Tecnológico / Atualmente o processo de verificação funcional de System-on-Chip (SoC) complexos envolve centenas de engenheiros ao longo do projeto de um circuito integrado. Tal esforço visa garantir um nível de confiança satisfatório antes do mesmo ser enviado para o tapeout . Estudos recentes revelaram que a etapa de verificação funcional constitui de 70% a 80% do esforço total do projeto sendo a etapa mais onerosa em termos de custo e tempo dentro do fluxo de desenvolvimento de um SoC. Devido às restrições de time-to-market e a atual complexidade dos SoCs, as equipes de verificação funcional não usufruem do tempo necessário para obter o conhecimento do sistema a ser verificado em profundidade. Contudo eles precisam garantir que todos os módulos de propriedades intelectual (IP) presentes em um SoC continuam funcionando de acordo com a sua especificação após integrados. Na verificação funcional existem várias técnicas de como proceder com a mesma. Atualmente, a mais utilizada é a verificação com auxílio de um processador processor driven tests . Dado que nesses complexos sistemas sempre há um processador o qual é responsável pelo controle do sistema. Uma forma de verificar se todos os IPs dentro da hierarquia do SoC funcionam de acordo com suas especificações é executar aplicações em software neste processador e verificar a saída do sistema. A idéia consiste em estimular um IP através de rotinas em software comparando o resultado gerado com o esperado. Nesta abordagem, um dos problemas existente consiste na escrita dos casos de testes. Uma vez que nesses sistemas encontramos uma grande quantidade de IPs, e estando os mesmos dispostos em diferentes níveis de hierarquia de barramentos dentro do SoC, acessar suas interfaces e seus componentes internos utilizando uma linguagem estruturada, como C, é bastante complexo. Os IPs são acessados via dispositivo de entrada e saída baseado em memória, ou seja, cada IP possui um ou mais endereços e a decodificação desses endereços é feita pelos barramentos existentes no sistema. Para o processador é transparente se uma rotina de escrita ou leitura vai ser processada por um bloco de memória de fato ou por um IP com um conjunto de registradores internos. Desta forma, quando o engenheiro de verificação está escrevendo os casos de testes ele precisa lidar com manipulação de endereços, macros e/ou estruturas, defines, ou ainda, partir para uma linguagem de montagem.No processo de escrita dos casos de testes, as rotinas que implementam o acesso aos registradores e seus campos consistem em uma atividade fundamental para permitir o teste de funcionalidade do sistema. A essas rotinas encarregadas de ler e escrever valores nos registradores internos do IPs de um SoC chamamos de camada de abstração de hardware Hardware Abstraction Layer (HAL). A STMicroelectronics, uma das lideres mundial na industria de semicondutores, através do seu grupo de verificação funcional decidiu desenvolver uma metodologia para verificação funcional de SoC que fizesse o uso de ferramentas específicas para automatizar parte das atividades relacionadas a esta fase do projeto de um circuito integrado. Uma necessidade do time de verificação funcional, no contexto desta metodologia, consistia em possuir uma ferramenta capaz de automatizar o processo de geração dessa HAL, uma vez que os engenheiros de verificação tinham bastante trabalho na escrita dessas rotinas e em muitos casos elas eram responsáveis por falhas no processo de verificação funcional. O interesse do time era permitir que o engenheiro focasse seu trabalho no teste de funcionalidade do SoC não despendendo seu tempo na implementação das rotinas de acesso aos registradores dos IPs. Este trabalho foi desenvolvido em parceira com a STMicroelectronics visando estudar e propor uma ferramenta capaz de atender tal necessidade. O trabalho propõe a implementação de uma ferramenta capaz de gerar a camada de abstração de hardware. A ferramenta proposta, HAL generator , é um dos instrumentos que suportam a automação de parte do processo de verificação funcional. Esta ferramenta é responsável pela geração automática de uma API que permite a manipulação dos valores dos registradores. A manipulação dos valores pode ser feita em todo registrador ou em subcampos do mesmo através de uma interface em um alto nível de abstração. Os engenheiros de verificação utilizam as funções geradas pelo HAL generator para ler e escrever valores nos registradores do SoC a ser verificado. A ferramenta é capaz de gerar tanto a declaração como definição das funções. As funções são geradas na linguagem de programação C e funcionam como uma API para ler e escrever valores nos registradores. Com o apoio dessas funções geradas pela ferramenta, a codificação dos casos de testes fica mais fácil e produtiva, permitindo ainda a reutilização dos casos de testes em outros sistemas dado que a API gerada pelo HAL generator segue um padrão na geração das funções o qual garante que um caso de testepara um mesmo IP possa ser executado em contextos diferentes, bastando apenas executar o HAL generator para cada cenário

Page generated in 0.1394 seconds