A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Simulação de Eventos Discretos Aplicação à simulação de Circuitos Lógicos AED - 2003.

Apresentações semelhantes


Apresentação em tema: "Simulação de Eventos Discretos Aplicação à simulação de Circuitos Lógicos AED - 2003."— Transcrição da apresentação:

1 Simulação de Eventos Discretos Aplicação à simulação de Circuitos Lógicos AED

2 2 Esquema de um Simulador de Eventos Discretos Inicializa TEMPO t TEMPO t Acrescenta eventos (e k, t) e re-ordena lista Acrescenta eventos (e k, t) e re-ordena lista Actualiza Tempo t = t 1 Actualiza Tempo t = t 1 Actualiza Estado x = f (x, e 1 ) Actualiza Estado x = f (x, e 1 ) ESTADO x ESTADO x e1e1 e1e1 LISTA de EVENTOS e1e1 t1t1 e2e2 t2t2 t t x x Gerador de Eventos Temporais Gerador de Eventos Temporais Elimina eventos (e k, t k ) Elimina eventos (e k, t k )...

3 3 Passos de Simulação 1.Retirar o primeiro elemento, ( e 1, t 1 ), da LISTA DE EVENTOS; 2.Actualizar o tempo de simulação (TEMPO), avançando-o para o instante do novo evento, t1 ; 3.Actualizar o ESTADO de acordo com as regras de transição, representadas pela função de transição de estado, x=f(x, e 1 ); 4.Eliminar da LISTA DE EVENTOS todas as entradas correspondentes a eventos incompatíveis com o novo estado x; 5.Adicionar à LISTA DE EVENTOS todos os eventos que ainda não estejam agendados, despoletados pelo evento processado; 6.Reordenar a LISTA DE EVENTOS por ordem crescente de tempo.

4 4 Componentes de um Simulador ESTADO: memória onde todas as variáveis de estado são guardadas; TEMPO: variável que armazena o tempo de simulação; LISTA DE EVENTOS: lista onde todos os eventos agendados são guardados, com indicação dos instantes de tempo em que ocorrem; Função de Inicialização: função que inicializa todas as estruturas de dados no início de uma simulação; Função de Actualização de Estado: função que actualiza o estado baseado no próximo evento a ocorrer; Funções de Geração de Eventos Temporais: conjunto de funções que geram eventos relacionados explicitamente com o tempo, por exemplo, eventos periódicos; Função Principal: responsável pela coordenação de todas as componentes do simulador. Começa por invocar a função de inicialização, após o que, repetidamente, invoca as funções de actualização do tempo e do estado e actualiza a lista ordenada de eventos. É também responsável pela terminação da simulação, baseada na observância de critérios especificados pelo utilizador, bem como pela apresentação dos resultados da simulação.

5 5 Exemplo de Circuito Lógico G1 G2 G3 G4 pzt xin1 y3 u v q z_1 zout Portas lógicas: G1 (and), G2 (nand), G3 (not), G4 (or) Atrasos das portas: G1 = 4; G2 = 2; G3 = 1; G4 = 3; Entradas do circuito: xin1, y3, u, v Saídas do circuito: z_1, zout Nós do circuito: xin1, y3, u, v, pzt, q, z_1, zout

6 6 Modelo de Atraso Modelo de Atraso Fixo: cada porta tem um atraso fixo de entrada para a saída, definido na descrição da porta. O modelo de atraso assume inércia nos sinais e transições. Isto significa que a saída de uma porta lógica só muda como consequência de uma alteração nas entradas se as entradas mantiverem constantes a condição para o novo valor da saída até ao instante efectivo da alteração da saída.

7 7 Simulação TempoValorNó 00Xin1 00y3 01U 01V 140U 20XU 301Xin1 301Y3 301U 400Xin1 421xin G1 G2 G3 G4 pzt xin1 y3 u v q z_1 zout Sinais de entrada:

8 8 Inicialização: LISTA de EVENTOS xin1, 0 0 y3,0 0 u,1 0 v, 1 0 TEMPOESTADO 0XXXXXXXX G1 G2 G3 G4 pzt xin1 y3 u v q z_1 zout ESTADO xin1y3uvpztqz_1zout Gerador de Eventos Temporais Gerador de Eventos Temporais TempoValorNó 00Xin1 00y3 01U 01V 140U 20XU 301Xin1 301Y3 301U 400Xin1 421xin1 Acrescenta eventos (e k, t) e re-ordena lista Acrescenta eventos (e k, t) e re-ordena lista

9 G1 G2 G3 G4 pzt xin1 y3 u v q z_1 zout ESTADO xin1y3uvpztqz_1zout t=0: LISTA de EVENTOS y3,0 0 u,1 0 v, 1 0 pzt, 0 4 TEMPOESTADO 00XXXXXXX Retira o evento ( xi1,0, 0) da lista de eventos Actualiza o TEMPO Actualiza o ESTADO xin1 afecta a porta G1 gerando o evento ( pzt,0, 4) xi1,0 0 Actualiza Tempo t = 0 Actualiza Tempo t = 0 Actualiza Estado x = f (x, e 1 ) Actualiza Estado x = f (x, e 1 ) Acrescenta eventos (e k, t) e re-ordena lista Acrescenta eventos (e k, t) e re-ordena lista

10 10 ESTADO xin1y3uvpztqz_1zout t=0: LISTA de EVENTOS u,1 0 v, 1 0 pzt, 0 4 TEMPOESTADO 000XXXXXX t=0: LISTA de EVENTOS v, 1 0 pzt, 0 4 TEMPOESTADO 0001XXXXX t=0: LISTA de EVENTOS q, 0 2 pzt, 0 4 TEMPOESTADO 00011XXXX y3,0 0 u,1 0 v, G1 G2 G3 G4 pzt xin1 y3 u v q z_1 zout

11 11 ESTADO xin1y3uvpztqz_1zout t=2: LISTA de EVENTOS pzt, 0 4 TEMPOESTADO 20011X0XX t=4: LISTA de EVENTOS z_1, 1 5 zout, 0 7 TEMPOESTADO XX t=5: LISTA de EVENTOS zout, 0 7 TEMPOESTADO X q,0 2 pzt, 0 4 z_1, G1 G2 G3 G4 pzt xin1 y3 u v q z_1 zout

12 G1 G2 G3 G4 pzt xin1 y3 u v q z_1 zout ESTADO xin1y3uvpztqz_1zout t=7: LISTA de EVENTOS u, 0 14 TEMPOESTADO t=14: LISTA de EVENTOS q, 1 16 TEMPOESTADO t=16: LISTA de EVENTOS Z_out, 1 19 TEMPOESTADO zout, 0 7 u, 0 14 q, 1 16 Acrescenta eventos (e k, t) e re-ordena lista Acrescenta eventos (e k, t) e re-ordena lista Gerador de Eventos Temporais Gerador de Eventos Temporais t=19: LISTA de EVENTOS u, X 20 TEMPOESTADO Z_out, 1 19 Acrescenta eventos (e k, t) e re-ordena lista Acrescenta eventos (e k, t) e re-ordena lista Gerador de Eventos Temporais Gerador de Eventos Temporais

13 G1 G2 G3 G4 pzt xin1 y3 u v q z_1 zout ESTADO xin1y3uvpztqz_1zout t=25: LISTA de EVENTOS xin1, 1 30 y3, 1 30 u, 1 30 TEMPOESTADO 2500X10X1X t=30: LISTA de EVENTOS u, 1 30 pzt, 1 34 TEMPOESTADO 3011X10X1X zout, X 25 y3, 1 30 t=20: LISTA de EVENTOS q, X 22 TEMPOESTADO 2000X10111 u, X 20 t=22: LISTA de EVENTOS zout, X 25 TEMPOESTADO 2200X10X11 q, X 22 t=30: LISTA de EVENTOS y3, 1 30 u, 1 30 TEMPOESTADO 3010X10X1X xin1, 1 30 t=30: LISTA de EVENTOS q, 0 32 pzt, 1 34 TEMPOESTADO X1X u, 1 30 Gerador de Eventos Temporais Gerador de Eventos Temporais

14 G1 G2 G3 G4 pzt xin1 y3 u v q z_1 zout ESTADO xin1y3uvpztqz_1zout t=37: LISTA de EVENTOS xin1, 0 40 TEMPOESTADO zout, 1 37 t=32: LISTA de EVENTOS pzt, 1 34 zout, 0 35 TEMPOESTADO X q, 0 32 t=34: LISTA de EVENTOS z_1, 0 35 zout, 1 37 TEMPOESTADO X pzt, 1 34 Elimina eventos (e k, t k ) Elimina eventos (e k, t k ) t=35: LISTA de EVENTOS zout, 1 37 TEMPOESTADO z_1, 0 35 Inércia na transição: os sinais na entrada de G4 não se mantiveram constantes antes da transição em t=35, pelo que esta deixa de ter efeito, retirando-se o evento ( zout, 1 ) da lista de eventos Gerador de Eventos Temporais Gerador de Eventos Temporais

15 G1 G2 G3 G4 pzt xin1 y3 u v q z_1 zout ESTADO xin1y3uvpztqz_1zout t=42: LISTA de EVENTOS TEMPOESTADO xin1, 1 42 t=40: LISTA de EVENTOS xin1, 1 42 pzt, 0 44 TEMPOESTADO xin1, 0 40 Elimina eventos (e k, t k ) Elimina eventos (e k, t k ) Gerador de Eventos Temporais Gerador de Eventos Temporais Inércia na transição: o sinal xin1 não se manteve constante na entrada de G1 antes da transição pzt=0 em t=44, pelo que esta deixa de ter efeito, retirando-se o evento ( pzt, 0 ) da lista de eventos

16 16


Carregar ppt "Simulação de Eventos Discretos Aplicação à simulação de Circuitos Lógicos AED - 2003."

Apresentações semelhantes


Anúncios Google