Computer Organization Mips

Embed Size (px)

DESCRIPTION

Computer Organization Mips

Citation preview

  • UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL

    INSTITUTO DE INFORMTICA

    PROGRAMA DE PS-GRADUAO EM COMPUTAO

    RENATO UBIRATAN REIS MCHO

    Circuitos Assncronos na Plataforma FPGA

    Dissertao apresentada como requisito parcial para a obteno do grau de Mestre em Cincia da Computao Prof. Dr. Andr Incio Reis Orientador

    Porto Alegre, agosto de 2006.

  • CIP CATALOGAO NA PUBLICAO

    Mcho, Renato U. ReisCircuitos Assncronos na Plataforma FPGA/ Renato U. R.

    Mcho Porto Alegre: Programa de Ps-Graduao em Computao, 2006.

    132 f.:il. Dissertao (mestrado) Universidade Federal do Rio Grande

    do Sul. Programa de Ps-Graduao em Computao. Porto Alegre, BR RS, 2006. Orientador: Andr Incio Reis. 1. Circuitos sncronos. 2. Circuitos assncronos. 3. FPGA. 4. DIMS. 5. NCL. I. Reis, Andr Incio. II. Ttulo.

    UReVPrDCoBiNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL itor: Prof. Jos Carlos Ferraz Hennemann

    ice-Reitor: Prof. Pedro Cezar Dutra Fonseca

    -Reitora de Ps-Graduao: Profa. Valquria Linck Bassani iretor do Instituto de Informtica: Prof. . Flvio Rech Wagner ordenador do PPGC: Prof Carlos Alberto Heuser bliotecria-Chefe do Instituto de Informtica: Beatriz Regina Bastos Haro

  • AGRADECIMENTOS

    Agradeo a minha me e minha av, Renilce de Oliveira Reis e Nilce de Oliveira Reis, pelo carinho e pela f em mim.

    Meu muito obrigado ao meu orientador, Andr Incio Reis que, com muita sabedoria e amizade, desempenhou papel fundamental na realizao deste trabalho.

    Agradecimento especial ao professor Renato P. Ribas pelo auxlio com os circuitos que foram implementados e o texto da dissertao.

    E a Deus, que sem o consentimento, nenhum de ns estaria aqui.

  • SUMRIO

    LISTA DE ABREVIATURAS E SIGLAS............................................................ 8

    LISTA DE FIGURAS.......................................................................................... 9

    LISTA DE TABELAS ....................................................................................... 11

    RESUMO.......................................................................................................... 15

    ABSTRACT...................................................................................................... 16

    1 INTRODUO .............................................................................................. 17 1.1 Objetivos do Trabalho ........................................................................................... 19 1.2 Organizao do Trabalho ...................................................................................... 19 2 COMPARAO QUALITATIVA ENTRE CIRCUITOS SNCRONOS E

    ASSNCRONOS .......................................................................................... 21 2.1 Resumo .................................................................................................................... 21 2.2 Introduo ............................................................................................................... 21 2.3 Circuitos combinacionais ....................................................................................... 21 2.4 Circuitos Seqenciais ............................................................................................. 22 2.4.1 Circuitos sncronos ................................................................................................ 23 2.4.2 Circuitos assncronos............................................................................................. 25 2.4.2.1 Registrador Assncrono ................................................................................................... 26 2.4.2.2 Estgio Assncrono.......................................................................................................... 26 2.4.3 Anel Assncrono .................................................................................................... 27 2.5 Efeito dos Hazards.................................................................................................. 29 2.5.1 Nos Circuitos Sncronos ........................................................................................ 30 2.5.2 Nos Circuitos Assncronos .................................................................................... 30 2.6 Sumrio ................................................................................................................... 30 3 IMPLEMENTAO DE CIRCUITOS ASSNCRONOS................................. 32 3.1 Resumo .................................................................................................................... 32 3.2 Elementos de base................................................................................................... 32 3.2.1 Clula Muller......................................................................................................... 32 3.2.2 Clula M de N ....................................................................................................... 33 3.2.3 Registradores assncronos ..................................................................................... 34 3.3 Circuitos combinacionais assncronos: parmetros ............................................ 35 3.3.1 Codificao de dados............................................................................................. 35 3.3.1.1 Single Rail ....................................................................................................................... 36 3.3.1.2 Dual Rail ......................................................................................................................... 36

  • 3.3.1.3 Reset como espaador (dado vlido vs dado vazio)........................................................ 37 3.3.2 Lgica de fim de clculo ....................................................................................... 38 3.3.2.1 Elemento de atraso .......................................................................................................... 38 3.3.2.2 Deteco de dado vlido em dual rail ............................................................................. 39 3.3.3 Lgica monotnica e hazards ................................................................................ 40 3.3.4 Princpio da indicao forte................................................................................... 41 3.3.5 Relacionando os conceitos..................................................................................... 42 3.4 Controle de um registrador assncrono................................................................ 43 3.5 Estilos de projeto .................................................................................................... 43 3.5.1 DIMS ..................................................................................................................... 44 3.5.2 NCL ....................................................................................................................... 45 3.5.3 Derivao a partir de circuito combinacional sncrono ......................................... 46 3.5.4 Descrio comportamental com indicao forte ................................................... 47 3.6 Sumrio ................................................................................................................... 47 4 DISPOSITIVOS LGICOS PROGRAMVEIS ............................................. 48 4.1 Resumo .................................................................................................................... 48 4.2 Introduo ............................................................................................................... 48 4.3 Dispositivos Lgicos Programveis....................................................................... 48 4.3.1 Critrios de classificao....................................................................................... 48 4.3.2 Volatilidade ........................................................................................................... 49 4.3.3 Granularidade e organizao interna ..................................................................... 50 4.3.4 CPLDs ................................................................................................................... 51 4.3.4.1 PROM ............................................................................................................................. 51 4.3.4.2 PALs................................................................................................................................ 52 4.3.4.3 PLAs................................................................................................................................ 53 4.3.5 FPGAs ................................................................................................................... 53 4.3.5.1 O conceito de Look-up Tables ........................................................................................ 53 4.3.5.2 Um exemplo de clula de base ........................................................................................ 54 4.4 Sntese voltada a Dispositivos Programveis ....................................................... 56 4.4.1 Linguagem de programao VHDL ...................................................................... 56 4.4.2 Descrio de elementos assncronos em VHDL.................................................... 56 4.4.2.1 Clula Muller .................................................................................................................. 56 4.4.2.2 Clula M de N ................................................................................................................. 62 4.4.2.3 Registradores Assncronos .............................................................................................. 64 4.4.2.4 Circuito comportamental com indicao forte ................................................................ 64 4.5 Hazards e Dispositivos Programveis................................................................... 65 4.5.1 DIMS e hazards ..................................................................................................... 65 4.5.2 NCL e hazards ....................................................................................................... 65 4.5.3 Derivao a partir de circuito combinacional sncrono e hazards ......................... 65 4.5.4 Descrio comportamental com indicao forte e hazards ................................... 65 4.6 Sumrio ................................................................................................................... 65 5 COMPARAO EM REA ENTRE CIRCUITOS SNCRONOS E

    ASSNCRONOS .......................................................................................... 67 5.1 Resumo .................................................................................................................... 67 5.2 Introduo ............................................................................................................... 67 5.3 Comparao da parte Combinacional.................................................................. 67 5.3.1 Full Adder.............................................................................................................. 67 5.3.1.1 Descrio......................................................................................................................... 67 5.3.1.2 Resultados ....................................................................................................................... 68 5.3.2 RCA....................................................................................................................... 70 5.3.2.1 Descrio......................................................................................................................... 70

  • 5.3.2.2 Resultados ....................................................................................................................... 70 5.4 Comparao da parte seqencial: registradores ................................................. 73 5.4.1 Descrio ............................................................................................................... 73 5.4.2 Resultados.............................................................................................................. 74 5.5 Comparao da parte seqencial: anel completo ................................................ 76 5.5.1 Avaliao de circuitos sncronos ........................................................................... 76 5.5.1.1 Circuitos sncronos com um estgio................................................................................ 76 5.5.1.2 Circuitos sncronos com dois estgios combinacionais................................................... 77 5.5.1.3 Circuitos sncronos com trs estgios combinacionais ................................................... 77 5.5.2 Avaliao de circuitos assncronos........................................................................ 78 5.5.3 Circuitos assncronos com um circuito combinacional ......................................... 78 5.5.3.1 Circuitos assncronos com dois circuitos combinacionais .............................................. 79 5.5.3.2 Circuitos assncronos com trs circuitos combinacionais ............................................... 80 5.5.4 Avaliao quanto ao aumento no nmero de registradores................................... 82 5.6 Sumrio ................................................................................................................... 86 6 RESULTADOS.............................................................................................. 87 6.1 Resumo .................................................................................................................... 87 6.2 Introduo ............................................................................................................... 87 6.3 Anel realimentado .................................................................................................. 88 6.3.1 Descrio ............................................................................................................... 88 6.3.2 Resultados.............................................................................................................. 88 6.4 Contador.................................................................................................................. 91 6.4.1 Descrio ............................................................................................................... 91 6.4.2 Resultados.............................................................................................................. 92 6.5 Divisor inteiro ......................................................................................................... 95 6.5.1 Descrio ............................................................................................................... 95 6.5.2 Resultados.............................................................................................................. 96 6.6 Divisor de resto ..................................................................................................... 100 6.6.1 Descrio ............................................................................................................. 100 6.6.2 Resultados............................................................................................................ 101 6.7 Mnimo Mltiplo Comum.................................................................................... 105 6.7.1 Descrio ............................................................................................................. 105 6.7.2 Resultados............................................................................................................ 106 6.8 Mximo Divisor Comum...................................................................................... 110 6.8.1 Descrio ............................................................................................................. 110 6.8.2 Resultados............................................................................................................ 111 6.9 Raiz Quadrada...................................................................................................... 114 6.9.1 Descrio ............................................................................................................. 114 6.9.2 Resultados............................................................................................................ 115 6.10 Anlise de desempenho temporal...................................................................... 118 6.11 Sumrio ............................................................................................................... 120 7 CONCLUSO ............................................................................................. 121

    REFERNCIAS.............................................................................................. 124

    APNDICE A CDIGO VHDL PARA CELULA DE MULLER DE 2 ENTRADAS ............................................................................ 127

    APNDICE B CDIGO VHDL PARA CELULA DE MULLER DE 3 ENTRADAS ............................................................................ 128

  • APNDICE C CDIGO VHDL PARA CELULA DE MULLER DO TIPO 2X2 ENTRADAS ............................................................................ 129

    APNDICE D CDIGO VHDL PARA REGISTRADOR ASSNCRONO ...... 130

    APNDICE E CDIGO VHDL PARA SOMADOR COMPORTAMENTAL COM INDICAO FORTE............................................................... 131

    APNDICE F CDIGO VHDL PARA SOMADOR INTEIRO FULL-ADDER................................................................................................ 132

  • LISTA DE ABREVIATURAS E SIGLAS

    CPLD Complex Programmable Logic Devices DIMS Delay Insensitive Minterm Synthesis FPGA Field Programmable Gate Arrays LUT Look-up Table NCL NULL Convention Logic PLA Programmable Logic Array PLD Programmable Logic Devices VHDL Very Hardware Description Language

  • LISTA DE FIGURAS

    Figura 2.1: Classificao dos circuitos digitais .............................................................. 21 Figura 2.2: Tabela verdade e circuito da funo S ......................................................... 22 Figura 2.3: Exemplo de circuito seqencial. .................................................................. 23 Figura 2.4: Descrio do registrador sncrono................................................................ 24 Figura 2.5: Modelo de circuito sncrono ........................................................................ 25 Figura 2.6: Descrio das aes do registrador assncrono............................................ 26 Figura 2.7: Blocos no estgio de um circuito assncrono............................................... 27 Figura 2.8: Modelo de circuito assncrono de 3 estgios ............................................... 29 Figura 2.9: Tipos de hazards .......................................................................................... 30 Figura 3.1: Smbolo utilizado e diagrama de estados da clula Muller de duas entradas

    ..................................................................................................................... 33 Figura 3.2: Smbolo utilizado e diagrama de estados da clula Muller de trs entradas 33 Figura 3.3: Clula threshold gate de M=2 e N=3........................................................... 34 Figura 3.4: Representao do registrador assncrono com tabela dos sinais.................. 35 Figura 3.5: Esquema de codificao single rail.............................................................. 36 Figura 3.6: Esquema dos sinais entre os blocos e tabela de codificao dual rail.......... 37 Figura 3.7: Esquema da codificao reset como espaador ........................................... 38 Figura 3.8: lgica de fim de clculo com elementos de atraso....................................... 39 Figura 3.9: Deteco de fim de clculo atravs de codificao dual rail ....................... 40 Figura 3.10: Exemplo de circuito com hazards e com portas monotnicas crescentes.. 41 Figura 3.11: Exemplo de indicao forte dos sinais....................................................... 42 Figura 3.12: Controle realizado num registrador assncrono ......................................... 43 Figura 3.13: Porta lgica XOR atravs da tcnica DIMS .............................................. 44 Figura 3.14: Exemplo de um circuito Full Adder em NCL............................................ 45 Figura 3.15: Circuito atravs da tcnica fim de clculo com indicao forte ................ 46 Figura 3.16: Mdulo que avalia as entradas vlidas....................................................... 47 Figura 3.17: Mdulo que avalia as entradas zeradas. ..................................................... 47 Figura 4.1: Grfico dos tipos de PLDs e elementos de programao............................. 51

  • Figura 4.2: Modelo simplificado de uma PROM ........................................................... 52 Figura 4.3: Modelo simplificado de um PAL................................................................. 52 Figura 4.4: Modelo simplificado de um PLA................................................................. 53 Figura 4.5: Viso interna da LUT e a tabela de sinais da funo XOR.......................... 54 Figura 4.6: Elemento de programao para FPGA genrico.......................................... 55 Figura 4.7: Elemento de programao para Clula Muller de duas entradas ................. 55 Figura 4.8: Esquema da clula Muller 2x2..................................................................... 57 Figura 4.9: Variaes da clula Muller de 4 entradas .................................................... 57 Figura 4.10: Variao da clula Muller de 5 entradas.................................................... 58 Figura 4.11: Variao da clula Muller de 6 entradas.................................................... 59 Figura 4.12: Smbolo e cdigo VHDL comportamental do elemento 2 de 3................. 63 Figura 4.13: Smbolo e cdigo VHDL comportamental do elemento 3 de 5................. 63 Figura 4.14: Esquema do registrador VHDL.................................................................. 64 Figura 5.1: Anel sncrono com 1 circuito combinacional .............................................. 76 Figura 5.2: Anel sncrono com 2 circuitos combinacionais ........................................... 77 Figura 5.4: Anel assncrono com 1 circuito combinacional ........................................... 79 Figura 5.5: Anel assncrono com 2 circuitos combinacionais ........................................ 80 Figura 5.6: Anel assncrono com 3 circuitos combinacionais ........................................ 81 Figura 5.7: Anel assncrono de 4 registradores - Estgios agrupados ............................ 84 Figura 5.8: Anel assncrono de 5 registradores .............................................................. 85 Figura 6.1: Esquema do anel realimentado .................................................................... 88 Figura 6.2: Esquema do circuito contador...................................................................... 91 Figura 6.3: Esquema do circuito divisor inteiro ............................................................. 96 Figura 6.4: Esquema do circuito divisor de resto ......................................................... 101 Figura 6.5: Esquema do circuito Mnimo Mltiplo Comum........................................ 106 Figura 6.6: Esquema do circuito Mximo Divisor Comum ......................................... 110 Figura 6.7: Esquema do circuito raiz quadrada ............................................................ 114

  • LISTA DE TABELAS

    Tabela 4.1: Diviso dos tipos de dispositivos lgicos programveis ............................. 49 Tabela 4.2: Resumo das caractersticas dos elementos de programao........................ 50 Tabela 4.3: Valores de Clulas Lgicas e Atrasos para Clulas Muller para Fabricante

    ALTERA CPLD (Famlia MAX 7000AE) e FPGA (Famlia FLEX10KE) .............................................................................................. 60

    Tabela 4.4: Valores de Clulas Lgicas e Atrasos para Clulas Muller para Fabricante XILINX CPLD (Famlia XC9500XV) e FPGA (Famlia SPARTAN2) 61

    Tabela 4.5: Valores de Clulas Lgicas e Atrasos para Clulas Muller para Fabricante ACTEL FPGA Antifusvel (Famlia ACT1) e FPGA SRAM (Famlia 500K)......................................................................................................... 62

    Tabela 5.1: Valores de Clulas Lgicas e Atrasos para full adder para Fabricante ALTERA CPLD (Famlia MAX 7000AE) e FPGA (Famlia FLEX10KE) .............................................................................................. 68

    Tabela 5.2: Valores de Clulas Lgicas e Atrasos para full adder para Fabricante XILINX CPLD (Famlia XC9500XV) e FPGA (Famlia SPARTAN2) 69

    Tabela 5.3: Valores de Clulas Lgicas e Atrasos para full adder para Fabricante ACTEL FPGA Antifusvel (Famlia ACT1) e FPGA SRAM (Famlia 500K)......................................................................................................... 69

    Tabela 5.4: Valores de Clulas Lgicas para o RCA para Fabricante ALTERA CPLD (Famlia MAX 7000AE) e FPGA (Famlia FLEX10KE) ......................... 71

    Tabela 5.5: Valores de Clulas Lgicas para o RCA para Fabricante XILINX CPLD (Famlia XC9500XV) e FPGA (Famlia SPARTAN2)............................. 72

    Tabela 5.6: Valores de Clulas Lgicas para o RCA para Fabricante ACTEL FPGA Antifusvel (Famlia AXCELERATOR) e FPGA SRAM (Famlia 500K)73

    Tabela 5.7: Valores de Clulas Lgicas e Atrasos para registrador assncrono para Fabricante ALTERA CPLD (Famlia MAX 7000AE) e FPGA (Famlia FLEX10KE) .............................................................................................. 74

    Tabela 5.8: Valores de Clulas Lgicas e Atrasos para registrador assncrono para Fabricante XILINX CPLD (Famlia XC9500XV) e FPGA (Famlia SPARTAN2) ............................................................................................. 75

    Tabela 5.9: Valores de Clulas Lgicas e Atrasos para registrador assncrono para Fabricante ACTEL FPGA Antifusvel (Famlia ACT1) e FPGA SRAM (Famlia 500K) .......................................................................................... 75

  • Tabela 5.10: Valores de atrasos de latncia e throughput para circuitos sncronos e assncronos ................................................................................................ 82

    Tabela 5.11: Valores de atrasos de latncia e throughput para anis assncronos de quatro e cinco registradores....................................................................... 86

    Tabela 6.1: Valores de Clulas Lgicas para o Anel realimentado para Fabricante ALTERA CPLD (Famlia MAX 7000AE) e FPGA (Famlia FLEX10KE) .............................................................................................. 89

    Tabela 6.2: Valores de Clulas Lgicas para o Anel realimentado para Fabricante XILINX CPLD (Famlia XC9500XV) e FPGA (Famlia SPARTAN2) 89

    Tabela 6.3: Valores de Clulas Lgicas para o Anel realimentado para Fabricante ACTEL FPGA Antifusvel (Famlia AXCELERATOR) e FPGA SRAM (Famlia 500K) .......................................................................................... 90

    Tabela 6.4: Valores em percentuais de acrscimos de elementos de programao para os circuitos nos fabricante ALTERA CPLD (Famlia MAX 7000AE) e FPGA (Famlia FLEX10KE) .................................................................... 90

    Tabela 6.5: Valores em percentuais de acrscimos de elementos de programao para os circuitos nos fabricante XILINX CPLD (Famlia XC9500XV) e FPGA (Famlia SPARTAN2)............................................................................... 90

    Tabela 6.6: Valores em percentuais de acrscimos de elementos de programao para os circuitos nos fabricante ACTEL FPGA Antifusvel (Famlia AXCELERATOR) e FPGA SRAM (Famlia 500K) ................................ 91

    Tabela 6.7: Valores de Clulas Lgicas para o Contador para Fabricante ALTERA CPLD (Famlia MAX 7000AE) e FPGA (Famlia FLEX10KE).............. 92

    Tabela 6.8: Valores de Clulas Lgicas para o Contador para Fabricante XILINX CPLD (Famlia XC9500XV) e FPGA (Famlia SPARTAN2) ................. 93

    Tabela 6.9: Valores de Clulas Lgicas para o Contador para Fabricante ACTEL FPGA Antifusvel (Famlia AXCELERATOR) e FPGA SRAM (Famlia 500K)......................................................................................................... 93

    Tabela 6.10: Valores em percentuais de acrscimos de elementos de programao para o contador para fabricante ALTERA CPLD (famlia MAX 7000AE) e FPGA (famlia FLEX10KE) ..................................................................... 94

    Tabela 6.11: Valores em percentuais de acrscimos de elementos de programao para o contador para Fabricante XILINX CPLD (famlia XC9500XV) e FPGA (famlia SPARTAN2)................................................................................ 94

    Tabela 6.12: Valores em percentuais de acrscimos de elementos de programao para o contador para fabricante ACTEL FPGA Antifusvel (famlia AXCELERATOR) e FPGA SRAM (famlia 500K) ................................. 95

    Tabela 6.13: Valores de Clulas Lgicas para o Divisor inteiro para Fabricante ALTERA CPLD (Famlia MAX 7000AE) e FPGA (Famlia FLEX10KE) .............................................................................................. 97

    Tabela 6.14: Valores de Clulas Lgicas para o Divisor inteiro para Fabricante XILINX CPLD (Famlia XC9500XV) e FPGA (Famlia SPARTAN2) .............. 97

  • Tabela 6.15: Valores de Clulas Lgicas para o Divisor inteiro para Fabricante ACTEL FPGA Antifusvel (Famlia AXCELERATOR) e FPGA SRAM (Famlia 500K)......................................................................................................... 98

    Tabela 6.16: Valores em percentuais de acrscimos de elementos de programao para o divisor inteiro para Fabricante ALTERA CPLD (Famlia MAX 7000AE) e FPGA (Famlia FLEX10KE).................................................................. 99

    Tabela 6.17: Valores em percentuais de acrscimos de elementos de programao para o divisor inteiro para Fabricante XILINX CPLD (Famlia XC9500XV) e FPGA (Famlia SPARTAN2).................................................................... 99

    Tabela 6.18: Valores em percentuais de acrscimos de elementos de programao para o divisor inteiro para Fabricante ACTEL FPGA Antifusvel (Famlia AXCELERATOR) e FPGA SRAM (Famlia 500K) .............................. 100

    Tabela 6.19: Valores de Clulas Lgicas para o Divisor de resto para Fabricante ALTERA CPLD (Famlia MAX 7000AE) e FPGA (Famlia FLEX10KE) ............................................................................................ 102

    Tabela 6.20: Valores de Clulas Lgicas para o Divisor de resto para Fabricante XILINX CPLD (Famlia XC9500XV) e FPGA (Famlia SPARTAN2)................................................................................................................. 102

    Tabela 6.21: Valores de Clulas Lgicas para o Divisor de resto para Fabricante ACTEL FPGA Antifusvel (Famlia AXCELERATOR) e FPGA SRAM (Famlia 500K) ........................................................................................ 103

    Tabela 6.22: Valores em percentuais de acrscimos de elementos de programao para o divisor de resto para Fabricante ALTERA CPLD (Famlia MAX 7000AE) e FPGA (Famlia FLEX10KE) ................................................ 104

    Tabela 6.23: Valores em percentuais de acrscimos de elementos de programao para o divisor de resto para Fabricante XILINX CPLD (Famlia XC9500XV) e FPGA (Famlia SPARTAN2).................................................................. 104

    Tabela 6.24: Valores em percentuais de acrscimos de elementos de programao para o divisor de resto para Fabricante ACTEL FPGA Antifusvel (Famlia AXCELERATOR) e FPGA SRAM (Famlia 500K) .............................. 105

    Tabela 6.25: Valores de Clulas Lgicas para o Mnimo Mltiplo Comum para Fabricante ALTERA CPLD (Famlia MAX 7000AE) e FPGA (Famlia FLEX10KE) ............................................................................................ 107

    Tabela 6.26: Valores de Clulas Lgicas para o Mnimo Mltiplo Comum para Fabricante XILINX CPLD (Famlia XC9500XV) e FPGA (Famlia SPARTAN2) ........................................................................................... 107

    Tabela 6.27: Valores de Clulas Lgicas para o Mnimo Mltiplo Comum para Fabricante ACTEL FPGA Antifusvel (Famlia AXCELERATOR) e FPGA SRAM (Famlia 500K)................................................................. 108

    Tabela 6.28: Valores em percentuais de acrscimos de elementos de programao para o Mnimo Mltiplo Comum para Fabricante ALTERA CPLD (Famlia MAX 7000AE) e FPGA (Famlia FLEX10KE)...................................... 109

    Tabela 6.29: Valores em percentuais de acrscimos de elementos de programao para o Mnimo Mltiplo Comum para Fabricante XILINX CPLD (Famlia XC9500XV) e FPGA (Famlia SPARTAN2) ......................................... 109

  • Tabela 6.30: Valores em percentuais de acrscimos de elementos de programao para o Mnimo Mltiplo Comum para Fabricante ACTEL FPGA Antifusvel (Famlia AXCELERATOR) e FPGA SRAM (Famlia 500K)................ 110

    Tabela 6.31: Valores de Clulas Lgicas para o Mximo Divisor Comum para Fabricante ALTERA CPLD (Famlia MAX 7000AE) e FPGA (Famlia FLEX10KE) ............................................................................................ 111

    Tabela 6.32: Valores de Clulas Lgicas para o Mximo Divisor Comum para Fabricante XILINX CPLD (Famlia XC9500XV) e FPGA (Famlia SPARTAN2) ........................................................................................... 112

    Tabela 6.33: Valores de Clulas Lgicas para o Mximo Divisor Comum para Fabricante ACTEL FPGA Antifusvel (Famlia AXCELERATOR) e FPGA SRAM (Famlia 500K)................................................................. 112

    Tabela 6.34: Valores em percentuais de acrscimos de elementos de programao para o Mximo Divisor Comum para Fabricante ALTERA CPLD (Famlia MAX 7000AE) e FPGA (Famlia FLEX10KE)...................................... 113

    Tabela 6.35: Valores em percentuais de acrscimos de elementos de programao para o Mximo Divisor Comum para Fabricante XILINX CPLD (Famlia XC9500XV) e FPGA (Famlia SPARTAN2) ......................................... 113

    Tabela 6.36: Valores em percentuais de acrscimos de elementos de programao para o Mximo Divisor Comum para Fabricante ACTEL FPGA Antifusvel (Famlia AXCELERATOR) e FPGA SRAM (Famlia 500K)................ 114

    Tabela 6.37: Valores de Clulas Lgicas para a raiz quadrada para Fabricante ALTERA CPLD (Famlia MAX 7000AE) e FPGA (Famlia FLEX10KE)......... 115

    Tabela 6.38: Valores de Clulas Lgicas para a raiz quadrada para Fabricante XILINX CPLD (Famlia XC9500XV) e FPGA (Famlia SPARTAN2) ............... 116

    Tabela 6.39: Valores de Clulas Lgicas para a raiz quadrada para Fabricante ACTEL FPGA Antifusvel (Famlia AXCELERATOR) e FPGA SRAM (Famlia 500K)....................................................................................................... 116

    Tabela 6.40: Valores em percentuais de acrscimos de elementos de programao para a raiz quadrada para Fabricante ALTERA CPLD (Famlia MAX 7000AE) e FPGA (Famlia FLEX10KE)................................................................ 117

    Tabela 6.41: Valores em percentuais de acrscimos de elementos de programao para a raiz quadrada para Fabricante XILINX CPLD (Famlia XC9500XV) e FPGA (Famlia SPARTAN2).................................................................. 117

    Tabela 6.42 Valores em percentuais de acrscimos de elementos de programao para a raiz quadrada para Fabricante ACTEL FPGA Antifusvel (Famlia AXCELERATOR) e FPGA SRAM (Famlia 500K) .............................. 118

    Tabela 6.43: Valores de timming para circuito contador para Fabricante ALTERA CPLD (Famlia MAX 7000AE) e FPGA (Famlia FLEX10KE)............ 119

    Tabela 6.44: Valores de timming para circuito raiz quadrada para Fabricante ALTERA CPLD (Famlia MAX 7000AE) e FPGA (Famlia FLEX10KE)......... 119

  • RESUMO

    Os circuitos digitais cada vez mais so exigidos quanto ao desempenho e modularidade nos processos dos dias atuais. Para resolver estes processos, o comrcio utiliza largamente circuitos digitais sncronos, que se baseiam no controle do sincronismo atravs de um relgio central. Esses circuitos, apesar de serem de fcil implementao e terem uma metodologia j conhecida, apresentam limitaes quando se considera a distribuio dos sinais de sincronismo, a interferncia do meio e os possveis atrasos. Os circuitos assncronos apresentam uma soluo natural a essas exigncias, uma vez que, possuem independncia do sinal do relgio e toda sua construo modular. Este trabalho apresenta um estudo comparativo de alguns estilos de projetos para construo de circuitos assncronos utilizando dispositivos programados por lgica, PLDs, utilizando ferramentas de sntese lgica comerciais para circuitos sncronos. Esses circuitos assncronos so descritos em VHDL para as clulas Muller, elementos M de N, registrador assncrono, somadores e circuitos mais complexos em anel assncrono e implementados em CPLDs e FPGAs. Os circuitos mais complexos so construdos em quatro estilos de projeto para os circuitos dos somadores: Descrio comportamental com indicao forte do sinal, DIMS, NCL e derivao a partir de circuito combinacional sncrono. Atravs dessa avaliao foi possvel verificar as tendncias do custo de elementos de programao e atrasos para realizao de clculos, frente aos circuitos sncronos similares.

    Palavras-chave: Circuitos Sncronos, Circuitos Assncronos, FPGA, DIMS, NCL

  • ABSTRACT

    This work presents a study about the implementation of asynchronous circuits on programmable devices platform. It investigates four different ways of implementing asynchronous circuits, including implementation of several different circuits in platforms provided by three different manufacturers. The implemented asynchronous circuits have a very poor performance when compared to their synchronous counterpart. However, this was expected as the platforms used were developed to be used with synchronous designs. The contributions of this work are in the following areas. First, it was described in detail how to implement VHDL code for self-timed designs. Second, different design were implemented to test the VHDL descriptions in the chosen platforms. Third, by comparing four different asynchronous styles, it is possible to find a style that is the more adequate for use in current FPGAs. Fourth, by analyzing the results obtained, it was possible to derive some conclusions on why asynchronous designs are so costly for these platforms and derive some suggestions to be used in the implementation of asynchronous FPGAs.

    Keywords: FPGA, VHDL, asynchronous circuits, implementation

  • 17

    1 INTRODUO

    Os circuitos digitais produzidos hoje demandam cada vez mais lgica, maiores freqncias e reas cada vez menores. O projeto desses circuitos envolve custos elevados, pessoal capacitado, tecnologia e tcnicas que representam novos desafios ao comrcio e indstria de circuitos integrados.

    Esses circuitos utilizam na sua grande maioria metodologia sncrona. Ou seja: existe um relgio central que faz o sincronismo entre todos os blocos lgicos do circuito. O perodo desse sinal de sincronismo previamente definido levando-se em considerao o pior atraso de throughput que esses circuitos possuem, limitando o avano da informao para blocos com atrasos menores. Por outro lado, nos circuitos assncronos, o sincronismo feito atravs de protocolos de comunicao entre blocos do circuito. Esses sinais informam aos blocos lgicos envolvidos no protocolo que o dado de informao vlido e est disponvel para bloco seguinte. Uma outra caracterstica que esse sinal de sincronismo no enviado para todos os blocos do circuito, limitando as operaes para aqueles que estiverem realizando a comunicao naquele instante. Logo, como esses circuitos possuem diferenas acentuadas quando comparados com os circuitos sncronos, possvel enumerar as caractersticas mais importantes:

    Modularidade: Esta caracterstica inerente nos circuitos assncronos e uma preocupao constante dos circuitos sncronos. Nos circuitos sncronos esta preocupao se d por causa da freqncia mxima determinada pelo bloco lgico que possui o maior atraso. Nos circuitos assncronos esta modularidade dos blocos que compem o circuito inerente ao projeto pois a comunicao entre os mdulos feita atravs de um protocolo handshake, assim novas verses de um bloco sempre vo funcionar pois o protocolo de comunicao ir esperar o tempo que for necessrio para os dados ficarem prontos.

    Baixo consumo de potncia: Nos circuitos sncronos os sinais do relgio so transmitidos para todos os blocos, independentemente de alguns operarem ou no naquele determinado momento. J nos circuitos assncronos, por no existir a necessidade do sinal do relgio, eles no necessitam realizar transies desnecessrias. Logo, esses circuitos so naturalmente quiescentes, evitando gastos adicionais de energia.

    Baixo rudo: Nos circuitos sncronos o sinal do relgio principal pode interferir com os sinais de informao que trafeguem no mesmo, gerando rudos por emisses eletro-magnticas. Essas emisses, causadas pelas transies dos sinais do relgio, causam variaes de consumo de correntes concentradas no tempo. J nos circuitos assncronos essas interferncias ficam reduzidas pela ausncia do sinal do relgio e assim o consumo de corrente est distribudo ao longo do tempo, gerando menos rudo.

    Performance: O circuito assncrono pode ser mais rpido que um sncrono visto que, o sinal que dever informar ao prximo bloco de lgica que o clculo foi efetuado, no

  • 18

    necessita esperar por um atraso mximo, como nos circuitos sncronos. Nos assncronos, a partir do instante que o clculo foi efetuado e o resultado est disponvel, enviado um sinal ao estgio seguinte avisando que essa informao j pode ser repassada. Esta avaliao feita pelo tempo mdio de atraso nos blocos combinacionais.

    A partir das caractersticas apresentadas, podemos deduzir que existe a possibilidade de melhorar o desempenho e a eficincia dos sistemas digitais atravs do uso de circuitos assncronos. Esses circuitos, normalmente, podem ser dimensionados atravs dos seguintes critrios: O modelo de atraso adotado, ou seja, como os blocos do circuito estaro dispostos e quais os possveis caminhos que os sinais usados no protocolo de comunicao e os sinais de informao tero, o tipo de protocolo de comunicao entre os blocos lgicos, e finalmente, o formalismo para descrever o circuito que pode ser resumido no tipo de linguagem para descrio do hardware.

    O desenvolvimento de circuitos FPGAs e CPLDs oferecem plataformas para uma rpida prototipagem de circuitos integrados sncronos VLSI (TODMAN, 2005). J os circuitos assncronos, por outro lado, no possuem uma plataforma bem definida em CPLD ou FPGA como alternativa desses projetos (SPARSO, 2001). As solues em lgica programvel especficas para assncronos so baseadas em blocos de grande granularidade que no tem a mesma flexibilidade e grau de configurao que as LUTs baseadas em FPGA e os arrays AND-OR baseados em CPLDs possuem. Por isso, teve incio uma anlise de design de projeto para se estabelecer a linguagem de alto nvel para descrever esse hardware, como VHDL e Verilog. Com isso, muitas arquiteturas propostas em FPGAs para circuitos assncronos so especficas para um determinado estilo de projeto. Por exemplo, MONTAGE (PAYNE, 1996) baseado em clulas arbitradoras e sincronizadoras. A pesquisa de (MEEKINGS, 1966) baseada em Null Convention Logic, NCL descrito em (FANT, 1996). Em (TEIFEL, 2004) uma arquitetura de fluxo de dados para circuitos assncronos proposta. O principal inconveniente que o projetista a partir de um determinado fluxo de dados especifica a granularidade dos blocos lgicos de forma que se tornem compatveis com a estrutura do fluxo de dados proposto. A pesquisa de (ZAFAR, 2005) baseada em implementaes micropipelines. O trabalho de (FANG, 2005) apresenta resultados de testes para um pipeline assncrono em FPGA. A pesquisa em (HUOT, 2005) apresenta um FPGA flexvel que pode ser modificado para vrios estilos de designs diferentes. Contudo, esses blocos lgicos tm um custo muito elevado pois requerem matrizes de 11x14 pontos de conexo para um bloco lgico alm de duas LUTs de sete entradas.

    Algumas pesquisas preferem implementar circuitos assncronos atravs de design sncrono em FPGA. Por exemplo, a pesquisa feita em (BRUNVAND, 1992) mostra uma comparao entre implementaes incluindo um projeto esquemtico de circuito assncrono numa topologia de circuito FPGA Actel (ACTEL, 2003). O trabalho em (NOVAK, 1994) apresenta um co-processador assncrono parcialmente implementado em FPGA parcialmente em ASIC. Este projeto implementa uma arquitetura fluxo de dados e esta descrita estruturalmente. A pesquisa em (ORTEGA, 2005) apresenta um projeto de uma ULA auto-temporizada em uma plataforma FPGA, mas novamente o projeto descrito no nvel esquemtico no utilizando linguagem de descrio de hardware. No trabalho de (RIGAUD, 2005) existe a proposta de se implementar circuitos assncronos usando FPGAs regulares. Contudo, o artigo limita-se a mostrar resultados para clulas Muller de 2 e 3 entradas. Esta pesquisa no utiliza linguagem de descrio de hardware sendo sua principal contribuio a prova informal que as clulas Muller so elementos livres de hazards se implementadas numa nica LUT.

  • 19

    1.1 Objetivos do Trabalho A proposta do trabalho implementar circuitos assncronos ou auto-temporizados

    atravs da linguagem de descrio de hardware VHDL, nas plataformas FPGA e CPLD, avaliando as possveis diferenas entre os resultados encontrados para as principais ferramentas comerciais de sntese lgica atualmente em uso.

    Para desenvolver este trabalho foi utilizado na investigao o protocolo 4 fases dual-rail. Os testes foram feitos para quatro diferentes estilos de projetos para circuitos assncronos e atravs da anlise dos resultados foram feitas algumas propostas sobre estruturas assncronas, como uma LUT assncrona baseada em FPGA.

    A motivao para a realizao desse trabalho surgiu da possibilidade de se investigar o comportamento das ferramentas de sntese lgica, normalmente usadas para os circuitos sncronos, para a sntese dos circuitos assncronos. Ainda a possibilidade de investigar o comportamento de diferentes estilos de projetos, o prprio comportamento nessas ferramentas. Por fim, na concluso so propostos caminhos que podero ser seguidos para criao de uma estrutura adaptada para os projetos assncronos nessas ferramentas de forma a melhorar a sntese dos circuitos assncronos no futuro. A implementao realizada na plataforma FPGA sendo hoje aquela que apresenta a forma mais prtica e rpida de sntese comercial. Esse fator foi decisivo pois representa um limitador para futuras escolhas por plataformas de sntese, uma vez que a crescente tendncia em produzir circuitos digitais de baixo custo e de forma rpida pode desestimular outras a utilizao de outras plataformas.

    1.2 Organizao do Trabalho Esse trabalho est organizado em sete captulos incluindo esta introduo.

    Inicialmente, no captulo 2, so apresentados os tipos de circuitos digitais e as diferenas entre circuitos combinacionais e seqenciais. Nos circuitos seqenciais, so mostradas as diferenas entre os registradores que funcionam com o sinal do relgio e os registradores assncronos. Posteriormente, so mostradas as diferenas entre circuitos sncronos e assncronos atravs de um circuito em pipeline. Por fim so mostrados os efeitos dos hazards nos circuitos assncronos.

    No captulo 3 explicada como feita a implementao de circuitos assncronos. Mostra como foram descritas estruturas como os elementos de base: as clulas Muller, os elementos M de N e registrador assncrono. Posteriormente, so mostrados os parmetros necessrios para se implementar circuitos assncronos, como os tipos de codificao, indicao forte dos sinais, lgica monotnica e hazards, assim como os possveis elementos de atraso. Por fim, so mostrados os estilos de projetos utilizados nesse trabalho como: descrio comportamental com indicao forte do sinal, DIMS, NCL e derivao a partir de circuito combinacional sncrono.

    O captulo 4 mostrado o conceito dos circuitos programados por lgica ou simplemente PLDs. Iniciando a explicao com os elementos de programao do tipo LUT e macroclulas e as diferentes tecnologias existentes no mercado, como FPGAs e CPLDs. Posteriormente mostrada como feita a sntese para os PLDs. Por fim mostra a linguagem de descrio de hardware VHDL para circuitos assncronos, descrevendo os principais elementos utilizados no trabalho: as clulas Muller, elementos M de N e para o registrador assncrono.

  • 20

    O capitulo 5 apresenta uma avaliao comparativa entre os circuitos combinacionais e sequenciais simulados nesse trabalho, para os diferentes estilos mostrados no captulo 3. Nos circuitos combinacionais so mostrados resultados para os Full Adder e RCAs. J nos circuitos sequenciais so mostrados resultados para o registrador assncrono. Ainda nos circuitos sequenciais, feita uma comparao quantitativa dos circuitos sncronos e assncronos, sendo tambm avaliada as diferenas de performance.

    O captulo 6 mostra os resultados dos diferentes tipos de circuitos assncronos sintetizados nesse trabalho. Os circuitos do tipo contador, do tipo divisor inteiro, do tipo divisor de resto, do tipo MMC, do tipo MDC e ainda para o clculo da raiz quadrada. So apresentadas as tabelas de valores para FPGAs e CPLDs e ainda os percentuais de acrscimo que os resultados para uma ferramenta apresentou com relao ao menor resultado dentro dentre os diferentes estilos de projeto.

    Por fim, no captulo 7 so apresentadas as concluses e consideraes finais sobre o trabalho.

  • 21

    2 COMPARAO QUALITATIVA ENTRE CIRCUITOS SNCRONOS E ASSNCRONOS

    2.1 Resumo Este captulo descreve qualitativamente as diferenas entre circuitos sncronos e

    assncronos. As diferenas so feitas quanto ao comportamento, ignorando-se detalhes de implementao.

    2.2 Introduo Circuitos digitais podem ser classificados conforme a resposta que apresentam aos

    sinais de entrada. Conforme este critrio, vrias classificaes so possveis. Para um entendimento dos circuitos assncronos, estudados nesta dissertao, usamos a classificao apresentada na figura 2.1.

    Circuitos Digitais

    Combinacionais Seqenciais

    Sncronos Assncronos

    Figura 2.1: Classificao dos circuitos digitais

    2.3 Circuitos combinacionais Circuitos combinacionais so aqueles cuja resposta funcional depende apenas dos

    valores lgicos aplicados nas entradas do circuito. Ao ser aplicado um vetor de entrada, o circuito sempre responde da mesma forma aps um atraso correspondente ao tempo necessrio para estabilizao das sadas. Este tipo de circuito pode ter sua funcionalidade representada por meio de tabelas verdade. Uma tabela verdade associa o vetor aplicado na entrada com os valores de sada correspondentes. Na figura 2.2 pode

  • 22

    ser visto um exemplo de circuito combinacional com a representao da funo S atravs de sua tabela verdade e o circuito equivalente com as portas lgicas.

    Na figura possvel verificar o comportamento bem definido da sada S em funo das suas entradas.Nesse circuito o incio do clculo ocorre a partir do instante que os sinais chegam nas suas entradas e o atraso total para que o resultado esteja disponvel nas suas sadas apenas a soma dos atrasos nas portas lgicas do circuito. Assim, para uma determinada entrada ABC = (0,0,1) o resultado S=1 estar disponvel na sada S aps os atrasos somados das portas lgicas AND, OR e o inversor. importante notar nesses circuitos que existe um atraso desde a chegada dos sinais nas entradas e o resultado pronto apresentado na sada S. Durante esse perodo, a sada S poder apresentar qualquer valor que no corresponde ao resultado correto dessas entradas.

    A

    B

    C

    S

    (b) Circuito Combinacional

    (a) Tabela Verdade

    0001

    1101

    1011

    1100

    0010

    0110

    1111

    0000

    SCBA

    0001

    1101

    1011

    1100

    0010

    0110

    1111

    0000

    SCBA

    Figura 2.2: Tabela verdade e circuito da funo S

    2.4 Circuitos Seqenciais Nos circuitos seqenciais, as sadas no dependem somente dos valores presentes

    nas entradas. Deste modo, estes circuitos no podem ter sua funcionalidade representada por meio de tabelas verdade. Os valores presentes na sada de um circuito seqencial dependem das entradas atuais e tambm da seqncia de valores de entrada aplicados anteriormente, que podem estar sendo armazenados. Este tipo de circuito possui implicitamente capacidade de memria para armazenar um estado interno que depende do conjunto de entradas aplicadas anteriormente. Esta memria pode ser regida por um sinal de relgio, que determina os instantes precisos em que os estados so armazenados na memria. Neste caso temos os circuitos sncronos, j que a operao de armazenamento dos dados feita de modo sincronizado com um sinal de relgio. Uma outra alternativa possvel se d quando os elementos de memria so controlados atravs de protocolos de comunicao. Neste caso a memorizao pode ser feita em qualquer instante de tempo, quando os sinais relativos ao controle do protocolo de comunicao determinam o momento do armazenamento dos dados. Teremos ento, os circuitos assncronos, j que o armazenamento de dados feito por demanda sem estar atrelado a um sinal de temporizao e sincronismo, como o caso do sinal de relgio

  • 23

    nos circuitos sncronos. A seguir so discutidas propriedades de funcionamento destes dois tipos de circuito.

    Na figura 2.3 pode ser vista tabela de relacionamento e o modelo do circuito seqencial. O circuito possui um estado atual A e um prximo estado B, indicado na primeira linha da tabela. Nessa situao uma entrada X far com que a sada tenha resultado J. A mesma entrada X apresentada ao circuito quando o estado atual B e o prximo estado A far com que a sada tenha resultado K, mostrado na segunda linha da tabela. A mudana do valor da entrada no ir alterar o resultado na sada quando o estado atual e prximo so iguais, como pode ser visto na terceira e quarta linhas. O estado atual A e prximo estado A far com que o circuito armazene o valor de sada nesse estado apesar da entrada mudar para Y. Assim tambm acontece para o estado atual B e prximo estado B, armazenando o valor anterior K e o apresentado na sada.

    Nesses circuitos, o tempo necessrio para que o resultado esteja disponvel nas suas sadas a soma dos atrasos nas portas lgicas e dos atrasos que os sinais de estado atual e prximo estado tero at ficarem disponveis nas entradas dessas portas.

    Elementos de Memria

    Vetor de Entradas

    Sadas

    Parte Combinacional

    BA

    AB

    Prximo Estado

    KJ

    KJ

    Sada

    BYAY

    BXAX

    Estado Atual

    Entrada

    BA

    AB

    Prximo Estado

    KJ

    KJ

    Sada

    BYAY

    BXAX

    Estado Atual

    Entrada

    (b) Circuito Seqencial(a) Tabela de Transio de Estados

    Figura 2.3: Exemplo de circuito seqencial. 2.4.1 Circuitos sncronos

    Os circuitos sncronos so controlados por um sinal de relgio. Este sinal de relgio determina os tempos em que o circuito deve armazenar o estado anterior at que seja gerado o prximo estado. Para entender o funcionamento do circuito sncrono fundamental conhecer o comportamento do seu registrador. O seu comportamento se baseia na cpia dos valores de entrada para a sada e na memorizao desses valores. O que define o instante em que o registrador sncrono dever copiar esses valores ou armazena-los o sinal do relgio central. Na figura 2.4 possvel ver a seqncia de aes na sada de um registrador sncrono sensvel borda de subida. Quando o sinal do relgio passa de 0 para 1, o valor de entrada est autorizado a ser escrito no registrador. Nos demais casos, o registrador ir armazenar o ltimo valor copiado.

  • 24

    Relgio Central Ao na Sada

    Dado Memorizado

    Copia o valor de entrada para a sada do registrador

    Dado Memorizado

    Dado Memorizado

    0 0

    0 1

    1 0

    1 1

    Figura 2.4: Descrio do registrador sncrono

    Na figura 2.5 possvel verificar um modelo de anel para um circuito sncrono. O

    nico estgio formado por um bloco CC, que representa uma lgica combinacional, e um bloco de armazenamento que um registrador controlado pelo sinal do relgio, descrito por REG. Considerando nesse exemplo que o bloco que representa a lgica combinacional seja um somador que realiza a operao de soma 1, ou seja, soma o valor 1 ao valor de entrada. O registrador REG responsvel pela cpia dos valores de entrada no instante em que a borda de subida do sinal do relgio acionada. Os pontos P1 e P2 correspondem, respectivamente, aos valores de sadas do registrador e do bloco combinacional. Nesses pontos so mostrados os fluxos dos sinais, distribudos ao longo do tempo.

    Vamos partir da situao inicial de que o valor na sada de REG P1 igual a 29 e na sada de CC P2 igual a 30. Quando ocorrer a primeira borda de subida do sinal do relgio, o valor que estava disponvel em P2 copiado para o registrador REG e mostrado na sua sada. Nesse instante, comea o clculo no bloco combinacional relativo operao de soma 1 ao valor 30. Digamos que para realizar essa soma o bloco combinacional demore 10t, sendo t unidade de tempo. O clculo dever estar pronto antes da prxima borda de subida do sinal do relgio e durante esse perodo de tempo, esse valor ficar aguardando no registrador. Quando ocorrer a segunda borda de subida, o valor 31 copiado para o registrador REG e mostrado na sua sada. O valor no ponto P1 passa a ser 31 e o bloco combinacional poder iniciar o novo clculo. Considerando que o valor 31 somado a 1 deva levar um tempo bem maior que a soma anterior, uma vez que iro existir vrios carregamentos de bits menos significativos para os mais significativos, para s depois o resultado final ficar pronto. Vamos atribuir para essa soma um tempo de 30t. Logo, o clculo ir se estender por um perodo de tempo maior que o anterior e s depois quando o resultado estiver estvel e pronto que a borda de subida dever ser acionada. Com isso j podemos concluir que nos circuitos sncronos o perodo mnimo do sinal do relgio o do maior atraso que ser obtido nos clculos desse circuito. Assim, todo e qualquer clculo dever ser efetuado dentro desse perodo mnimo e o resultado dever estar pronto antes que a borda de subida seja acionada.

    Prosseguindo com o raciocnio, na terceira borda de subida do sinal do relgio o registrador REG ir copiar o valor 32 do ponto P2 e o mostrar na sua sada, indicada pelo ponto P1. Nesse instante ir iniciar um novo clculo pelo bloco combinacional.

  • 25

    Sinal do Relgio

    Sinal do Relgio

    30

    30P2

    31

    clculo

    10t

    32

    31 clculo

    30t

    32 clculo

    10t

    33

    CC(+1)

    P1REG

    P2

    29P1

    Espa

    o

    Tempo

    Figura 2.5: Modelo de circuito sncrono

    Outra caracterstica importante do funcionamento dos circuitos sncronos que o

    nico sinal que deve se manter estvel durante a ativao da borda de subida o sinal do relgio. Isto necessrio uma vez que esse sinal que ir indicar quando o dado dever ser copiado no registrador de cada estgio. Se por acaso esse sinal apresentar problemas durante esse processo, uma informao errada ser copiada e repassada para os estgios seguintes.

    2.4.2 Circuitos assncronos Os circuitos assncronos so controlados atravs de protocolos de comunicao,

    sendo independentes do sinal do relgio, conforme (HAUCK, 1995) e (SPARSO, 2001). Um possvel protocolo de comunicao que poderia ser utilizado nesses circuitos baseado no envio de um sinal de fim de clculo que avisaria que o clculo foi realizado pelo bloco combinacional e no recebimento de um sinal que indicaria que esse resultado j poderia ser copiado no registrador e encaminhado para o estgio seguinte. Os circuitos assncronos so implementados atravs de estgios onde cada um deles composto por um bloco funcional, bloco de armazenamento e um circuito de deteco de fim de clculo. O bloco funcional responsvel pelo clculo propriamente dito, um circuito combinacional onde os valores de sadas dependem exclusivamente dos valores de entrada. O bloco de armazenamento responsvel por guardar a informao oriunda do bloco funcional, controlado por um sinal que avisa quando o resultado do bloco funcional j pode ser copiado. O circuito de deteco de fim de clculo responsvel por verificar se os valores de sada do bloco funcional esto corretos para s assim serem copiados para o bloco de armazenamento. Para avisar que os valores de sada do bloco funcional esto corretos ele envia um sinal para o controle do circuito que se encarrega do protocolo de comunicao.

  • 26

    2.4.2.1 Registrador Assncrono O registrador assncrono tem o seu comportamento baseado no sinal que lhe

    enviado pelo circuito de controle. Na figura 2.6 exemplificamos o seu funcionamento atravs dos sinais entrada pronta e dado recebido. Esses dois sinais representam os sinais de pronto que so enviados pelos blocos de deteco de fim de clculo que existem nos estgios do circuito assncrono. No instante em que o circuito de controle recebe os sinais de entrada pronta igual a 0 e dado recebido igual a 1, significa que o circuito de controle recebeu a informao de apagar o valor armazenado, enviando para o registrador assncrono um sinal de habilita igual a 0. Quando o circuito de controle recebe o sinal entrada pronta igual a 1 e dado recebido igual a 0, significa que o circuito de controle recebeu a informao que deve copiar os valores na entrada do registrador para a sua sada.. J na situao em que o circuito de controle recebe o sinal entrada pronta e dado recebido, ambos iguais a 0 ou ambos iguais a 1, significa que o circuito de controle recebeu a informao de que dever manter o valor armazenado no registrador.

    REG

    Controle

    Entrada Pronta

    Dado Recebido

    Vetor de entradas Sadas

    (b) Esquema do Circuito

    (a) Descrio das aes do controle

    Entrada Pronta

    Dado recebido

    Ao do controle

    Valor do dado

    Dado memorizado

    Dado memorizado

    Apagar o valor

    memorizado

    Autoriza a escrita do

    dado

    0 0

    0

    0

    1

    1

    1 1

    Vlido ou Vazio

    Vlido ou Vazio

    Vazio

    Vlido

    Figura 2.6: Descrio das aes do registrador assncrono

    2.4.2.2 Estgio Assncrono O conjunto de blocos, mostrados na figura 2.7 compem um estgio nos circuitos

    assncronos. Esse estgio formado, obrigatoriamente, pelo bloco de armazenamento e pelo circuito de deteco de fim de clculo, podendo ou no, ser ainda composto pelo bloco combinacional, visto que, podem existir estgios que no necessitem realizar clculo algum. Para que um circuito assncrono possa ter operacionalidade necessrio que o protocolo de comunicao de dados obedea ao preceito de que ir somente enviar um sinal para apagar a informao armazenada de um registrador quando essa informao j tiver sido copiada para o registrador seguinte. Esse preceito atendido quando o valor do sinal de pronto do estgio ao qual pertence o registrador for igual a 0

  • 27

    e o valor do sinal do pronto do estgio posterior ao seguinte for igual a 1, significando que a informao j foi calculada pelo bloco operacional do prximo estgio.

    CircuitoCombinacional

    Vetor de Entradas Sadas

    Deteco Fim de Clculo

    EstgioAssncrono

    Pronto

    Registrador Assncrono

    Habilita

    Figura 2.7: Blocos no estgio de um circuito assncrono

    2.4.3 Anel Assncrono O anel assncrono corresponde ao conjunto de estgios distribudos de forma que os

    valores de sada do ltimo estgio correspondam aos valores de entradas do primeiro. Uma caracterstica do anel assncrono que uma vez inseridos os valores de entradas no mais possvel inserir outros valores, ou seja, uma vez iniciado o seu clculo, a quantidade de valores que circulam no anel fixa.

    Nos circuitos assncronos existe uma limitao quanto ao nmero mnimo de estgios em um anel. Para que o dado possa circular pelos estgios e dar continuidade ao processo de sincronizao, realizado pelo protocolo de comunicao, o anel dever ter, alm do estgio com o valor do dado de informao, um estgio em que existe a ausncia de informao e um estgio em que o dado de informao foi previamente copiado. Com isso, teramos um estgio efetivamente com o valor de informao, um estgio que possui uma cpia antiga dessa informao e um estgio vazio. Ou seja, no mnimo trs estgios.

    Na figura 2.8 mostrado um anel assncrono de trs estgios. O primeiro estgio formado pelo circuito combinacional CC que realiza a operao de soma 1 ao valor de entrada, pelo registrador REG1 responsvel por copiar a informao de P1 e mostra-la na sua sada e pelo circuito de deteco de fim de clculo, DET1 que responsvel pelo sinal que indica quando valores vlidos esto presentes na sada do bloco combinacional CC. Os outros dois estgios no possuem blocos combinacionais sendo formados apenas por seus registradores e pelos circuitos de deteco de fim de clculo. Sendo eles os circuitos REG2 e DET2, no segundo estgio e REG3 e DET3, no terceiro estgio. As sadas dos registradores REG1, REG2 e REG3 so indicadas pelos pontos P2, P3 e P4, respectivamente. A sada do bloco combinacional CC indicada por P1. Os sinais que

  • 28

    indicam quando existe um valor vlido nos pontos P1, P2 e P3 so PP1, PP2 e PP3, respectivamente.

    Vamos partir da situao inicial em que o bloco CC acabou de realizar um clculo, disponibilizando o resultado na sua sada indicada por P1. Consideremos que o primeiro valor seja 31 e que em todos os outros pontos exista o valor vazio ou ausncia de informao. Quando o valor 31 for mostrado na entrada do circuito de deteco de fim de clculo DET1, o mesmo ir acionar o sinal PP1, indicando que existe dado vlido na entrada do registrador REG1. O circuito de controle ir receber os sinais de PP1 igual a 1 e de PP3 igual a 0. Com isso ir habilitar o registrador REG1 para escrever o valor que est disponvel na sua entrada. Esse valor ser mostrado na sada do registrador REG1, indicada por P2. Quando o valor 31 for mostrado na entrada do circuito de deteco de fim de clculo DET2, o mesmo ir acionar o sinal PP2, indicando que existe dado vlido na entrada do registrador REG2. O circuito de controle ir receber os sinais de PP2 igual a 1 e de PP1 igual a 1, com esses sinais o registrador armazena o ltimo valor amostrado que vazio. Quando o sinal PP1 for baixado pela ausncia de informao em P1, o controle passar a receber os sinais de PP2 igual a 1 e de PP1 igual a 0, com isso ir habilitar o registrador REG2 para escrever o valor que est disponvel na sua entrada. O registrador REG2 copia o valor 31 e o mostra na sua sada, representada por P3. Quando o valor 31 for mostrado na entrada do circuito de deteco de fim de clculo DET3, o mesmo ir acionar o sinal PP3, indicando que existe dado vlido na entrada do registrador REG3. O controle receber o sinal de PP1 igual a 0 e de PP3 igual a 1, fazendo com que o valor que estava armazenado no registrador REG1 seja apagado. Quando o valor que era mostrado na sada do registrador REG1 for apagado, o sinal PP2 do circuito de deteco de fim de clculo DET2 ser baixado. O circuito de controle receber o sinal de PP2 igual a 0 e PP1 igual a 0, fazendo com que o registrador REG2 armazene o valor anterior. O sinal PP3 com valor 1 juntamente com o sinal PP2 com valor 0 far com que o circuito de controle habilite o registrador REG3 para escrever o valor que est disponvel na sua entrada. O valor na entrada do registrador ser copiado para a sua sada, sendo mostrado na entrada do circuito combinacional CC atravs do ponto P4. A partir desse instante se inicia o clculo para que seja somado 1 ao valor na entrada de CC. Diante dessa operao de clculo demorar mais tempo que a anterior por causa dos carregamentos que sero necessrios para a soma de 1 ao valor 31, o atraso nessa operao ser maior que na anterior. O protocolo de comunicao, no entanto, se adapta a essa diferena de atrasos nas operaes pois o clculo s ser copiado para o registrador REG1 quando o sinal do circuito de deteco de fim de clculo DET1 for acionado. Quando o resultado da operao de soma for copiado para o registrador REG1 e for amostrado na sua sada, o sinal PP2 ser acionado e far com que o circuito de controle apague o valor armazenado no registrador REG3, pois receber o sinal PP3 igual a 0 e PP2 igual a 1. O anel ento ir circular o novo valor, resultante da operao de soma do circuito combinacional.

  • 29

    CC(+1)

    P4

    Vazio 31

    clculo

    32P2

    Vazio 31 VazioP3

    Vazio 31 VazioP4

    PP 1

    PP 2

    PP 3

    31clculoP1 Vazio 32

    Vazio

    10t 30tVazio

    REG 3

    DET 3PP 3

    P3REG 2

    DET 2PP 2

    P2REG 1

    DET 1PP 1

    P1

    32

    32

    Vazio

    Espa

    o

    Tempo

    PP1 PP3Ctr

    PP2 PP1Ctr

    PP3 PP2Ctr

    C1 C2 C3

    C 3

    C 2

    C 1

    Figura 2.8: Modelo de circuito assncrono de 3 estgios Outra caracterstica importante do funcionamento que difere dos circuitos sncronos

    que os sinais que controlam os registradores so provenientes da comunicao dos dados nesse circuito. Esse protocolo de comunicao, conseqentemente, dever ter seus sinais livres de variaes que possam causar erros durante o processo de escrita da informao pelos registradores. Enquanto que nos sncronos a nica preocupao era em manter o sinal do relgio estvel durante a ativao da borda de subida, nos assncronos essa preocupao com relao a qualquer sinal em qualquer instante durante o processo de comunicao da informao pelo circuito.

    2.5 Efeito dos Hazards Os hazards so alteraes indesejveis nos nveis dos sinais nos circuitos durante

    suas transies (HAUCK, 1995) e (SPARSO, 2001). Existem dois tipos de hazards nos circuitos, o esttico e o dinmico. Hazard esttico pode acontecer quando ocorre uma transio de mesmo nvel lgico nas entradas de um circuito e as suas sadas mostram, durante um pequeno intervalo de tempo, um nvel lgico diferente dessas entradas. J o

  • 30

    hazard dinmico pode acontecer quando se tem uma mudana de nveis lgicos nas entradas e as suas sadas no passam imediatamente para esses nveis lgicos. Os dois tipos de hazards, esttico e dinmico, podem ser vistos na figura 2.9, por (a) e (b), respectivamente.

    AB

    00

    AB

    11

    A XOR B A XOR B

    AB

    00

    AB

    01

    Transio Indesejada Transio Indesejada

    (a) (b)

    Figura 2.9: Tipos de hazards

    2.5.1 Nos Circuitos Sncronos Nos circuitos sncronos a nica restrio para alteraes indesejadas nos sinais

    feita no instante da escrita da informao de entrada para a sada dos registradores. Como o sinal do relgio o nico responsvel pelo sincronismo dessa informao, esse sinal deve estar livre de hazards. Ainda com relao ao sinal do relgio, uma vez que o perodo mnimo sempre determinado pelo maior atraso no estgio mais lento, o tempo necessrio para copiar e armazenar a informao acaba sendo suficiente. Assim, as sadas dos registradores conseguem se estabilizar at que sejam copiadas para o estgio seguinte.

    2.5.2 Nos Circuitos Assncronos Nos circuitos assncronos, o protocolo de comunicao dos dados que define

    quando um registrador dever copiar ou armazenar uma informao vlida. Nesse caso, todos os sinais participam do processo de comunicao havendo a necessidade de que todos estejam livres de hazards. Como a restrio de haver variaes indesejadas nos sinais genrica, existe uma preocupao muito maior que com os circuitos sncronos. Essa preocupao tem como conseqncia uma constante verificao da validade dessas sadas em cada estgio do circuito. Essa verificao feita atravs do circuito de deteco de fim de clculo, como foi indicado nas sees anteriores. Esse circuito envia um sinal para o circuito de controle, indicando que as sadas de cada bloco funcional esto vlidas e prontas para serem copiadas nos registradores de cada estgio.

    2.6 Sumrio Nesse captulo ns apresentamos uma viso global dos circuitos digitais com a

    utilizao de uma classificao entre combinacionais e seqenciais. Com a definio de

  • 31

    circuitos seqenciais, introduzimos os conceitos de circuitos sncronos e assncronos com a principal diferena entre ambos, o comportamento frente ao sinal de sincronismo dos registradores. Nos sncronos, dependem do maior atraso que um determinado estgio poder ter para s assim, determinar o perodo mnimo do relgio central. Nos assncronos so dependentes dos atrasos individualizados de cada estgio e mais os atrasos que ocorrem nos sinais de controle durante o protocolo de comunicao de dados.

  • 32

    3 IMPLEMENTAO DE CIRCUITOS ASSNCRONOS

    3.1 Resumo Este captulo descreve os mecanismos e tcnicas necessrias para implementao de

    circuitos assncronos. Os conceitos foram organizados de forma que se tenha uma viso geral das caractersticas que envolvem o projeto desses circuitos.

    3.2 Elementos de base Os circuitos assncronos possuem elementos essenciais que compem a sua

    estrutura. Eles so responsveis pela lgica de controle e pelo armazenamento das informaes que atravessam os diferentes blocos desses circuitos. Eles so compostos pelas clulas Muller, as clulas M de N e ainda os registradores assncronos.

    3.2.1 Clula Muller A clula Muller ou elemento C de Muller funciona como um latch set-reset

    assncrono, (HAUCK, 1995), (SPARSO, 2001) e (RIGAUD, 2002). Ele pode ser descrito da seguinte forma: Quando as entradas so 0 a sada 0, e quando as entradas so 1 a sada 1, para qualquer outra combinao de entradas as sadas permanecem as mesmas, ou seja, armazenam o valor anterior. Conseqentemente, um observador vendo a sada mudar de 0 para 1 pode concluir que todas as entradas possuem valor 1 naquele instante; similarmente, um observador vendo a sada mudar de 1 para 0 poder concluir que todas as entradas so 0 naquele momento. Na figura 3.1. pode ser visto o diagrama de estados e o smbolo usado para representar o elemento C de Muller com duas entradas. O comportamento da sada Cout na clula Muller representado em termos das entradas a e b e do estado anterior de sada Cin pela seguinte expresso booleana. Isso se d atravs da realimentao do circuito, ligando Cout ao Cin.

    Cout = [Cin (a+ b)] + (a . b)

  • 33

    C

    a b

    c

    (a) Clula Muller de duas entradas (b) Tabela de Sinais da Clula Muller de duas entradas

    a b c0

    memoriza

    0

    00 111 1

    0

    1

    memoriza

    Figura 3.1: Smbolo utilizado e diagrama de estados da clula Muller de duas entradas

    Na figura 3.2. mostrado o smbolo e a tabela verdade para a Clula Muller de trs

    entradas. A operao segue o mesmo princpio descrito anteriormente. Quando todas as entradas a, b e c so 0 a sada 0, e quando as entradas a, b e c so 1 a sada 1, para qualquer outra combinao das entradas a, b e c as sadas permanecem as mesmas.

    C

    a c

    Sada

    (a) Clula Muller de trs entradas

    b

    (b) Tabela de Sinais da Clula Muller de trs entradas

    a b c0

    memoriza

    0

    00 1

    11

    1

    0

    1

    memoriza

    sada

    1

    1

    00

    01

    0

    1

    01 0

    10

    1

    memoriza

    memoriza

    memoriza

    memoriza

    0

    1

    Figura 3.2: Smbolo utilizado e diagrama de estados da clula Muller de trs entradas

    3.2.2 Clula M de N A clula M de N, tambm chamada de threshold gate, (FANT, 1997) e (KUANG,

    2003), apresenta um comportamento similar ao da clula Muller com a diferena que a sua sada dever mudar de 0 para 1 quando apenas M das N entradas existentes estejam em 1. Ou seja, o seu funcionamento ocorre da seguinte maneira: Quando M entradas das N existentes estiverem em 1 a sua sada ir para 1, e quando todas as N entradas forem para 0 a sua sada ir para 0, para qualquer outra combinao de entradas a sada permanece com o valor anterior. A partir da percebemos que essas clulas sero idnticas s clulas Muller quando M for igual a N e tero um comportamento idntico a uma porta lgica OR quando M for igual a 1. Na figura 3.3 temos o smbolo utilizado

  • 34

    para descrever essas clulas. Para uma clula threshold gate M de N (DERTOUZOS, 1965), M entradas vlidas para o total de N entradas existentes, sendo sempre M N.

    MN Sada

    Clula M de N

    2b Sada

    (a) Smbolo utilizado para clula M de N

    a

    c

    (b) Clula 2 de 3 com sua Tabela de Sinais

    a b c0

    memoriza

    0

    00 1

    11

    1

    0

    1

    memoriza

    sada

    1

    1

    00

    01

    0

    1

    01 0

    10

    1

    memoriza

    0

    1

    1

    11

    Figura 3.3: Clula threshold gate de M=2 e N=3

    3.2.3 Registradores assncronos O registrador assncrono, mostrado na figura 3.4, responsvel por armazenar a

    informao entre os blocos funcionais nos circuitos assncronos. O seu controle feito pelo sinal de habilita que enviado pelo protocolo de comunicao do circuito. A tabela dos sinais que caracteriza o registrador assncrono mostrada na figura. De acordo com essa tabela, quando o sinal de habilita for 0, todas as sadas sero 0, independentes dos sinais nas entradas. Essa situao muda quando o sinal de habilita for 1. Isto faz com que as entradas sejam relevantes para se determinar os sinais que estaro disponveis nas sadas do registrador. Quando as duas entradas forem diferentes uma da outra, a sada St mostrar o sinal na entrada Et e a sada Sf mostrar o sinal da entrada Ef. Quando as duas entradas forem 0, as sadas iro mostrar os valores anteriores, ou seja, iro mostrar o valor que foi armazenado anteriormente pelo circuito. A situao em que habilita e as entradas Et e Ef so 1 prevista como uma indeterminao pela tabela de sinais.

  • 35

    Et

    Habilita

    Ef

    St

    Sf

    (a) Esquema do registrador assncrono (b) Tabela dos sinais do circuito

    Habilita Et Ef St Sf

    memoriza memoriza

    0000

    00

    0

    011

    1

    11 0 0

    0 0000

    000

    111

    0 11 01 1 INVLIDO

    001

    1

    Figura 3.4: Representao do registrador assncrono com tabela dos sinais

    3.3 Circuitos combinacionais assncronos: parmetros O conhecimento dos parmetros que envolvem os circuitos assncronos necessrio

    para uma viso global do funcionamento desses circuitos. Os tipos de codificao que podem ser utilizadas, os conceitos de lgica de fim de clculo e os estilos de projetos so visto de forma resumida para introduzir o leitor no ambiente de trabalho que foi feita essa dissertao.

    3.3.1 Codificao de dados Nos circuitos assncronos no existe um sinal de sincronizao global como o

    relgio central nos circuitos sncronos. Logo, se faz necessrio que os blocos que constituem esses circuitos tenham algum tipo de comunicao entre si. Essa comunicao controla o fluxo de informao entre esses blocos e gera os sinais que sero utilizados pela lgica de controle nos blocos de armazenamento, (HAUCK, 1995) e (SPARSO, 2001).

    O protocolo de comunicao escolhido ter o papel do sinal de relgio nos circuitos assncronos com a grande diferena que no iro chavear o circuito como um todo e sim apenas a parte que estiver envolvida efetivamente da computao num determinado instante de tempo.

    Os blocos nos circuitos assncronos se comunicam atravs dos sinais request e acknowledge. O sinal request, ou melhor, estou enviando dados diz que o bloco quer se comunicar com outro e possui dados prontos para serem enviados e o sinal de acknowledge, ou melhor, dado recebido diz que o bloco recebeu os dados que foram enviados.

    Nesses protocolos de comunicao, os dados podem estar codificados em single ou dual-rail. Na codificao single-rail cada bit de informao trafega por apenas um nico caminho, por outro lado, na codificao dual-rail cada bit de informao trafega por dois caminhos distintos. H ainda a codificao que utiliza o reset como espaador, ou seja, enviado o dado vlido e um dado vazio.

  • 36

    3.3.1.1 Single Rail Nesse tipo de codificao o transmissor gera um sinal avisando que est enviando o

    dado e o receptor gera um sinal dizendo que recebeu o dado que lhe foi enviado. Um esquema que representa a comunicao single rail de dados de n bits mostrado na figura 3.5. A codificao single rail pode ser feita em duas fases ou quatro fases. Em duas fases ocorre que o transmissor gera o sinal estou enviando os dados e aps o receptor ter recebido este dado, envia um outro correspondente a dado recebido para o transmissor. Para o de quatro fases, o transmissor envia um sinal dizendo que est pronto para enviar os dados, o receptor envia um outro sinal dizendo que pode enviar. O transmissor inicia o envio do dado de informao. Quando o receptor j tiver recebido toda a informao, o receptor envia um sinal avisando que o dado foi recebido e s assim, o transmissor poder parar de enviar.

    Transmissor Receptorn

    Dados

    Estou enviando

    Dado recebido

    Figura 3.5: Esquema de codificao single rail

    3.3.1.2 Dual Rail No esquema de codificao dual-rail existem dois caminhos de comunicao para

    representar cada bit da informao. Existem vrios esquemas de codificao dual-rail, sendo que todos combinam codificao dos dados e os protocolos de sinalizao. No existe um sinal explcito para avisar que o transmissor est enviando os dados, como foi visto no esquema de codificao single-rail. So usados (2n+1) caminhos de comunicao, como mostra a figura 3.6. Cada bit de dados X codificado atravs de dois sinais binrios Xt e Xf . Caso o X=0, temos a codificao Xt =0 e Xf =1. Caso o X=1, temos a codificao Xt =1 e Xf =0. Existe ainda a codificao Xt =0 e Xf =0, usada para indicar a ausncia de dados e realizar a pr-descarga de blocos combinacionais antes da realizao de um clculo. Esta codificao eficaz para a deteco de fim de clculo, que feita pela identificao de um valor vlido nos pares de bits de sada de um bloco.

  • 37

    Transmissor Receptor2n

    Dados

    Dado recebido

    00Ausente011

    100XfXtX

    00Ausente011

    100XfXtX

    (a) Esquema dos sinais entre os blocos do circuito

    (b) Tabela de codificao dual rail

    Figura 3.6: Esquema dos sinais entre os blocos e tabela de codificao dual rail Para o uso da codificao dual rail mais comum a quatro fases, considera-se que

    cada um dos caminhos de comunicao deve passar pelo estado vazio ou pr-descarga dos blocos (ausncia de dados) antes de ir para o prximo estado vlido. Na primeira fase todos os n bits de dados dos dois caminhos que so enviados pelo transmissor sairo do estado vazio ou ausncia de dados para o estado 0 ou 1 vlido. O receptor detecta a chegada do novo grupo de dados vlidos quando todos os pares dos dois caminhos de comunicao tiverem sado do estado vazio. Esta deteco implcita substitui o sinal de estou enviando explcito que existia na codificao single rail. A segunda fase consiste no envio do sinal de dado pronto do receptor para o transmissor, informando que o dado foi recebido. Na terceira fase, uma vez recebido o sinal de dado pronto pelo transmissor, esse inicia a passagem de todos os pares de bits dos dois caminhos de comunicao do estado vlido para o estado vazio, realizando a pr-descarga dos blocos. J na quarta fase, o receptor abaixa o sinal de dado pronto, uma vez que deixa de receber os pares de bits de dados vlidos.

    3.3.1.3 Reset como espaador (dado vlido vs dado vazio) Nesse tipo de codificao teremos a utilizao da ausncia de informao ou vazio

    para separar os dados de informao na codificao dual rail. A deteco de pares de bits vlidos nos dois caminhos de comunicao codificados faz com que seja enviado pelo receptor um sinal de dado recebido para o transmissor. J a ausncia de informao ou todos os pares de bits dos dois caminhos no estado vazio far com que o receptor deixe de enviar o sinal de dado recebido.

  • 38

    DadoP

    Dado Recebido

    Vazio Dado Vazio

    Transmissor ReceptorP

    Tempo

    Esp

    ao

    2nDados

    Dado recebido

    Figura 3.7: Esquema da codificao reset como espaador

    3.3.2 Lgica de fim de clculo Uma vez que no existe sinal de relgio principal nos circuitos assncronos, existe a

    necessidade de que os blocos funcionais ou aqueles que realizam os clculos no circuito avisem aos demais blocos que terminaram esse clculo, (SPARSO, 2001). Dos muitos mtodos de deteco de fim de clculo existentes o de nosso interesse o de verificao da validade dos dados contidos no barramento num determinado instante de tempo.

    3.3.2.1 Elemento de atraso Esse mtodo para indicar que o clculo foi realizado consiste na estimativa do tempo

    utilizado por um bloco combinacional ao realizar uma determinada operao de clculo no circuito. Na figura 3.8 mostrado como possvel indicar o fim de clculo atravs de elementos de atraso. A informao levada ao bloco combinacional atravs dos vetores de entradas. Nesse instante, gerado um sinal de estou enviando para o bloco seguinte. Esse sinal ir atravessar um conjunto de inversores em srie ou uma cadeia de buffers que lhe atribuiro um atraso t2. Quando os vetores de entradas so colocados a disposio do bloco combinacional iniciado o clculo e aps o tempo t1 colocado o resultado na sada desse bloco. O projetista deve ento dimensionar o atraso para que o sinal de estou enviando, ao atravessar a cadeia de inversores, seja maior que o atraso que o bloco combinacional levar para calcular o resultado da operao, ou seja, que t2 seja maior que t1. Assim, o bloco seguinte poder receber o sinal de Pronto relativo ao fim de clculo no bloco combinacional.

  • 39

    Estou enviando

    Circuito Combinacional

    t2

    Vetor de entradas Sada

    Pronto

    t1

    t2

    clculoSada 30

    t1

    Estou enviando Pronto

    Figura 3.8: lgica de fim de clculo com elementos de atraso

    3.3.2.2 Deteco de dado vlido em dual rail Esse mtodo se baseia na deteco de fim de clculo a partir da verificao se todos

    os n bits de dados dos dois caminhos de comunicao so vlidos num determinado instante. Na figura 3.9. mostrado um esquema do circuito combinacional com o circuito de deteco de fim de clculo utilizado. O resultado levado ao circuito de deteco de fim de clculo, uma vez verificada a validade dos pares de bits nos dois caminhos de comunicao, ir gerar o sinal de Pronto.

  • 40

    Circuito Combinacional

    Pronto

    2nResultado

    Vetor de Entradas

    Deteco Fim de Clculo

    Pronto

    clculoResultado 30 Vazio

    Figura 3.9: Deteco de fim de clculo atravs de codificao dual rail

    3.3.3 Lgica monotnica e hazards Nos circuitos seqenciais, existem diferentes blocos por onde passam as

    informaes dos dados. Os sinais podem percorrer diferentes caminhos at chegarem s entradas de um determinado bloco, a fim de realizar uma determinada operao de clculo. Nos circuitos sncronos os atrasos de diferentes caminhos so compensados pelo perodo mnimo de sinal do relgio. Esse perodo projetado para que se leve em considerao o atraso necessrio at que as sadas desses blocos combinacionais se estabilizem e que seja armazenado um resultado vlido pelo registrador.

    Nos circuitos assncronos no existe o sinal de relgio para determinar o tempo que essas sadas sero copiadas para o registrador. Logo, alguma informao incorreta poderia ser armazenada at que as sadas do circuito que realiza esses clculos se estabilizem. Na figura 3.10 (a) possvel verificar a ocorrncia de hazards devido ao atraso que uma entrada poderia sofrer ao chegar num circuito combinacional, (SPARSO, 2001) e (HAUCK, 1995). O atraso t, devido ao inversor colocado na entrada B, provoca um hazard na sada S do circuito.

    Esse problema poder