a2_introdução ao vhdl
Post on 16-Oct-2015
21 Views
Preview:
TRANSCRIPT
-
Projeto a partir de VHDL
Prof. Thiago Felski Pereira Universidade do Sul de Santa Catarina UNISUL Slides utilizados para apresentao dos conceitos iniciais de VHDL no LEDS/UNIVALI Adaptado da palestra da EMICRO 2007 do prof. Dr. Cesar Albenes Zeferino
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Tpicos
Introduo ao VHDL
Noes Bsicas de VHDL
Pacotes e Bibliotecas
Sinais Variveis
Modelagem de Circuitos Combinacionais em VHDL
Modelagem de Circuitos Seqenciais em VHDL
Consideraes Finais
-
Introduo ao VHDL
Definio Tipos de modelagem Fluxos de simulao e sntese Aspectos gerais
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
O que VHDL?
uma linguagem de descrio de hardware
Desenvolvida a partir da necessidade do Departamento de
Defesa (DoD) dos EUA para unificar a documentao de
projetos de seus fornecedores no contexto do programa
VHSIC, substituindo os diagrama esquemticos
VHDL = VHSIC HDL
VHSIC = Very High Speed Integrated Circuit
HDL = Hardware Description Language
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
O VHDL ou a VHDL?
Assim como toda e qualquer linguagem de programao,
em portugus, costuma-se masculinizar o gnero da linguagem
o C
o Delphi
o JAVA
o assembly
o VHDL
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Cronologia e uso do VHDL
Marcos histricos
1980: criao da linguagem
1987: padronizao pelo IEEE (IEEE Std 1076-1987)
1993: reviso do padro
2008: modernizao da linguagem (IEEE Std 1076-2008)
Uso
Documentao
Simulao
Sntese
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Tipos de modelagem
Estrutural
O que
Comportamental
O que faz
ENTITY mux_2x1 IS
PORT (a, b : IN BIT;
sel : IN BIT;
s : OUT BIT);
END mux;
ARCHITECTURE structural OF mux_2x1 IS
BEGIN
s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Simulao funcional de um modelo VHDL
Biblioteca
VHDL
Modelo
VHDL
Testbench
VHDL
Modelo de
Simulao Vetores
de teste
Opcional
Diagrama de
Formas de Onda
Sada em
Formato texto Simulao
VHDL
Compilador
de Simulao
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Sntese de um modelo VHDL
Biblioteca
VHDL
Modelo
VHDL
Arquivo de
Tecnologia
Netlist
Opcional
Simulao
VHDL
com timing
Compilador
de Sntese
Anlise de
Timing Posicionamento
e Roteamento
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Aspectos gerais do VHDL
Dois conjuntos de construtores
Simulao
Sntese
Caractersticas
baseado em palavras reservadas (BEGIN, END, ...)
insensvel caixa (BEGIN = Begin = begin)
Declaraes terminadas por ponto e vrgula ;
Comentrios marcados precedidos por duplo hfen --
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Aspectos gerais do VHDL
Ex: Editor de texto com destaque coloridos de sintaxe
Palavras reservadas
Comentrios
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Resumo
VHDL uma linguagem de descrio de hardware para
Documentao
Simulao
Sntese
Foi criada no contexto de um projeto do DoD-USA e hoje
uma HDL padronizada pelo IEEE
-
Noes Bsicas de VHDL
Entidade Arquitetura Configurao Componentes
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Estrutura de um modelo VHDL bsico
Modelo VHDL = Entidade + Arquitetura
Entidade (ENTITY)
Define a interface com o mundo externo (portas de entrada e
sada)
Arquitetura (ARCHITECTURE):
Define a implementao do projeto (ex. equaes lgicas)
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Estrutura de um modelo VHDL bsico
ENTITY IS
...
END ;
ARCHITECTURE OF IS
...
END ;
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Exemplo: Multiplexador 2-para-1 (mux_2x1)
s a
b
sel
0
1 s
a
b
0
0
1
sel s
0 a
1 b
Tabela verdade
s = sel.a + sel.b
Equao lgica
if (sel == 0)
s = a;
else
s = b;
Funcionalidade (C)
s a
b
1
0
1
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Exemplo: Multiplexador 2-para-1 (mux_2x1)
Diagrama esquemtico
s = sel.a + sel.b
sel.a
sel.b
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Exemplo: Multiplexador 2-para-1 (mux_2x1)
Diagrama de formas de onda
sel = 0 sel = 1
sel
a
b s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Modelando o mux_2x1 em VHDL
ARCHITECTURE structural OF mux_2x1 IS
BEGIN
s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Modelando o mux_2x1 em VHDL
ENTIDADE
ARQUITETURA
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Modelando o mux_2x1 em VHDL
ENTIDADE
ARQUITETURA
ENTITY mux_2x1 IS
PORT (a, b : IN BIT;
sel : IN BIT;
s : OUT BIT);
END mux_2x1;
ARCHITECTURE structural OF mux_2x1 IS
BEGIN
s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Entidade (ENTITY)
onde so declarados os parmetros (GENERIC) da
entidade e os seus sinais de entrada e de sada (PORT)
ENTITY IS
GENERIC (
: STRING := ;
: INTEGER :=
);
PORT (
: IN BIT;
: INOUT BIT;
: BUFFER BIT;
: OUT BIT
);
END ;
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Entidade (ENTITY)
Parmetros (GENERIC)
Permite passar informaes a um modelo. Ex:
Especificao de atrasos de propagao (somente simulao)
Especificao de largura de canais em modelos parametrizveis
Podem ser definidos com valores defaults e modificados por
instncias superiores em uma descrio hierrquica
Estrutura geral da declarao de um parmetro GENERIC
: := ;
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Entidade (ENTITY)
Sinais da interface (PORTS)
Entradas e sadas do modelo
Existem quatro modos de port
IN entrada
OUT sada
BUFFER sada com realimentao interna
INOUT bidirecional
SIGNAL : ;
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Entidade (ENTITY)
Exemplo
ou
ENTITY mux_2x1 IS
PORT (SIGNAL a, b : IN BIT; -- data inputs
SIGNAL sel : IN BIT; -- selector
SIGNAL s : OUT BIT); -- data output
END mux_2x1;
ENTITY mux_2x1 IS
PORT (a, b : IN BIT; -- data inputs
sel : IN BIT; -- selector
s : OUT BIT); -- data output
END mux_2x1;
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Arquitetura (ARCHITECTURE)
Descreve a estrutura e/ou a funcionalidade do modelo
Tem que ser associada a uma entidade. Ex:
Uma entidade pode ter mltiplas arquiteturas
Estilos de arquitetura
Comportamental
Estrutural
Hbrida
ARCHITECTURE structural OF mux_2x1 IS
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Arquitetura (ARCHITECTURE)
Um arquitetura constituda por processos
Tipos de processos
Implcito (em ingls, usa-se implied = implicado)
Uma declarao de atribuio a um sinal
Explcito
Consiste de declaraes seqenciais
Os mltiplos processos de uma arquitetura so
executados de forma concorrente
No importa a ordem em que so declarados no modelo
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Arquitetura (ARCHITECTURE)
ARCHITECTURE OF IS
BEGIN
-- Concurrent Signal Assignments (implied processes)
-- ...
END ; --(1076-1987 Version)
END ARCHITECTURE; --(1076-1993 Version)
Estrutura mnima de uma descrio estrutural
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Arquitetura (ARCHITECTURE)
Exemplo
ARCHITECTURE structural OF mux_2x1 IS
BEGIN
s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Arquitetura (ARCHITECTURE)
ARCHITECTURE OF IS
BEGIN
-- Process statements (explicit processes)
-- ...
END ; --(1076-1987 Version)
END ARCHITECTURE; -- (1076-1993 Version)
Estrutura mnima de uma descrio comportamental
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Arquitetura (ARCHITECTURE)
Exemplo
ARCHITECTURE behavior OF mux_2x1 IS
BEGIN
PROCESS(a,b,sel)
BEGIN
IF (sel='0') THEN
s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Arquitetura (ARCHITECTURE)
ARCHITECTURE OF IS
-- Signal Declarations
-- Constant Declarations
-- Type Declarations
-- Component Declarations
-- Subtype Declarations
-- Attribute Declarations
-- Attribute Specifications
-- Subprogram Declarations
-- Subprogram Body
BEGIN
-- Process Statements
-- Concurrent Procedural Calls
-- Concurrent Signal Assignment
-- Component Instantiation Statements
-- Generate Statements
END ; --(1076-1987 Version)
END ARCHITECTURE; -- (1076-1993 Version)
Estrutura genrica
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Configurao (CONFIGURATION)
Usada para fazer associaes em modelos
Associar uma entidade a um arquitetura
Associar um componente a um par entidade-arquitetura
Largamente usada em ambientes de simulao
Facilita a explorao do espao de projeto
Uso limitado em ambientes de sntese (nem sempre
suportada)
CONFIGURATION OF IS
FOR
END FOR;
END; -- (1076-1987 version)
END CONFIGURATION; -- (1076-1993 version)
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Configurao (CONFIGURATION)
Exemplos
CONFIGURATION config OF mux_2x1 IS
FOR structural
END FOR;
END;
CONFIGURATION config OF mux_2x1 IS
FOR behavior
END FOR;
END;
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Exemplo de modelo ENTITY mux_2x1 IS PORT (a, b : IN BIT; -- data inputs
sel : IN BIT; -- selector
s : OUT BIT); -- data output
END mux_2x1;
-------------------------------------
ARCHITECTURE structural OF mux_2x1 IS
BEGIN
s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Exemplo de modelo ENTITY mux_2x1 IS PORT (a, b : IN BIT; -- data inputs
sel : IN BIT; -- selector
s : OUT BIT); -- data output
END mux_2x1;
-------------------------------------
ARCHITECTURE structural OF mux_2x1 IS
BEGIN
s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
mux_2x1.vhd
Alternativas de modelagem:
em um nico arquivo ou em mltiplos arquivos
ENTITY mux_2x1 IS
PORT (a, b : IN BIT; -- data inputs
sel : IN BIT; -- selector
s : OUT BIT); -- data output
END mux_2x1;
-------------------------------------
ARCHITECTURE structural OF mux_2x1 IS
BEGIN
s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Alternativas de modelagem:
em um nico arquivo ou em mltiplos arquivos
ou
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Componente (COMPONENT)
Um modelo VHDL pode ser implementado de forma
hierrquica, utilizando instncias de componentes baseados
em outros modelos VHDL
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Componente (COMPONENT)
Declarao do componente
COMPONENT IS
PORT ( : ;
...
: );
END COMPONENT;
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Componente (COMPONENT)
Declarao do componente x declarao de entidade
COMPONENT IS
PORT ( : ;
...
: );
END COMPONENT;
ENTITY IS
PORT ( : ;
...
: );
END ;
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Componente (COMPONENT)
Instanciao do componente
Mapeamento dos ports da instncia do componente com os sinais
do modelo de nvel mais alto
Mapeamento posicional (feito na ordem exata da declarao)
Mapeamento nomeado (pode ser feito em qualquer ordem)
:
PORT MAP(,..., );
:
PORT MAP( => ,
...
=> );
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Componente (COMPONENT)
Onde declarar e instanciar o componente?
Na arquitetura do modelo
ARCHITECTURE OF IS
-- ...
-- Component Declarations
-- ...
BEGIN
-- ...
-- Component Instantiation Statements
-- ...
END ; --(1076-1987 Version)
END ARCHITECTURE; -- (1076-1993 Version)
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Exemplo: Circuito com dois mux_2x1 (mux_2x1_duo)
s0 a0
b0
sel
0
1
s1 a1
b1
0
1
ENTITY mux_2x1_duo IS
PORT (SIGNAL a0, b0 : IN BIT; -- data inputs
SIGNAL a1, b1 : IN BIT; -- data inputs
SIGNAL sel : IN BIT; -- selector
SIGNAL s0, s1 : OUT BIT); -- data output
END mux_2x1_duo;
ARCHITECTURE structural OF mux_2x1_duo IS
-- Component declaration
COMPONENT mux_2x1
PORT (SIGNAL a, b : IN BIT; -- data inputs
SIGNAL sel : IN BIT; -- selector
SIGNAL s : OUT BIT); -- data output
END COMPONENT;
BEGIN
-- Component instantiation
u0 : mux_2x1 PORT MAP (a0, b0, sel, s0);
u1 : mux_2x1 PORT MAP (sel => sel,
a => a1,
b => b1,
s => s1);
END structural;
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Resumo
Um modelo VHDL formado por
Entidade (ENTITY): interface
Arquitetura (ARCHITECTURE): corpo do modelo
A arquitetura pode ser modelada de forma
Estrutural: O que o circuito
Comportamental: O que o circuito faz
Hbrida (estrutural + comportamental)
Um modelo pode ter mltiplas arquiteturas (selecionadas
pela configurao)
Um modelo pode ser implementado usando instncias de
outros modelos (componentes)
-
Pacotes e Bibliotecas
Pacotes
Bibliotecas
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Pacote (PACKAGE)
uma forma conveniente para armazenar e usar informaes ao longo de um modelo completo (tipicamente com mltiplas entidades)
Um pacote consiste de:
Declarao do pacote
Declarao de tipos
Declarao de subprogramas
Corpo do pacote (opcional)
Definio de subprogramas (se declarados)
VHDL possui dois pacotes implcitos (built in)
Standard
Textio
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Pacote (PACKAGE)
PACKAGE IS
-- Constant Declarations
-- Type Declarations
-- Signal Declarations
-- Subprogram Declarations
-- Component Declarations
END ; -- (1076-1987)
END PACKAGE ; -- (1076-1993)
PACKAGE BODY IS
-- Constant Declarations
-- Type Declarations
-- Subprogram Body
END ; -- (1076-1987)
END PACKAGE BODY ; -- (1076-1993)
Estrutura genrica
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Exemplo: Pacote com a declarao do componente mux_2x1
PACKAGE my_package IS
-- Component declaration
COMPONENT mux_2x1
PORT (SIGNAL a, b : IN BIT; -- data inputs
SIGNAL sel : IN BIT; -- selector
SIGNAL s : OUT BIT); -- data output
END COMPONENT;
END my_package;
-- There is no package body
Declarao
do
componente
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Bibliotecas
Contm um ou mais pacotes
Bibliotecas de recursos
Pacotes padro
Pacotes IEEE
Pacotes especficos da ferramenta EDA (ex. pacotes Altera)
Qualquer biblioteca de unidades de projeto que so referenciadas em um projeto
Biblioteca de trabalho (WORK)
Biblioteca na qual a unidade de projeto corrente est sendo compilada
Bibliotecas implcitas: WORK e STD
No precisam ser referenciadas
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Referenciando uma biblioteca ou um pacote
Bibliotecas implcitas: WORK e STD
Clusula LIBRARY
Define um nome simblico da biblioteca referenciada, o qual
aponta para um caminho de diretrios
LIBRARY ;
Clusula USE
Especifica o pacote e o objeto a serem utilizados da biblioteca
A palavra reservada ALL permite referenciar todos os objetos do
pacote
USE ..;
USE ..ALL;
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Exemplo: Modelagem o mux_2x1_duo com o mux_2x1 declarado no pacote my_package
LIBRARY WORK;
USE WORK.my_package.ALL;
ENTITY mux_2x1_duo IS
PORT (SIGNAL a0, b0 : IN BIT; -- data inputs
SIGNAL a1, b1 : IN BIT; -- data inputs
SIGNAL sel : IN BIT; -- selector
SIGNAL s0, s1 : OUT BIT); -- data output
END mux_2x1_duo;
ARCHITECTURE structural OF mux_2x1_duo IS
BEGIN
u0 : mux_2x1 PORT MAP(a0, b0, sel, s0);
u1 : mux_2x1 PORT MAP(a1, b1, sel, s1);
END structural;
Instncias
do
componente
Referncia biblioteca WORK (opcional)
Referncia ao pacote my_package
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Biblioteca STD
Contm os seguintes pacotes
STANDARD
Suporta os tipos: BIT, BOOLEAN, INTEGER, REAL e TIME)
Funes de operadores para os tipos suportados
TEXTIO
Suporte a operaes com arquivos
uma biblioteca implcita e no precisa ser referenciada
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Biblioteca STD
Tipos de dados escalares do pacote STANDARD
No tipo INTEGER conveniente limitar a faixa de representao para
economizar recursos. Ex:
SIGNAL int_8bit : INTEGER RANGE 0 TO 255;
Classe Tipo Valores Exemplo
Enumerado BIT Um e zero 1, 0
BOOLEAN Verdadeiro e falso TRUE, FALSE
CHARACTER Caracteres ASCII a, b, c,..., A, B, C
Numrico INTEGER -231 x 231-1 19, 8#57#, 16#A2#, 2#11#
REAL -3.65x1047 x +3.65x1047 2.63, 1.75E+2, 16#8.C#
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Biblioteca STD
Tipos de dados compostos do pacote STANDARD
Na declarao de um tipo composto, seus limites so definidos por TO
e DOWNTO
Exemplos
CONSTANT X: BIT_VECTOR(0 TO 3) := "1011"
CONSTANT X: BIT_VECTOR(3 DOWNTO 0) := "1101"
Classe Tipo Valores Exemplo
Vetor BIT_VECTOR Tipo BIT 1110, B11_10, O32, XA2
STRING Tipo CHARACTER teste, oi mundo
bit 0
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Biblioteca IEEE
Contm os seguintes pacotes
STD_LOGIC_1164
Descreve os tipos STD_LOGIC e STD_LOGIC_VECTOR e funes
relacionadas
STD_LOGIC_ARITH
Descreve os tipos SIGNED e UNSIGNED, funes de converso,
aritmticas e relacionais
STD_LOGIC_SIGNED e STD_LOGIC_UNSIGNED
Fazem referncia aos pacotes NUMERIC_BIT e NUMERIC_STD os
quais descrevem funes que permitem ferramenta de sntese usar os tipos BIT_VECTOR e STD_LOGIC_VECTOR para sintetizar os tipos
SIGNED e UNSIGNED
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Biblioteca IEEE
Tipos de dados do pacote STD_LOGIC_1164
STD_LOGIC
9 valores lgicos (U, X, 0, 1, Z, W, L, H, -)
Possui funes de resoluo associadas para a modelagem de
mltiplos drivers acionando o mesmo sinal (ex. barramento)
STD_LOGIC_VECTOR
Vetor de elementos STD_LOGIC
STD_ULOGIC
No possui funes de resoluo
STD_ULOGIC_VECTOR
Vetor de elementos STD_ULOGIC
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Biblioteca IEEE
Funes disponveis no pacote STD_LOGIC_1164
Operadores lgicos
and, or, nand, nor, xor, xnor, not
Funes de converso entre BIT, STD_LOGIC e STD_ULOGIC
To_bit, To_bitvector, To_StdLogicVector, e outras
Funes de deteco de borda de subida
rising_edge e falling_edge
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Biblioteca IEEE
Tipos de dados do pacote STD_LOGIC_UNSIGNED
UNSIGNED
Nmero inteiro sem sinal
Composto por elementos do tipo STD_LOGIC (ou BIT)
Os elementos mais significativos so posicionados esquerda
Tipos de dados do pacote STD_LOGIC_SIGNED
SIGNED
Nmero inteiro com sinal
Representao em complemento de dois
O bit mais esquerda o bit de sinal
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Biblioteca IEEE
Funes disponveis nos pacotes STD_LOGIC_SIGNED e
STD_LOGIC_SIGNED
Tipo do operador Nome do operador (funo)
Lgico and, or, nand, nor, xor, xnor
Relacional =, /=, =
Adio e subtrao +,
Concatenao &
Multiplicao e diviso *, /, mod, rem
Sinalizao
Miscelnea **, abs e not
Deslocamento shift_right, shift_left, srl, sll
Rotao rotate_right,rotate_left, ror, rol
Converso to_integer, to_unsigned, to_signed
... ...
-
Sinais e Variveis
Sinais
Processos implcitos
Processos explcitos
Variveis
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Sinais
Representam interconexo fsica (fio) que realizam a
comunicao de informaes entre os processos
Declarao
Declarados na entidade, na arquitetura ou em um pacote
ENTIDADE
ARQUITETURA
Processo A Processo B
sinal
sinal
sinal sinal
SIGNAL : ;
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Atribuindo valores a sinais (processos implcitos)
A atribuio feita usando
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Atribuindo valores a sinais
Exemplo
Atribuindo valor a todos os bits (usar aspas duplas)
temp
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Tipos de atribuio a sinais concorrentes Exemplo: mux_2x1
Atribuio simples
Atribuio condicional
Atribuio selecionada
s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Processos explcitos
Necessrios na implementao de funes compostas por atribuio seqenciais (ex. if-then-else)
: -- (optional)
PROCESS ()
-- Constant declarations
-- Type declarations
-- Variable declarations
BEGIN
-- Signal Assignment Statement (optional)
-- Variable Assignment Statement (optional)
-- Procedure Call Statement (optional)
-- If Statement (optional)
-- Case Statement (optional)
-- Loop Statement (optional)
END PROCESS ;
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Processos explcitos
Um processo executado
infinitamente se no for
quebrado por uma declarao WAIT ou por uma
lista de sensibilidade
Uma lista de sensibilidade infere uma declarao WAIT
no final do processo
Um processo pode ter mltiplos WAIT, mas no
pode ter um WAIT e uma
lista de sensibilidade
As atribuies a sinais em
um processo so efetivadas
ao trmino da sua execuo
ARCHITECTURE behavior OF mux_2x1 IS
BEGIN
PROCESS(a,b,sel)
BEGIN
IF (sel='0') THEN
s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Variveis
Declaradas dentro de processos e constituem-se em
objetos de armazenamento temporrio
Declarao
A atribuio feita usando :=
So atualizadas no momento da atribuio (no ao trmino
do processo, como os sinais)
:= ;
VARIABLE : ;
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Atribuindo valores a variveis
Exemplo
ARCHITECTURE behavior OF mux_2x1 IS
VARIABLE temp := BIT;
BEGIN
PROCESS(a,b,sel)
BEGIN
IF (sel='0') THEN
temp := a;
ELSE
temp := b;
END IF;
s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Sinais x Variveis
Sinal Varivel
Atribuio
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Atribuindo valores a variveis
Exemplo
Atribuindo valor a todos os bits (usar aspas duplas)
temp := 10101010;
temp := XAA;
Atribuindo valor a um nico bit (usar aspas simples)
temp(7) := 1;
Atribuindo valor a um grupo de bits
temp (7 downto 4):= 1010;
VARIABLE temp : STD_LOGIC_VECTOR (7 DOWNTO 0);
-
Modelagem de Circuitos Combinacionais em VHDL
Definio Multiplexadores Somadores Comparadores
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Circuitos Combinacionais
So aqueles cujas sadas dependem exclusivamente do
estado atual das entradas
Exemplos:
Codificadores e decodificadores
Multiplexadores e demultiplexadores
Somadores e subtratores
Unidade Aritmtica e Lgica
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Multiplexador 2-para-1 com canais de W bits (mux_2x1_Wbits)
s(W-1..0) a (W-1..0)
b (W-1..0)
sel
0
1
s(0) a(0)
b(0)
sel
0
1
s(w-1) a(w-1)
b(w-1)
0
1
Associao em paralelo
de mux_2x1
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Modelando o mux_2x1_Wbits Entidade
ENTITY mux_2x1_Wbits IS
GENERIC (W : NATURAL := 16);
PORT (a, b : IN BIT_VECTOR (W-1 DOWNTO 0); -- data inputs
sel : IN BIT; -- selector
s : OUT BIT_VECTOR (W-1 DOWNTO 0)); -- data output
END mux_2x1_Wbits;
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Modelando o mux_2x1_Wbits Arq. Estrutural
ARCHITECTURE structural OF mux_2x1_Wbits IS
BEGIN
f0: FOR i IN (W-1) DOWNTO 0 GENERATE
s(i)
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Modelando o mux_2x1_Wbits Arq. Estrutural
ARCHITECTURE structural OF mux_2x1_Wbits IS
BEGIN
f0: FOR i IN 3 DOWNTO 0 GENERATE
s(i)
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Modelando o mux_2x1_Wbits Arq. Comportmental
Igual do mux_2x1
ARCHITECTURE behavior OF mux_2x1_Wbits IS
BEGIN
PROCESS(a,b,sel)
BEGIN
IF (sel='0') THEN
s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Multiplexador 4-para-1 com canais de 1 bit
s0
a
b
sel(1..0)
0
1
c
d
2
3
x
a
b
Sel(0)
0
1
y c
d
0
1
0
1
Sel(1)
s
Associao em srie
de mux_2x1
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Modelando o mux_4x1 Entidade
Vrias arquiteturas possveis
Baseada em equaes lgicas
Associao em srie de mux_2x1
WHEN ... ELSE
WITH ... SELECT
IF-THEN-ELSE
CASE
ENTITY mux_4x1 IS
PORT (a, b, c, d : IN BIT; -- data inputs
sel : IN BIT_VECTOR(1 DOWNTO 0); -- selector
s : OUT BIT); -- data output
END mux_4x1;
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Modelando o mux_4x1 Arquitetura 1
Baseada em equaes lgicas
ARCHITECTURE arch_1 OF mux_4x1 IS
BEGIN
s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Modelando o mux_4x1 Arquitetura 2
Associao em srie de mux_2x1
ARCHITECTURE arch_2 OF mux_4x1 IS
-- Component declaration
COMPONENT mux_2x1
PORT (SIGNAL a, b : IN BIT; -- data inputs
SIGNAL sel : IN BIT; -- selector
SIGNAL s : OUT BIT); -- data output
END COMPONENT;
-- Signals declaration
SIGNAL x,y : BIT;
BEGIN
-- Component instantiation
u0 : mux_2x1 PORT MAP (a, b, sel(0), x);
u1 : mux_2x1 PORT MAP (c, d, sel(0), y);
u3 : mux_2x1 PORT MAP (x, y, sel(1), s);
END arch_2;
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Modelando o mux_4x1 Arquitetura 3
WHEN ... ELSE
ARCHITECTURE arch_3 OF mux_4x1 IS
BEGIN
s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Modelando o mux_4x1 Arquitetura 4
WITH ... SELECT
ARCHITECTURE arch_4 OF mux_4x1 IS
BEGIN
WITH sel SELECT
s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Modelando o mux_4x1 Arquitetura 5
IF-THEN-ELSE ARCHITECTURE arch_5 OF mux_4x1 IS
BEGIN
PROCESS(a,b,c,d,sel)
BEGIN
IF sel(1) = '0' THEN
IF sel(0) = '0' THEN
s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Modelando o mux_4x1 Arquitetura 6
CASE ARCHITECTURE arch_6 OF mux_4x1 IS
BEGIN
PROCESS(a,b,c,d,sel)
BEGIN
CASE sel IS
WHEN "00" => s s s s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Circuitos somadores
Meio somador (half adder) Arquitetura estrutural
ENTITY half_adder IS
PORT (a, b : IN BIT; -- data inputs
s : OUT BIT; -- data output
cout : OUT BIT); -- carry out
END half_adder;
--------------------------------------------------
ARCHITECTURE structural OF half_adder IS
BEGIN
s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Circuitos somadores
RTL do meio somador (half adder)
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Circuitos somadores
Somador completo (full adder) Arquitetura estrutural
ENTITY full_adder IS
PORT (a, b : IN BIT; -- data inputs
cin : IN BIT; -- carry in
s : OUT BIT; -- data output
cout : OUT BIT); -- carry out
END full_adder;
--------------------------------------------------
ARCHITECTURE structural OF full_adder IS
BEGIN
s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Circuitos somadores
RTL do somador completo (full adder)
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Circuitos somadores
Somador ripple carry de W bits Entidade
ENTITY adder_Wbits IS
GENERIC(W : NATURAL := 4);
PORT (a, b : IN BIT_VECTOR(W-1 DOWNTO 0); -- data inputs
cin : IN BIT; -- carry in
s : OUT BIT_VECTOR(W-1 DOWNTO 0); -- data output
cout : OUT BIT); -- carry out
END adder_wbits;
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Circuitos somadores
Somador ripple carry de W bits Arq. Estrutural 1
ARCHITECTURE arch_1 OF adder_Wbits IS
-- Signals declaration
SIGNAL carry : BIT_VECTOR(W DOWNTO 0); -- internal carry in
BEGIN
carry(0)
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Circuitos somadores
Somador ripple carry de W bits Arq. Estrutural 2 ARCHITECTURE arch_2 OF adder_Wbits IS
-- Component declaration
COMPONENT full_adder IS
PORT (a, b : IN BIT; -- data inputs
cin : IN BIT; -- carry in
s : OUT BIT; -- data output
cout : OUT BIT); -- carry out
END COMPONENT;
-- Signals declaration
SIGNAL carry : BIT_VECTOR(W DOWNTO 0); -- internal carry in
BEGIN
carry(0)
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Circuitos somadores
RTL do somador ripple carry com W = 4bis
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Circuitos somadores
Utilizando o operador + do pacote std_logic_unsigned
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.std_logic_unsigned.ALL;
ENTITY adder_unsigned_Wbits IS
GENERIC(W : NATURAL := 4);
PORT (a, b : IN STD_LOGIC_VECTOR(W-1 DOWNTO 0); -- data inputs
s : OUT STD_LOGIC_VECTOR(W-1 DOWNTO 0)); -- data output
END adder_unsigned_Wbits;
------------------------------------------------------------------
ARCHITECTURE behavior OF adder_unsigned_Wbits IS
BEGIN
s
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Circuitos somadores
Utilizando o operador + do pacote std_logic_unsigned
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.std_logic_unsigned.ALL;
ENTITY adder_unsigned_Wbits_carried IS
GENERIC(W : NATURAL := 4);
PORT (a, b : IN STD_LOGIC_VECTOR(W-1 DOWNTO 0); -- data inputs
s : OUT STD_LOGIC_VECTOR(W-1 DOWNTO 0); -- data output
cout : OUT STD_LOGIC); -- carry out
END adder_unsigned_Wbits_carried;
-------------------------------------------------------------------
ARCHITECTURE behavior OF adder_unsigned_Wbits_carried IS
SIGNAL result : STD_LOGIC_VECTOR(W DOWNTO 0);
BEGIN
result
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Circuito comparador
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.std_logic_unsigned.ALL;
ENTITY comparator_Wbits IS
GENERIC(W : NATURAL := 4);
PORT (a, b : IN STD_LOGIC_VECTOR(W-1 DOWNTO 0); -- data inputs
eq : OUT STD_LOGIC; -- a = b
gt : OUT STD_LOGIC; -- a > b
lt : OUT STD_LOGIC); -- a < b
END comparator_Wbits;
------------------------------------------------------------------
ARCHITECTURE behavior OF comparator_Wbits IS
BEGIN
lt
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Circuito comparador
Nmeros de 4 bits sem sinal [0,15]
Nmeros de 4 bits com sinal [-8, 7]
-
Modelagem de Circuitos Seqencias em VHDL
Blocos construtivos bsicos Inferncia de flip-flops Registradores Contadores Mquinas de Estado
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Circuitos Seqenciais
So aqueles cujas sadas dependem do estado atual e
passado das entradas
Exemplos:
Registradores
Contadores
Mquinas de Estado
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Arquitetura genrica de um circuito seqencial
Registrador de Estado
Circuito Combinacional
Entradas Sadas
Prximo
Estado
Estado
Atual
Funo de Transio
de Estado
Funo de
Sada
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Blocos construtivos bsicos
Latches
Flip-flops
D Q
ENA
D Q
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Latch transparente
ENTITY latch_d IS
PORT (d : IN BIT; -- data input
ena : IN BIT; -- enable
q : OUT BIT); -- data output
END latch_d;
---------------------------------------
ARCHITECTURE behavior OF latch_d IS
BEGIN
PROCESS(d,ena)
BEGIN
IF (ena = '1') THEN
Q
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Latch com clear ENTITY latch_d_clear IS
PORT (d : IN BIT; -- data input
ena : IN BIT; -- enable
clrn: IN BIT; -- clear
q : OUT BIT); -- data output
END latch_d_clear;
-----------------------------------------
ARCHITECTURE behavior OF latch_d_clear IS
BEGIN
PROCESS(d,ena,clrn)
BEGIN
IF (clrn = '0') THEN
Q
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Flip-flop D (gatilhado pela borda de subida do clock)
D Q
ENTITY ff_d IS
PORT (d : IN BIT; -- data input
clk : IN BIT; -- clock
q : OUT BIT); -- data output
END ff_d;
---------------------------------------
ARCHITECTURE arch_1 OF ff_d IS
BEGIN
PROCESS
BEGIN
WAIT UNTIL clk='1';
Q
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Flip-flop D (gatilhado pela borda de subida do clock)
D Q
ENTITY ff_d IS
PORT (d : IN BIT; -- data input
clk : IN BIT; -- clock
q : OUT BIT); -- data output
END ff_d;
---------------------------------------
ARCHITECTURE arch_2 OF ff_d IS
BEGIN
PROCESS(clk)
BEGIN
IF (clk'EVENT AND clk='1') THEN
Q
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Flip-flop D
D Q
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
ENTITY ff_d_std_logic IS
PORT (d : IN STD_LOGIC; -- data input
clk : IN STD_LOGIC; -- clock
q : OUT STD_LOGIC); -- data output
END ff_d_std_logic;
---------------------------------------------
ARCHITECTURE arch_1 OF ff_d_std_logic IS
BEGIN
PROCESS(clk)
BEGIN
IF rising_edge(clk) THEN
Q
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Flip-flop D com clear ENTITY ff_d_clear IS
PORT (d : IN BIT; -- data input
clk : IN BIT; -- clock
clrn: IN BIT; -- clear
q : OUT BIT); -- data output
END ff_d_clear;
---------------------------------------
ARCHITECTURE arch_1 OF ff_d_clear IS
BEGIN
PROCESS(clk,clrn)
BEGIN
IF (clrn='0') THEN
Q
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Flip-flop D com clear e enable ENTITY ff_d_clear_ena IS
PORT (d : IN BIT; -- data input
clk : IN BIT; -- clock
clrn: IN BIT; -- clear
ena : IN BIT; -- enable
q : OUT BIT); -- data output
END ff_d_clear_ena;
----------------------------------------
ARCHITECTURE arch_1 OF ff_d_clear_ena IS
BEGIN
PROCESS(clk,clrn)
BEGIN
IF (clrn='0') THEN
Q
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Inferncia de flip-flops
Quando flip-flops sero inferidos para reg1.vhd?
ENTITY reg1 IS
PORT ( d : IN BIT;
clk : IN BIT;
q : OUT BIT);
END reg1;
------------------------------------
ARCHITECTURE arch_1 OF reg1 IS
SIGNAL a, b : BIT;
BEGIN
PROCESS(clk)
BEGIN
IF (clk'EVENT AND clk='1') THEN
a
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Inferncia de flip-flops
Quando flip-flops sero inferidos reg1.vhd?
D Q D Q D Q
clk
d a b
q
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Inferncia de flip-flops
Quando flip-flops sero inferidos para reg2.vhd?
ENTITY reg2 IS
PORT ( d : IN BIT;
clk : IN BIT;
q : OUT BIT);
END reg1;
------------------------------------
ARCHITECTURE arch_1 OF reg2 IS
SIGNAL a, b : BIT;
BEGIN
PROCESS(clk)
BEGIN
IF (clk'EVENT AND clk='1') THEN
a
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Inferncia de flip-flops
Quando flip-flops sero inferidos reg1.vhd?
D Q D Q
clk
d a b
q = b
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Inferncia de flip-flops
Quando flip-flops sero inferidos para reg3.vhd?
ENTITY reg3 IS
PORT ( d : IN BIT;
clk : IN BIT;
q : OUT BIT);
END reg1;
------------------------------------
ARCHITECTURE arch_1 OF reg3 IS
BEGIN
PROCESS(clk)
VARIABLE a, b : BIT;
BEGIN
IF (clk'EVENT AND clk='1') THEN
a := d;
b := a;
q
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Inferncia de flip-flops
Quando flip-flops sero inferidos reg3.vhd?
D Q
clk
d q
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Registradores
Registrador Paralelo-Paralelo de W bits
D Q
CLRN
ENA
D Q
CLRN
ENA
D Q
CLRN
ENA
ena
clk
clrn
d(W-1) d(1) d(0)
q(0) q(1) q(W-1)
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Registradores
Registrador Paralelo-Paralelo de W bits
ENTITY reg_pp_Wbits IS
GENERIC(W : NATURAL := 4);
PORT (d : IN BIT_VECTOR(W-1 DOWNTO 0);-- data input
clk : IN BIT; -- clock
clrn: IN BIT; -- clear
ena : IN BIT; -- enable
q : OUT BIT_VECTOR(W-1 DOWNTO 0));-- data output
END reg_pp_Wbits;
ARCHITECTURE arch_1 OF reg_pp_Wbits IS
BEGIN
PROCESS(clk,clrn)
BEGIN
IF (clrn='0') THEN
q '0');
ELSIF (clk'EVENT AND clk='1') THEN
IF (ena='1') THEN
q
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Registradores
Registrador Paralelo-Paralelo de W bits
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Contadores
Incrementador de W bits
Aplicao tpica: Program Counter (PC)
CLRN Ena Load Qf
0 X X 0
1 0 X Qa
1 1 D
0 Qa+1
D(W-1..0)
CLRN
ENA
Q(W-1..0)
LOAD
CLRN assncrono
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Contadores
Incrementador de W bits Entidade
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.std_logic_unsigned.ALL;
ENTITY counter_Wbits IS
GENERIC(W : NATURAL := 4);
PORT (d : IN STD_LOGIC_VECTOR(W-1 DOWNTO 0);-- data input
clk : IN BIT; -- clock
clrn: IN BIT; -- clear
ena : IN BIT; -- enable
load: IN BIT; -- load
q : BUFFER STD_LOGIC_VECTOR(W-1 DOWNTO 0));-- data
output
END counter_Wbits;
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Contadores
Incrementador de W bits Arquitetura
ARCHITECTURE arch_1 OF counter_Wbits IS BEGIN
PROCESS(clk,clrn)
BEGIN
IF (clrn='0') THEN
q '0');
ELSIF (clk'EVENT AND clk='1') THEN
IF (ena='1') THEN
IF (load='1') THEN
q
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Contadores
Incrementador de W bits
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Mquinas de Estado
Mquina de Moore mnima
S0
0
S1
1
go
/go
back
/back
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Mquinas de Estado
Mquina de Moore mnima Entidade e Arquitetura
ENTITY fsm_go_back IS
PORT (clk : IN BIT; -- clock
clrn: IN BIT; -- clear
go : IN BIT; -- input 1
back: IN BIT; -- input 2
q : OUT BIT); -- output
END fsm_go_back;
ARCHITECTURE arch_1 OF fsm_go_back IS
TYPE state_type IS (s0, s1);
SIGNAL state_reg : state_type;
SIGNAL next_state: state_type;
BEGIN
-- next slides
END arch_1;
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Mquinas de Estado
Mquina de Moore mnima Registrador de estado
p_state_reg: PROCESS(clk,clrn)
BEGIN
IF (clrn='0') THEN
state_reg
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Mquinas de Estado
Mquina de Moore mnima Funo de transio de estado
p_next_state: PROCESS(state_reg)
BEGIN
CASE (state_reg) IS
WHEN s0 => IF (go='1') THEN
next_state
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Mquinas de Estado
Mquina de Moore mnima Funo de sada
-- Output
q
-
Consideraes Finais
-
Projeto a partir de VHDL Thiago Felski Pereira, UNISUL/2014
Para saber mais
Referncia
DAMORE, Roberto. VHDL: descrio e sntese de circuitos digitais. Rio de Janeiro: LTC, 2012 (na Saraiva por R$ 142,00)
Muitos outros livros internacionais (mais caro$)
Repositrio
The Hamburg VHDL Archive
http://tams-www.informatik.uni-hamburg.de/vhdl/
Livros e tutoriais gratuitos
Artigos
Modelos (8051, DLX, Leon, ...)
Ferramentas (Compiladores, Editores, Visualizadores)
top related