ircuitos combinatórios Organização: ormas básicas de representação Síntese por mapas de Karnaugh Projectos com blocos SSI / MSI nálise e teste ircuitos combinatórios - representação de sistemas digitais ormas básicas de representação: Tabular (tabela de verdade) lgébrica (por extenso ou abreviada) Gráfica (diagrama lógico ou mapa de Karnaugh) Nível da representação: omportamental uncional Estrutural ircuitos combinatórios - Tabelas de verdade presentam o valor da(s) saída(s) para todas as combinações possíveis nas entradas Só é viável em casos com reduzida complexidade ircuitos combinatórios - Equações algébricas orma canónica da soma de produtos: = /*/* + /** + **/ + ** orma canónica do produto de somas: = (++) * (+/+) * (/++) * (/++/) orma canónica abreviada: = Σ (,,,) =Π (,,,) ircuitos combinatórios -
Diagrama lógico ircuitos combinatórios - Mapas de Karnaugh Os mapas de Karnaugh são usados mais como formalismo de simplificação do que como alternativa para a representação / / / / ircuitos combinatórios - / / / /D D /D / Simplificação de funções por mapas de Karnaugh Teorema subjacente: *Y + */Y = No caso considerado: / ircuitos combinatórios - / / / /*/* /** Simplificação de funções por mapas de Karnaugh () ircuitos combinatórios - /* /*/* * D + /*/* */D = /*/* /*/*/ + /* */ = /*/ /* * * D + /* * */D = /* * / / / / /*/*/ /*/* /** /**/ */*/ */* ** **/ / / / /D D /D / ////D ///D ///D //D //D /D ///D //D //D /D D /D ///D //D /D //D
Um adicionador de quatro bits síntese do circuito completo pelo processo descrito é inviabilizada pelo número de entradas (mapas de Karnaugh com quantas células?) [..] [..] / Σ / / ircuitos combinatórios - [..] = [..] + [..] adição bit-a-bit alternativa mais prática consiste em recorrer à síntese por mapa de Karnaugh para um adicionador de um bit, construindo o somador pretendido por concatenação destes módulos elementares in (entrada de transporte) + ( soma) ( transporte) + ircuitos combinatórios - Σ ( bit) S(soma) out (saída de transporte) O somador de um bit out S - - - - - - - - ircuitos combinatórios - out / S / / / / / / / e : Entradas de dados : Entrada de transporte O somador de um bit () S / / / / ircuitos combinatórios - / / out / / S Saída de soma out Saída de transporte
O adicionador de quatro bits oncatenando quatro módulos adicionadores de um bit, teremos o somador pretendido: S S S S Um comparador de quatro bits s mesmas razões já invocadas para o adicionador de quatro bits inviabilizam a síntese directa do comparador de quatro bits S S S S out out out out Qual o tempo de adição para a implementação modular? S [..] [..] / omparador / / < ircuitos combinatórios - ircuitos combinatórios - comparação bit-a-bit omeçando pelo bit mais significativo: Sendo [i] = [i] o resultado é inconclusivo e temos que passar ao bit seguinte ([i-], à direita deste) Sendo [i] > [i] e assumindo que a comparação foi inconclusiva para todos os bits anteriores, então resulta < falso, quaisquer que sejam os restantes bits Sendo [i] < [i] e assumindo que a comparação foi inconclusiva para todos os bits anteriores, então resulta < verdadeiro, quaisquer que sejam os restantes bits ircuitos combinatórios - O comparador de um bit Inc_in <_in [i] [i] Inc_out <_out <_out /[i] [i] /[i] Inc_out /[i] [i] /[i] /[i] [i] /[i] [i] /<in /Inc_in <in Inc_in ircuitos combinatórios - /<in /<in /Inc_in <in Inc_in /<in
O comparador de um bit () Inc_in <_in [i] [i] ircuitos combinatórios - Inc_out /<in /Inc_in Inc_in <in /<in /[i] [i] /[i] /[i] [i] <_out /[i] [i] /[i] /[i] [i] /<in /Inc_in <in Inc_in /<in Inc_ <_ O comparador de quatro bits Uma vez mais, concatenando os quatro módulos elementares, teremos o comparador de quatro bits: + V Inc_in <_in []= []= []= []= []= []= Inc < < < <= omp[] omp[] omp[] omp[] Também para este caso teremos um tempo de propagação superior à implementação não modular... ircuitos combinatórios - Inc Inc []= []= O projecto com blocos SSI / MSI Principais blocos SSI / MSI: Portas lógicas elementares (incluindo os buffers) odificadores e descodificadores Multiplexadores e desmultiplexadores omparadores e circuitos de paridade dicionadores, subtractores e multiplicadores Unidades lógicas e aritméticas O buffer S /OE I Y I Y I Y I Y GND Tipo S V OE Y I Y I Y I Y I Tempo de propagação típico, ns EN EN D orrente típica de alimentação m Entradas /OE I OE I I I I I Y Y Y Y I I I I Y Saídas Y Z Z = Nível lógico "alto" () = Nível lógico "baixo" () = "tanto faz" (don't care) Z = lta impedância Y Y Y Y S-, ns m ircuitos combinatórios - ircuitos combinatórios - /OE OE
O codificador T PRI/D Entradas / / / / / / / / / /Y / /Y / /Y / /Y / / = Nível lógico "alto" () = Nível lógico "baixo" () / = "tanto faz" (don't care) ircuitos combinatórios - / / / /Y Saídas /Y /Y /Y O descodificador S E O E O E O Entradas Saídas O /E /E E /O /O /O /O /O /O /O /O O O O O G & = Nível lógico "alto" () = Nível lógico "baixo" () Introdução ao Projecto com Sistemas Digitais e Microcontroladores = "tanto faz" (don't care) ircuitos combinatórios - O multiplexador S EN I I I I I I I I MU G ircuitos combinatórios - Y /Y S Entradas S S /E Y /Y Saídas I I I I I I I I = Nível lógico "alto" () = Nível lógico "baixo" () = "tanto faz" (don't care) /I /I /I /I /I /I /I /I Implementação de uma função com um mux Qualquer função com N entradas pode ser implementada por um mux de (N-) para W Y ircuitos combinatórios - Y /Y /Y Y Mux : W
x dicionador completo de bit onstruir um adicionador completo de bit x dicionador completo de bit Y in S out Y in /in +V G G Y Y S out ircuitos combinatórios - ircuitos combinatórios - S x Votador com três entradas onstruir um circuito votador com três entradas e uma saída (que deve assumir o valor que for comum à maioria das entradas) ircuitos combinatórios - x Votador com três entradas +V ircuitos combinatórios - Y Y Y Y / G S / G S Sugestão: ltere o circuito de forma a proporcionar também uma saída de erro Y Y Y Y
O desmultiplexador S /G /G / & & /Y ENa ENb a a a a b b b b Y Y Y Y Y Y Y Y ircuitos combinatórios - Selecção /G abilita (strobe) Entradas = Nível lógico "alto" () Dados (data) = Nível lógico "baixo" () = "tanto faz" (don't care) Y Saídas Y Y Y Para a outra metade é idêntico, a menos do nível activo na entrada / (estará em para funcionar) O comparador T < = > P Q OMP P < Q P = Q P > Q ircuitos combinatórios - I_< I_= I_> O_< O_= O_> Entradas de comparação Entradas de cascata Saídas,,,, I_> I_< I_= O_> O_< O_= > < = > = < = = > = = < = = = > = = = < = = = = = = = = = = = = = = = = = = = = = = = = = Nível lógico "alto" () = Nível lógico "baixo" () = "tanto faz" (don't care) T Um comparador de bits T Detector de janela [,[ [..] + V [..] U <i =i >i T <o =o >o [..] ircuitos combinatórios - [..] U <i =i >i T <o =o >o [..] [..] U <i =i >i T <o =o >o < = > + V U <i =i >i T <i =i >i T ircuitos combinatórios - + V U <o =o >o <o =o >o U < U
O adicionador T P Σ Σ Σ Q Σ I O _IN _OUT Unid. lógicas e aritméticas S S S S M /n P Q P Q P Q P Q M () () () () Y = /n+ S S S S Entradas M= unções ógicas / /(+) /* /(*) / :+: */ + +/ Dados activos a /n= (sem transporte - no carry) Menos (compl. ) Mais */ (+) Mais */ Menos Menos */ Menos M= unções ritméticas /n= (com transporte - with carry) Mais (+) Mais (+/) Mais Zero Mais */ Mais (+) Mais */ Mais Menos */ /+ Mais * Mais * Mais Pinos Nível lógico ctivo a _IN Σ Σ Σ Σ _OUT Exemplo Nota Entrada n Saída n+ Dados activos a Dados activos a > ou = < < ou = > > < /(:+:) * +/ Mais (+/) Mais * * Menos Mais (+) Mais Mais Mais (+/) Mais * Mais * Mais Mais (+) Mais Mais ctivo a = Nível lógico "alto" () Nota : + = (activo a ) ircuitos = Nível combinatórios lógico - "baixo" () Nota : _IN++ = (activo a ) Nota < ou = > ou = Nota: U deve estar em modo subtracção (S,S,S,S = ) ircuitos combinatórios - + (:+: representa o OU-EUSIVO) (+/) Mais Menos (+/) Mais Mais nálise e teste análise permite-nos passar de uma implementação para uma especificação, sendo necessária em tarefas como, por exemplo, a manutenção ou a modificação de funcionalidade Também para o teste, e nomeadamente para a geração de vectores de teste, a análise desempenha um papel fundamental O modelo de faltas ss@ Um modelo de faltas proporciona-nos uma representação alternativa para os factores que podem impedir o bom funcionamento de um circuito No modelo ss@ (single stuck-at) considera-se que: Só um nó de cada vez pode ter uma falta presente (por isso se diz single) falta presente no nó pode ser de um de dois tipos: Ou permanentemente a V ou permanentemente à massa ircuitos combinatórios - ircuitos combinatórios -
Vantagens do modelo ss@ O conceito de controlabilidade s vantagens deste modelo de faltas são as seguintes: É suficientemente simples para permitir na prática a geração de vectores de teste (a complexidade da análise cresce linearmente com a dimensão do circuito) É suficientemente abrangente para cobrir uma larga variedade de defeitos físicos, dando-nos confiança que a percentagem de componentes com defeito que passam este teste é suficientemente reduzida Trata-se de uma medida da facilidade com que conseguimos impor num nó um determinado valor lógico ontr. de Y= ontr. de = - - - - Y ircuitos combinatórios - ircuitos combinatórios - O conceito de observabilidade O algoritmo D para a geração de vectores de teste Trata-se de uma medida da facilidade com que podemos observar o valor lógico presente num nó Y O algoritmo D recorre a uma notação que considera valores compostos para representar o efeito da presença de faltas nos nós Valor lógico composto Representação Situação no nó / Nó a, sem falta presente Observ. de Y Observ. de - - / /D Nó s@, tenta-se aplicar / D Nó s@, tenta-se aplicar / Nó a, sem falta presente ircuitos combinatórios - ircuitos combinatórios -
Procedimento principal do algoritmo D Por cada nó e por cada falta (s@ e s@): orçar no nó o valor oposto ao da falta (activar afalta) Propagar para jusante o sinal de erro (D ou /D), até uma saída primária Justificar para montante os valores lógicos que permitiram a propagação, até se chegar às entradas primárias Exemplo: Detecção de uma falta s@ Y s@ / Y s@ (a) Nó Y s@. (b) ctivação da falta (passo ). Y s@ / / Y s@ / / / (c) Propagação da falta (passo ). (d) Justificação da falta (passo ). ircuitos combinatórios - ircuitos combinatórios - Exemplo: Uma falta não detectável acktracking na geração do vector Y s@ Y s@ / Y s@ Y s@ / (a) Nó Y s@. (b) O valor oposto a s@ é aplicado no nó Y. (a)nóys@. (b)primeiratentativa(nãoépossível). Y s@ / Y s@ / Y s@ / / Y s@ / / (c) Propagação (tentativa). (d) Justificação (não é possível). (c) Escolha alternativa. (d) Propagação e justificação. ircuitos combinatórios - ircuitos combinatórios -
Redundância e testabilidade presença de termos redundantes implica normalmente problemas de testabilidade Redundância para corrigir a resposta temporal presença de redundância, no entanto, pode impedir a ocorrência de impulsos extemporâneos nas saídas / / / s@ / ircuitos combinatórios - ircuitos combinatórios - onclusão Objectivo principal do capítulo: Introduzir o projecto de sistemas digitais (restrito, neste caso, aos circuitos combinatórios) Pistas para a continuação do estudo: Outros algoritmos de simplificação de funções lógicas Implementação multi-nível profundar as questões associadas ao funcionamento em regime dinâmico ircuitos combinatórios -