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

Documentos relacionados
9. Hardware programável sequencial

Dispositivos Lógicos Programáveis

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

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

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

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

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

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

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

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

Trabalho Prático Nº 8

SISTEMAS DIGITAIS MEEC de Janeiro de 2014, 11:30

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

CIRCUITOS SEQUENCIAIS. Adão de Melo Neto

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

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

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

Flip-Flops, Registros e Contadores

SISTEMAS DIGITAIS MEEC de Janeiro de 2014, 11:30

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

CONTADORES DIGITAIS (Unidade 6)

FPGA & VHDL. Tutorial

SISTEMAS DIGITAIS (SD)

Sistemas Digitais (SD)

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

SISTEMAS DIGITAIS (SD)

Hardware Reconfigurável

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

SISTEMAS DIGITAIS MEMÓRIAS E CIRCUITOS DE LÓGICA PROGRAMÁVEL

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Sistemas Digitais (SD)

Eletrônica Digital I TE050. Circuitos Seqüenciais

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

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

SISTEMAS DIGITAIS II Enunciados de Laboratório

Organização e Arquitetura de Computadores I

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

SSC0112 Organização de Computadores Digitais I

Dispositivo Lógico Programável(PLD)

TÓRIO. Circuito SEQUENCIAL SÍNCRONO.

6. Circuitos Lógicos Sequenciais Modelo Geral de um Circuito Sequencial Comportamento temporal dos circuitos sequenciais...

Sistemas Digitais (SD) Lógica Programável

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

Xilinx ISE. O projecto

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

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

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

FCA - Editora de Informática xv

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

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

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

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

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

Exercícios de Laboratório 3

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

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

Trabalho Prático Nº3 Porta Paralela

SISTEMAS DIGITAIS MEMÓRIAS E CIRCUITOS DE LÓGICA PROGRAMÁVEL

Circuitos sequenciais síncronos

SISTEMAS DIGITAIS (SD)

ü Na década de 1920 os dispositivos mecânicos foram substituídos pelos relés; ü O uso da lógica de relés dificultava modificações do processo;

Sistemas Digitais (SD) Lógica Programável

Circuitos Seqüenciais

Dispositivos de Lógica Programável

Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação CLPs: Interfaces de E/S

SISTEMAS DIGITAIS (SD)

Circuitos Sequenciais Escola Naval - Dep. Armas e Electrónica v

ENGC40 - Eletrônica Digital

SISTEMAS DIGITAIS II Enunciado do Projecto

Projeto com Linguagens de Descrição de Hardware

Introdução aos microcontroladores Microcontroladores e microprocessadores Tecnologia em Manutenção Industrial

Registradores de Deslocamentos.

Transcrição:

7. Hardware programável sequencial... 7-2 7.1 PAL sequencial... 7-2 7.2 Construção sequence present... 7-4 7.3 A750C... 7-5

7. 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. 7.1 PAL sequencial Na igura 7-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 7-1 Como se pode ver na igura 7-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 7-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 7-1 José Paraiso (Ver 2.0) Página 7-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; As descrições CUPL que se seguem correspondem as várias implementações do ASM do exemplo 3 do capítulo 6. A primeira corresponde à implementação da figura 6.17, ou seja, utilizando para gerador de estado seguinte dois multiplexes. A segunda escrevendo as expressões simplificadas de ES0 e ES1, como acontece na figura 6.18. Como é óbvio, o resultado final será exactamente o mesmo, pois o compilador de CUPL encontrará com certeza as expressões OR-AND mais simples. /* *************** INPU PINS *********************/ = CLK; /* clock */ PIN 2 = A; PIN 3 = B; /* *************** OUPU PINS *********************/ PIN [14..15] = [X0..1]; /* memoria de estado */ 6 = W; 7 = Y; 8 = Z; Mux0 = [X1..1]:0; Mux1 = [X1..1]:1; Mux2 = [X1..1]:2; Mux3 = [X1..1]:3; ES0 = Mux0 # Mux1&A # Mux3&B; ES1 = Mux1&A # Mux3; X0.D = ES0; X1.D = ES1; W =!X1&X0; Y = X1&X0; Z = X1&!X0; José Paraiso (Ver 2.0) Página 7-3

/* *************** INPU PINS *********************/ = CLK; /* clock */ PIN 2 = A; PIN 3 = B; /* *************** OUPU PINS *********************/ PIN [14..15] = [X0..1]; /* memoria de estado */ 6 = W; 7 = Y; 8 = Z; ES0 =!X1&!X0 #!X1&A # X1&X0&B; ES1 = X1&X0 # X0&A; X0.D = ES0; X1.D = ES1; W =!X1&X0; Y = X1&X0; Z = X1&!X0; 7.2 Construção sequence present O CUPL põe disponível uma construção que permite de uma forma simples a implementação de máquinas de estado. Esta construção denominada por sequence present consiste em indicar quais os flip-flops que constituem a memória de estado e em cada estado present indicar quais as condições de evolução para o próximo (next) estado e quais as saídas que ficam activas nesse estado. Na igura 7-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; } 00 P 01 ON A 10 P 11 P ON;S igura 7-2 José Paraiso (Ver 2.0) Página 7-4

Se utilizarmos a implementação com variáveis de saída função de estado e entrada obteremos o programa descrito na igura 7-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 7-3 7.3 A750C 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 7-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 7-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 2.0) Página 7-5

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 7-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 7-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 7-2 José Paraiso (Ver 2.0) Página 7-6

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 7-2. José Paraiso (Ver 2.0) Página 7-7