68
CMP238 – Projeto e Teste de Sistemas VLSI 2007/1 CMP238 Projeto e Teste de Sistemas VLSI Prof. Fernanda Gusmão de Lima Kastensmidt [email protected]

CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

  • Upload
    others

  • View
    27

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

CMP238Projeto e Teste de Sistemas VLSI

Prof. Fernanda Gusmão de Lima [email protected]

Page 2: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Conteúdo

Validação de sistemas digitais (simulação lógica e elétrica)

Page 3: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Área da Simulação

• Sistemas são classificados em:– Discretos: comportamento explicado por uma sequencia de

alterações (eventos) nos valores das variáveis de estado do sistema que ocorrem em pontos discretos no tempo. Discrete Event

Simulation (DES)

– Continuos: comportamento explicado por equações quedescrevem os valores das variaveis de estado de forma continua ao longo do tempo.

Essa classificação se refere a modelagem:

RTL Elétrico

Discreto Continuo

Page 4: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Área da Simulação

Page 5: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Área da Simulação: Discrete Event Simulation (DES)

Page 6: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Event Paradigm

• Lets take an example of two important events : Customer arrival & Customer departure.

• It is necessary to quantify precisely the results throughout the system of the events.

• In this instance we can achieve this by using the IF - THEN - ELSE formalism.

Customer Arrival :IF (Clerk = idle) THEN Clerk = busy ELSE Queue = Queue + 1 Customer Departure : IF (Queue > 0) THEN Queue = Queue - 1 ELSE Clerk = idle

Page 7: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Área da Simulação: Discrete Event Simulation (DES)

Page 8: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Activity Paradigm• A 'cycle of activity' consists of an alternating sequence of the

form : ACTIVITY - QUEUE - ACTIVITY - QUEUE …… • For the customer the cycle is a little more involved because we

must arrange for her to appear in the bank and depart from the bank after receiving service.

• We achieve this by invoking a very general queue known as the 'World Queue' and a special arrival activity.

• Notice that the customer may pass straight through the 'Wait Service' queue if the Clerk is available to serve him.

• The arrival activity is rather special as indicated by the sub loop on the symbol.

Page 9: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Área da Simulação: Discrete Event Simulation (DES)

Page 10: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Process Paradigm• All the individual entity cycles are now combined to form a single activity

cycle diagram for the model. • This is achieved by looking for corresponding activities in the different

cycles. • In this example the activities 'Receive Service' and 'Serve Customer' are

clearly the only common activity. • We can now draw the complete Activity Cycle Diagram (ACD).

• An activity can only take place if the required quantity of entities is available in each preceding queue.

• In this example the activity 'Service can only take place if a Clerk is available in the 'Idle Clerk' queue and a Customer in the 'Wait Service' queue.

Page 11: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Simulação Discreta

• Simulação Lógica: simuladores especificos paracircuitos digitais, modelos de atraso.

• Simulação de Sistemas: mais geral entreprocessadores, memoria, barramento, etc.

• Simulação RT: influenciada pelo surgimento dalinguagem RT.

• Simulação de Chaves: circuitos MOS, transistoresporem discretiza os valores de tensão, resistencia e capacitancia.

• Simulação Multi-nível: surgimento devido ao VLSI, diferentes niveis de abstração.

Page 12: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Simulação de Sistemas

• Sistema digital visto como uma interconexão entreprocessadores, memorias, canais de E/S, etc.

• O objetivo de um projeto neste nivel de abstração é determinar :– O numero de componentes de cada um dos tipos…– A forma de interconexão entre eles– Os algoritmos para arbitramento de conflitos de acesso a

recursos compartilhados– Parametros (velocidade, capacidade) de cada componente.

Page 13: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Simulação Lógica

Objetivos: Verificação lógicaVerificação temporal

I. IntroduçãoII. Modelos de atrasoIII. Modelos de valoresIV. Deteção de hazards

Page 14: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Introdução

Objetivos da simulação lógica– verificar se circuito realiza a função desejada– verificar se o circuito não tem comportamento

temporal crítico» hazards, races

– verificar se o circuito atende restrições de projeto» freqüência mínima de operação» tempos de setup e hold em registradores

• Tipos de circuitos– combinacionais– seqüenciais síncronos– seqüenciais assíncronos

Page 15: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Introdução

Circuitos combinacionais e seqüenciais síncronos– verificação funcional pode ser feita com atraso zeroCircuitos seqüenciais assíncronos– função depende do atrasoSub-modelos– modelo de atrasos– modelo de valores– modelo de componentes

Implementação de simuladores lógicos com atrasosé bem mais complexa

Page 16: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Modelos de Atraso

1. Atraso zero2. Atraso unitário3. Atraso variável

1. Atraso nominal2. Atraso inercial3. Atraso dependente do sentido de transição4. Região de ambigüidade

Page 17: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Atraso Zero

Aplicações– verificação puramente funcional– circuitos combinacionais– circuitos seqüenciais síncronos

Impossibilidade de verificação de condições detiming

Page 18: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Atraso Zero

Page 19: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Atraso unitário

• considerar todas as portas com o mesmo atraso• já é possível verificar certas condições de timing

Page 20: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Atraso Unitário

• outras situações de hazard não podem ser detectadas

l

Page 21: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Atraso Unitário

Page 22: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Atraso Variável

Cada porta tem um atraso distinto• diferentes modelos de atraso variável

– atraso nominal– atraso inercial– atrasos dependentes do sentido da transição do sinal– atrasos ambíguos– tempos de subida e descida

Atraso nominal– modelo equivalente de uma porta

Page 23: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Atraso Inercial

Sinal de entrada da porta deve se manter estável pordeterminado intervalo para que produza efeito nasaída– simula efeito da carga da capacitância de saída

Page 24: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Atraso inercialModelo básico– cancelar evento de saída quando a entrada não se mantémestável pelo intervalo necessário• problema: trem de pulsos de alta freqüência naentrada– a cada novo pulso, saída pode se carregar a partir de umponto mais acima da curva de descarga– solução: simular curvas de carga e descarga» aproximação linear– solução exata obtida apenas no nível elétrico, com curva RC

Page 25: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Atrasos dependentes do sentido detransição

• transições de 0 para 1 e de 1 para 0 têm atrasosdistintos devido às diferentes curvas RC

• manuais de componentes apresentam valores de tplh e tphl

Page 26: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Atrasos dependentes do sentido detransição

• pode haver necessidade de cancelamento de eventos

Page 27: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Atraso Ambiguo

Em muitas situações o atraso exato de uma porta nãoé conhecido, apenas limites máximo e mínimo– projeto top-down de circuitos integrados– projeto com componentes discretos• Modelo de atraso de ambigüidade– atraso variável entre limites máximo e mínimo– sinal tem valor indefinido no intervalo entre os

limites

Page 28: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Atraso Ambiguo

Page 29: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Atraso Ambiguo

Page 30: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Atraso Ambiguo

Page 31: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Atraso Ambiguo

Modelo faz a análise de pior caso• conceito de dominância– “X” domina “0” e “1”– transição de valor mais fraco para valor mais forte

» utilizar atraso mínimo– transição de valor mais forte para valor mais fraco

» utilizar atraso máximo– regra garante que sinal permanecerá em “X” pelo

intervalo maior possível• pode ocorrer pessimismo injustificado

Page 32: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Atraso Ambiguo

Page 33: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Atraso Ambiguo

Hazard só aconteceria se o sinal A ocorresse em tempos diferentes noscaminhos B e C Atraso das conexões

Page 34: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Analise esse caso

Para questões de variabilidade onde todas as portas com exceçãodo inversor marcado, possui atraso de 2 a 3, e o inversor marcadopossui atraso de 2 a 4. Para:a) Sinal A com 1 unidade de tempo de ambiguidadeb) Sinal A com 2 unidades de tempo de ambiguidade

Page 35: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Modelo de Valores

1. Suporte a modelos de atraso2. Avaliação de barramentos3. Inicialização de modelos4. Simulação de chaves5. Simulação de falhas6. Deteção de hazards

Page 36: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Suporte a modelos de atrasos

Modelo de ambigüidade– lógica de 3 valores– interpretação do valor X

“transição em momento desconhecido”• modelo de tempos de subida e descida– lógica de 3 valores– interpretação do valor X

“valor em transição”

Page 37: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Avaliação de Barramentos

Page 38: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Avaliação de barramentos

Função de consensosó Z’s Z1’s e Z’s 10’s e Z’s 01’s, 0’s e Z’s ?• problema com conflito: necessidade de valor X• solução final: lógica com 4 valores – 0, 1, Z, X1’s, 0’s e Z’s XX’s e outros X

Page 39: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Inicialização de modelos

Inicialização trivial: todos os sinais em 0 (ou 1, ou X)• alternativa– atribuir valores a sinais escolhidos– demais sinais em X (“indeterminado”)– simular com atraso zero para propagar valores

inicializados explicitamente– possibilidade de inicialização inconsistente

Page 40: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Inicialização de modelosSolução: lógica de 4 valores01Xp indeterminado propagávelXn indeterminado não-propagável – só para fase de inicialização

Q = valor anterior

Page 41: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Resolva novamente esse casoAgora com a lógica de 4 valores:

Page 42: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Simulação de chaves

Circuitos MOS• modelagem de compartilhamento de carga entrenodos de um transistor bi-direcional• sinal é modelado por par { valor, força }• força (ou intensidade) de um sinal modela:– capacitância de um nodo que armazena o sinal– condutância de um transistor que propaga o sinal• carga de um sinal “mais forte” vence a de um sinal“mais fraco”• dois nodos de igual força mas com valoresdistintos => resulta valor X

Page 43: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Simulação de chavesExemplo de lógica: 3 valores x 4 forças– valores: 0, 1, X– forças: External, Driven, Weak, High-Impedance• Número de forças depende das configurações decircuitos que se quer modelar– exemplo: combinando NMOS, CMOS estático e CMOSdominó são necessárias 5 forças

5 – externa4 – transistores ativos3 – transistores passivos2 – nodos internos fortes1 – nodos internos fracos

Page 44: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Simulação de chaves

• 4 forças– externa (5)– transistores ativos (4)– transistor passivo (3)– nodos internos (1)• nodos internos commesma força pois nãohá compartilhamentode carga entre eles

Porta: NAND NMOS

Page 45: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Simulação de chaves

3 forças– externa (5)– transistores, todos ativos (4)– nodos internos, todos commesma força (1)

Porta: NAND CMOS ESTÁTICO

Page 46: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Simulação de chaves4 forças– externa (5)– transistores, todos ativos (4)– nodo interno mais forte (N) (2)– nodos internos mais fracos(M,P) (1)funcionamento– pré-carga: Ø = 0 => N = {1,3}– Ø = 1» em princípio N = {1,2} jáque pull-up está cortado» mas se A = B = 1 =>N = {0,3}» se A ou B = 0 => N = {1,2}{valor, força}

Porta NAND CMOS dominó

Page 47: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Simulação de Falhas

Simulação de falhas permanentes é utilizada nageração de vetores de teste

– injetar falha (stuck at 0, stuck at 1)– determinar se (ou qual) combinação de valores de

entrada torna a falha observável na saída• valores = 0, 1, X, D, D’• D = “diferença”– valor deveria ser 1, mas se tornou 0 devido a uma

falha• D’ = “complemento da diferença”– valor deveria ser 0, mas se tornou 1 devido a uma

falha

Page 48: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Problemas a serem resolvidos

• Injeção de falhas de efeito transitório na lógica

Modelar as falhas transientes na saídade uma porta CMOS qualquer

Page 49: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Problemas a serem resolvidos

• Injeção de falhas de efeito transitório na lógica

Modelar a propagação de falhas transientes ao longo de um circuito digital

clk

D Q

Page 50: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Hazards

- Estático

- Dinâmico

- Lógico- Funcional

Page 51: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Definições

• Um hazard estático é definido quando uma únicavariavel muda na entrada causando uma mudançamomentânea na saida.

• Um hazard dinâmico ocorre quando uma mudança naentrada causa multiplas mudanças na saida.

• Os dois tipos de hazard geram glitches, que pode ounão ocasionar problemas.

glitch

glitch

Page 52: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Hazards podem provocar erros

• Se hazards estáticos forem removidos no projeto, oshazards dinâmicos não irão ocorrer.

Lógica

captura

clock

Page 53: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

DefiniçõesHazards estático: LÓGICO– transição do estado atual para estado não-adjacente– valor da função é o mesmo em ambos os estados– em todos os possíveis estados intermediários a função tem omesmo valor– os estados inicial e final não são cobertos pelo mesmo termo– pode ocorrer pulso espúrio na saída, dependendo dos atrasos no

circuito– hazard e pulso de hazard podem ser eliminados

Hazard estático 1 ocorre em Somas de Produtos (PDS)Hazard estático 0 ocorre em Produto de Somas (SDP)

Page 54: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Exemplo

B

C

B

A

00 01 11 10 00 01 11 10

F

F

1

0

1

1

1

0

1

B

C

B

A

F

0

1

1

1

0

0->1

1->0->1

1 variavel

tda

tdb

tda < tdb

Page 55: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Exemplo

B

C

B

A

A

C

00 01 11 10 00 01 11 10

F

F

1

0

1

1

1

1

B

C

B

A

A

C

F

0

1

1

1

1

1

1

01

1

0

1

1

1

1 variavelSolução: adicionar mintermo redundante

porHuffman

Page 56: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Definições

Hazards estático: FUNCIONAL• transição do estado atual para estado não-

adjacente• valor da função é o mesmo em ambos os estados• em pelo menos um dos possíveis estados

intermediários a função tem um valor diferente• pode ocorrer pulso espúrio na saída, dependendo

da ordem de chegada das transições nas entradase dos atrasos particulares do circuito

• hazard não pode ser eliminado, pois depende dafunção booleana definida

• pulso de hazard pode ser impedido pela inserçãode atrasos adequados. Problema: Variabilidade!!!

Page 57: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Exemplo

B

C

B

A

00 01 11 10 00 01 11 10

F

F

1

0

1

0

1

0

1

B

C

B

A

F

0

1

1

1

0

0->1

1->0->1

1 variavel

tda

tdb

tda < tdb

Page 58: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Exemplo

B

C

B

A

A

C

00 01 11 10 00 01 11 10

F

F

1

0

1

0

0

1

B

C

B

A

A

C

F

0

1

1

1

1

1

1

01

0

1->0

0->1

0->1

1->0->1

1 variavel

Page 59: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Definições

Hazards dinâmicos- criados pela combinação de hazard estático e transição limpa.- Ocorrem por causa de multiplos caminhos e atrasos variados.- Eles não ocorrem em lógica de dois níveis (SDP ou PDS) quando

estes são bem projetados. glitch

lenta

Page 60: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Deteção de hazards

Para deteção de hazards é necessário o modelo deatraso de ambigüidade e no mínimo lógica de 3 valores• 3 valores– deteção de hazards estáticos• 5 valores– identificação de hazards estáticos– deteção de hazards dinâmicos• 8 valores– identificação de hazards estáticos e dinâmicos

Page 61: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Detecção de Hazards

1. Definições2. Deteção de pulsos de hazard3. Método de Eichelberger4. Lógica de 3 valores5. Lógica de 5 valores6. Lógica de 8 valores

Page 62: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Deteção de pulsos de hazard• Uso de lógica de 2 valores e atraso nominal– simulador precisa considerar atrasos particulares dasportas– não é possível detectar hazards, apenas pulsos de hazard• Alternativas– detectar hazards de acordo com a função

» método de Eichelberger» não considera atrasos particulares

– detectar pulsos de hazard considerando intervalospossíveis de atrasos das portas

» modelo de atraso de ambigüidade

Page 63: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Método de EichelbergerDeteção de hazards segundo a definição da função• Método para circuitos combinacionais– uso de lógica de 3 valores: X significa “sinal em transição”– 1º passo: simular situação inicial A– 2º passo: atribuir X aos sinais de entrada que vão se alterar;simular situação em transição A/B– 3º passo: simular situação final B– se f(A) = f(B) = v, mas f(A/B) ≠ v, então existe hazard• Não distingüe entre hazards funcionais e lógicos• É pessimista, pois supõe que atrasos podem terquaisquer valores• Existe extensão do método para circuitos seqüenciais

Page 64: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Lógica de 3 valores

• Lógica de 3 valores combinada com modelo deatraso de ambigüidade permite deteção de pulsosde hazard estático• não permite deteção de pulsos de hazard dinâmico– não é possível a distinção entre uma transição limpa

e um hazard dinâmico• pessimismo é intrínseco do modelo de atraso deambigüidade

Page 65: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Lógica de 5 valores

Lógica de 5 valores é introduzida para diferenciaçãoentre “transição limpa” e “hazard”5 valores:– 0, 1– up, dn transição limpa para 1, para 0– X hazard

tabela-verdade da função AND:

Page 66: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Lógica de 5 valores

Dominância e regra de pessimismo– “X” domina “up” e “dn”, que dominam “0” e “1”– transição de valor não-dominante para dominante: usaratraso mínimo– transição de valor dominante para não-dominante: usaratraso máximo• permite deteção de pulsos de hazard estático• permite distinção automática entre pulsos de hazard estático e

transição limpa• permite deteção de pulsos de hazard dinâmico• mas não permite distinção automática entre pulsos de hazard

estático e pulsos de hazard dinâmico

Page 67: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Lógica de 8 valores

Para identificação automática de pulsos de hazarddinâmico, é necessária distinção entre “transiçãolimpa” e “transição com hazard dinâmico”8 valores– 0,1– up, dn transição limpa (sem hazard) para 1, para 0– 0h, 1h hazard estático em 0, em 1– uph, dnh transição com hazard para 1, para 0

regra de dominância também vale

Page 68: CMP238 Projeto e Teste de Sistemas VLSI - INFfglima/projeto/projeto8_2007.pdfCMP238 – Projeto e Teste de Sistemas VLSI 2007/1 Process Paradigm • All the individual entity cycles

CMP238 – Projeto e Teste de Sistemas VLSI 2007/1

Referencias

• F.R.Wagner. Simulation of Digital Systems. Universität Tübingen, 1993/94. (livro-texto)

• F.R.Wagner. Hazard Detection in Logic Simulation. CPGCC-UFRGS, 1984. (Relatório Técnico RT-013)

• E.B.Eichelberger. Hazard Detection in Combinational and Sequential Switching Circuits. IBM Journal of Research & Development. Vol. 9, Nº 2, Março 1965.

• F.R.Wagner. Basic Techniques of Gate Level Simulation – A Tutorial. CPGCC/UFRGS, 1984. (Relatório Técnico RT-012)