Mudanças entre as edições de "Folha de consulta de VHDL"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
(Criou página com '==Instruções concorrentes== ==Instruções sequencias== Essas instruções devem ser utilizadas dentro de um '''PROCESS''', ou '''FUNCTION''', ou '''PROCEDURE'''. Elas nã...')
 
Linha 54: Linha 54:
 
<syntaxhighlight lang=vhdl>
 
<syntaxhighlight lang=vhdl>
 
  [rótulo:] CASE expressão IS
 
  [rótulo:] CASE expressão IS
                   WHEN valor => atribuições;                            -- valor único
+
                   WHEN valor                           -- valor único
 +
                    => atribuições;                             
 
                   ...
 
                   ...
                   WHEN valor1 | valor2 | ... | valorN => atribuições;  -- lista de valores
+
                   WHEN valor1 | valor2 | ... | valorN   -- lista de valores
 +
                    => atribuições;   
 
                   ...
 
                   ...
                   WHEN valor1 TO valor2   => atribuições;              -- faixa de valores
+
                   WHEN valor1 TO valor2                 -- faixa de valores
 +
                    => atribuições;               
 
                   ...
 
                   ...
 
 
           END CASE;
 
           END CASE;
 
</syntaxhighlight>
 
</syntaxhighlight>

Edição das 21h34min 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

  • Instrução LOOP incondicional:
[rótulo:] LOOP
             afirmação_sequencial;
             afirmação_sequencial;
             ...
          END LOOP [rótulo];
  • Instrução FOR-LOOP:
[rótulo:] FOR identificador IN faixa LOOP
             afirmação_sequencial;
             afirmação_sequencial;
             ...
          END LOOP [rótulo];
  • Instrução WHILE-LOOP:
[rótulo:] 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:] [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:] [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:] 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;