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

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

1 Circuitos Lógicos e Organização de Computadores Capítulo 8 –Circuitos Seqüenciais Síncronos Ricardo Pannain

Apresentações semelhantes


Apresentação em tema: "1 Circuitos Lógicos e Organização de Computadores Capítulo 8 –Circuitos Seqüenciais Síncronos Ricardo Pannain"— Transcrição da apresentação:

1 1 Circuitos Lógicos e Organização de Computadores Capítulo 8 –Circuitos Seqüenciais Síncronos Ricardo Pannain

2 2 Forma geral de um circuito seqüêncial Combinational Circuito Flip-flops Clock Q W Z Combinational Circuito Máquina de estados finitos (FSM – Finite State Machine) o comportamento do circuito pode ser representado usando um número finito de estados. Máquina de MOORE saídas dependem apenas do estado do circuito. Máquina de MEALY saídas dependem do estado do circuito e de suas entradas primárias.

3 3 Clockcycle: t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10 w: z: Etapas Básicas de Projeto Exemplo: Supondo um circuito que tenha uma entrada w e uma saída z. Todas as mudanças ocorrerão na subida do clock. A saída z é igual a 1 se durante dois ciclos consecutivos imediatamente prescedente a entrada w for igual a 1. Caso contrário o valor é zero. A tabela abaixo ilustra o funcionamento para um padrão de w qualquer.

4 4 PRIMEIRO PASSO Diagrama de estados Determinar quantos estágios são necessários e quais transições são possíveis de um estado para outro. No exemplo: Supondo o estado inicial A (com saída z = 0) enquanto w = 0 ele permanece neste estado. Se w = 1, na subida do clock ele passará para o estado B (com z = 0). Uma vez no estado B, se w = 0, ele passará para o estado A (z = 0) na subida do clock. Se w = 1, passará para um terceiro estado C (z = 1). No estado C, se w = 0, ele passará para o estado A (z = 0) na subida do clock. Se w = 1, Continuará no estado C (z = 1) Etapas Básicas de Projeto

5 5 Diagrama de estados do exemplo anterior – Máquina de MOORE Cz1= Reset Bz0= Az0= w0= w1= w1= w0= w0= w1=

6 6 Tabela de estados Present Next state Output state w=0w=1 z AAB0 BAC0 CAC1 SEGUNDO PASSO Tabela de Estados

7 7 Circuito seqüencial geral Como temos 3 estados, precisaremos de 2 Flip-Flops e o circuito ficaria: Combinational Circuito Combinational Clock y 2 z w y 1 Y 1 Y 2 Circuito

8 8 Tabela de estados assinalados Present Next state state w=0w=1 Output y 2 y 1 Y 2 Y 1 Y 2 Y 1 z A B C dd d

9 9 Derivando as expressões lógicas dos próximos estados e da saída w y 2 y 1 d d w d 1d y 2 y d y y 2 Ignorando don't caresUsando don't cares Y 1 wy 1 y 2 = Y = zy 2 = wy 1 y 2 + () = Y 1 1 y 2 = Y 2 1 y 2 1 y 2 += zy 1 y 2 =

10 10 Circuito Seqüencial do exemplo anterior

11 11 Diagrama de tempo do exemplo anterior t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t Clock w y 1 y z

12 12 Sinais necessários Control circuit w Clock Done R1 out R2 R1 in R2 R3 out R3 in Exemplo – Troca de conteúdo entre dois registradores Trocar o conteúdo dos registradores R1 e R2, utilizando o registador R3 com auxiliar R3 R2 R2 R1 R1 R3

13 13 Diagrama de estados DR3 out 1=R1 in 1=Done1= w0= w1= CR1 out 1=R2 in 1= BR2 out 1=R3 in 1= w1= ANo w0= w1= transfer w0= w1= Reset w0=

14 14 Tabela de estados

15 15 Tabela de estados assinalados

16 16 Derivação da expressão do próximo estado

17 17 Circuito seqüencial correspondente

18 18 Problemas de assinalamento de estados Present Next state statew=0w=1 Output y 2 y 1 Y 2 Y 1 Y 2 Y 1 z A B C dd d Suponha que, no primeiro exemplo, ao assinalar valores para os estados presentes, tenhamos escolhido conforma a tabela abaixo: Y 1 = D 1 = w Y 2 = D 2 = w y 1 z = y 2

19 19 Circuito com a melhoria no assinalamento D Q Q D Q Q Y 2 Y 1 w Clock z y 1 y 2 Resetn

20 20 Tabela de estados com melhoria de assnalamento – exemplo 2

21 21 Derivação da expressão do próximo estado w y 2 y 1 Y 1 wy 2 y 1 y 2 += w y 2 y 1 Y 2 y 1 =

22 22 Present Nextstate state w=0w=1 Output y 3 y 2 y 1 Y 3 Y 2 Y 1 Y 3 Y 2 Y 1 z A B C Exemplo 3 – One hot encoding Podemos também ter tantas variáveis quantos forem os estados. Supor um circuito one hot enconding, representado pela tabela abaixo:

23 23 Assinalamento de estados - One-hot encoding

24 24 Clock cycle:t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10 w : z : Máquina de Mealy Nos exemplos anteriores, os circuitos seqüenciais onde cada estado tem valores dos sinais de saídas associados a eles,são chamadas Máquinas de MOORE. Os circuitos seqüenciais onde os sinais das saídas estão associados tanto aos estados como às entradas são chamadas de Máquina de MEALY Tomando o primeiro exemplo visto anteriormente, que gerava z = 1 quando a ocorrência de w = 1 era detectada em dois períodos consecutivos de clock. Supondo agora que queiramos que z seja 1 no segundo ciclo que w = 1 seja detectado, como exemplifica a tabela abaixo:

25 25 Diagrama de estado A w0=z0= w1=z1= B w0=z0= Reset w1=z0= No exemplo: Supondo o estado inicial A enquanto w = 0 ele permanece neste estado e produz a saída z = 0. Se w = 1 (z = 0 ), na subida do clock, ele passará para o estado B. Uma vez no estado B, se w = 0 (z = 0), ele passará para o estado A na subida do clock. Se w = 1 produzirá a saída z = 1 e permanecerá neste estado..

26 26 Tabela de estados Present Next stateOutput z state w=0w=1w=0w=1 AAB00 BAB01

27 27 Tabela de estados assinalados Present Next stateOutput state w=0w=1w=0w=1 yYYzz A00100 B10101

28 28 Implementação da FSM t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t Clock y w z (b) Diagrama de tempo Clock Resetn D Q Q w z (a) Circuito y

29 29 Implementação da FSM incluíndo um atraso na saída OBS – Mesmo circuito do slide 19

30 30 Exemplo – troca de conteúdo de registradores R 3 out 1= R 1 in 1= Done 1= w 0= w 1= R 1 out 1= R 2 in 1= w 1= R 2 out 1= R 3 in 1= A w 0= w 1= Reset w 0= B C

31 31 Código VHDL para uma FSM simples USE ieee.std_logic_1164.all ; ENTITY simple IS PORT (Clock, Resetn, w : IN STD_LOGIC ; z: OUT STD_LOGIC ) ; END simple ; ARCHITECTURE Behavior OF simple IS TYPE State_type IS (A, B, C) ; SIGNAL y : State_type ; BEGIN PROCESS ( Resetn, Clock ) BEGIN IF Resetn = '0' THEN y <= A ; ELSIF (Clock'EVENT AND Clock = '1') THEN cont...

32 32 CASE y IS WHEN A => IF w = '0' THEN y <= A ; ELSE y <= B ; END IF ; WHEN B => IF w = '0' THEN y <= A ; ELSE y <= C ; END IF ; WHEN C => IF w = '0' THEN y <= A ; ELSE y <= C ; END IF ; END CASE ; END IF ; END PROCESS ; z <= '1' WHEN y = C ELSE '0' ; END Behavior ; Código VHDL para uma FSM simples - continuação

33 33 (ENTITY declaration not shown) ARCHITECTURE Behavior OF simple IS TYPE State_type IS (A, B, C) ; SIGNAL y_present, y_next : State_type ; BEGIN PROCESS ( w, y_present ) BEGIN CASE y_present IS WHEN A => IF w = '0' THEN y_next <= A ; ELSE y_next <= B ; END IF ; WHEN B => IF w = '0' THEN y_next <= A ; ELSE y_next <= C ; END IF ; Alternativa de estilo para um código de uma FSM

34 34 WHEN C => IF w = '0' THEN y_next <= A ; ELSE y_next <= C ; END IF ; END CASE ; END PROCESS ; PROCESS (Clock, Resetn) BEGIN IF Resetn = '0' THEN y_present <= A ; ELSIF (Clock'EVENT AND Clock = '1') THEN y_present <= y_next ; END IF ; END PROCESS ; z <= '1' WHEN y_present = C ELSE '0' ; END Behavior ; Alternativa de estilo para um código de uma FSM - continuação

35 35 (ENTITY declaration not shown) ARCHITECTURE Behavior OF simple IS TYPE State_TYPE IS (A, B, C) ; ATTRIBUTE ENUM_ENCODING : STRING ; ATTRIBUTE ENUM_ENCODING OF State_type : TYPE IS " " ; SIGNAL y_present, y_next : State_type ; BEGIN cont... Uso de definição de ATTRIBUTE para assinalamento manual de estados

36 36 Uso de constantes para assinalamento manual de estados LIBRARY ieee ; USE ieee.std_logic_1164.all ; ENTITY simple IS PORT ( Clock, Resetn, w : INSTD_LOGIC ; z: OUT STD_LOGIC ) ; END simple ; ARCHITECTURE Behavior OF simple IS SIGNAL y_present, y_next : STD_LOGIC_VECTOR(1 DOWNTO 0); CONSTANT A : STD_LOGIC_VECTOR(1 DOWNTO 0) := "00" ; CONSTANT B : STD_LOGIC_VECTOR(1 DOWNTO 0) := "01" ; CONSTANT C : STD_LOGIC_VECTOR(1 DOWNTO 0) := "11" ; BEGIN PROCESS ( w, y_present ) BEGIN CASE y_present IS WHEN A => IF w = '0' THEN y_next <= A ; ELSE y_next <= B ; END IF ; … cont

37 37 WHEN B => IF w = '0' THEN y_next <= A ; ELSE y_next <= C ; END IF ; WHEN C => IF w = '0' THEN y_next <= A ; ELSE y_next <= C ; END IF ; WHEN OTHERS => y_next <= A ; END CASE ; END PROCESS ; PROCESS ( Clock, Resetn ) BEGIN IF Resetn = '0' THEN y_present <= A ; ELSIF (Clock'EVENT AND Clock = '1') THEN y_present <= y_next ; END IF ; END PROCESS ; z <= '1' WHEN y_present = C ELSE '0' ; END Behavior ; Uso de constantes para assinalamento manual de estados

38 38 Código VHDL máquina de Mealy LIBRARY ieee ; USE ieee.std_logic_1164.all ; ENTITY mealy IS PORT ( Clock, Resetn, w : IN STD_LOGIC ; z: OUT STD_LOGIC ) ; END mealy ; ARCHITECTURE Behavior OF mealy IS TYPE State_type IS (A, B) ; SIGNAL y : State_type ; BEGIN PROCESS ( Resetn, Clock ) BEGIN IF Resetn = '0' THEN y <= A ; ELSIF (Clock'EVENT AND Clock = '1') THEN CASE y IS WHEN A => IF w = '0' THEN y <= A ; ELSE y <= B ; END IF ; … cont

39 39 WHEN B => IF w = '0' THEN y <= A ; ELSE y <= B ; END IF ; END CASE ; END IF ; END PROCESS ; PROCESS ( y, w ) BEGIN CASE y IS WHEN A => z <= '0' ; WHEN B => z <= w ; END CASE ; END PROCESS ; END Behavior ; Código VHDL máquina de Mealy - continuação

40 40 Exemplo – somador serial SumAB += Shift register Adder FSM Shift register B A a b s Clock

41 41 Somador serial – diagrama de estados - Mealy

42 42 Present Next stateOutput s state ab = GGGGH0110 HGHHH1001 Somador serial – Tabela de estados - Mealy

43 43 Present Next stateOutput state ab = y Ys Somador serial – Tabela de estados assinalados - Mealy Y = a b + a y + b y s = a b y Full adder carry out soma

44 44 Full adder a b s D Q Q carry-out Clock Reset Yy Somador serial – Mealy FSM

45 45 H 1 s1= Reset H 0 s0= G 1 s1= G 0 s0= Somador serial – diagrama de estados - Moore

46 46 Present Nextstate Output state ab= s G 0 G 0 G 1 G 1 H 0 0 G 1 G 0 G 1 G 1 H 0 1 H 0 G 1 H 0 H 0 H 1 0 H 1 G 1 H 0 H 0 H 1 1 Somador serial – tabela de estados - Moore

47 47 Present Nextstate state ab = Output y 2 y 1 Y 2 Y 1 s Somador serial – tabela de estados assinalados - Moore Y1 = a b y 2 Y 2 = a b + a y 2 + b y 2 s = y 1 carry out soma Full adder

48 48 Full adder a b D Q Q Carry-out Clock Reset D Q Q s Y 2 Y 1 Sum bit y 2 y 1 Somador serial –Moore FSM

49 49 Código de um shift register left-to-right com enable LIBRARY ieee ; USE ieee.std_logic_1164.all ; -- left-to-right shift register with parallel load and enable ENTITY shiftrne IS GENERIC ( N : INTEGER := 4 ) ; PORT ( R : IN STD_LOGIC_VECTOR(N-1 DOWNTO 0) ; L, E, w: IN STD_LOGIC ; Clock : IN STD_LOGIC ; Q : BUFFER STD_LOGIC_VECTOR(N-1 DOWNTO 0) ) ; END shiftrne ; ARCHITECTURE Behavior OF shiftrne IS BEGIN PROCESS BEGIN … cont

50 50 WAIT UNTIL Clock'EVENT AND Clock = '1' ; IF E = '1' THEN IF L = '1' THEN Q <= R ; ELSE Genbits: FOR i IN 0 TO N-2 LOOP Q(i) <= Q(i+1) ; END LOOP ; Q(N-1) <= w ; END IF ; END PROCESS ; END Behavior ; Código de um shift register left-to-right com enable - continuação

51 51 Código VHDL – somador serial LIBRARY ieee ; USE ieee.std_logic_1164.all ; ENTITY serial IS GENERIC ( length : INTEGER := 8 ) ; PORT (Clock : IN STD_LOGIC ; Reset : IN STD_LOGIC ; A, B : IN STD_LOGIC_VECTOR(length-1 DOWNTO 0) ; Sum : BUFFER STD_LOGIC_VECTOR(length-1 DOWNTO 0) ); END serial ; ARCHITECTURE Behavior OF serial IS COMPONENT shiftrne GENERIC ( N : INTEGER := 4 ) ; PORT (R : IN STD_LOGIC_VECTOR(N-1 DOWNTO 0) ; L, E, w : IN STD_LOGIC ; Clock : IN STD_LOGIC ; Q : BUFFER STD_LOGIC_VECTOR(N-1 DOWNTO 0) ) ; END COMPONENT ; SIGNAL QA, QB, Null_in : STD_LOGIC_VECTOR(length-1 DOWNTO 0) ; SIGNAL s, Low, High, Run : STD_LOGIC ; SIGNAL Count : INTEGER RANGE 0 TO length ; TYPE State_type IS (G, H) ; SIGNAL y : State_type ; … cont

52 52 BEGIN Low <= '0' ; High <= '1' ; ShiftA: shiftrneGENERIC MAP (N => length) PORT MAP ( A, Reset, High, Low, Clock, QA ) ; ShiftB: shiftrne GENERIC MAP (N => length) PORT MAP ( B, Reset, High, Low, Clock, QB ) ; AdderFSM: PROCESS ( Reset, Clock ) BEGIN IF Reset = '1' THEN y <= G ; ELSIF Clock'EVENT AND Clock = '1' THEN CASE y IS WHEN G => IF QA(0) = '1' AND QB(0) = '1' THEN y <= H ; ELSE y <= G ; END IF ; WHEN H => IF QA(0) = '0' AND QB(0) = '0' THEN y <= G ; ELSE y <= H ; END IF ; END CASE ; END IF ; END PROCESS AdderFSM ; … cont Código VHDL – somador serial - continuação

53 53 WITH y SELECT s <=QA(0) XOR QB(0) WHEN G, NOT ( QA(0) XOR QB(0) ) WHEN H ; Null_in '0') ; ShiftSum: shiftrne GENERIC MAP ( N => length ) PORT MAP ( Null_in, Reset, Run, s, Clock, Sum ) ; Stop: PROCESS BEGIN WAIT UNTIL (Clock'EVENT AND Clock = '1') ; IF Reset = '1' THEN Count <= length ; ELSIF Run = '1' THEN Count <= Count -1 ; END IF ; END PROCESS ; Run <= '0' WHEN Count = 0 ELSE '1' ; -- stops counter and ShiftSum END Behavior ; Código VHDL – somador serial - continuação

54 54 Minimização de estados Definição 1 – Sejam 2 estados Si e Sj. Eles são ditos equivalentes se somente se para todas as possíveis seqüências de entradas, a mesma seqüência de saída é produzida, independente de qual estado (Si ou Sj) seja produzido. OBS – É mais fácil mostrar os estados que não são equivalentes. Procedimento de Particionamento

55 55 Tabela de Estados Present Next state Output state w=0w=1 z ABC1 BDF1 CFE0 DBG1 EFC0 FED0 GFG0 Minimização de estados

56 56 Figure 8.52 Minimized state table for Example 8.5 Present Next state Output state w=0w=1 z ABC1 BAF1 CFC0 FCA0

57 57 Figure 8.53 Signals for the vending machine D Q Q sense N D Q Q Clock N sense N D Clock N D (a) Timing diagram (b) Circuit that generates N

58 58 Figure 8.54 State diagram for Example 8.6 S10 S71 DN DN S30 S60 S91 S81 S20 S51 S41 DN D DN DN N Reset

59 59 Figure 8.55 State table for Example 8.6 Present Next state Output state DN= z S1 S3S20 S4S50 S3 S6S70 S4S11 S5S31 S6 S8S90 S7S11 S8S11 S9S31 – – – – – – – – – – – – – – – – – – –

60 60 Figure 8.56 Minimized state table for Example 8.6 Present Next state Output state DN= z S1 S3S20 S4S50 S3 S2S40 S11 S5S31 – – – ––– –––

61 61 Figure 8.57 Minimized state diagram for Example 8.6 S10 S51 DN D D D N N N S30 S2 0 S41

62 62 Figure 8.58 Mealy-type FSM for Example 8.6 S3 S2 D0 S1 D1 D1 N1 N0 N0 DN0 DN0 DN0

63 63 Figure 8.59 Incompletely specified state table for Example 8.7 Present Next stateOutput z state w=0w=1w=0w=1 ABC00 BD0 CFE01 DBG00 EFC01 FED01 GF0 – – – –

64 64 Figure 8.60 State diagram for a counter w 0= w 1= w 0= w 1= w 0= w 1= w 0= w 1= w 0= w 1= w 0= w 1= w 0= w 1= w 0= w 1= A/0B/1C/2D/3 E/4F/5G/6H/7

65 65 Figure 8.61 State table for the counter Present Next state Output state w=0w=1 AAB0 BBC1 CCD2 DDE3 EEF4 FFG5 GGH6 HHA7

66 66 Figure 8.62 State-assigned table for the counter Present Next state statew=0w=1 Count y 2 y 1 y 0 Y 2 Y 1 Y 0 Y 2 Y 1 Y 0 z 2 z 1 z 0 A B C D E F G H

67 67 Figure 8.63 Karnaugh maps for D flip-flops for the counter y 1 y 0 wy y 1 y 0 wy y 1 y 0 wy 2 Y 2 2 y 0 y 2 y 1 y 2 w+++y 0 y 1 y 2 = Y =Y 1 1 y 1 y 0 0 y 1 ++=

68 68 Diagrama do circuito do contador

69 69 Figure 8.65 Excitation table for the counter with JK flip-flops Present Flip-flop inputs state w=0w=1 Count y 2 y 1 y 0 Y 2 Y 1 Y 0 J 2 K 2 J 1 K 1 J 0 K 0 Y 2 Y 1 Y 0 J 2 K 2 J 1 K 1 J 0 K 0 z 2 z 1 z 0 A 000 0d 0010d 1d000 B 001 0d d00100d1dd1001 C 010 0dd00d0110dd01d010 D 011 0dd0 1001dd1 011 E 100 d00d 101d00d1d100 F 101 d00dd0110d01dd1101 G 110 d0 0d111d0 1d110 H 111 d0 000d1 111

70 70 Mapa Karnaugh - contador d 0d d d d 1d d d y 1 y 0 wy 2 J 0 w = d0 0 0 d d d 1 d1 1 1 d d d11 10 y 1 y 0 wy 2 K 0 w = d d d d d d d d y 1 y 0 wy 2 J 1 0 = d dd d d dd d11 10 y 1 y 0 wy 2 K 1 0 = dd 0 d 0 d 0 d 00 d 1 d 0 d11 10 y 1 y 0 wy 2 J 2 0 y 1 = d 00 d 0 d 0 d 0 dd 1 d 0 d y 1 y 0 wy 2 K 2 0 y 1 =

71 71 Diagrama do circuito usando flip-flop JK

72 72 Figure 8.68 Factored-form implementation of the counter

73 73 Figure 8.69 State table for the counterlike example PresentNextOutput state z 2 z 1 z 0 AB000 BC100 CD010 DE110 EF001 FG101 GH011 HA111

74 74 Figure 8.70 State-assigned table PresentNextOutput state y 2 y 1 y 0 Y 2 Y 1 Y 0 z 2 z 1 z

75 75 Figure 8.71 Circuit for the counterlike example D Q Q z 0 D Q Q D Q Q z 1 z 2 w

76 76 Figure 8.72 State diagram for the arbiter Idle 000 1xx Reset gnt1g 1 1= x1x gnt2g 2 1= xx1 gnt3g 3 1= 0xx1xx 01xx0x 001xx0

77 77 Figure 8.73 Alternative style of state diagram for the arbiter r 1 r 2 r 1 r 2 r 3 Idle Reset gnt1g 1 1= gnt2g 2 1= gnt3g 3 1= r 1 r 1 r 1 r 2 r 3 r 2 r 3 r 1 r 2 r 3

78 78 Figure 8.74a VHDL code for the arbiter LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY arbiter IS PORT ( Clock, Resetn : IN STD_LOGIC ; r : IN STD_LOGIC_VECTOR(1 TO 3) ; g : OUT STD_LOGIC_VECTOR(1 TO 3) ) ; END arbiter ; ARCHITECTURE Behavior OF arbiter IS TYPE State_type IS (Idle, gnt1, gnt2, gnt3) ; SIGNAL y : State_type ; BEGIN PROCESS ( Resetn, Clock ) BEGIN IF Resetn = '0' THEN y <= Idle ; ELSIF (Clock'EVENT AND Clock = '1') THEN CASE y IS WHEN Idle => IF r(1) = '1' THEN y <= gnt1 ; ELSIF r(2) = '1' THEN y <= gnt2 ; ELSIF r(3) = '1' THEN y <= gnt3 ; ELSE y <= Idle ; END IF ; … cont

79 79 Figure 8.74b VHDL code for the arbiter (cont) WHEN gnt1 => IF r(1) = '1' THEN y <= gnt1 ; ELSE y <= Idle ; END IF ; WHEN gnt2 => IF r(2) = '1' THEN y <= gnt2 ; ELSE y <= Idle ; END IF ; WHEN gnt3 => IF r(3) = '1' THEN y <= gnt3 ; ELSE y <= Idle ; END IF ; END CASE ; END IF ; END PROCESS ; g(1) <= '1' WHEN y = gnt1 ELSE '0' ; g(2) <= '1' WHEN y = gnt2 ELSE '0' ; g(3) <= '1' WHEN y = gnt3 ELSE '0' ; END Behavior ;

80 80 Figure 8.75 Incorrect VHDL code for the grant signals. PROCESS( y ) BEGIN IF y = gnt1 THEN g(1) <= '1' ; ELSIF y = gnt2 THEN g(2) <= '1' ; ELSIF y = gnt3 THEN g(3) <= '1' ; END IF ; END PROCESS ; END Behavior ;

81 81 Figure 8.76 Correct VHDL code for the grant signals. PROCESS( y ) BEGIN g(1) <= '0' ; g(2) <= '0' ; g(3) <= '0' ; IF y = gnt1 THEN g(1) <= '1' ; ELSIF y = gnt2 THEN g(2) <= '1' ; ELSIF y = gnt3 THEN g(3) <= '1' ; END IF ; END PROCESS ; END Behavior ;

82 82 Figure 8.77 Simulation results for the arbiter circuit

83 83 Figure 8.78 Output delays in the arbiter circuit a) Output delays using binary encoding b) Output delays using one-hot encoding

84 84 Figure 8.80 Circuit for Example 8.8

85 85 Figure 8.81 Tables for the circuit in Example 8.8 Present Next State state w=0w=1 Output y 2 y 1 Y 2 Y 1 Y 2 Y 1 z (a)State-assigned table Present Next state Output state w=0w=1 z AAB0 BAC0 CAD0 DAD1 (b)State table

86 86 Figure 8.82 Circuit for Example 8.9 J Q Q Clock Resetn y 2 y 1 J 2 J 1 w z K J Q Q K K 2 K 1

87 87 Figure 8.83 Excitation table Present Flip-flop inputs statew=0w=1 Output y 2 y 1 J 2 K 2 J 1 K 1 J 2 K 2 J 1 K 1 z

88 88 Figure 8.84 Circuit for Example 8.10

89 89 Figure 8.85 Excitation table Present Flip-flop inputs state w=0w=1 Output y 2 y 1 T 2 D 1 T 2 D 1 z

90 90 Figure 8.86 Elements used in ASM charts Output signals or actions (Moore type) State name Condition expression 0 (False) 1 (True) Conditional outputs or actions (Mealy type) (a) State box(b) Decision box (c) Conditional output box

91 91 Figure 8.87 ASM chart for a simple FSM Please see portrait orientation PowerPoint file for Chapter 8

92 92 Figure 8.88 ASM chart for the FSM in Figure 8.23

93 93 Figure 8.89 ASM chart for the arbiter r1 r Idle Reset r2 r1 r3 r2 gnt1 gnt2 gnt g1 g2 g

94 94 Figure 8.90 The general model for a sequential circuit Combinational circuit Y k Y 1 y k y 1 w 1 w n z 1 z m Outputs Next-state variables Present-state variables Inputs

95 95 Figure P8.1 State-assigned table for problems 8.1 and 8.2 Present Nextstate w=0w=1 Output y 2 y 1 Y 2 Y 1 Y 2 Y 1 z

96 96 Figure P8.2 Circuit for problem 8.29


Carregar ppt "1 Circuitos Lógicos e Organização de Computadores Capítulo 8 –Circuitos Seqüenciais Síncronos Ricardo Pannain"

Apresentações semelhantes


Anúncios Google