Linguagens descritivas hardhare_parte1

96
Mestrado em Controlo e Eletrónica Indústrial Electronica Digital Pedro Correia -2013 Mestrado em Controlo e Eletrónica Industrial Eletrónica Digital Linguagens Descritivas de Hardware Pedro Frazão Correia 1

Transcript of Linguagens descritivas hardhare_parte1

Page 1: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Mestrado em

Controlo e Eletrónica

Industrial

Eletrónica Digital Linguagens Descritivas de Hardware

Pedro Frazão Correia

1

Page 2: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Tópicos

Os níveis de abstração

Hierarquias- descrição estrutural

Componentes VHDL: Entidade e arquitetura

Módulos Verilog

Objetivos

Page 3: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Motivação

Organização ou Arquitecturas dos Computadores ou

Sistemas Digitais

Conjunto de instruções

•Linguagem

Máquina

•Linguagem de

programação

Hardware do computador

•Realização da máquina

•Perspectiva do projecto

da lógica

Page 4: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Níveis de abstracção

Co- ordenação dos níveis de abstracção

Page 5: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Linguagens Descritivas de Hardware

(HDL)

Utilização de linguagens de programação para representar os sistemas digitais (linguagem VHDL; Verilog)

Razões para utilização desta forma de representação: Permite a especificação de requisitos; Documentação; Possibilidade de teste por simulação; Permite uma verificação formal; Permite a síntese automática (realização física).

Objectivo Processo de projecto eficaz, minimizando o custo dos erros

e custo de realização;

Page 6: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

VHDL

VHDL é um acrónimo de VHSIC Hardware Description Language e VHSIC é um acrónimo de Very High Speed Integrated Circuits.

A linguagem VHDL é suficiente rica para descrever

diferentes níveis de abstracção, desde o nível funcional até à descrição ao nível das gates.

Os níveis de abstracção permitem cancelar detalhes

de realização Exemplo:

A multiplicação C de dois números A e B pode ser feita em diferentes descrições: funcional, comportamental (“behavioural”), Register Transfer Level-RTL, lógico (gate level)

Page 7: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Níveis de Abstracção em VHDL

Aumento dodetalhe de

realização ecomplexidade

TransistorGateRTL

ArquitecturaAlgoritmo

Aumento daAbstração

comportamental

Sistema

Page 8: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Níveis de Abstracção em VHDL

•Existem diferentes níveis de

abstracção em VHDL

•Functional Level – Descreve de

forma algorítmica.

•Behavioural Level – Descreve de

forma comportamental um

controlador.

•RT Level – Descreve com

máquinas de estados assíncronas

ou síncronas, “data paths” e

operadores um controlador.

•Logic Level - Descreve um

controlador em álgebra booleana

Page 9: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Suporte do VHDL para a

descrição

•Existem diferentes níveis de

Suporte à descrição em VHDL

•ASIC – Application

Specific Integrated Circuit

•PCB - Printed Circuit Board

•System

Page 10: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Hierarquia de projecto

A linguagem VHDL permite uma

programação ESTRUTURAL usando

componentes.

Estes componentes são considerados

como uma caixa preta com entradas e

saídas e permite reduzir a

complexidade do projecto através da

redução de detalhe

Em VHDL é o projectista que decide o

nível de “visibilidade” para o

componente que utiliza no actual do

projecto

As hierarquias de projecto consistem

em componentes que contêm outros

componentes (código VHDL)

Page 11: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Componente VHDL

Para além do conceito de hierarquia VHDL existe o conceito de componente: Se existe um

componente bem projectado então pode ser arquivado numa biblioteca de componentes para uso posterior, através de cópia

Page 12: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Componente: Entidade e Arquitectura

Os componentes são um

conceito importante em

VHDL e podem ser um

sistema completo ou

parte desse sistema.

Um componente tem

duas partes:

Entidade- Declaração

das entradas e das

saídas;

Arquitectura-

Descrição estrutural e

comportamental.

Page 13: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Componente: Entidade e Arquitectura

Os componentes podem

ser um sistema completo

ou parte desse sistema

Page 14: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Componente: Entidade

Declaração Entity (VHDL-93)

Descreve os portos de input/output de um módulo.

Page 15: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Componente: Entidade (VHDL-87)

Omitir entity no fim da declaração.

Page 16: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Componente: Entidade e Arquitectura

Componente: Arquitectura

Declaração Arquitecture

Descreve a realização e funcionalidade de

uma entidade;

Poderão ser várias declarações por

entidade

A descrição pode ser:

Comportamental (Behavioral)

Estrutural (Structural)

Page 17: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Componente: Entidade e Arquitectura

Arquitectura comportamental

(Behavihor)

Descreve o algoritmo realizado pelo

módulo

Pode conter

Declarações de process, cada contendo,

Declarações sequênciais, incluindo,

Declarações de afectação de sinais e

Declaração wait.

Page 18: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Componente: Arquitectura

Arquitectura Estrutural (Structural)

Realiza o módulo como sendo a composição de

sub-sistemas Pode conter Declarações de sinal, para interligações internas Os identificadores que são ports são tratados como sinais

Relaciona declarações com componentes Relaciona com entidades ou arquitecturas previamente

declaradas

Mapas de portos Interliga sinais dos portos dos componentes

Wait statments

Page 19: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Componente: Arquitectura (Behaviour)

Page 20: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Componente: Arquitectura( Behavior)

em VHDL-87

Omitir architecture no fim do corpo da arquitectura

Omitir is no cabeçalho da declaração process

Page 21: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Componente: Arquitectura(Structural)

Sistema a definir: microprocessador: modelo estrutural VHDL que interliga cinco modelos comportamentais

Page 22: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Componente: Arquitectura(Structural) I

Page 23: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Componente: Arquitectura(Structural) II

Page 24: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Componente: Arquitectura(Structural) III

Page 25: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Componente: Arquitectura(Structural) IV

Page 26: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Componente: Arquitectura(Structural) V

Page 27: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Componente: Arquitectura(Structural) VI

Page 28: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Componente: Arquitectura(Structural) VII

Page 29: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Linguagem Verilog

Verilog

Norma IEEE de linguagem HDL para a indústria

Usada para simulação e síntese;

Foi uma linguagem proprietária;

Foi desenvolvida nos anos 80 para modelos de

circuitos ASIC;

Sintaxe similar ao C;

Na indústria VHDL e Verilog co-existem;

Como em VHDL, o Verilog é desenhado para

modelar operações em paralelo;

Os módulos e instruções concorrentes funcionam

todas em paralelo.

Page 30: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Linguagem Verilog- História

Verilog Introduzida em 1984 pela Gateway Design Automation;

1989-Cadence compra Gateway (Verilog-XL simulatior);

1990- Cadence torna Verilog Público;

Open Verilog International (OVI)-organização responsável

pelas especificações;

1993 – Versão OVI 2.0;

1995 – IEEE aceitou OVI Verilog como versão Velrilog 1364;

2001- Revisão da norma IEEE;

2005 – Nova Revisão;

Page 31: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Terminologia Verilog

HDL: modelo de texto usado para

descrever um módulo de hardware;

Modelo Comportamental: Um componente

é descrito pela sua resposta entrada/saída;

Modelo Estrutural: o componente é

descrito pela ligação de baixo nível entre

componentes/primitivas

Page 32: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Modelo Comportamental

Descreve apenas o comportamento, não a

estrutura;

As ferramentas de síntese descrevem a

lógica correcta;

Page 33: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Modelo Estrutural

Funcionalidade e estrutura do circuito;

Chama hardware específico;

Page 34: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

RTL (Register Transfer Level)

Register Transfer Level – RTL – Um tipo de modelo

comportamental para síntese de hardware

O hardware é implicado ou inferido;

Sintetizável;

Sintese: Transcrição HDL para um circuito para

posterior otimização do circuito representado;

Sintese RTL: Transcrever um modelo RTL de um

módulo de hardware para uma tecnologia optimizada

para uma implementação específica ao nível de gate.

Page 35: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

RTL (Register Transfer Level)

Page 36: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Síntese e Simulação RTL

Page 37: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Sumário

Os níveis de abstração da linguagem;

Hierarquias – Descrição estrutural;

Componentes em VHDL: Entidade e arquitectura;

Exemplos de componentes em VHDL.

Verilog – Níveis de abstração

Page 38: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Estrutura de componente VERILOG

Começa com a palavra

reservada module e termina

com a palavra endmodule

Case sensitive.

Todas as palavras

reservadas estão a

minúsculas.

Cada instrução termina com ;

// comentário de linha

/* */ comentário de bloco

Especificação temporal para

simulação;

Page 39: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Modelo VERILOG HDL - Exemplo

Multiplicador

Page 40: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Definição de módulo e portos

Declaração de módulo:

Inicia com a palavra module

Dá nome ao módulo;

Inclui a lista de portos;

Tipo de portos:

input -> porto de entrada

output -> porto de saída;

inout -> porto bidireccional

Declaração de porto:

<port type> <port_name;>

Page 41: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Declaração de Módulos/portosVerilog-

2001 & posteriores Declaração de módulo e portos podem ser combinados:

Secção de declaração mais concisa

Também podem ser incluídos declaração de parâmetros

Page 42: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Tipos de dados

Tipo Net: representa uma ligação física entre estruturas;

Tipo variable: elemento que representa capacidade de

guardar dados temporariamente;

Page 43: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Tipo net

Declaração de Bus:

Exemplos:

Page 44: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Tipo de variaveis

Variáveis do tipo:

reg – variável unsigned com qualquer dimensão de palavra;

reg signed : implemtação com sinal

Integer: variável inteira com 32 bit com sinal

Real, time, realtime: usada para simulação. Não tem suporte para síntese;

Podem ser declaradas para usar apenas dentro de um

procedimento, tarefa ou função

Declaração em palavra

Exemplo

Page 45: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Quando um módulo é chamado por

outro (programação estrutural)

Formato:

Apenas para simulação

Nome do

componente

definido

Nome da instancia

dentro do módulo

onde o componente

é chamado

Lista de portos de

ligação do

componente

Page 46: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Ligação de componentes instanciados

Dois métodos

para definir os portos Pela lista ordenada;

Pelos nomes;

Pela lista ordenada (1º half_adder)

A lista de portos definida de

acordo com a definição dos

portos no compomente (nível

inferior)

A ordem como se define é

importante

Por nome(2º half_adder)

A lista de portos é definida pelo nome

A ordem como se define não

é importante

Page 47: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Regras para a ligação de portos

• Tipos de requisitos para a interlicação de compoentes num

módulo

Page 48: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Parâmetros

Um valor é atribuido a um nome;

Valor entendido como constante;

Pode ser alterado no instante de compilação;

localparam- Igual a param mas não pode ser alterado

Estilo Verilog 2001: parâmetro chamado dentro do módulo

Page 49: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Atribuição de valores - Números

Com dimensão ou sem dimensão

Formatos

Page 50: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Números

Números negativos – Especificados com o sinal “–”

Caracteres especiais

Page 51: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Operações aritméticas

Trata valor como um único vector;

O resultado é desconhecido se alguns bits estiverem como “x” ou

“Z”;

Bits de transporte (carry) é tratado de forma automática;

Estes são perdidos se resultado e operandos tiverem a mesma

dimensão

Page 52: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Operações bit a bit (bitwise)

Opera em cada bit ou par de bits dos operandos;

O resultado assume a dimensão do maior operando;

transporte (carry) é tratado de forma automática;

Estes são perdidos se resultado e operandos tiverem a mesma

dimensão

X e Z são considerados valores desconhecidos

Os operandos são “left extended” se os tamanhos forem diferentes

Page 53: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Operadores de redução

Transforma um vector de bits num único bit

X e Z são considerados valores desconhecidos

Page 54: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Operadores relacionais

Usados para comparação

Devolve bit “1” quando “verdadeiro” e “0” quando “falso”

X e Z são considerados valores desconhecidos

Page 55: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Operadores de igualdade

Usados para comparação

Devolve bit “1” quando “verdadeiro” e “0” quando “falso”

Nas instruções “Equality e “Inequality ””X e Z são considerados

valores desconhecidos e o seu resultado é sempre desconhecido.

Nas instruções “Case Equality e “Case Inequality ””X e Z são

considerados valores destintos e os seus operando devem coincidir.

Page 56: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Operadores lógicos

Usados para avaliar instruções simples ou múltiplas”;

Cada operando é considerado como uma expressão simples;

Expressões com valor zero são consideradas como falso;

Expressões com valor não nulo são consideradas como verdadeiro;

Devolve bit “1” quando “verdadeiro” e “0” quando “falso”;

X e Z são considerados valores desconhecidos

Page 57: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Operadores de deslocamento

Faz deslocamento (esqueda ou direita) de um vector num determinado

número de bits.

Deslocamento à esquerda (lógico e aritmética): posições livres deixadas a

zero;

Deslocamento à direita:

Logico: posições livres deixadas a zero;

Aritmético (unsigned) : posições livres deixadas a zero;

Aritmético (signed) : posições livres deixadas com o valor do bit de sinal

(MSB);

Bits deslocados são perdidos

X e Z são considerados valores desconhecidos

Page 58: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Outros Operadores

Page 59: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Ordem de Operadores

Page 60: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Atribuições em Verilog - Contínua

Usada para modelos

comportamentais de lógica

combinacional

O tipo de dados (Left-hand

side (LHS)) tem que ser net;

Sempre activo: quando

Um valor é alterado no

“Right-hand side (RHS)”, essa alteração é imediata

no LHS.

RHS pode ser net, register ou

function;

Podem ser atribuídos valores de atraso para simular atrasos de portas

Equivalente a

Page 61: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Blocos de atribuição em procedimentos

Initial – Usada para inicialização em blocos de simulação

Always – Usada para descrever o funcionamento de uma

circuito usando instruções comportamentais

Cada bloco Initial ou Always representa um processo separado

Os processos correm em paralelo e começam no tempo de

simulação 0;

As instruções dentro de um processo são executas de forma

sequencial

Page 62: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Bloco Initial

Composto por instruções comportamentais;

Um bloco initial começa no time 0, é executado apena uma

vez na simulação e não volta a ser chamado;

É necessário delimitar o bloco com begin e end caso o bloco

tenha mais do que uma instrução;

As instruções dentro do bloco são executas sequencialmente;

O bloco initial é executado apenas uma vez, mas pode ter

uma duração infinita;

Pode ser utilizado

Inicialização;

Monitorização;

Qualquer funcionalidade que seja executada apenas uma vez.

Page 63: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Bloco always

Composto por instruções comportamentais;

Um bloco always começa de forma concorrente no time 0, é

executado em ciclo;

É necessário delimitar o bloco com begin e end caso o bloco

tenha mais do que uma instrução;

As instruções dentro do bloco são executas sequencialmente;

Pode ser utilizado

Modelização de um circuito digital;

Qualquer funcionalidade que seja executada continuamente.

Page 64: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Bloco always - Exemplo

Page 65: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Dois tipos de atribuições procedamentais

Atribuição blocking (=): executado na ordem em que é

especificado dentro de um procedimento sequencial;

Atribuição non blocking (<=): permitem o escalonamento das

instruções sem bloqueio das instruções que se seguem nas

instruções sequênciais.

Residem dentro de um bloco procedamental;

Actualiza os valores de variáveis reg, integer, real, time, ou

realtime;

Page 66: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Exemplo “Blocking” vs. “Non-blocking”

Page 67: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Exemplo “Blocking” vs. “Non-blocking”

Apenas uma

instrução

Na perante a

transição de

relógio, as

instruções são

realizadas

sequencialmente

As duas instruções

são executadas ao

mesmo tempo a partir

da instrução de clk

Page 68: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

“Blocking” vs. “Non-blocking”

Uso de atribuição Blocking (=) – lógica combinacional

Uso de atribuição Non-Blocking (<=) – lógica sequencial

Desta forma evita-se confusão entre esquemas de

atribuição e problemas de síntese RTL.

Page 69: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Dois tipos de procedimentos RTL

Processo Combinacional

Sensível a todas as entradas combinacionais

Processo sequencial

Sensível a uma entrada de relógio

Page 70: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Instruções Verilog Comportamental

Devem ser usadas dentro de um bloco always ou initial

Instruções

Instrução If…else

As condições são avaliadas em sequencia;

Prioritização

Instrução Case

As condições são avaliadas de uma só vez;

Sem Prioritização

Instruções de ciclo

Usadas para operações repetitivas.

Page 71: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

If…else – Detector de paridade

Page 72: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

If…else – Detector de paridade

Gerador de Paridade de um conjunto de 8 bits, sendo possível

gerar o bit de paridade par ou ímpar. O sinal de saída é activo

a LOW

Page 73: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Codificador de Prioridade de 8 Níveis

Gerador de prioridades recebendo um conjunto de 8 linhas

de entrada correspondendo a diferentes linhas de prioridade

e gerando um sinal de saída com 3 linhas correspondentes ao número do sinal de prioridade activo. Os sinais de entrada e

de saída são activos a HIGH

Page 74: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Codificador de Prioridade de 8 Níveis

Page 75: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Case

Page 76: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Case

Trata Z e ? Como condições don’t

care

Trata X, Z e ? Como condições

don’t care em vez de valores

lógicos

Page 77: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Descodificador 3 para 8 níveis

Descodificador 3 para 8, que recebendo um código num

conjunto de 3 linhas, activa (a “LOW”) uma linha do conjunto

das 8 linhas de saída quando um sinal “enable” é activo (a

“HIGH”).

Page 78: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Descodificador 3 para 8 níveis

Page 79: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Loop

Page 80: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Ciclo While

Page 81: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Ciclo for

Page 82: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Exemplo: Função Lógica

Page 83: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Descodificador de 7 Segmentos

Page 84: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Descodificador de 7 Segmentos

Page 85: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Multiplexer

Page 86: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Saída Tristate

Page 87: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Circuitos Sequenciais - Registos

Page 88: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Registo com reset

Page 89: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Registo com reset assíncrono

Page 90: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Registo com reset assíncrono e

enable

Page 91: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Registo de 8 bits com reset

assíncrono e enable

Page 92: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

“Preset” e “clear” Síncrono e assíncrono

Page 93: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Clock Enable

Page 94: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Contador de 8 bits

Page 95: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Contador de 8 bits – V2

Page 96: Linguagens descritivas hardhare_parte1

Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013

Contador de 8 bits – V2