top of page

 UNIDADE 2

Lógica Digital aplicada em FPGA

Dispositivos Lógicos Programáveis

DLP
DLP - Dispositivos Lógicos Programáveis

 

O rápido e grande avanço tecnológico tem permitido que os projetos de circuitos digitais sejam cada vez mais rápidos e simples. O uso combinado de um EDA (Electronic Design Automation) ou também conhecido como Software de Projeto de Circuitos Integrados em conjunto com os dispositivos lógicos programáveis – PLDS (Programmable Logic Devices) tem gerado ótimos resultados nos projetos.

Os PLDs possuem uma característica que é poder ser configurado pelo próprio usuário de acordo com sua necessidade, sem propriamente possuir uma função lógica.

 

Existem dois tipos de PLDs que são:

» SPLD (Simple Programmable Logic Devices) ou dispositivos lógicos programáveis simples possuem baixa capacidade, normalmente com menos de 600 portas lógicas.

» HCPLDs (High Complex Programmable Logic Devices) ou dispositivos lógicos programáveis de alta complexidade possuem alta capacidade, normalmente com mais de 600 portas lógicas sendo que alguns podem possuir cerca de 500.000 portas lógicas.

A seguir são apresentadas as duas figuras as quais ilustram um sistema simplificado de PLA (Programmable Logic Array) e PAL (Programmable Array Logic) em que, respectivamente, são: rede de dispositivos programáveis compostos essencialmente por portas lógicas e o segundo é uma rede lógica programável.

esquema PLA - PLA.jpg

As características de um FPGA normalmente são compostas por informações como o número de blocos lógicos configuráveis, números de blocos lógicos de funções fixas como multiplicações e blocos de memória RAM.

Mais detalhadamente, os blocos de lógica programável (os CLBs) são responsáveis por atuarem como a unidade lógica básica de um FPGA e por isso também é conhecida por células lógicas básicas de um FPGA. São compostos basicamente de flip-flops e tabelas LookUp_Tables (LUTs).

CLB

CLB - Blocos de lógica programável

Como vimos, os blocos de lógica programável é o sistema central de um FPGA e aqui veremos com mais detalhes. Existem diversas formas para se implementar uma função lógica em um FPGA, mas, a mais comum é por meio do bloco de memória LUT (Look- Up_Table).

Esse bloco lógico é composto de células de armazenamento que por sua vez são usadas para implementar pequenas instruções e, também, funções lógicas. Essas células recebem informações do tipo binário, ou seja, 0 e 1 que são chamados de valores lógicos. Os blocos LUTs normalmente possuem de 4 ou 5 entradas, que correspondem respectivamente ao fornecimento de 16 (24) ou 32 (25) células de armazenamento que podem ser endereçadas.

LUT.jpg

Os LUTS recebem o nome de tabela pois toda a lógica combinatória (AND, OR, NAND, XOR, etc) é implementada na forma de tabelas verdade diretamente na memória LUT. Lembre-se que uma tabela verdade é uma lista predefinida de resultados (ou saídas) de acordo para cada combinação de entradas.

 

granularidade

 

Existe uma característica do FPGA que é menor unidade configurável, ao se assemelha ou faz a analogia a um grão, ou algo como “um ponto” ou neste caso, literalmente “um grão”.

E essa característica é dividida em:

 

» Grão pequeno: são dispositivos que possuem um grande número de blocos lógicos simples.

Normalmente, com 2 entradas ou um multiplexador de 4 por 1 e um flip-flop.

» Grão médio: são dispositivos que possuem 2 ou mais LUTs e, consequentemente, 2 ou mais flip-flops.

Normalmente com 4 entradas.

» Grão grande: são dispositivos que possuem unidades lógicas e aritméticas e, ainda, processadores e memórias.

Arquitetura de roteamento

Arquitetura de roteamento

 

A forma como se posiciona os barramentos e as chaves de comutação permite realizar o roteamento em um FPGA. Esse posicionamento permite realizar as interconexões das células lógicas.

arquitetura FPGA.jpg

Para entender melhor essa figura:

 

» Bloco de Conexão: permite conectar entradas e saídas aos segmentos de trilhas nos canais.

» Segmento de Trilha: segmento que não sofre interrupção de chaves.

 

» Rede: um conjunto de pinos que estão conectados.

 

» Pinos: entradas e saídas dos blocos.

 

» Bloco de Comutação: interligação de dois segmentos de trilha.

 

» Conexão: ligação elétrica de um par de pinos.

 

» Canal de Roteamento: conjunto de duas ou mais trilhas paralelas.

Anchor 1

Portas de entradas e saídas i/o

Os IOBs (I/O Blocks, ou Blocos de Entradas e Saídas) são usados no FPGA para atuar como entrada, saída ou bidirecionais (entrada e saída) a outros pinos. Normalmente, são utilizadas em conjunto com circuitos de buffers.

São orientados ao redor do dispositivo, para facilitar a sua operação de entrada e saída de sinais de controle ou dados de informações.

portas de IO.jpg
IO.jpg
Circuitos programáveis

 

Existem diversos tipos de circuitos que são programáveis e a sua escolha depende do objetivo do projeto. São eles:

» Circuitos combinacionais:

são circuitos que dependem apenas da combinação das variáveis de entrada.

 

» Circuitos sequenciais:

são circuitos que dependem apenas da variável de tempo (sincronização, realimentação etc.). 

 

» Circuitos Hardwired:

são circuitos projetos para realizarem uma tarefa específica, sem necessidade de serem programados. 

» Circuitos processadores:

são circuitos que compõem um sistema de uso geral, compostos por unidades operativas e de controle.

© 2019 - 2024 by FMK. Updated Oct 2024.  Proudly created with Wix.com

bottom of page