9. Hardware programável sequencial

Documentos relacionados
7. Hardware programável sequencial PAL sequencial Construção sequence present ATF750C

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

Dispositivos Lógicos Programáveis

8. Módulos Funcionais sequenciais Contadores Tipos de contador Entradas síncronas e assíncronas

7. Módulos Funcionais sequenciais Contadores Tipos de contador Entradas síncronas e assíncronas

3. CPLD (Complex Programmable Logic Device) ROM (Read Only Memory) PAL (Programmable Array Logic) CUPL

As saídas tomam valores em função das entradas no momento e dos acontecimentos passados Existência de memória

Dispositivos lógicos programáveis (DLP) Princípio de funcionamento dos DLP. DLPs: Extensão para circuitos sequenciais

Trabalho Prático Nº 8

Aula 11. Dispositivos Lógicos Programáveis. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

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

Flip-Flops, Registros e Contadores

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS. SEL Sistemas Digitais Prof. Homero Schiabel

SISTEMAS DIGITAIS MEEC de Janeiro de 2014, 11:30

FPGA & VHDL. Tutorial

CIRCUITOS SEQUENCIAIS. Adão de Melo Neto

SISTEMAS DIGITAIS MEEC de Janeiro de 2014, 11:30

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

Circuitos sequenciais Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture

Componentes Programáveis. PLD, CPLD e FPGAs. pelo Utilizador. José Miguel Vieira dos Santos. JMVS - SACP

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

CONTADORES DIGITAIS (Unidade 6)

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

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Sistemas Digitais (SD) Contadores

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS DLP. 15/8/2013 Prof. Joselito ELP1DLP1 / npee / DEE 1

Eletrônica Digital I TE050. Circuitos Seqüenciais

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

ELE Microprocessadores I

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

Capítulo13 Arquiteturas de Dispositivos Lógicos Programáveis Pearson. Todos os direitos reservados.

SISTEMAS DIGITAIS (SD)

FCA - Editora de Informática xv

Trabalho Prático Nº3 Porta Paralela

TÓRIO. Circuito SEQUENCIAL SÍNCRONO.

SISTEMAS DIGITAIS CONTADORES E REGISTRADORES. Professor Carlos Muniz

CIRCUITOS DIGITAIS. Circuitos Sequenciais e Flip-Flops. Prof. Denis Fantinato Prof. Rodrigo Moreira Bacurau

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

Referência: PDF ENC Revisão: 1 Arquivo : PDF doc Atualizado em: 07/07/2008

Dispositivos de Lógica Programável

Aula 17. Máquina de Estados Parte 1. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

Sistemas Digitais (SD) Máquinas de Estado Microprogramadas: Circuito de Dados e Circuito de Controlo

Introdução ao PALASM: apresentação e guia de utilização

SISTEMAS DIGITAIS II Enunciados de Laboratório

Organização e Arquitetura de Computadores I

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

Sistemas Digitais (SD)

Dispositivos Lógicos Programáveis (PLDs) Leandro Schwarz

Introdução aos Trabalhos de Laboratório (Hardware/Software) Grupo:

Circuitos Seqüenciais

PCS 2304 PROJETO LÓGICO DIGITAL 19/05/2006 Gabarito Preliminar 6 a Lista de Exercícios Contadores

Dispositivo Lógico Programável(PLD)

CURSO DE ELETRÔNICA DIGITAL OS FLIP-FLOPS E FUNÇÕES LÓGICAS EM CIRCUITOS INTEGRADOS

Hardware Reconfigurável

Eletrônica Digital. Circuitos Lógicos Sequenciais PROF. EDUARDO G. BERTOGNA UTFPR / DAELN

SISTEMAS DIGITAIS (SD)

ENGC40 - Eletrônica Digital

Sistemas Digitais (SD)

Sistemas Digitais (SD) Memórias

Análise de Circuitos Sequënciais Máquinas de Mealy e Moore

Registradores de Deslocamentos.

Sistemas Digitais (SD) Lógica Programável

7. Módulos Funcionais sequenciais Contadores Tipos de contador Entradas síncronas e assíncronas

Laboratório 6 (Trabalho com Relatório) Semana 25 de Outubro a 29 de Outubro

Sistemas Digitais I LESI :: 2º ano. Introdução

Registos. Registos de dados ( registers )

Sistemas Digitais (SD)

SISTEMAS DIGITAIS (SD)

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

Projeto com Linguagens de Descrição de Hardware

Profa. Luiza Maria Romeiro Codá Profa. Dra Maria Stela Veludo de Paiva

Latch SR (Set/Reset)

Circuitos sequenciais síncronos

AULA 5 Aplicação com divisor de freqüência com o CI Livro Texto pág.197 a 200.

Transcrição:

9. Hardware programável sequencial... 9-2

9. HARDWARE PROGRAMÁVEL SEQUENCIAL Como anteriormente podemos observar na estrutura PAL descrita no capítulo 5, a saída da função que é posta disponível num pino de saída, também é disponibilizada na matriz de programação, permitindo por realimentação positiva constituir elementos de memória. Esta solução, seria consumidora de um elevado número de recursos, razão pela qual, os fabricantes de dispositivos programáveis põe disponíveis PALs incluindo flip-flops na estrutura da macro-célula. Na igura 9-1 está representada a macro-célula da PAL22V10 onde podemos observar as possíveis variantes programáveis da estrutura. Macro Celula Matrix Programável D Q Q AR 2 3 0 1 oe I/O n 0 1 igura 9-1 Como se pode ver na igura 9-1, podemos definir se a saída da macro célula é combinatória ou sequencial (registered). ica também disponível na matriz de programação a saída combinatória e a saída registered. Poderemos desta forma implementar com eficiência circuitos sequenciais baseados neste tipo de PAL. O acesso a cada um dos pontos da macro-célula faz-se evocando o nome da macro-célula separada por um ponto como mostra a abela 9-1. MC.ar = termo produto MC.sp = termo produto MC.d = união de termos produto MC.oe = termo produto MC.io Asynchronous Reset Synchronous Preset D input Output Enable Input/Output Pin abela 9-1 José Paraiso (Ver 1.2) Página 9-2

O exemplo que se segue corresponde à implementação de um registo edge trigger de 8 bits com controlo de output. Name regist8 ; PartNo 00 ; Date 27-03-2010 ; Revision 02 ; Designer JParaiso ; Company isel ; Assembly None ; Location ; Device p22v10 ; /* *************** INPU PINS *********************/ = CLK ; /* clock de registo */ PIN [2..9] = [D0..7] ; /* entrada de dados do registo */ 0 = OC ; /* controlo de output */ /* *************** OUPU PINS *********************/ PIN [14..21] = [Q0..7] ; /* 8 flip-flops do registo */ [Q0..7].AR='b'0; [Q0..7].='b'0; [Q0..7].d=[D0..7]; [Q0..7].oe=oc; Para implementação de ASM, o CUPL põe disponível uma construção que permite de uma forma simples a sua descrição. Na igura 9-2 está descrito em linguagem CUPL a implementação do módulo de controlo do exercício 3 capítulo 6. O ASM descrito, apresenta exclusivamente saídas função de estado. /* *************** INPU PINS *********************/ = CLK ; /* clock da maquina de estados */ PIN 2 = A ; /* sensor de porta aberta */ PIN 3 = ; /* sensor de porta fechada */ PIN 4 = P ; /* sensor de presenca */ /* *************** OUPU PINS *********************/ 4 = ON ; /* Activacao do motor */ 5 = S ; /* sentido de rotacao do motor a fechar */ PIN [16..17] = [Q0..1] ; /* flip-flops para implementacao do ASM */ [Q0..1].AR='b'0; [Q0..1].='b'0; sequence[q1,q0] { present 0 if P next 1; if!p next 0; present 1 out ON; if A next 2; if!a next 1; present 2 if P next 2; if!p next 3; present 3 out ON,S; if next 0; if!&p next 1; if!&!p next 3; } P 00 P 01 ON A 10 P 11 ON;S igura 9-2 José Paraiso (Ver 1.2) Página 9-3

Se utilizarmos a implementação com variáveis de saída função de estado e entrada obteremos o programa descrito na igura 9-3. Name ControloPorta ; PartNo 00 ; Date 11-06-2008 ; Revision 02 ; Designer JParaiso ; Company isel ; Assembly None ; Location ; Device p22v10 ; /* *************** INPU PINS *********************/ = CLK ; /* clock da maquina de estados */ PIN 2 = A ; /* sensor de porta aberta */ PIN 3 = ; /* sensor de porta fechada */ PIN 4 = P ; /* sensor de presenca */ PIN 4 = ; /* indicador de tempo */ /* *************** OUPU PINS *********************/ 4 = ON ; /* Activacao do motor */ 5 = S ; /* sentido de rotacao do motor a fechar */ 6 = Q0 ; /* flip-flop para implementacao do ASM */ Q0.AR='b'0; Q0.='b'0; sequence[q0] { present 0 if (!P &! &!) out ON,S; if P next 1; if!p next 0; present 1 if!a out ON if A next 0; if!a next 1; } P A 0 1 ON ON;S igura 9-3 Dada a popularidade da PAL 22v10, o fabricante AMEL pôs disponível no mercado uma PAL denominada A750, que mantendo compatibilidade com a 22v10 apresenta uma série de novas funcionalidades que a tornam mais versátil. Uma das características mais relevantes é o facto de conter o dobro dos flip-flops e permitir definir para cada um dos 20 flip-flops um termo produto gerador de CK (clock) e de AR (Asynchronous Reset), permitindo desta forma, a realização de vários módulos sequenciais independentes dentro de um mesmo dispositivo. Na igura 9-4 é apresentado o diagrama de blocos da macro-célula da PAL A750C. Como se pode observar, cada macro-célula contém dois flip-flops, podendo cada um deles ser configurado para assumir comportamento tipo D ou. Em CUPL, o primeiro flip-flop da macro-célula é referido como PIN e o segundo flip-flop é referido como PINNODE. O número de termos produto disponíveis em cada macro-célula é igual ao da 22V10, sendo estes distribuídos em partes iguais pelos dois flip-flops. No entanto, se numa qualquer aplicação o número de termos produto associado ao pino não for suficiente, são utilizados os termos produtos associados ao PINNODE, inviabilizando claro está, a utilização do PINNODE. Como se pode observar na igura 9-4 a saída do flip-flop associado ao pino também está disponível na matriz através de Q 0, tornando possível a utilização do flip-flop mesmo que o pino que lhe está associado seja utilizado como entrada. José Paraiso (Ver 1.2) Página 9-4

A entrada de sincronismo de cada um dos flip-flops pode ter origem no pino 1 (CKMUX), ou num termo produto com entradas provenientes da matriz (CK). O sinal de clock proveniente do pino 1 através de CKMUX, não disponibiliza o complemento, mas apresenta a vantagem de suportar maior frequência e menor tempo de propagação que o gerado pelo termo produto. A forma disponibilizada em CUPL para especificar qual o PINNODE ou NODE a utilizar, consiste na atribuição de números de pinos para além dos pinos físicos como mostra a abela 9-2. Como se pode observar, o produto termo que realiza (Synchronous Preset) continua global. PIN 2 M at Global Macro Celula r i z ckmux ck D D Q AR oe 4-23 I/O n P r o g r a m á v e l ckmux ck PIN Q 1 D D Q AR PINNODE 25-34 Q 0 3 igura 9-4 Caso se pretenda utilizar o flip-flop tipo na construção sequence/present acrescenta-se a letra à instrução sequence (sequence). PIN (isico) Q 0 Q 1 Número de Produtos (lip-lop) (PINNODE) 14 35 25 4+4 15 36 26 5+5 16 37 27 6+6 17 38 28 7+7 18 39 29 8+8 19 40 30 8+8 20 41 31 7+7 21 42 32 6+6 22 43 33 5+5 23 44 34 4+4 abela 9-2 José Paraiso (Ver 1.2) Página 9-5

Na PAL A750, os flip-flops associados aos pinos de saída, têm simultaneamente as suas saídas disponíveis na matriz de programação. A razão pela qual estas saídas estão disponíveis na matriz de programação deve-se ao facto dos pinos de saída poderem ser programados como pinos de entrada. No caso de tal acontecer, o flip-flop que lhe está associado pode continuar a ser utilizado, em estruturas que não necessitem de saída em pino físico (máquinas de estado, contadores, etc..). A referência a estas saídas, denominadas por Q i, faz-se atribuindo na declaração pinos valores entre 35 e 44 como mostra a abela 9-2. Exemplo: O exemplo que se segue corresponde à implementação de um contador de 4 bits com entrada de CE (Count Enable) e saída Max (Maxim) e C (erminal Count) registado. A implementação do contador utiliza como célula de memória o flip-flops tipo. É utilizado um pino de I/O como entrada e é reutilizada a macro-célula que lhe está associado para registar a passagem do contador por Max. É de notar que devido à estrutura da PAL, o contador tem implementação paralela, ou seja, a entrada de cada célula toma simultaneamente o estado de todas as células que lhe estão a montante. Name Cont8 ; PartNo 00 ; Date 27-03-2010 ; Revision 02 ; Designer JParaiso ; Company isel ; Assembly None ; Location ; Device v750c ; /**************** INPU PINS *******************************************/ = CLK; /* clock de contagem */ PIN 2 = CE; /* entrada de Count Enable */ 5= CR; /* erminal Count Reset (utiliza um pino de I/O) */ /***************** OUPU PINS ****************************************************************/ 4 = Max; /* saída que indica que o contador atingiu o valor maximo */ PINNODE [25..28] = [Q0..3]; /* 4 flip-flops do registo */ PIN 36 = C; /* registo da passagem por Max. Utiliza a macro celula do 5 */ C.AR=CR; C.='b'0; C.CK=!CLK; C.D=!Max&C # Max; /* A solucao que a seguir se descreve e que corresponde ao controlo do sinal de clock, nao deve ser utilizada, pois o sinal Max pode surgir na passagem do valor 7 para o valor 8. C.CK= Max; C.D= 'b'1; */ [Q0..3].AR='b'0; [Q0..3].='b'0; [Q0..3].CK= CLK; Q0.t=CE; Q1.t=Q0&CE; Q2.t=Q0&Q1&CE; Q3.t=Q0&Q1&Q2&CE; Max=[Q0..3]:&; José Paraiso (Ver 1.2) Página 9-6