simulação de eventos discretos aplicação à simulação de circuitos lógicos aed - 2003

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

Upload: internet

Post on 18-Apr-2015

110 views

Category:

Documents


1 download

TRANSCRIPT

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

Simulação de Eventos Discretos

Aplicação à simulação de Circuitos Lógicos

AED - 2003

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

2

Esquema de um Simulador de Eventos Discretos

InicializaInicializa

TEMPOt

TEMPOt

Acrescenta eventos(ek , t’)

e re-ordena lista

Acrescenta eventos(ek , t’)

e re-ordena lista

Actualiza Tempot’ = t1

Actualiza Tempot’ = t1

Actualiza Estadox’ = f (x, e1 )

Actualiza Estadox’ = f (x, e1 )

ESTADOx

ESTADOx

e1e1

LISTA de EVENTOSe1 t1

e2 t2

t’

t’

x’

x’

Gerador de Eventos

Temporais

Gerador de Eventos

Temporais

Elimina eventos(ek , tk)

Elimina eventos(ek , tk)

...

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

3

Passos de Simulação

1. Retirar o primeiro elemento, (e1, t1), 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, e1);

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.

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

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.

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

5

Exemplo de Circuito Lógico

2

4

3

1G1

G2

G3

G4

pztxin1

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

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

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.

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

7

Simulação

Tempo Valor Nó

0 0 Xin1

0 0 y3

0 1 U

0 1 V

14 0 U

20 X U

30 1 Xin1

30 1 Y3

30 1 U

40 0 Xin1

42 1 xin1

2

4

3

1G1

G2

G3

G4

pztxin1

y3

u

vq

z_1

zout

Sinais de entrada:

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

8

Inicialização:LISTA de EVENTOS

xin1, 0 0

y3,0 0

u,1 0

v, 1 0

TEMPO ESTADO

0 X X X X X X X X

2

4

3

1G1

G2

G3

G4

pztxin1

y3

u

vq

z_1

zout

ESTADO

xin1 y3 u v pzt q z_1 zout

Gerador de Eventos

Temporais

Gerador de Eventos

Temporais

Tempo Valor Nó

0 0 Xin1

0 0 y3

0 1 U

0 1 V

14 0 U

20 X U

30 1 Xin1

30 1 Y3

30 1 U

40 0 Xin1

42 1 xin1

Acrescenta eventos(ek , t’)

e re-ordena lista

Acrescenta eventos(ek , t’)

e re-ordena lista

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

9

2

4

3

1G1

G2

G3

G4

pztxin1

y3

u

vq

z_1

zout

ESTADO

xin1 y3 u v pzt q z_1 zout

t=0:LISTA de EVENTOS

y3,0 0

u,1 0

v, 1 0

pzt, 0 4

TEMPO ESTADO

0 0 X X X X X X X

•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 Tempot’ = 0

Actualiza Tempot’ = 0 Actualiza Estado

x’ = f (x, e1 )

Actualiza Estadox’ = f (x, e1 )

Acrescenta eventos(ek , t’)

e re-ordena lista

Acrescenta eventos(ek , t’)

e re-ordena lista

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

10

ESTADO

xin1 y3 u v pzt q z_1 zout

t=0:

LISTA de EVENTOS

u,1 0

v, 1 0

pzt, 0 4

TEMPO ESTADO

0 0 0 X X X X X X

t=0:

LISTA de EVENTOS

v, 1 0

pzt, 0 4

TEMPO ESTADO

0 0 0 1 X X X X X

t=0:

LISTA de EVENTOS

q, 0 2

pzt, 0 4

TEMPO ESTADO

0 0 0 1 1 X X X X

y3,0 0

u,1 0

v,1 0

2

4

3

1G1

G2

G3

G4

pztxin1

y3

u

vq

z_1

zout

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

11

ESTADO

xin1 y3 u v pzt q z_1 zout

t=2:

LISTA de EVENTOS

pzt, 0 4

TEMPO ESTADO

2 0 0 1 1 X 0 X X

t=4:

LISTA de EVENTOS

z_1, 1 5

zout, 0 7

TEMPO ESTADO

4 0 0 1 1 0 0 X X

t=5:

LISTA de EVENTOS

zout, 0 7

TEMPO ESTADO

5 0 0 1 1 0 0 1 X

q,0 2

pzt, 0 4

z_1, 1 5

2

4

3

1G1

G2

G3

G4

pztxin1

y3

u

vq

z_1

zout

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

12

2

4

3

1G1

G2

G3

G4

pztxin1

y3

u

vq

z_1

zout

ESTADO

xin1 y3 u v pzt q z_1 zout

t=7:

LISTA de EVENTOS

u, 0 14

TEMPO ESTADO

7 0 0 1 1 0 0 1 0

t=14:

LISTA de EVENTOS

q, 1 16

TEMPO ESTADO

14 0 0 0 1 0 0 1 0

t=16:

LISTA de EVENTOS

Z_out, 1 19

TEMPO ESTADO

16 0 0 0 1 0 1 1 0

zout, 0 7 u, 0 14

q, 1 16Acrescenta eventos(ek , t’)

e re-ordena lista

Acrescenta eventos(ek , t’)

e re-ordena lista

Gerador de Eventos

Temporais

Gerador de Eventos

Temporais

t=19:

LISTA de EVENTOS

u, X 20

TEMPO ESTADO

19 0 0 0 1 0 1 1 1

Z_out, 1

19

Acrescenta eventos(ek , t’)

e re-ordena lista

Acrescenta eventos(ek , t’)

e re-ordena lista

Gerador de Eventos

Temporais

Gerador de Eventos

Temporais

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

13

2

4

3

1G1

G2

G3

G4

pztxin1

y3

u

vq

z_1

zout

ESTADO

xin1 y3 u v pzt q z_1 zout

t=25:

LISTA de EVENTOS

xin1, 1 30

y3, 1 30

u, 1 30

TEMPO ESTADO

25 0 0 X 1 0 X 1 X

t=30:

LISTA de EVENTOS

u, 1 30

pzt, 1 34

TEMPO ESTADO

30 1 1 X 1 0 X 1 X

zout, X 25 y3, 1 30

t=20:

LISTA de EVENTOS

q, X 22

TEMPO ESTADO

20 0 0 X 1 0 1 1 1

u, X 20

t=22:

LISTA de EVENTOS

zout, X 25

TEMPO ESTADO

22 0 0 X 1 0 X 1 1

q, X 22t=30:

LISTA de EVENTOS

y3, 1 30

u, 1 30

TEMPO ESTADO

30 1 0 X 1 0 X 1 X

xin1, 1 30 t=30:

LISTA de EVENTOS

q, 0 32

pzt, 1 34

TEMPO ESTADO

30 1 1 1 1 0 X 1 X

u, 1 30

Gerador de Eventos

Temporais

Gerador de Eventos

Temporais

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

14

2

4

3

1G1

G2

G3

G4

pztxin1

y3

u

vq

z_1

zout

ESTADO

xin1 y3 u v pzt q z_1 zout

t=37:

LISTA de EVENTOS

xin1, 0 40

TEMPO ESTADO

37 1 1 1 1 1 0 0 1

zout, 1 37

t=32:

LISTA de EVENTOS

pzt, 1 34

zout, 0 35

TEMPO ESTADO

32 1 1 1 1 0 0 1 X

q, 0 32

t=34:

LISTA de EVENTOS

z_1, 0 35

zout, 1 37

TEMPO ESTADO

34 1 1 1 1 1 0 1 X

pzt, 1 34

Elimina eventos(ek , tk)

Elimina eventos(ek , tk)

t=35:

LISTA de EVENTOS

zout, 1 37

TEMPO ESTADO

35 1 1 1 1 1 0 0 1

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

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

15

2

4

3

1G1

G2

G3

G4

pztxin1

y3

u

vq

z_1

zout

ESTADO

xin1 y3 u v pzt q z_1 zout

t=42:

LISTA de EVENTOS

TEMPO ESTADO

42 1 1 1 1 1 0 0 1

xin1, 1 42

t=40:

LISTA de EVENTOS

xin1, 1 42

pzt, 0 44

TEMPO ESTADO

40 0 1 1 1 1 0 0 1

xin1, 0 40

Elimina eventos(ek , tk)

Elimina eventos(ek , tk)

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

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

16