Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação Aula 12-T 4. Projeto de Sistemas Digitais no Nível RT. Estudo de Caso. Sistemas DigitaisSistemas Digitais INE 5406INE 5406 Prof. José Luís Güntzel guntzel@inf.ufsc.br www.inf.ufsc.br/~guntzel/ine5406/ine5406.html slide 12T.2INE/CTC/UFSC Sistemas Digitais - semestre 2008/2 Prof. José Luís Güntzel 4. Projeto de Sistemas Digitais no Nível RT Exemplo 2: trava digital com três “chaves” Necessita-se de um sistema digital (doravante chamado de “trava”) capaz de controlar o acesso a uma sala. O acesso à sala é liberado se a seqüência correta de três códigos (“chaves”) tiver sido digitada, da seguinte forma: chave1 <enter> chave2 <enter> chave3 <enter> Cada código corresponde a um número decimal de 3 dígitos que é digitado em um teclado. A cada código digitado o teclado gera o equivalente binário, enviando-o à entrada do sistema digital “trava”. Se for digitada a seqüência correta, a trava irá acionar o mecanismo que libera a porta. Ao mesmo tempo, aparecerá no display a mensagem “porta liberada”. O processo de digitação só poderá reiniciar quando o mecanismo da portar indicar que a porta fechou. Caso um dos três códigos não conferir, a porta não abre e o display exibe a mensagem “erro”. Após o acionamento da tecla de “reinício”, será possível recomeçar o processo de digitação da seqüência. OBS: desconsiderar o hardware necessário para programar as três chaves. slide 12T.3INE/CTC/UFSC Sistemas Digitais - semestre 2008/2 Prof. José Luís Güntzel 4. Projeto de Sistemas Digitais no Nível RT Exemplo 2: trava digital com três “chaves” Passo 0 (Diagrama de Blocos Geral ) S.D. trava Mecanismo da porta teclado código enter CK Reset libera ? reinício Display msg ? fechada slide 12T.4INE/CTC/UFSC Sistemas Digitais - semestre 2008/2 Prof. José Luís Güntzel 4. Projeto de Sistemas Digitais no Nível RT Exemplo 2: trava digital com três “chaves” Refinando a Especificação (1) Cada código é composto por 3 dígitos decimais. Logo, os códigos estão entre “000” e “999”. Para representar o código “999” são necessários 10 bits. Logo, o sinal de entrada “código” terá um mínimo de 10 bits. S.D. trava Mecanismo da porta teclado código enter CK Reset libera 10 reinício Display msg ? fechada slide 12T.5INE/CTC/UFSC Sistemas Digitais - semestre 2008/2 Prof. José Luís Güntzel 4. Projeto de Sistemas Digitais no Nível RT Exemplo 2: trava digital com três “chaves” Refinando a Especificação (2) Iremos assumir que: • O teclado somente libera um valor novo de “código” quando a tecla “enter” for acionada; • Assim que a tecla “enter” é acionada o sinal “enter” fica estável no valor “1” durante um ciclo de relógio completo. Simultaneamente, o valor de código fica também estável. S.D. trava Mecanismo da porta teclado código enter CK Reset libera 10 reinício Display msg ? fechada slide 12T.6INE/CTC/UFSC Sistemas Digitais - semestre 2008/2 Prof. José Luís Güntzel 4. Projeto de Sistemas Digitais no Nível RT Exemplo 2: trava digital com três “chaves” • Se o sinal de saída “msg” tiver apenas um bit, então somente duas mensagens estarão disponíveis. Porém, se imaginarmos que além das mensagens “erro” e “portal liberada” se desejar mostrar também a mensagem “digite código”, então o sinal “msg” deverá ter no mínimo dois bits. Refinando a Especificação (3) S.D. trava Mecanismo da porta teclado código enter CK Reset libera 10 reinício Display msg 2 fechada slide 12T.7INE/CTC/UFSC Sistemas Digitais - semestre 2008/2 Prof. José Luís Güntzel 4. Projeto de Sistemas Digitais no Nível RT Exemplo 2: trava digital com três “chaves” Passo 1 (captura do comportamento com FSMD) libera porta msg← “liberada” Reset enter & código = chave1 S2 S1 S0 abre erro enter & código = chave2 enter & código = chave3 porta aberta porta fechada msg← “erro” enter & código ≠ chave1 enter & código ≠ chave2 enter & código ≠ chave3 reinício reinício enter enter enter S.D. trava Mecanismo da porta teclado código enter CK Reset libera 10 reinício Display msg 2 fechada slide 12T.8INE/CTC/UFSC Sistemas Digitais - semestre 2008/2 Prof. José Luís Güntzel 4. Projeto de Sistemas Digitais no Nível RT Exemplo 2: trava digital com três “chaves” Passo 1 (captura do comportamento com FSMD) OBS: podemos supor que a porta possui um dispositivo que force seu fechamento de maneira suave, de modo que o tempo para ela fechar corresponda a diversos (talvez muitos) ciclos de relógio. Com isso garante-se que, ao entrar no estado “abre”, o sinal “libera” permanecerá ativado durante um ciclo de relógio, ao menos. libera porta msg← “liberada” Reset enter & código = chave1 S2 S1 S0 abre erro enter & código = chave2 enter & código = chave3 porta aberta porta fechada msg← “erro” enter & código ≠ chave1 enter & código ≠ chave2 enter & código ≠ chave3 reinício reinício enter enter enter S.D. trava Mecanismo da porta teclado código enter CK Reset libera 10 reinício Display msg 2 fechada slide 12T.9INE/CTC/UFSC Sistemas Digitais - semestre 2008/2 Prof. José Luís Güntzel 4. Projeto de Sistemas Digitais no Nível RT Exemplo 2: trava digital com três “chaves” Passo 1 (captura do comportamento com FSMD) Entradas: enter (1 bit), reinício (1 bit), código (10 bits), fechada (1 bit), reset e ck Saídas: libera (1 bit), msg (2 bits) Variáveis internas ou locais: chave1, chave2, chave3 (cada uma com 10 bits) libera porta msg← “liberada” Reset enter & código = chave1 S2 S1 S0 abre erro enter & código = chave2 enter & código = chave3 porta aberta porta fechada msg← “erro” enter & código ≠ chave1 enter & código ≠ chave2 enter & código ≠ chave3 reinício reinício enter enter enter S.D. trava Mecanismo da porta teclado código enter CK Reset libera 10 reinício Display msg 2 fechada slide 12T.10INE/CTC/UFSC Sistemas Digitais - semestre 2008/2 Prof. José Luís Güntzel 4. Projeto de Sistemas Digitais no Nível RT Exemplo 2: trava digital com três “chaves” Passo 2 (projeto do BO) • Quais variáveis são usadas para armazenar dados? Resp.: chave1, chave2, chave3 libera porta msg← “liberada” Reset enter & código = chave1 S2 S1 S0 abre erro enter & código = chave2 enter & código = chave3 porta aberta porta fechada msg← “erro” enter & código ≠ chave1 enter & código ≠ chave2 enter & código ≠ chave3 reinício reinício enter enter enter S.D. trava Mecanismo da porta teclado código enter CK Reset libera 10 reinício Display msg 2 fechada slide 12T.11INE/CTC/UFSC Sistemas Digitais - semestre 2008/2 Prof. José Luís Güntzel 4. Projeto de Sistemas Digitais no Nível RT Exemplo 2: trava digital com três “chaves” Passo 2 (projeto do BO) • Quais operações são realizadas sobre dados (incluindo-se as condições)? Resp.: apenas comparações, sendo uma comparação por vez. Logo, necessita-se de um comparador e de um 3:1 multiplexador (ambos para números de 10 bits ) libera porta msg← “liberada” Reset enter & código = chave1 S2 S1 S0 abre erro enter & código = chave2 enter & código = chave3 porta aberta porta fechadamsg← “erro” enter & código ≠ chave1 enter & código ≠ chave2 enter & código ≠ chave3 reinício reinício enter enter enter S.D. trava Mecanismo da porta teclado código enter CK Reset libera 10 reinício Display msg 2 fechada slide 12T.12INE/CTC/UFSC Sistemas Digitais - semestre 2008/2 Prof. José Luís Güntzel 4. Projeto de Sistemas Digitais no Nível RT Exemplo 2: trava digital com três “chaves” Passo 2 (projeto do BO) Observação: • Por questão de didática, não estão previstos os recursos para a programação dos valores de chave1, chave2 e chave3. Porém, as modificações necessárias no BO são triviais. (Quais são elas?…) 10 código 10 chave2 = igual chave1 chave3 1010 00 01 10 10 2sel_chave libera porta msg← “liberada” Reset enter & código = chave1 S2 S1 S0 abre err o enter & código = chave2 enter & código = chave3 porta aberta porta fechada msg← “erro” enter & código ≠ chave1 enter & código ≠ chave2 enter & código ≠ chave3 reinício reinício enter enter enter slide 12T.13INE/CTC/UFSC Sistemas Digitais - semestre 2008/2 Prof. José Luís Güntzel 4. Projeto de Sistemas Digitais no Nível RT Exemplo 2: trava digital com três “chaves” Passo 3 (Esboçando o diagrama BO/BC) 10 2 sel_chave igual código BC (controle) enter ck Reset BO (datapath) ck 2 msg reinício fechada libera S.D. trava Mecanismo da porta teclado código enter CK Reset libera 10 reinício Display msg 2 fechada slide 12T.14INE/CTC/UFSC Sistemas Digitais - semestre 2008/2 Prof. José Luís Güntzel 4. Projeto de Sistemas Digitais no Nível RT Exemplo 2: trava digital com três “chaves” Passo 3 (Um diagrama BO/BC mais detalhado…) BC (controle) enter ck Reset 2 msg reinício fechada libera 10 código 10 chave2 = igual chave1 chave3 1010 00 01 10 10 2 sel_chave slide 12T.15INE/CTC/UFSC Sistemas Digitais - semestre 2008/2 Prof. José Luís Güntzel 4. Projeto de Sistemas Digitais no Nível RT Exemplo 2: trava digital com três “chaves” Passo 4 (Projeto do BC) FSMD FSM Os testes “código = chaveX” serão realizados testando-se o valor de “igual”. Para isso, a FSM deve garantir que: Sel_chave = 00 em S0 Sel_chave = 01 em S1 Sel_chave = 10 em S2 Os testes “porta aberta” e “porta fechada” serão realizados testando-se a variável “fechada” Assumiremos que “msg” assumirá os seguintes valores: msg=00 nenhuma mensagem msg=01 para “porta liberada” msg=10 para “erro” libera porta msg← “liberada” Reset enter & código = chave1 S2 S1 S0 abre erro enter & código = chave2 enter & código = chave3 porta aberta porta fechada msg← “erro” enter & código ≠ chave1 enter & código ≠ chave2 enter & código ≠ chave3 reinício reinício enter enter enter slide 12T.16INE/CTC/UFSC Sistemas Digitais - semestre 2008/2 Prof. José Luís Güntzel 4. Projeto de Sistemas Digitais no Nível RT Exemplo 2: trava digital com três “chaves” FSMD libera porta msg← “liberada” Reset enter & código = chave1 S2 S1 S0 abre erro enter & código = chave2 enter & código = chave3 porta aberta porta fechada msg← “erro” enter & código ≠ chave1 enter & código ≠ chave2 enter & código ≠ chave3 reinício reinício enter enter enterPasso 4 (Derivando a FSM a partir do BO e da FSMD) BC (controle) enter ck Reset 2 msg reinício fechada libera 10 código 10 chave2 = igual chave1 chave3 1010 00 01 10 10 2 sel_chave slide 12T.17INE/CTC/UFSC Sistemas Digitais - semestre 2008/2 Prof. José Luís Güntzel 4. Projeto de Sistemas Digitais no Nível RT Exemplo 2: trava digital com três “chaves” FSMD libera porta msg← “liberada” Reset enter & código = chave1 S2 S1 S0 abre erro enter & código = chave2 enter & código = chave3 porta aberta porta fechada msg← “erro” enter & código ≠ chave1 enter & código ≠ chave2 enter & código ≠ chave3 reinício reinício enter enter enter Reset enter & igual S2 S1 S0 abre erro enter & igual enter & igual fechada fechada reinício reinício enter enter enter enter & igual enter & igual enter & igual FSM Passo 4 (Derivando a FSM a partir do BO e da FSMD) slide 12T.18INE/CTC/UFSC Sistemas Digitais - semestre 2008/2 Prof. José Luís Güntzel 4. Projeto de Sistemas Digitais no Nível RT Exemplo 2: trava digital com três “chaves” Reset enter & igual S2 S1 S0 abre erro enter & igual enter & igual fechada fechada reinício reinício enter enter enter enter & igual enter & igual enter & igual FSM Passo 4 (Derivando a FSM a partir do BO e da FSMD) BC (controle) enter ck Reset 2 msg reinício fechada libera 10 código 10 chave2 = igual chave1 chave3 1010 00 01 10 10 2 sel_chave Obs: nesta FSM, os sinais de saída foram omitidos. slide 12T.19INE/CTC/UFSC Sistemas Digitais - semestre 2008/2 Prof. José Luís Güntzel 4. Projeto de Sistemas Digitais no Nível RT Exemplo 2: trava digital com três “chaves” Passo 4 (Projeto do BC) FSM Reset enter & igual S2 S1 S0 abre erro enter & igual enter & igual fechada fechada reinício reinício enter enter enter enter & igual enter & igual enter & igual Obs: nesta FSM, os sinais de saída foram omitidos. slide 12T.20INE/CTC/UFSC Sistemas Digitais - semestre 2008/2 Prof. José Luís Güntzel 4. Projeto de Sistemas Digitais no Nível RT Exemplo 2: trava digital com três “chaves” Passo 4 (Projeto do BC) S0X1XXabre erro0XXXerro S2XXX0S2 erroXX01S2 S3XX11S2 S0XXX0S0 erroXX01S0 X X 1 0 X 1 igual X X 1 1 0 1 enter X 0 X X X X fechada S01erro abreXabre S2XS1 erroXS1 S1XS1 S1XS0 Próximo estadoreinício Estado atual Tabela de Transição de Estados FSM Reset enter & igual S2 S1 S0 abre erro enter & igual enter & igual fechada fechada reinício reinício enter enter enter enter & igual enter & igual enter & igual slide 12T.21INE/CTC/UFSC Sistemas Digitais - semestre 2008/2 Prof. José Luís Güntzel 4. Projeto de Sistemas Digitais no Nível RT Exemplo 2: trava digital com três “chaves” Passo 4 (Projeto do BC) 101XXabre 10 00 00 00 msg XX 10 01 00 sel_chave 0erro 0S2 0S1 0S0 liberaEstado Tabela de Saídas FSM Reset enter & igual S2 S1 S0 abre erro enter & igual enter & igual fechada fechada reinício reinício enter enter enter enter & igual enter & igual enter & igual
Compartilhar