VHDL
Linguagem de Descrição e
Síntese de Circuitos Digitais
Sistemas Digitais
O Comando Generic
Vetores Definidos Pelo Usuário
 Vetores predefinidos são unidimensionais
 As vezes necessita-se de vetores com dimensões maiores
 Exemplo: memórias
 São necessárias duas dimensões para especificar uma memória
 Número de posições e número de bits
 Descrição de uma memória de 2kbytes de 8 bits
Operadores de Deslocamento
Operadores de Deslocamento
sll
Multiplicação por 2
srl
Divisão por 2
sla
sra
rll
rrl
Atribuição de Sinais
Atraso Inercial
Tempo mínimo que um pulso deve durar para que seja aceito por um circuito.
Atraso de Transmissão
Atraso no transporte de um sinal. Isto é modelado em VHDL como segue:
Comandos Sequenciais
Comandos sequenciais ficam contidos em regiões específicas de
código como processos ou subprogramas.
Uma vez iniciada a execução de comandos em região de código
sequencial, os comandos são avaliados na sequência em que são
apresentados no código.
Veremos a aplicação dos comandos sequenciais IF, CASE e WAIT.
Veremos também o modo de operação de um processo e a lista de
sensibilidade, além da atribuição de valores a sinais nas regiões de
código sequencial.
Comandos Sequenciais
Um processo define uma área contendo comandos sequenciais.
A palavra reservada PROCESS identifica o comando.
O processo é um comando concorrente.
Um processo é composto de duas regiões: parte de declaração, e
parte de comandos sequenciais.
A primeira região é o local para declaração de tipos e subtipos,
constantes, variáveis, entre outros.
A declaração de sinais não é permitida.
A segunda região encontra-se entre as palavras reservadas BEGIN e
END.
Comandos Sequenciais
Lista de Sensibilidade em Processos
Contém comandos sequenciais que representam o comportamento
de uma parte ou de toda a descrição.
A palavra reservada PROCESS pode ser antecedida de um rótulo
qualquer, e ser seguida de uma lista de sensibilidade.
A lista define para quais sinais que o conjunto de comandos contidos
no processo é sensível.
Isto é, a ocorrência de uma mudança no valor de um dos sinais da
lista fará com que o processo seja executado.
Comandos Sequenciais
Lista de Sensibilidade em Processos
Comandos Sequenciais
Execução Sequencial
Execução Conjunta
.
.
.
comando
abc: PROCESS
Comando
xyz: PROCESS
comando
.
.
.
abc: PROCESS
BEGIN
comando 1
comando 2
.
.
.
comando n
END PROCESS abc;
Execução Sequencial
xyz: PROCESS
BEGIN
comando 1
comando 2
.
.
.
comando m
END PROCESS xyz;
Comandos Sequenciais
Exemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
| ENTITY
sens_tes
|
PORT( a, b
|
sa, sb
| END sens_tes;
|
| ARCHITECTURE
| BEGIN
|
abc: PROCESS (a)
|
BEGIN
|
sa <= a;
|
sb<=b;
|
END PROCESS abc;
| END teste;
IS
:
:
IN
OUT
teste
OF
BIT;
BIT);
sens_tes
IS
-- executado na alteração do valor de “a”
A linha 10 descreve uma parte combinacional
A linha 11 descreve um elemento de armazenamento de valor sensível à variação da
entrada “a”
O circuito é não sintetizável, pois o elemento de memória descrito é ativo tanto na
borda de subida quanto de descida de “a”, não havendo uma correspondência com
circuitos reais.
Comandos Sequenciais
Comandos Sequenciais
Comandos Sequenciais
Comandos Sequenciais
Comandos Sequenciais
O Comando WAIT
Suspende a execução de um processo. A suspensão pode ser
condicionada a três clausulas, ou a uma combinação delas:
 WAIT ON: fornece um mecanismo equivalente à lista de sensibilidade
em um processo. Neste caso, após o comando WAIT ON, o processo
fica suspenso até a alteração de valor em um dos sinais da lista.
 WAIT UNTIL: o processo é suspenso enquanto a expressão
booleana contida no comando não for satisfeita
 WAIT FOR: o processo é suspenso por um período de tempo,
reiniciando no comando seguinte, após o período de tempo definido.
Comandos Sequenciais
O Comando WAIT
WAIT ON
lista_de_sensibilidade;
WAIT UNTIL
expressão_booleana;
WAIT FOR
expressão_de_tempo;
WAIT ON
lista _de_sensibilidade
condição_booleana
FOR
WAIT ON
sig_a, sig_b;
WAIT UNTIL
sig_c = ‘1’;
WAIT FOR
100 ns;
WAIT ON
sig_d=‘0’
booleana por período de tempo
UNTIL
expressão_de _tempo;
-- Lista de sensibilidade
-- Condição booleana
-- Expressão de tempo
FOR
50 ns;
-- Condição
Download

VHDL-Aula3