SlideShare uma empresa Scribd logo
1 de 96
Baixar para ler offline
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
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
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
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
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;
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)
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Níveis de Abstracção em VHDL
Aumento do
detalhe de
realização e
complexidade
Transistor
Gate
RTL
Arquitectura
Algoritmo
Aumento da
Abstração
comportamental
Sistema
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
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
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)
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
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.
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
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.
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Componente: Entidade (VHDL-87)
 Omitir entity no fim da declaração.
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)
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.
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
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Componente: Arquitectura (Behaviour)
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
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
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Componente: Arquitectura(Structural) I
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Componente: Arquitectura(Structural) II
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Componente: Arquitectura(Structural) III
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Componente: Arquitectura(Structural) IV
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Componente: Arquitectura(Structural) V
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Componente: Arquitectura(Structural) VI
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Componente: Arquitectura(Structural) VII
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.
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;
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
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;
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Modelo Estrutural
 Funcionalidade e estrutura do circuito;
 Chama hardware específico;
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.
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
RTL (Register Transfer Level)
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Síntese e Simulação RTL
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
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;
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Modelo VERILOG HDL - Exemplo
 Multiplicador
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;>
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
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;
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Tipo net
 Declaração de Bus:
 Exemplos:
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
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
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
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
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
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
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Números
 Números negativos – Especificados com o sinal “–”
 Caracteres especiais
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
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
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
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
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.
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
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
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Outros Operadores
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Ordem de Operadores
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
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
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.
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.
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Bloco always - Exemplo
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;
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Exemplo “Blocking” vs. “Non-blocking”
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
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.
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
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.
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
If…else – Detector de paridade
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
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
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Codificador de Prioridade de 8 Níveis
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Case
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
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”).
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Descodificador 3 para 8 níveis
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Loop
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Ciclo While
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Ciclo for
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Exemplo: Função Lógica
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Descodificador de 7 Segmentos
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Descodificador de 7 Segmentos
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Multiplexer
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Saída Tristate
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Circuitos Sequenciais - Registos
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Registo com reset
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Registo com reset assíncrono
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Registo com reset assíncrono e
enable
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Registo de 8 bits com reset
assíncrono e enable
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
“Preset” e “clear” Síncrono e assíncrono
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Clock Enable
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Contador de 8 bits
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Contador de 8 bits – V2
Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013
Contador de 8 bits – V2

Mais conteúdo relacionado

Destaque

Conhecendo o Windows Server 2012
Conhecendo o Windows Server 2012Conhecendo o Windows Server 2012
Conhecendo o Windows Server 2012
Eduardo Sena
 
Manual do Professor de Empreendedorismo
Manual do Professor de EmpreendedorismoManual do Professor de Empreendedorismo
Manual do Professor de Empreendedorismo
josedornelas
 

Destaque (12)

Empresa Junior e o Empreendedorismo - Estudos de Caso
Empresa Junior e o Empreendedorismo - Estudos de CasoEmpresa Junior e o Empreendedorismo - Estudos de Caso
Empresa Junior e o Empreendedorismo - Estudos de Caso
 
SQL Server 2012
SQL Server 2012SQL Server 2012
SQL Server 2012
 
T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012
 
Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008
 
Ccna-640-802_prova final_mod_II
Ccna-640-802_prova final_mod_IICcna-640-802_prova final_mod_II
Ccna-640-802_prova final_mod_II
 
Ccna-640-802_prova final_mod_III
Ccna-640-802_prova final_mod_IIICcna-640-802_prova final_mod_III
Ccna-640-802_prova final_mod_III
 
Treinamento de SQL Básico
Treinamento de SQL BásicoTreinamento de SQL Básico
Treinamento de SQL Básico
 
Marketing – magia e sedução
Marketing – magia e seduçãoMarketing – magia e sedução
Marketing – magia e sedução
 
Conhecendo o Windows Server 2012
Conhecendo o Windows Server 2012Conhecendo o Windows Server 2012
Conhecendo o Windows Server 2012
 
Ccna-640-802_prova final_mod_I
Ccna-640-802_prova final_mod_ICcna-640-802_prova final_mod_I
Ccna-640-802_prova final_mod_I
 
Manual do Professor de Empreendedorismo
Manual do Professor de EmpreendedorismoManual do Professor de Empreendedorismo
Manual do Professor de Empreendedorismo
 
Projetos elétricos residenciais - Completo
Projetos elétricos residenciais  - CompletoProjetos elétricos residenciais  - Completo
Projetos elétricos residenciais - Completo
 

Semelhante a Linguagens descritivas hardhare_parte1

Curriculo Paulo_Alonso
Curriculo Paulo_AlonsoCurriculo Paulo_Alonso
Curriculo Paulo_Alonso
Paulo Alonso
 
Siemens dcs-vs-plc-scada-como-saber-quando-usar-cada-um-deles-v2-w1-rev-7
Siemens dcs-vs-plc-scada-como-saber-quando-usar-cada-um-deles-v2-w1-rev-7Siemens dcs-vs-plc-scada-como-saber-quando-usar-cada-um-deles-v2-w1-rev-7
Siemens dcs-vs-plc-scada-como-saber-quando-usar-cada-um-deles-v2-w1-rev-7
aob
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
eros.viggiano
 
Planeamentoprojectoredes 110313171459-phpapp01
Planeamentoprojectoredes 110313171459-phpapp01Planeamentoprojectoredes 110313171459-phpapp01
Planeamentoprojectoredes 110313171459-phpapp01
Elisa Dias
 
Schneider pan5fautomacao0409
Schneider pan5fautomacao0409Schneider pan5fautomacao0409
Schneider pan5fautomacao0409
croyf
 
SWBR2014 - Solução Inovadora de Smart Energy com 6LowPan e ZigBee - Artur Pol...
SWBR2014 - Solução Inovadora de Smart Energy com 6LowPan e ZigBee - Artur Pol...SWBR2014 - Solução Inovadora de Smart Energy com 6LowPan e ZigBee - Artur Pol...
SWBR2014 - Solução Inovadora de Smart Energy com 6LowPan e ZigBee - Artur Pol...
Marcia C. Santos
 

Semelhante a Linguagens descritivas hardhare_parte1 (20)

Curriculo Paulo_Alonso
Curriculo Paulo_AlonsoCurriculo Paulo_Alonso
Curriculo Paulo_Alonso
 
Automação projeto de semáforo
Automação projeto de semáforoAutomação projeto de semáforo
Automação projeto de semáforo
 
Referencial redes 481
Referencial redes 481Referencial redes 481
Referencial redes 481
 
Siemens dcs-vs-plc-scada-como-saber-quando-usar-cada-um-deles-v2-w1-rev-7
Siemens dcs-vs-plc-scada-como-saber-quando-usar-cada-um-deles-v2-w1-rev-7Siemens dcs-vs-plc-scada-como-saber-quando-usar-cada-um-deles-v2-w1-rev-7
Siemens dcs-vs-plc-scada-como-saber-quando-usar-cada-um-deles-v2-w1-rev-7
 
[CLASS 2014] Palestra Técnica - Silvio Rocha
[CLASS 2014] Palestra Técnica - Silvio Rocha[CLASS 2014] Palestra Técnica - Silvio Rocha
[CLASS 2014] Palestra Técnica - Silvio Rocha
 
Apresentação Closed-loop Automação Industrial - 2022
Apresentação Closed-loop Automação Industrial - 2022Apresentação Closed-loop Automação Industrial - 2022
Apresentação Closed-loop Automação Industrial - 2022
 
Tese de mestrado
Tese de mestradoTese de mestrado
Tese de mestrado
 
Família de controladores Allen Bradley 2016
Família de controladores Allen Bradley 2016Família de controladores Allen Bradley 2016
Família de controladores Allen Bradley 2016
 
Sistemas de proteção de perímetro
Sistemas de proteção de perímetroSistemas de proteção de perímetro
Sistemas de proteção de perímetro
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Manual SLC500.pdf
Manual SLC500.pdfManual SLC500.pdf
Manual SLC500.pdf
 
Cronograma Treinamento 2017
Cronograma Treinamento 2017Cronograma Treinamento 2017
Cronograma Treinamento 2017
 
Separando arquitetura e negócios em sistemas de gestão
Separando arquitetura e negócios em sistemas de gestãoSeparando arquitetura e negócios em sistemas de gestão
Separando arquitetura e negócios em sistemas de gestão
 
Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01
 
Trabalho - Projeto redes
Trabalho - Projeto redesTrabalho - Projeto redes
Trabalho - Projeto redes
 
EET_LIC EngInfor_Ch02.pdf
EET_LIC EngInfor_Ch02.pdfEET_LIC EngInfor_Ch02.pdf
EET_LIC EngInfor_Ch02.pdf
 
Planeamentoprojectoredes 110313171459-phpapp01
Planeamentoprojectoredes 110313171459-phpapp01Planeamentoprojectoredes 110313171459-phpapp01
Planeamentoprojectoredes 110313171459-phpapp01
 
Schneider pan5fautomacao0409
Schneider pan5fautomacao0409Schneider pan5fautomacao0409
Schneider pan5fautomacao0409
 
Parallel Programming no .NET 4.0
Parallel Programming no .NET 4.0Parallel Programming no .NET 4.0
Parallel Programming no .NET 4.0
 
SWBR2014 - Solução Inovadora de Smart Energy com 6LowPan e ZigBee - Artur Pol...
SWBR2014 - Solução Inovadora de Smart Energy com 6LowPan e ZigBee - Artur Pol...SWBR2014 - Solução Inovadora de Smart Energy com 6LowPan e ZigBee - Artur Pol...
SWBR2014 - Solução Inovadora de Smart Energy com 6LowPan e ZigBee - Artur Pol...
 

Linguagens descritivas hardhare_parte1

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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;
  • 6. 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)
  • 7. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Níveis de Abstracção em VHDL Aumento do detalhe de realização e complexidade Transistor Gate RTL Arquitectura Algoritmo Aumento da Abstração comportamental Sistema
  • 8. 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
  • 9. 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
  • 10. 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)
  • 11. 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
  • 12. 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.
  • 13. 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
  • 14. 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.
  • 15. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Componente: Entidade (VHDL-87)  Omitir entity no fim da declaração.
  • 16. 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)
  • 17. 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.
  • 18. 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
  • 19. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Componente: Arquitectura (Behaviour)
  • 20. 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
  • 21. 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
  • 22. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Componente: Arquitectura(Structural) I
  • 23. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Componente: Arquitectura(Structural) II
  • 24. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Componente: Arquitectura(Structural) III
  • 25. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Componente: Arquitectura(Structural) IV
  • 26. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Componente: Arquitectura(Structural) V
  • 27. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Componente: Arquitectura(Structural) VI
  • 28. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Componente: Arquitectura(Structural) VII
  • 29. 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.
  • 30. 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;
  • 31. 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
  • 32. 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;
  • 33. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Modelo Estrutural  Funcionalidade e estrutura do circuito;  Chama hardware específico;
  • 34. 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.
  • 35. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 RTL (Register Transfer Level)
  • 36. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Síntese e Simulação RTL
  • 37. 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
  • 38. 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;
  • 39. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Modelo VERILOG HDL - Exemplo  Multiplicador
  • 40. 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;>
  • 41. 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
  • 42. 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;
  • 43. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Tipo net  Declaração de Bus:  Exemplos:
  • 44. 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
  • 45. 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
  • 46. 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
  • 47. 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
  • 48. 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
  • 49. 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
  • 50. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Números  Números negativos – Especificados com o sinal “–”  Caracteres especiais
  • 51. 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
  • 52. 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
  • 53. 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
  • 54. 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
  • 55. 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.
  • 56. 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
  • 57. 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
  • 58. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Outros Operadores
  • 59. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Ordem de Operadores
  • 60. 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
  • 61. 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
  • 62. 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.
  • 63. 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.
  • 64. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Bloco always - Exemplo
  • 65. 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;
  • 66. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Exemplo “Blocking” vs. “Non-blocking”
  • 67. 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
  • 68. 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.
  • 69. 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
  • 70. 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.
  • 71. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 If…else – Detector de paridade
  • 72. 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
  • 73. 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
  • 74. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Codificador de Prioridade de 8 Níveis
  • 75. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Case
  • 76. 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
  • 77. 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”).
  • 78. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Descodificador 3 para 8 níveis
  • 79. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Loop
  • 80. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Ciclo While
  • 81. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Ciclo for
  • 82. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Exemplo: Função Lógica
  • 83. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Descodificador de 7 Segmentos
  • 84. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Descodificador de 7 Segmentos
  • 85. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Multiplexer
  • 86. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Saída Tristate
  • 87. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Circuitos Sequenciais - Registos
  • 88. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Registo com reset
  • 89. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Registo com reset assíncrono
  • 90. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Registo com reset assíncrono e enable
  • 91. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Registo de 8 bits com reset assíncrono e enable
  • 92. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 “Preset” e “clear” Síncrono e assíncrono
  • 93. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Clock Enable
  • 94. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Contador de 8 bits
  • 95. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Contador de 8 bits – V2
  • 96. Mestrado em Controlo e Eletrónica Indústrial – Electronica Digital Pedro Correia -2013 Contador de 8 bits – V2