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

CMP238 Projeto e Teste de Sistemas VLSI - inf.ufrgs.brfglima/projeto/projeto9.pdf · CMP238 – Projeto e Teste de Sistemas VLSI 2006/1 Área da Simulação • Sistemas são classificados

Embed Size (px)

Citation preview

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

CMP238Projeto e Teste de Sistemas VLSI

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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

Conteúdo

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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

Área da Simulação

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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.

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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.

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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.

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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.

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

Atraso Zero

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

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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

Atraso Zero

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

Atraso unitário

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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

Atraso Unitário

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

l

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

Atraso Unitário

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

Atrasos dependentes do sentido detransição

• pode haver necessidade de cancelamento de eventos

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

Atraso Ambiguo

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

Atraso Ambiguo

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

Atraso Ambiguo

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

Atraso Ambiguo

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

Atraso Ambiguo

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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

Analise essa 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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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”

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

Avaliação de Barramentos

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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ó

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

Hazards

- Estático

-Dinâmico

- Lógico- Funcional

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

Livre de hazard funcional

glitch

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

DefiniçõesHazards 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 dastransições nas entradas e dos atrasosparticulares do circuito

• hazard não pode ser eliminado• pulso de hazard pode ser impedido pela

inserção de atrasos adequadosestático

A=1 B=1 C=1 D=1

A=1 B=0 C=0 D=1

glitch

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

Definições

Hazards dinâmicos– criados pela combinação de hazard estático e

transição limpa- Se os hazard estáticos são eliminados, então não há

hazards dinamicos.

dinâmico

glitch

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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:

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

Static Timing Analysis• Static Timing Analysis is a method of computing the expected timing of a

digital circuit without requiring simulation.Definitions• The critical path is defined as the path between an input and an output

with the maximum delay. Once the circuit timing has been computed by one of techniques below, the critical path can easily found by using a tracebackmethod.

• Another useful concept is required time. This is the latest time at which a signal can arrive without making the clock cycle longer than desired. The computation of the required time proceeds as follows. At each primary output, the required times for rise/fall are set according to the specifications provided to the circuit. Next, a backward topological traversal is carried out, processing each gate when the required times at all of its fanouts are known.

• The slack associated with each connection is the difference between the required time and the arrival time. A positive slack s at a node implies that the arrival time at that node may be increased by s without affecting the overall delay of the circuit. Conversely, negative slack implies that a path is too slow, and must be sped up if the whole circuit is to work at the desired speed.

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

PERT

• Program Evaluation and Review Technique commonly abbreviated PERT is a model for project managementinvented by United States Department of Defense's US Navy Special Projects Office in 1958 as part of the Polarismobile submarine launched ballistic missile project.

• This project was a direct response to the Sputnik crisis.

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

Depth-first search (DFS)

• Depth-first search (DFS) is an algorithm for traversing or searching a tree, tree structure, or graph.

• Time complexity of both algorithms are proportional to the number of vertices plus the number of edges in the graphs they traverse.

CMP238 – Projeto e Teste de Sistemas VLSI 2006/1

Simuladores

Simuladores Logicos• Mentor: ModelSIM (VHDL or Verilog)• Synopsys• Cadence• ISE• Quartus

Simuladores Eletricos• SPICE (modelos spice), modelos preditivos de Berkeley.

CMP238 – Projeto e Teste de Sistemas VLSI 2006/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)