projeto de controladores assÍncronos … · começamos a partir de uma especificação síncrona...

10
Anais do 15 O Encontro de Iniciação Científica e Pós-Graduação do ITA – XV ENCITA / 2009 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, Outubro, 19 a 22, 2009. PROJETO DE CONTROLADORES ASSÍNCRONOS MODO RAJADA ESTENDIDO EM DISPOSITÍVOS PROGRAMÁVEIS José Mário da Silva Filho Divisão de Eletrônica Aplicada do Instituto Tecnológico de Aeronáutica – I TA – IEEA Praça Marechal Eduardo Gomes, 50 – CEP 12228-900 – São José dos Campos – SP – Brasil Bolsista PIBIC-CNPq Email: [email protected] Duarte Lopes de Oliveira Divisão de Eletrônica Aplicada do Instituto Tecnológico de Aeronáutica – I TA – IEEA Praça Marechal Eduardo Gomes, 50 – CEP 12228-900 – São José dos Campos – SP – Brasil Email: [email protected] Resumo. No projeto atual de sistemas digitais síncronos complexos os maiores problemas são o controle da potencia dissipada e a rede de distribuição de relógio. Outra característica atual e a implementação de tais sistemas em dispositivos programáveis, tais como FPGAs (Field Programmable Gate array) e CPLDs (Control Programmable Logic Devices), que e devido ao baixo custo e tempo curto de projeto. Um estilo de projeto que elimina os dois problemas citados é o paradigma assíncrono. Neste artigo mostramos os controladores assíncronos modo-rajada estendido, a técnica de de-sincronização de controladores síncronos e discutimos os problemas de implementação dos controladores assíncronos nos dispositivos programáveis. Palavras chave: lógica assíncrona, PLD, de-sincronização, hazard, protocolo handshaking 1. Introdução Os dispositivos programáveis (programmam logic devices – PLD), por exemplo, FPGAs e CPLDs, tornaram-se um meio popular de implementar circuitos digitais. Tecnologia PLD tem crescido consideravelmente nos últimos anos, gerando PLDs de até 50 milhões de portas, permitindo assim que sistemas digitais complexos possam ser programados em tais dispositivos. PLDs de alto desempenho são implementados na tecnologia MOS Deep-Sub-Micron (MOS- DSM). Essa tecnologia necessita operar com baixo ruído e a diferença entre o atraso máximo e mínimo nas linhas, portas é maior quando comparado com outras tecnologias MOS e o atraso em uma linha pode ser maior que o atraso em uma porta. Sistemas digitais síncronos usam um sinal de relógio global para sincronizar as suas operações e são bastantes populares devido à simplicidade de projeto. Também há uma oferta abundante de ferramentas CAD comerciais para síntese automática. Um sério problema na tecnologia MOS-DSM é conviver com o sinal de relógio global, porque ele é um grande causador de ruído, de alta emissão eletromagnética, consome uma parte significativa da potência e definir a distribuição do sinal de relógio é uma tarefa com complexidade crescente (por exemplo: relógio defasado – clock skew). Análise de temporização de circuitos digitais MOS-DSM síncronos de alta integração é extremamente difícil. Sistemas digitais complexos na maioria das vezes exigem uma potencia que a tecnológica MOS- DSM não suporta, portanto a potência dissipada é um parâmetro muito importante na concepção de tais sistemas. Em um sistema digital á parte seqüencial é o principal contribuinte para a dissipação de potência dinâmica. Estudos recentes têm mostrado que em tais sistemas o relógio consome uma grande percentagem (15% a 45%) da potência do sistema. Uma interessante alternativa para projeto digital, porque ele elimina os problemas causados pelo sinal de relógio e aumenta a robustez é o paradigma assíncrono. 1.1. Sistemas digitais assíncronos Sistemas digitais assíncronos operam por eventos não possuem um sinal global que sincroniza as operações. A sincronização é realizada por protocolos do tipo Handshaking. Sistema digital assíncrono pode ser projetado em três diferentes estilos: a) decomposição controlador + data-path; b) micropipeline; c) composição com macromódulos. Os três estilos podem ser projetados em diferentes classes de circuitos assíncronos. A classe define em que modelo de atraso o circuito opera corretamente e em que modo de operação o circuito se comunica com o ambiente (Myers, 2001). Inicialmente os circuitos assíncronos podem ser classificados em duas classes: a) portas e linhas com atrasos delimitados (bounded gate and wire delay); b) portas e linhas com atrasos quaisquer (indefinidos), mas finitos (unbounded gate and wire delay). Dois importantes circuitos assíncronos que obedecem ao modelo de atraso (a) são: modo-rajada e extensões (burst-mode circuits) e temporizado (timed circuit) (Myers, 2001). O circuito insensível ao atraso (delay insensitive circuit – DI) obedece ao modelo de atraso (b) (Spars, 2001). Este modelo é o mais robusto e

Upload: hoangnhan

Post on 26-Sep-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROJETO DE CONTROLADORES ASSÍNCRONOS … · Começamos a partir de uma especificação síncrona através de uma máquina Moore com grafo de fluxo de estados mostrado na figura 5

Anais do 15O Encontro de Iniciação Científica e Pós-Graduação do ITA – XV ENCITA / 2009 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, Outubro, 19 a 22, 2009.

PROJETO DE CONTROLADORES ASSÍNCRONOS MODO RAJADA ESTENDIDO EM DISPOSITÍVOS PROGRAMÁVEIS

José Mário da Silva Filho Divisão de Eletrônica Aplicada do Instituto Tecnológico de Aeronáutica – I TA – IEEA Praça Marechal Eduardo Gomes, 50 – CEP 12228-900 – São José dos Campos – SP – Brasil Bolsista PIBIC-CNPq Email: [email protected] Duarte Lopes de Oliveira Divisão de Eletrônica Aplicada do Instituto Tecnológico de Aeronáutica – I TA – IEEA Praça Marechal Eduardo Gomes, 50 – CEP 12228-900 – São José dos Campos – SP – Brasil

Email: [email protected] Resumo. No projeto atual de sistemas digitais síncronos complexos os maiores problemas são o controle da potencia dissipada e a rede de distribuição de relógio. Outra característica atual e a implementação de tais sistemas em dispositivos programáveis, tais como FPGAs (Field Programmable Gate array) e CPLDs (Control Programmable Logic Devices), que e devido ao baixo custo e tempo curto de projeto. Um estilo de projeto que elimina os dois problemas citados é o paradigma assíncrono. Neste artigo mostramos os controladores assíncronos modo-rajada estendido, a técnica de de-sincronização de controladores síncronos e discutimos os problemas de implementação dos controladores assíncronos nos dispositivos programáveis. Palavras chave: lógica assíncrona, PLD, de-sincronização, hazard, protocolo handshaking

1. Introdução

Os dispositivos programáveis (programmam logic devices – PLD), por exemplo, FPGAs e CPLDs, tornaram-se um meio popular de implementar circuitos digitais. Tecnologia PLD tem crescido consideravelmente nos últimos anos, gerando PLDs de até 50 milhões de portas, permitindo assim que sistemas digitais complexos possam ser programados em tais dispositivos. PLDs de alto desempenho são implementados na tecnologia MOS Deep-Sub-Micron (MOS-DSM). Essa tecnologia necessita operar com baixo ruído e a diferença entre o atraso máximo e mínimo nas linhas, portas é maior quando comparado com outras tecnologias MOS e o atraso em uma linha pode ser maior que o atraso em uma porta. Sistemas digitais síncronos usam um sinal de relógio global para sincronizar as suas operações e são bastantes populares devido à simplicidade de projeto. Também há uma oferta abundante de ferramentas CAD comerciais para síntese automática. Um sério problema na tecnologia MOS-DSM é conviver com o sinal de relógio global, porque ele é um grande causador de ruído, de alta emissão eletromagnética, consome uma parte significativa da potência e definir a distribuição do sinal de relógio é uma tarefa com complexidade crescente (por exemplo: relógio defasado – clock skew). Análise de temporização de circuitos digitais MOS-DSM síncronos de alta integração é extremamente difícil. Sistemas digitais complexos na maioria das vezes exigem uma potencia que a tecnológica MOS-DSM não suporta, portanto a potência dissipada é um parâmetro muito importante na concepção de tais sistemas. Em um sistema digital á parte seqüencial é o principal contribuinte para a dissipação de potência dinâmica. Estudos recentes têm mostrado que em tais sistemas o relógio consome uma grande percentagem (15% a 45%) da potência do sistema. Uma interessante alternativa para projeto digital, porque ele elimina os problemas causados pelo sinal de relógio e aumenta a robustez é o paradigma assíncrono.

1.1. Sistemas digitais assíncronos

Sistemas digitais assíncronos operam por eventos não possuem um sinal global que sincroniza as operações. A sincronização é realizada por protocolos do tipo Handshaking. Sistema digital assíncrono pode ser projetado em três diferentes estilos: a) decomposição controlador + data-path; b) micropipeline; c) composição com macromódulos. Os três estilos podem ser projetados em diferentes classes de circuitos assíncronos. A classe define em que modelo de atraso o circuito opera corretamente e em que modo de operação o circuito se comunica com o ambiente (Myers, 2001). Inicialmente os circuitos assíncronos podem ser classificados em duas classes: a) portas e linhas com atrasos delimitados (bounded gate and wire delay); b) portas e linhas com atrasos quaisquer (indefinidos), mas finitos (unbounded gate and wire delay). Dois importantes circuitos assíncronos que obedecem ao modelo de atraso (a) são: modo-rajada e extensões (burst-mode circuits) e temporizado (timed circuit) (Myers, 2001). O circuito insensível ao atraso (delay insensitive circuit – DI) obedece ao modelo de atraso (b) (Spars, 2001). Este modelo é o mais robusto e

Page 2: PROJETO DE CONTROLADORES ASSÍNCRONOS … · Começamos a partir de uma especificação síncrona através de uma máquina Moore com grafo de fluxo de estados mostrado na figura 5

Anais do 15O Encontro de Iniciação Científica e Pós-Graduação do ITA – XV ENCITA / 2009 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, Outubro, 19 a 22, 2009. isento de qualquer análise de temporização. Martin (Spars, 2001) mostra que a aplicação deste modelo é muito restrita. Duas variantes menos restrita deste modelo de atraso são: a) circuitos independentes da velocidade (speed independent circuit – SI), que obedecem ao modelo onde o atraso nas portas é indefinido, mas finito e nas linhas o atraso é zero (Myers, 2001); b) circuitos quase insensíveis ao atraso (quasi insensitive delay – QDI), que obedecem ao modelo (b), mas com a restrição isochronic fork. Esta restrição diz que linhas com fan-out >1 (garfo) os atrasos são iguais (Spars, 2001). A comunicação do circuito com o ambiente ou é realizada no modo fundamental (MF) (por exemplo: modo-rajada) ou no modo Entrada/Saída (M_E/S) (por exemplo: DI, SI, QDI) (Myers, 2001; Spars, 2001). No MF a mudança de um novo conjunto de entradas o circuito deve estar estabilizado. No M_E/S a mudança de um sinal de saída pode imediatamente habilitar a mudança de um sinal na entrada.

Figura 1: Arquitetura decomposição

Um estilo de projeto de um sistema assíncrono é a decomposição do sistema em controladores assíncronos (máquinas de estado finito - AFSMs) e data-path [(Nielsen, 2009) (ver Fig. 1). Uma especificação baseada em diagramas de estado foi proposto para descrever controladores assíncronos para síntese otimizada: Modo-rajada (Burst-Mode –BM) (Myers, 2001). Ela é muito popular porque é familiar aos projetistas do mundo síncrono e é usada para descrever máquinas de estado finito assíncrona do tipo Mealy. Estas máquinas interagem com o ambiente no modo fundamental generalizada (GFM). Neste modo, um novo conjunto de sinais de entrada só será ativado se o controlador está estabilizada. Estas máquinas obedecem ao modelo de atraso, onde o atraso nas portas e linhas é delimitado em mínimo e máximo. Yun expandiu a especificação BM, é conhecida como modo rajada estendida (Extended Burst-Mode –XBM) (Myers, 2001). A especificação XBM apresenta dois tipos de sinais de entrada, que são: a) sinais condicionais com comportamento não monotônico (sinal sensíveis ao nível; b) sinais irrelevantes (Directed Don’t-care) que permitem serem ativados simultaneamente com sinais de saída (Myers, 2001)Nielsen, 2009).

1.2. Projeto digital em PLD

Projeto digital em PLDs (Altera, 2009). Estes dispositivos são bastantes populares para prototipagem e produção de

circuitos digitais, isto é devido ao seu baixo custo e tempo curto de projeto. O seu foco tem sido circuitos digitais síncronos. Houve alguns recentes esforços para prototipagem assíncrona. Ela foi realizada em FPGAs e CPLDs comerciais e FPGAs assíncronas acadêmicas. Existem duas razões porque FPGAs comerciais têm dificuldades em implementar sistemas assíncronos (Tranchero, 2008):

1) Processo de mapeamento de funções Booleanas livre de risco em blocos lógicos (macro células) pode introduzir risco (hazard). As ferramentas comerciais de decomposição e mapeamento em macro-celulas de funções Booleanas livre de risco não estão preparadas para satisfazer os requisitos de decomposição livre de risco lógico, portanto é necessária uma intervenção manual. A decomposição deve satisfazer os requisitos propostos em Sigel et al.(1994).

2) Processo de roteamento interno entre blocos lógicos pode introduzir atrasos significativos que pode resultar em risco essencial. Para solucionar problemas de risco essencial há diferentes estratégias. Elas dependem do modelo de atraso em que o circuito assíncrono opera..

Neste artigo mostramos a síntese de controladores assíncronos. As técnicas de-sincronização e síntese lógica usadas

no projeto de controladores assíncronos são revistas e discutidas na implementação em PLDs. Este artigo está estruturado como segue: seção 2 apresenta a especificação modo rajada estendido; seção 3 mostra a

técnica de de-sincronizacao; seção 4 mostra a técnica de síntese lógica; seção 5 finalmente as nossas conclusões e trabalho futuro.

Page 3: PROJETO DE CONTROLADORES ASSÍNCRONOS … · Começamos a partir de uma especificação síncrona através de uma máquina Moore com grafo de fluxo de estados mostrado na figura 5

Anais do 15O Encontro de Iniciação Científica e Pós-Graduação do ITA – XV ENCITA / 2009 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, Outubro, 19 a 22, 2009. 2. Especificação modo-rajada estendido Figura 2 mostra a especificação XBM do controlador assíncrono SCSI- INIT-SEND (Small Computer Systems Interface). Os sinais de entrada são: ok, fain e rin. O sinal condicional é cntgtl. Os sinais de saída são: frout e aout. Um exemplo é o arco rotulado com[ <cntgtl-> rin- / aout-] que significa se cntgtl=0 e a entrada rin muda de 1 para 0, a saída aout vai mudar de 1 para 0. Na transição de estado do 4th estado para o 5th estado o sinal rin* é do tipo irrelevante, assim o sinal pode ser ativado ou não. Outras restrições à especificação XBM deve satisfazer (Myers, 2001).

Figura 2: Especificação no modo rajada estendido.

3. De-sincronizacao

Na figura 3, observa-se uma proposta de síntese de sistema digital, com controlador assíncrono e datapath síncrono.

Figura 3: Proposta de arquitetura de sistemas digitais.

Circuitos nesse formato podem ser obtidos através do procedimento de de-sincronização (Branover, 2004; Lavagno, 2007). Uma vantagem dessa técnica é que ela parte de uma especificação síncrona. A desvantagem é que ela exige a utilização de elementos de atraso, o que é inconveniente em FPGA. Os passos para a de-sincronização de um controlador síncrono são:

1. Identificação de entradas e saídas. 2. Substituição de flip-flops. 3. Criação dos conjuntos de bifurcações e junções. 4. Construção da rede de request. 5. Construção da rede de acknowledge.

Ilustraremos essa seqüência de passos através de um exemplo: o controlador de um semáforo. O problema que

desejamos resolver é controlar o semáforo de um cruzamento entre uma avenida movimentada e uma rua com pouco tráfego. O diagrama de blocos do sistema a ser utilizado está mostrado na figura 4.

Page 4: PROJETO DE CONTROLADORES ASSÍNCRONOS … · Começamos a partir de uma especificação síncrona através de uma máquina Moore com grafo de fluxo de estados mostrado na figura 5

Anais do 15O Encontro de Iniciação Científica e Pós-Graduação do ITA – XV ENCITA / 2009 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, Outubro, 19 a 22, 2009.

Figura 4: Diagrama de blocos do sistema de controle de semáforo.

Detector de carro é um circuito capaz de indicar através de sua saída C a presença de um carro na rua menos movimentada. Luzes é um bloco combinatório que acende ou apaga as luzes do semáforo de acordo com o seguinte código:

• (a,b) = (0,0) avenida verde, rua vermelho. • (a,b) = (0,1) avenida amarelo, rua vermelho. • (a,b) = (1,1) avenida vermelho, rua verde. • (a,b) = (1,0) avenida vermelho, rua amarelo.

Temporizador é um circuito monoestável que cronometra os tempos do sinal verde (TL) e do sinal amarelo (TC).

Esse temporizador é resetado toda vez que ocorre mudança no vetor de bits (a,b). O bloco controlador é o que estamos interessados em construir. Começamos a partir de uma especificação síncrona através de uma máquina Moore com grafo de fluxo de estados mostrado na figura 5.

Figura 5: Grafo de transição de estados do controlador.

O circuito síncrono dessa máquina de estados é facilmente gerado por VHDL (D’Amore, 2005), bem como o

bloco combinatório Luzes. O resultado obtido com o Quartus II Web Edition está mostrado na figura 6.

Figura 6: Circuito síncrono sintetizado a partir de VHDL comportamental.

Page 5: PROJETO DE CONTROLADORES ASSÍNCRONOS … · Começamos a partir de uma especificação síncrona através de uma máquina Moore com grafo de fluxo de estados mostrado na figura 5

Anais do 15O Encontro de Iniciação Científica e Pós-Graduação do ITA – XV ENCITA / 2009 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, Outubro, 19 a 22, 2009.

O procedimento de de-sincronização que utilizaremos consiste, superficialmente, em trocar cada flip-flop por um par de latches (um mestre e um escravo), bem como um controlador para cada um desses pares. Esse controlador encontra-se especificado na forma de uma rede de Petri e sintetizado ao nível de portas e elementos-C (Shams, 1998). Essa estrutura será representada neste artigo pelo símbolo da figura 7.

Figura 7: Símbolo para latches e controlador de handshake.

Para fins de de-sincronização, o circuito da figura 6 pode ser encarado como o diagrama de blocos mostrado na figura 8.

Figura 8: Diagrama simplificado do circuito síncrono.

Os blocos LC representam lógicas combinatórias das equações de próximo estado e das equações de saída. Agora, basta aplicar o procedimento descrito em [3] ao circuito da figura 8. Executaremos a mesma seqüência de

passos descrita nessa referência. Extração de entradas e saídas: esse passo consiste em identificar as entradas e saídas de todos os blocos

combinatórios no circuito síncrono. Para o circuito da figura 8, temos os seguintes conjuntos: • Entradas = {IN, Q1, Q2} • Saídas = {OUT, D1, D2}

Substituição de flip-flops: nesse ponto, substituímos cada flip-flop por um par de latches mestre-escravo mais o

controlador associado. O controlador, proposto em [3], está mostrado na figura 9. Os sinais D_m e D_s são os dados do mestre e do escravo e os sinais L_m e L_s são os sinais de controle (load ou enable) do mestre e do escravo, respectivamente. Os subcircuitos com formato retangular, duas entradas e uma saída são elementos C, implementados a nível de portas lógicas, pela equação .

Figura 9: Controlador dos latches mestre_escravo.

Page 6: PROJETO DE CONTROLADORES ASSÍNCRONOS … · Começamos a partir de uma especificação síncrona através de uma máquina Moore com grafo de fluxo de estados mostrado na figura 5

Anais do 15O Encontro de Iniciação Científica e Pós-Graduação do ITA – XV ENCITA / 2009 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, Outubro, 19 a 22, 2009.

As lógicas combinatórias permanecem inalteradas durante todo o processo de de-sincronização, o que torna esse algoritmo muito apropriado para a síntese em larga escala de circuitos assíncronos. O circuito obtido nesse passo é mostrado na figura 10.

Figura 10: Substituição de flip-flops.

Perceba que faltam em cada controlador os sinais de handshake. Até o fim do procedimento, esses sinais devem ser

devidamente gerados, mas antes disso, tem que criar os conjuntos de bifurcações e junções. Criação dos conjuntos de bifurcações e junções: o conjunto de bifurcações de uma entrada é definido como o

conjunto de saídas que são funções combinatórias direta dela. Analogamente, o conjunto de junções de uma saída é definido como o conjunto de entradas de cujas ela é função combinatória direta. Sendo assim, representando o conjunto de bifurcações por B e o conjunto de junções por J, podemos dizer:

• B(IN) = {D1, D2} • B(Q1) = {OUT, D1, D2} • B(Q2) = {OUT, D1, D2} • J(OUT) = {Q1, Q2} • J(D1) = {IN, Q1, Q2} • J(D2) = {IN, Q1, Q2}

Conforme podemos perceber, entradas têm conjuntos de bifurcações, saídas têm conjuntos de junções, elementos

de conjuntos de bifurcações são saídas e elementos de conjuntos de junções são entradas. Construção da rede de request: para a construção da rede de request, são utilizados principalmente os conjuntos

de junções. Isso porque um conjunto de junção indica de quais entradas uma saída é função direta, e quando as entradas de um bloco combinatório forem válidas, é preciso que o sinal de request assuma o valor 1 após o tempo do caminho crítico. Assim, podemos criar a seguinte regra:

Para cada saída S, deve haver sinais de request das entradas pertencentes a J(S), com os atrasos correspondentes da lógica combinatória, e unidas por um elemento-C.

O circuito nesse estágio está mostrado na figura 11.

Figura 11: Rede de request.

Page 7: PROJETO DE CONTROLADORES ASSÍNCRONOS … · Começamos a partir de uma especificação síncrona através de uma máquina Moore com grafo de fluxo de estados mostrado na figura 5

Anais do 15O Encontro de Iniciação Científica e Pós-Graduação do ITA – XV ENCITA / 2009 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, Outubro, 19 a 22, 2009.

Construção da rede de acknowledge: para a construção da rede de acknowledge, são utilizados principalmente os conjuntos de bifurcações. Isso porque um conjunto de bifurcação indica quais saídas são funções diretas de uma entrada, e quando as saídas de um bloco combinatório forem carregadas no latch mestre, é preciso que o sinal de acknowledge assuma o valor 1. Assim, podemos criar a seguinte regra:

Para cada entrada E, deve haver sinais de acknowledge das saídas pertencentes a B(E), e unidas por um elemento-C.

O circuito final de-sincronizado está mostrado na figura \ref{fig:final}.

Figura 12: Rede de acknowledge.

Apesar da elevada densidade de linhas na figura, sugere-se que o leitor acompanhe a formação separada da rede de

\textit{requests} e \textit{acknowledges}. Os passos descritos foram aplicados ao circuito da figura 6 com algumas variações, chegando ao circuito da

figura 13.

Figura 13: Circuito de-sincronizado final. 3.1. Elemento de atraso.

Perceba que na figura 13, são utilizados blocos de atraso. Esses blocos foram construídos com base na estrutura exemplificada na figura 14. Cada bloco contém 10 flip-flops D.

Page 8: PROJETO DE CONTROLADORES ASSÍNCRONOS … · Começamos a partir de uma especificação síncrona através de uma máquina Moore com grafo de fluxo de estados mostrado na figura 5

Anais do 15O Encontro de Iniciação Científica e Pós-Graduação do ITA – XV ENCITA / 2009 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, Outubro, 19 a 22, 2009.

Figura 14: Circuito lógico elemento de atraso com somente dois sinais.

Na figura 15, segue o diagrama de temporização da operação de um elemento de atraso assim especificado.

Figura 15: Diagrama de temporização do bloco de atraso. 4. Síntese lógica.

Uma outra forma de sintetizar circuitos como o da figura 3 é através de síntese lógica do controlador assíncrono, ao contrário do método da de-sincronização. Esse método de síntese é feito nas seguintes etapas:

• Especificação com modo rajada estendido através do grafo de transição de estados. • Geração das tabelas de transição de estados (eventualmente sendo necessária a resolução de conflitos). • Assinalamento de estados livre de corrida crítica. • Obtenção das equações de saída e de próximo estado livres de hazard.

Vamos exemplificar o procedimento com o mesmo sistema da figura 4. Vamos codificar o vetor (a,b) da

seguinte maneira:

• (a,b) = (0,0) avenida verde, rua vermelho. • (a,b) = (0,1) avenida amarelo, rua vermelho. • (a,b) = (1,1) avenida vermelho, rua verde. • (a,b) = (1,0) avenida vermelho, rua amarelo.

Na figura 16, segue-se a especificação em modo rajada estendido do controlador desejado.

Page 9: PROJETO DE CONTROLADORES ASSÍNCRONOS … · Começamos a partir de uma especificação síncrona através de uma máquina Moore com grafo de fluxo de estados mostrado na figura 5

Anais do 15O Encontro de Iniciação Científica e Pós-Graduação do ITA – XV ENCITA / 2009 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, Outubro, 19 a 22, 2009.

Figura 16: Especificação em modo rajada estendido.

A partir do gráfico da figura 16, montamos a tabela de transição de estados. Logo na segunda linha, na transição

de 1 para 2, encontra-se um conflito. Por causa disso, introduzimos uma variável de estado Z. Essa é a razão de obtermos duas tabelas de transição de estados, uma para cada valor de Z. A seguir, temos a tabela de transição de estados, preenchidas com os valores (a,b,Z).

a,b C,TC,TL 000 001 011 010 110 111 101 100

00 000 000 000 000 000 010 000 000 01 011 010 010 010 010 010 010 011 11 10 100 000 000 100

Z=0

00 01 011 111 111 011 11 111 111 101 111 111 101 111 111 10 100 101 101 101 101 101 101 100

Z=1

Perceba que a codificação dos estados foi livre de corrida crítica. Agora, basta gerar as equações lógicas

tomando extremo cuidado para eliminar hazards. Considerando as células não preenchidas da tabela como don’t cares, chegamos nas seguintes equações:

Sintetizando o circuito com o VHDL estrutural (com a introdução da variável de inicialização INI), obtivemos o

circuito da figura 17, que, ao ser simulado, apresenta característica da figura 18.

Figura 17: Controlador no modo rajada estendido.

Page 10: PROJETO DE CONTROLADORES ASSÍNCRONOS … · Começamos a partir de uma especificação síncrona através de uma máquina Moore com grafo de fluxo de estados mostrado na figura 5

Anais do 15O Encontro de Iniciação Científica e Pós-Graduação do ITA – XV ENCITA / 2009 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, Outubro, 19 a 22, 2009.

Figura 18: Diagrama de temporização do controlador. 5. Conclusão.

Um dos problemas da síntese assíncrona é a falta de ferramentas CAD, uma solução possível é o estilo de projeto assíncrono denominado de de-simcronização. Neste artigo apresentamos um estilo de de-sincronização e mostramos as dificuldades na implementação em PLDs. Para trabalho futuro propomos o desenvolvimento de uma ferramenta para de-sincronização.

6. Agradecimentos

Agradeço ao ITA e o professor Duarte que me proporcionou um grande aprendizado na área de circuitos assíncronos. Agradeço também ao CNPq que financiou este projeto através do programa PIBIC. 7. Referências Myers, C.J., 2001, “Asynchronous circuit design,”, John Wiley & Sons Spars_, J and Furber, S (eds.), 2001, “Principles of asynchronous circuit design - A systems perspective,” Kluwer

Academic Publishers. Altera Corporation, 2009, www.altera.com. Branover, A., Kol, R. and Ginosar, R., 2004, “Asynchronous Design By Conversion: Converting Synchronous Circuits

into Asynchronous Ones”,, Proceedings of the Design, Automation and Test in Europe Conference and Exhibition. Lavagno, L., Andrikos, N., Sotiriou, C.P., Pandini, D., 2007, “A Fully- Automated Desynchronization Flow for

Synchronous Circuits,” Design Automation Conference, DAC '07. 44th ACM/IEEE, IEEE. Prabakar, T. N. et. al., 2008, “FPGA Based Asynchronous Pipelined Multiplier with Intelligent Delay Controller”,

International SOC Design Conference, pp.304-309. Amore, R. d', 2005, “VHDL: descrição e síntese de circuitos digitais,” LTC. Sigel, P., G. De Micheli and D. Dill, 1994, “Decomposition methods for library binding of speed-independent,” Proc.

Int. Conf. Computer-Aided Design, pp.558-565. Maitham Shams, Jo C. Ebergen, and Mohamed I. Elmasry, 1998, “Modeling and Comparing CMOS Implementations

of the C-Element,”,IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS. Tranchero, M. and Reyneri, L. M., 2008, “Implementation of Self-Timed Circuits onto FPGAs Using Commercial

Tools, “ 11th EUROMICRO CONFERENCE on DIGITAL DESIGN Architectures, Methods and Tools. Nielsen, S. F, et. al., 2009, “Behavioral Synthesis of Asynchronous Circuits Using Syntax Directed Translation as

Backend”, IEEE Trans. on VLSI Systems, vol. 17, no. 2, February, pp. 248-261.