Mudanças entre as edições de "Folha de consulta de VHDL"
Ir para navegação
Ir para pesquisar
Linha 3: | Linha 3: | ||
==Instruções sequencias== | ==Instruções sequencias== | ||
Essas instruções devem ser utilizadas dentro de um '''PROCESS''', ou '''FUNCTION''', ou '''PROCEDURE'''. Elas não podem ser usadas diretamente na '''ARCHITECTURE''' | Essas instruções devem ser utilizadas dentro de um '''PROCESS''', ou '''FUNCTION''', ou '''PROCEDURE'''. Elas não podem ser usadas diretamente na '''ARCHITECTURE''' | ||
+ | *Atribuição de valor sobre SIGNAL: | ||
+ | <syntaxhighlight lang=vhdl> | ||
+ | [rótulo opcional]: <signal_name> <= <expression>; | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | *Atribuição de valor sobre VARIABLE: | ||
+ | <syntaxhighlight lang=vhdl> | ||
+ | [rótulo opcional]: <variable_name> := <expression>; | ||
+ | </syntaxhighlight> | ||
+ | |||
*Instrução '''LOOP''' incondicional: | *Instrução '''LOOP''' incondicional: | ||
<syntaxhighlight lang=vhdl> | <syntaxhighlight lang=vhdl> | ||
− | [rótulo:] LOOP | + | [rótulo opcional:] LOOP |
afirmação_sequencial; | afirmação_sequencial; | ||
afirmação_sequencial; | afirmação_sequencial; | ||
Linha 14: | Linha 24: | ||
*Instrução '''FOR-LOOP''': | *Instrução '''FOR-LOOP''': | ||
<syntaxhighlight lang=vhdl> | <syntaxhighlight lang=vhdl> | ||
− | [rótulo:] FOR identificador IN faixa LOOP | + | [rótulo opcional:] FOR identificador IN faixa LOOP |
afirmação_sequencial; | afirmação_sequencial; | ||
afirmação_sequencial; | afirmação_sequencial; | ||
Linha 23: | Linha 33: | ||
*Instrução '''WHILE-LOOP''': | *Instrução '''WHILE-LOOP''': | ||
<syntaxhighlight lang=vhdl> | <syntaxhighlight lang=vhdl> | ||
− | [rótulo:] WHILE condição LOOP -- Executa as "afirmações enquanto a "condição" for verdadeira | + | [rótulo opcional:] WHILE condição LOOP -- Executa as "afirmações enquanto a "condição" for verdadeira |
afirmação_sequencial; | afirmação_sequencial; | ||
afirmação_sequencial; | afirmação_sequencial; | ||
Linha 32: | Linha 42: | ||
*Instrução LOOP com '''EXIT''': | *Instrução LOOP com '''EXIT''': | ||
<syntaxhighlight lang=vhdl> | <syntaxhighlight lang=vhdl> | ||
− | [rótulo:] [FOR identificador IN faixa] LOOP | + | [rótulo opcional:] [FOR identificador IN faixa] LOOP |
afirmação_sequencial; | afirmação_sequencial; | ||
EXIT [rótulo] [WHEN condição]; -- Se a "condição" é verdadeira, termina o "LOOP" | EXIT [rótulo] [WHEN condição]; -- Se a "condição" é verdadeira, termina o "LOOP" | ||
Linha 42: | Linha 52: | ||
*Instrução LOOP com '''NEXT''': | *Instrução LOOP com '''NEXT''': | ||
<syntaxhighlight lang=vhdl> | <syntaxhighlight lang=vhdl> | ||
− | [rótulo:] [FOR identificador IN faixa] LOOP | + | [rótulo opcional:] [FOR identificador IN faixa] LOOP |
afirmação_sequencial; | afirmação_sequencial; | ||
NEXT [rótulo] [WHEN condição]; -- Se a "condição" é verdadeira, não executa as linhas até a linha "END LOOP" | NEXT [rótulo] [WHEN condição]; -- Se a "condição" é verdadeira, não executa as linhas até a linha "END LOOP" | ||
Linha 53: | Linha 63: | ||
*Instrução '''CASE''' | *Instrução '''CASE''' | ||
<syntaxhighlight lang=vhdl> | <syntaxhighlight lang=vhdl> | ||
− | [rótulo:] CASE expressão IS | + | [rótulo opcional:] CASE expressão IS |
WHEN valor -- valor único | WHEN valor -- valor único | ||
=> atribuições; | => atribuições; |
Edição das 21h39min de 1 de abril de 2024
Instruções concorrentes
Instruções sequencias
Essas instruções devem ser utilizadas dentro de um PROCESS, ou FUNCTION, ou PROCEDURE. Elas não podem ser usadas diretamente na ARCHITECTURE
- Atribuição de valor sobre SIGNAL:
[rótulo opcional]: <signal_name> <= <expression>;
- Atribuição de valor sobre VARIABLE:
[rótulo opcional]: <variable_name> := <expression>;
- Instrução LOOP incondicional:
[rótulo opcional:] LOOP
afirmação_sequencial;
afirmação_sequencial;
...
END LOOP [rótulo];
- Instrução FOR-LOOP:
[rótulo opcional:] FOR identificador IN faixa LOOP
afirmação_sequencial;
afirmação_sequencial;
...
END LOOP [rótulo];
- Instrução WHILE-LOOP:
[rótulo opcional:] WHILE condição LOOP -- Executa as "afirmações enquanto a "condição" for verdadeira
afirmação_sequencial;
afirmação_sequencial;
...
END LOOP [rótulo];
- Instrução LOOP com EXIT:
[rótulo opcional:] [FOR identificador IN faixa] LOOP
afirmação_sequencial;
EXIT [rótulo] [WHEN condição]; -- Se a "condição" é verdadeira, termina o "LOOP"
afirmação_sequencial;
...
END LOOP [rótulo];
- Instrução LOOP com NEXT:
[rótulo opcional:] [FOR identificador IN faixa] LOOP
afirmação_sequencial;
NEXT [rótulo] [WHEN condição]; -- Se a "condição" é verdadeira, não executa as linhas até a linha "END LOOP"
-- e incrementa o "identificador".
afirmação_sequencial;
...
END LOOP [rótulo];
- Instrução CASE
[rótulo opcional:] CASE expressão IS
WHEN valor -- valor único
=> atribuições;
...
WHEN valor1 | valor2 | ... | valorN -- lista de valores
=> atribuições;
...
WHEN valor1 TO valor2 -- faixa de valores
=> atribuições;
...
END CASE;