Circuitos sequenciais elementares



Documentos relacionados
Circuitos sequenciais elementares

Introdução às máquinas de estado finitas

CAPÍTULO 4 CIRCUITOS SEQUENCIAIS II: CONTADORES ASSÍNCRONOS

Capítulo 7 Circuitos sequenciais: latches, flipflops, registradores, contadores

Organização e Arquitetura de Computadores II

Básculas, Flip-Flops e Debouncing

Verilog HDL Introduzida em 1985 pela Gateway Design System Corporation Após 1990, passou a ser de domínio público, e em 1995 passou a ser padrão IEEE

Projecto e Controlo em Lógica Digital

UFSM-CTISM. Circuitos Digitais Contadores Aula-11

Contadores. Contadores Assíncronos Crescentes

Índice. Modelos e Procedimentos

Circuitos combinatórios. (Revisão)

Sistemas Digitais Contadores. João Paulo Carvalho

Circuitos Sequenciais. Sistemas digitais

Controlador de Interrupções com Prioridades Rotativas Julho de 2001

Mestrado em Engenharia Electrotécnica e de Computadores

MINISTÉRIO DA EDUCAÇÃO CEFET/SC - Unidade de São José. Curso Técnico em Telecomunicações CONTADORES. Marcos Moecke

Sistemas Digitais I LESI :: 2º ano. Questões Práticas de Sistemas Sequenciais

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

Circuitos Lógicos Registradores e Contadores

SISTEMAS DIGITAIS CIRCUITOS SEQUENCIAIS BÁSICOS

FLIP-FLOPS FLOPS. INTRODUÇÃO Os circuitos anteriormente estudados são chamados de

TÉCNICAS DIGITAIS I (CURSO DE ENGENHARIA DE TELECOMUNICAÇÕES)

Máquina de Estados. Transições Estados Em Verilog. Monitoria SD Daniel Alexandro/Reniê Delgado/Vanessa Ogg.

Circuitos Digitais Cap. 6

Circuitos Seqüenciais

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

Sistemas Digitais. Linguagem Verilog. Monitoria SD Daniel Alexandro/Reniê Delgado/Vanessa Ogg. Editado por (DARA)

SISTEMAS DIGITAIS CONTADORES

Flip-Flops (Aplicações) Prof. Rômulo Calado Pantaleão Camara

LABORATÓRIO DE ELETRÔNICA DIGITAL Experiência 9: Análise de Circuitos com Contadores

EEC2104 Microprocessadores

Disciplina: Laboratório de Circuitos Digitais

VHDL Lógica Síncrona. Sinais de Saída. Sinais de Entrada. barreira. carg. VHDL -Lógica Síncrona

Circuitos Seqüenciais: Latches e Flip-Flops. Fabrício Noveletto

18. Temporizadores/contadores TC (Timer/Counter) Especificação Diagrama de blocos

Sistemas Digitais. PALs Sequenciais Parâmetros Temporais em PALs Sequenciais ABEL Registos Contadores Registos de Deslocamento ( Shift Registers )

Tutorial Verilog 1ª Edição

Aula 19. Conversão AD e DA Técnicas

CONTADORES DIGITAIS (Unidade 6)

Registradores. Circuitos Lógicos. DCC-IM/UFRJ Prof. Gabriel P. Silva

Controladores Lógicos Programáveis

Acetatos de apoio às aulas teóricas

CAPÍTULO 5 CIRCUITOS SEQUENCIAIS

INSTITUTO DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE SERGIPE COORDENADORIA DE ELETRÔNICA CONTADORES

MINISTÉRIO DA EDUCAÇÃO IFSC - Campus São José. CST em Telecomunicações ELETRÔNICA DIGITAL CONTADORES. Marcos Moecke

Flip-Flops, Registros e Contadores

LINEAR EQUIPAMENTOS RUA SÃO JORGE, TELEFONE : SÃO CAETANO DO SUL - SP - CEP:

Primeiros "computadores" digitais. Execução de um programa. Consolas. Primórdios dos computadores. Memória interna. Computadores com memória interna

17. Espaço de I/O (entrada/saída) Portos paralelos de entrada e saída Porto paralelo de saída

O diagrama ASM contém dois elementos básicos: o bloco de estado e o bloco de decisão.

Circuitos Lógicos Aula 23

Circuitos Digitais. Tipos de circuitos digitais: Circuitos combinacionais Circuitos sequenciais

Entradas/Saídas. Programação por espera activa Programação por interrupções

Figura 1 - Diagrama de um sistema de controle de temperatura que requer conversão analógico-digital para permitir o uso de técnicas de processamento

Eletrônica Digital para Instrumentação. Herman Lima Jr.

Lab 3. Timing Timing Constraints Simulação

Experimento 11 - Contador síncrono

1. Objetivos: Familiarizar o aluno com o uso do ambiente de desenvolvimento da Linguagem Verilog. Familiarizar o aluno com a linguagem Verilog.

SISTEMAS DIGITAIS. Memórias. Prof. Guilherme Arroz Prof. Carlos Sêrro Alterado para lógica positiva por Guilherme Arroz.

Máquinas de Estados Finitos. Aula 19 Prof. Abel Guilhermino

Os sistemas combinacionais a saída depende exclusivamente das condições das entradas, portanto o sistema não possui memória interna.

Sistemas Digitais Circuitos Sequenciais Básicos (Latches e Flip-Flops) Horácio Neto Nuno Horta João Paulo Carvalho

ANÁLISE DE CIRCUITOS LABORATÓRIO O CONDENSADOR

MEMÓRIA M.1 - HIERARQUIA DE MEMÓRIAS NUM COMPUTADOR DIGITAL

5 Circuitos de Armazenamento

Flip-Flops. Introdução Tipos Circuitos Integrados. Flip-Flops

Universidade Estadual do Ceará

Introdução à estrutura e funcionamento de um Sistema Informático

2. FLIP FLOP tipo D síncrono borda de descida e com entradas assíncronas preset e clear. PRE Q n F/F CLR

LINEAR EQUIPAMENTOS RUA SÃO JORGE, 267/269 - TELEFONE: (11) SÃO CAETANO DO SUL - SP - CEP:

R S Q Tabela 17 - Tabela verdade NOR

Capítulo VIII Registradores de Deslocamento e Contadores

INSTITUTO POLITÉCNICO DE BRAGANÇA ESCOLA SUPERIOR DE TECNOLOGIA E DE GESTÃO. Engenharia Electrotécnica. Microprocessadores. 2ºano - 1ºsemestre

Desempenho de Computadores

- SISTEMAS DIGITAIS II

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Fundamentos de Sistemas Digitais. Lógica Sequencial. Prof. Dr. Alexandre M. Amory Prof. Dr Edson I. Moreno

Pipelining - analogia

Sistemas Multimédia. Ano lectivo Aula 11 Conceitos básicos de Audio Digital. MIDI: Musical Instrument Digital Interface

Flip-Flops. Slide 1. Flip-flop NOR SR cruzado. Reiniciar Configurar Reter Não usado. Flip-flop NAND SR cruzado. Reiniciar Configurar Reter Não usado

CAPÍTULO 5 CONTADORES NA FORMA DE CIRCUITO INTEGRADO

Exame 2 Sistemas Digitais - MEEC 2008/9 1. Aluno Nº

Eletrônica Digital I TE050. Circuitos Seqüenciais

Sistemas Digitais I LESI :: 2º ano. Conceitos sobre Sistemas Sequenciais

NOME: TURMA. a) Mostre que, numa representação em complemento para dois, são necessários 8 bits para representar Tset e 7 bits para representar T.

Técnicas de Computação Paralela Capítulo III Design de Algoritmos Paralelos

Transcrição:

Circuitos sequenciais elementares João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém figuras de Computer Organization and esign,. Patterson & J. Hennessey, 3 a. ed., MKP Tópicos Sistemas sequenciais síncronos Elementos de memória Registos e contadores Especificação de circuitos sequenciais em Verilog ArqComp: Circuitos sequenciais elementares 2/32 2007-02-24

Sistemas sequenciais síncronos Elementos de memória Registos e contadores Especificação de circuitos sequenciais em Verilog ArqComp: Circuitos sequenciais elementares 3/32 2007-02-24 3

efinição de circuito sequencial Circuito combinatório: o valor da saída depende apenas dos valores actuais das entradas. Circuito sequencial: o valor da saída depende dos valores actuais e de todos os valores anteriores das entradas. Estado de um circuito: conjunto de variáveis de estado que, em cada momento, contêm informação suficiente sobre o passado para permitirem a determinação do comportamento futuro (em conjunto com os valores da entrada). Em circuitos digitais, as variáveis de estado são binárias: um circuito com n variáveis de estado pode ter até 2 n estados. O valor de uma variável de estado é preservado num elemento de memória. Nos circuitos digitais síncronos, as mudanças de estado ocorrem em instantes de tempo determinados por um sinal periódico: o sinal de relógio. Um sistema síncrono pode reagir apenas aos flancos do sinal de relógio (p. ex. ao flanco ascendente) ou pode ser sensível ao nível do sinal de relógio. (Usaremos exclusivamente a primeira abordagem.) ArqComp: Circuitos sequenciais elementares 4/32 2007-02-24 4

Sinal de relógio Sinal de relógio típico (para um sistema activo ao flanco ascendente): mudanças de estado ocorrem aqui th T tl Período T : intervalo de repetição Frequência F : F = 1/T (Unidade: Hz = 1/s) T = t H + t L ArqComp: Circuitos sequenciais elementares 5/32 2007-02-24 5

Organização geral de um sistema sequencial síncrono Elemento de estado 1 Circuito combinatório Elemento de estado 2 O flanco de relógio determina quando é que os elementos de memória são modificados. O período de relógio deve ser longo o suficiente para a saída da lógica combinatória atingir o seu valor final (estabilizar). Elemento de estado 1 Circuito combinatório Num sistema sensível ao flanco (como todos os que usaremos) o valor de um elemento de memória pode ser usado para calcular o próximo valor desse mesmo elemento. A alteração só tem efeito no flanco activo seguinte. ArqComp: Circuitos sequenciais elementares 6/32 2007-02-24 6

Regulação do sinal de relógio tempo de setup: período de tempo, anterior ao flanco activo do sinal de relógio, em que a entrada de um elemento de memória deve permanecer inalterada [preparação]. tempo de hold: período de tempo, posterior ao flanco activo do sinal de relógio, em que a entrada de um elemento de memória deve permanecer inalterada [permanência]. tempo de propagação t pm : tempo (máximo) que o elemento de memória demora a reagir ao flanco activo do relógio. tempo de propagação t pc : tempo (máximo) que a saída do circuito combinatório leva a atingir o valor final. O valor mínimo para o período do sinal de relógio é: T t setup + t pm + t pc ArqComp: Circuitos sequenciais elementares 7/32 2007-02-24 7

Regulação do sinal de relógio: gráficos t pm t pc Elemento de Circuito combinatório estado 1 A B C Elemento de estado 2 t setup relógio t hold A t pm B t pc C ArqComp: Circuitos sequenciais elementares 8/32 2007-02-24 8

Sistemas sequenciais síncronos Elementos de memória Registos e contadores Especificação de circuitos sequenciais em Verilog ArqComp: Circuitos sequenciais elementares 9/32 2007-02-24 9

Realimentação positiva Uma forma de preservar valores lógicos baseia-se na utilização de realimentação positiva (i. e., que reforça o estado actual). O elemento de memória tem dois estados: elemento bi-estável. O elemento bi-estável mais simples: N 1 N 2 Mas não tem entradas... ArqComp: Circuitos sequenciais elementares 10/32 2007-02-24 10

O trinco tipo Clk Clk / 1 0 0 1 1 1 1 0 0 x anterior / anterior Clk=1: modo transparente Clk=0: modo de retenção ArqComp: Circuitos sequenciais elementares 11/32 2007-02-24 11

O trinco tipo : formas de onda C ArqComp: Circuitos sequenciais elementares 12/32 2007-02-24 12

A báscula tipo L 1 L 2 Clk Clk Clk Báscula = flip-flop Clk / 0 0 1 1 1 0 x 0 anterior / anterior x 1 anterior / anterior ArqComp: Circuitos sequenciais elementares 13/32 2007-02-24 13

A báscula tipo : formas de onda Clk ArqComp: Circuitos sequenciais elementares 14/32 2007-02-24 14

A báscula tipo T A báscula tipo T troca de estado a cada ciclo de relógio. T T CK Por vezes, é útil ter uma entrada de habilitação (enable). O circuito só muda de estado quando essa entrada está activa. EN EN T T CK ArqComp: Circuitos sequenciais elementares 15/32 2007-02-24 15

A báscula tipo T: formas de onda Báscula T sem entrada de enable T Báscula T com entrada de enable T EN ArqComp: Circuitos sequenciais elementares 16/32 2007-02-24 16

Sistemas sequenciais síncronos Elementos de memória Registos e contadores Especificação de circuitos sequenciais em Verilog ArqComp: Circuitos sequenciais elementares 17/32 2007-02-24 17

Registos e bancos de registos Registo: grupo de n elementos de memória, que são acedidos como uma única entidade. Banco de registos: conjunto de registos (de capacidade idêntica), em que cada registo individual pode ser selecionado pelo seu número de ordem (0, 1,... ). Implementação de um registo: Out3 Out2 Out1 Out0 FF3 FF2 FF1 FF0 CK CK CK CK Clk In3 In2 In1 In0 ArqComp: Circuitos sequenciais elementares 18/32 2007-02-24 18

Banco de registos multiporto Read register number 1 Read register number 2 Read data 1 Write register Write data Register file Write Read data 2 ArqComp: Circuitos sequenciais elementares 19/32 2007-02-24 19

Banco de registos: leitura Read register number 1 Register 0 Register 1... Register n Ð 2 M u x Read data 1 Register n Ð 1 Read register number 2 M u Read data 2 x ArqComp: Circuitos sequenciais elementares 20/32 2007-02-24 20

Banco de registos: escrita Write 0 1 C Register 0 Register number n-to-2 n decoder. C n Ð 1 Register 1 n. C Register nð2 C Register nð1 Register data ArqComp: Circuitos sequenciais elementares 21/32 2007-02-24 21

Contador do tipo ripple-counter Implementação: 0 1 2 3 Clk T T0 T T1 T T2 T T3 Saída: número de quatro bits: 3 2 1 0. Contador muito lento: na pior situação (mudança do bit mais significativo) um contador de n bits demora n T pt a reagir ao flanco activo. [T pt é o tempo de propagação da entrada T para a saída.] ArqComp: Circuitos sequenciais elementares 22/32 2007-02-24 22

Contador binário síncrono 0 1 2 3 CntEN EN EN EN EN T0 T1 T2 T3 Clk T T T T Nesta versão, todos os flip-flops comutam simultaneamente (em T pt segundos). Entre flancos sucessivos, o sinal de habilitação deve propagar-se ao longa da cadeia de portas AN. ArqComp: Circuitos sequenciais elementares 23/32 2007-02-24 23

Sistemas sequenciais síncronos Elementos de memória Registos e contadores Especificação de circuitos sequenciais em Verilog ArqComp: Circuitos sequenciais elementares 24/32 2007-02-24 24

Verilog: Eventos Para descrever sistemas síncronos, é preciso especificar o evento de sincronização na lista de eventos do(s) bloco(s) always. Exemplo: module sincrono(clk,...); input clk;... always @(posedge clk) /* operações a executar sincronamente */... endmodule Para circuito activo ao flanco descendente: negedge clk Como os valores devem permancer constantes entre a ocorrência dos flancos, devem usar-se variáveis do tipo reg na descrição das operações. ArqComp: Circuitos sequenciais elementares 25/32 2007-02-24 25

Atribuição bloqueante Tarefa: trocar de posição os dois bytes de uma palavra de 16 bits. Estes exemplos não funcionam correctamente: module m1(clk, palavra,...); input clk; output [15:0] palavra; reg [15:0] palavra;... always @(posedge clk) begin palavra[15:8]=palavra[7:0]; palavra[7:0]=palavra[15:8]; end... endmodule module m1(clk, palavra,...); input clk; output [15:0] palavra; reg [15:0] palavra;... always @(posedge clk) begin palavra[7:0]=palavra[15:8]; palavra[15:8]=palavra[7:0]; end... endmodule Atribuições são executadas por ordem, em um só passo. ArqComp: Circuitos sequenciais elementares 26/32 2007-02-24 26

Atribuição não-bloqueante Ambos os exemplos funcionam correctamente: module m1(clk, palavra,...); input clk; output [15:0] palavra; reg [15:0] palavra;... always @(posedge clk) begin palavra[15:8]<=palavra[7:0]; palavra[7:0]<=palavra[15:8]; end... endmodule module m1(clk, palavra,...); input clk; output [15:0] palavra; reg [15:0] palavra;... always @(posedge clk) begin palavra[7:0]<=palavra[15:8]; palavra[15:8]<=palavra[7:0]; end... endmodule Atribuições simultâneas são executadas em dois passos: 1. avaliação de todas as expressões (lado direito); 2. atribuições só são executadas após todas as avalições. Ordem das atribuições é irrelevante. Na especificação de sistemas síncronos, usa-se quase sempre a atribuição não-bloqueante. ArqComp: Circuitos sequenciais elementares 27/32 2007-02-24 27

Verilog: Báscula tipo Uma báscula tipo Um registo de 8 bits com reset module flop (Clk,, ); input Clk; input ; output ; reg ; always @(posedge Clk) <= ; endmodule module registo (Clk, Rst,, ); input Clk, Rst; input [7:0] ; output[7:0] ; reg [7:0] ; always @(posedge Clk) if (Rst) <= 0; else <= ; endmodule ArqComp: Circuitos sequenciais elementares 28/32 2007-02-24 28

Verilog: Outros elementos de memória Trinco tipo : Flip-flop tipo T com reset: module trinco (C,, ); input C, ; output ; reg ; always @(C or ) begin if (C) <= ; end endmodule module tff (Clk, Rst, ); input Clk, Rst; output ; reg ; always @(posedge clk) if (Rst) <= 0; else <= ~; endmodule ArqComp: Circuitos sequenciais elementares 29/32 2007-02-24 29

Verilog: Banco de registos module bancoregs (Read1, Read2, WriteReg, Writeata, RegWrite, ata1, ata2, clock); input [4:0] Read1, Read2, WriteReg; input [31:0] Writeata; input RegWrite, clock; output [31:0] ata1, ata2; reg [31:0] RF [31:0]; // 32 registos de 32 bits assign ata1 = RF[Read1]; assign ata2 = RF[Read2]; // leitura always @(posedge clock) // escrita síncrona if (RegWrite) RF[WriteReg] <= Writeata; endmodule ArqComp: Circuitos sequenciais elementares 30/32 2007-02-24 30

Exemplo: Simulação de um contador de 3 bits Modelo estrutural de um contador ripple-carry: Bancada de teste: module contador3(clk, rst, dados); input clk, rst; output [2:0] dados; wire tmp0, tmp1; assign tmp0 = ~dados[0]; assign tmp1 = ~dados[1]; tff ff0(clk, rst, dados[0]); tff ff1(tmp0, rst, dados[1]); tff ff3(tmp1, rst, dados[2]); endmodule; module topo; reg relogio; reg reset; wire [2:0] contagem; contador3 cont(relogio, reset, contagem); initial begin // executa 1 vez reset = 1; relogio = 0; #5 reset = 0; #100 $stop; end always // período 20 #10 relogio = ~relogio; endmodule ArqComp: Circuitos sequenciais elementares 31/32 2007-02-24 31

Elementos de consulta [Patterson & Hennessy]: Apêndice B, secções B.7, B.8 (C) [elgado & Ribeiro]: Secções 2.6.1 2.6.5 [Arroz, Monteiro & Oliveira]: Secções 6.1 6.6 ArqComp: Circuitos sequenciais elementares 32/32 2007-02-24 32