• Nenhum resultado encontrado

Fronteiras entre a Síntese Comportamental e a Síntese RTL

2 Síntese Comportamental

2.3 Fronteiras entre a Síntese Comportamental e a Síntese RTL

Segundo e.g. [7] e [21], existe uma sobreposição de funcionalidades entre as tarefas de alocação e amarração de recursos entre as sínteses comportamental e RTL, conforme mostra a Figura 5. Devido a esse fato, ferramentas de síntese comportamental podem realizar apenas a

tarefa de escalonamento enquanto que as tarefas de alocação e amarração podem ser deixadas a cargo das ferramentas de síntese RTL.

Figura 5 – Escopos de síntese comportamental e RTL, retirado de [21].

Segundo de Ku e de Micheli [22], pontos de sincronização são os pontos do tempo onde ocorre interação do sistema com o ambiente no qual ele está inserido. Em sistemas digitais síncronos a diferença essencial entre os níveis de abstração são os pontos de sincronização utilizados. A Tabela 1, retirada de [7], apresenta os diversos pontos de sincronização utilizados em diferentes níveis de abstração. No nível Sistema, processos são sincronizados através de trocas de mensagens. Processos podem ser representados no nível Algorítmico por grafos de dados/controle, sincronizados por eventos de entrada e saída (E/S). No nível Algorítmico, o grafo de fluxo de dados/controle pode ser representado utilizando máquinas de estados finitas com datapath (FSMD). No nível RTL, transferências de dados são realizadas dentro dos limites de cada ciclo de relógio e o modelo de entrada contempla as FSMs (Máquinas de Estados Finita, do inglês Finit State Machines), BDD (Diagrama de Decisão Binária, do inglês Binary Decision

Diagram) e as Equações Booloeanas. No nível Físico, as mudanças de valores nos fios definem

a sincronização.

Nível de Abstração Pontos de Sincronização Modelo de Entrada Sistema Mensagens entre processos Processos com comunicação Algorítmico Eventos E/S CFG, DFG, CDFG , FSMD

RTL Ciclo de Relógio FSM, BDD, Equações Booleanas Físico Mudança de valores nos fios Netlist de portas e modelo de leiaute

Tabela 1 – Pontos de sincronização e modelos de entrada em diferentes níveis de abstração.

A Tabela 2, retirada de [7], mostra o escopo das tarefas realizadas pelas sínteses comporta- mental e RTL e os modelos de entrada associados a cada tarefa. Pode-se observar que existe uma

sobreposição de funcionalidades entre a síntese comportamental e RTL. O modelo de entrada da síntese RTL e a arquitetura produzida têm em comum a sincronização dentro dos limites dos ciclos de relógio, isto é, são precisas em nível de ciclo. Na síntese comportamental essa precisão somente é obtida após a tarefa de escalonamento.

Tarefas da Sín- tese Comportamental RTL Pontos de sin- cronização Modelo de en- trada Pontos de sin- cronização Modelo de en- trada

Escalonamento Eventos E/S CFG - -

Alocação de re- cursos Relógio FSMD Relógio FSMD Amarração de recursos Relógio FSMD + Recur- sos Relógio FSMD + Recur- sos

Síntese Lógica - - Relógio FSM + Data-

path

Síntese do

Layout

- - - -

Tabela 2 – Escopo da síntese comportamental e da síntese RTL [7].

A síntese comportamental traz um conjunto potencial de vantagens tais como o encurta- mento do ciclo de desenvolvimento do projeto, antecipação das estimativas de desempenho, maior facilidade de reuso, independência de tecnologia, melhor relação dos compromissos as- sumidos com relação a área, tempo, potência e desempenho. Contudo, conforme [21], existem alguns problemas ainda hoje que dificultam que esse tipo de síntese seja utilizado pela indús- tria, incluindo: o resultado da síntese é difícil de entender, o modelo de entrada não é prático e é difícil integrar síntese comportamental nos fluxos de projeto existentes. Além disto, e em muitos casos, ferramentas RTL têm um resultado nitidamente melhor.

A referência [21] apresenta uma proposta de integração eficiente entre síntese comporta- mental e RTL. Aquele trabalho introduz um fluxo de síntese comportamental, cujas principais características são: a síntese é centrada na tarefa de escalonamento e sua saída é um código de alto nível preciso em nível de ciclo, que descreve uma FSM que pode ser explorada via síntese RTL; o modelo comportamental de entrada é um subconjunto de VHDL que permite misturar protocolos precisos e modelos comportamentais puros em uma mesma especificação. O código RTL produzido é fácil de entender, alegam ainda os autores do trabalho.

O escalonamento proposto consiste dividir operações complexas do sistema em operações mais simples, para que estas fiquem confinadas em um ciclo relógio. O método de escalo- namento usado parte de FSMs complexas em nível comportamental e produz um conjunto de FSMs precisas em nível de ciclo. Dois passos são utilizados durante este processo. O primeiro passo manipula os estados da FSM implícitos na descrição comportamental. Isto se dá, princi- palmente, devido à dependência de dados e laços que incluem ou não pontos de sincronização.

Para isso, o algoritmo de escalonamento dinâmico de laços é utilizado. Esse algoritmo produz um novo modelo onde as transações são formadas por operações que podem ser executadas em paralelo em um passo de controle. Este passo assume que existe um período de relógio infinito e uma quantidade de recursos também infinita. O segundo passo realiza uma retemporização (do inglês, retiming) em nível de sistema para assegurar que todas operações simples, que foram anteriormente extraídas de uma descrição complexa, possam ser executadas em um único ciclo de relógio. Assim, novos estados de FSM podem ser incluídos para garantir a execução correta das operações do sistema. A descrição resultante da execução do escalonamento pode ser utili- zada em uma ferramenta de síntese RTL tradicional para as etapas de alocação e amarração de recursos.