• Nenhum resultado encontrado

N´ıvel de abstra¸c˜ao ´e a descri¸c˜ao do projeto com uma determinada quantidade de detalhamento. O aumento (ou eleva¸c˜ao) nos n´ıveis de abstra¸c˜ao tamb´em ´e um dos meios utilizados para tentar diminuir o tempo gasto na concep¸c˜ao de projetos. Al´em disso, ´e visto como uma das formas de aumentar a sua eficiˆencia. A complexidade de se desenvolver ou alterar qualquer m´odulo no n´ıvel de transferˆencia de registradores ´e alta. Quando se eleva os n´ıveis a um patamar onde o projetista n˜ao precisa mais se preocupar com determinados tipos de detalhes de implementa¸c˜ao, a tarefa de descrever as funcionalidades de um m´odulo, bem como suas conex˜oes e interfaces, torna-se muito mais f´acil.

A FIG. 3.3 abaixo apresenta a divis˜ao dos n´ıveis de abstra¸c˜ao de um projeto de SoC e destaca aqueles onde a metodologia ir´a auxiliar o projetista no desenvolvimento da primeira especifica¸c˜ao execut´avel do sistema.

Figura 3.3: N´ıveis de Abstra¸c˜ao alvo da Metodologia

3.2.1

Especifica¸c˜ao

A especifica¸c˜ao ´e o n´ıvel onde est˜ao detalhadas as caracter´ısticas e funcionalidades dos m´odulos do sistema. N˜ao existe distin¸c˜ao entre hardware e software, e a temporiza¸c˜ao n˜ao ´e representada. Todos os requisitos do projeto bem como os detalhes relacionados a custos, riscos e restri¸c˜oes s˜ao cuidadosamente documentados. O diagrama de casos de uso ´e muito utilizado nesse n´ıvel de detalhamento. O que se descreve ´e uma representa¸c˜ao quase algor´ıtmica de como os m´odulos do sistema se comportam (casos de uso) e com quais outros m´odulos (atores) se relacionam.

3.2.2

Descri¸c˜ao UML

A descri¸c˜ao UML ´e praticamente um detalhamento dos requisitos apresentados no n´ıvel de especifica¸c˜ao, geralmente com o aux´ılio de uma ferramenta de modelagem com suporte a linguagem UML. O sistema ´e modelado a partir de um conjunto de diagramas

comportamentais e estruturais que representam a sua funcionalidade e o comportamento. Neste n´ıvel o que se obt´em ´e um refinamento da especifica¸c˜ao que proporciona uma vis˜ao geral e uma representa¸c˜ao mais detalhada do comportamento sistema. Por meio dessa descri¸c˜ao ´e poss´ıvel identificar prov´aveis erros de concep¸c˜ao e conflitos futuros. A divis˜ao entre hardware e software, e a temporiza¸c˜ao tamb´em n˜ao s˜ao representados.

3.2.3

Especifica¸c˜ao Execut´avel

A especifica¸c˜ao execut´avel ´e a implementa¸c˜ao da descri¸c˜ao UML na linguagem de descri¸c˜ao de hardware SystemC. O resultado obtido neste n´ıvel ´e um modelo funcional e execut´avel dessa descri¸c˜ao que pode ser simulado. Esse n´ıvel de detalhamento permite que problemas de execu¸c˜ao e de comportamento sejam identificados e solucionados. Este ´e um n´ıvel de grande relevˆancia, pois ´e utilizado como base para o refinamento dos demais e pode ser utilizado como referˆencia em qualquer plataforma de desenvolvimento adotada.

3.2.4

Fluxo de Dados (Data Flow - DF)

Neste n´ıvel de abstra¸c˜ao tamb´em se descreve as funcionalidade dos m´odulos do sistema, por´em, o que o difere dos demais vistos anteriormente ´e que o modelo agora apresenta de forma clara a troca de mensagens entre m´odulos. Ele est´a dividido em dois est´agios. O primeiro, caracterizado como “Untimed Data Flow ” (UDF) descreve a funcionalidade do m´odulo sem a no¸c˜ao de temporiza¸c˜ao e o segundo, “Timed Data Flow ” (TDF), descreve o m´odulo em rela¸c˜ao ao tempo, com a inser¸c˜ao de atrasos temporais na sua implementa¸c˜ao. Abaixo est˜ao descritos em detalhes os dois est´agios:

• UDF - Este est´agio n˜ao se utiliza de nenhum tipo de sinal de sincronismo ou qualquer tipo de atraso temporal para sincronizar o m´odulo. O modelo de fluxo de dados ´e completamente orientado a eventos e o comportamento do m´odulo ´e verificado de maneira ass´ıncrona, ou seja, cada a¸c˜ao dentro do mesmo ocorre apenas em decorrˆencia de est´ımulos gerados por eventos. Essa abordagem facilita a valida¸c˜ao do melhor

algoritmo funcional devido a elimina¸c˜ao da preocupa¸c˜ao desnecess´aria com detalhes de temporiza¸c˜ao. O projetista ´e obrigado a sincronizar os m´odulos somente com a¸c˜oes (eventos), favorecendo (ou destacando) quest˜oes diretamente ligadas `a funcionalidade.

• TDF - O modelo de fluxo de dados temporizado tem capacidade para representar a no¸c˜ao de tempo. Agora existe a preocupa¸c˜ao com o sincronismo dos eventos e das opera¸c˜oes realizadas pelo m´odulo no espa¸co de tempo, bem como os respectivos atrasos de processamento e de comunica¸c˜ao. Por meio dela torna-se poss´ıvel analisar como os efeitos de latˆencia poderiam influenciar no comportamento final do m´odulo, se realmente ele esta gerando as respostas de acordo com a especifica¸c˜ao dada e se os resultados esperados est˜ao sendo realmente gerados em tempo h´abil para sua valida¸c˜ao.

3.2.5

Descri¸c˜ao Comportamental

O n´ıvel Comportamental ´e uma descri¸c˜ao algor´ıtmica do comportamento do sistema. Ele geralmente ´e descrito na forma de precis˜ao de ciclos e ainda n˜ao apresenta a estrutura RTL esperada para a implementa¸c˜ao final. A principal diferen¸ca entre esses dois n´ıveis, Comportamental e RTL, est´a relacionada com a temporiza¸c˜ao. Enquanto o RTL tem sua sincroniza¸c˜ao definida em termos de ciclos de “clock”, o Comportamental ´e geralmente sincronizado atrav´es da utiliza¸c˜ao de passos computacionais. Como exemplo, a sincroniza¸c˜ao entre os processos de um sistema no n´ıvel Comportamental pode ser feita utilizando o comando “wait”, cuja a fun¸c˜ao ´e aguardar at´e que um evento (ou processo) seja conclu´ıdo antes de se passar ao pr´oximo, ou inserindo atrasos temporais. As descri¸c˜oes no n´ıvel Comportamental s˜ao compactas e mais f´aceis de entender do que descri¸c˜oes em RTL. As simula¸c˜oes tamb´em s˜ao mais r´apidas, devido ao n´ıvel de abstra¸c˜ao ser mais alto.

3.2.6

RTL

Segundo Jerraya [13] este n´ıvel de abstra¸c˜ao ´e visto como o ´ultimo na descri¸c˜ao do projeto de hardware. ´E nele onde a maioria das ferramentas de s´ıntese trabalham. O n´ıvel de detalhamento do m´odulo corresponde `a sua sincroniza¸c˜ao atrav´es de sinais de

clock. Toda a comunica¸c˜ao entre processos ocorre ´unica e exclusivamente atrav´es de sinais. O comportamento, ou funcionalidade, ´e representado pelo fluxo dos dados atrav´es de blocos funcionais (“datapath”) habilitados por sinais gerados pela unidade de controle, geralmente implementada por m´aquina de estado finitas.

Documentos relacionados