Alternativa C - PROCESS, FUNCTION, PROCEDURE
Introdução
O VHDL (Very High Speed Integrated Circuit Hardware Description Language) divide seus comandos em duas categorias principais: concorrentes e sequenciais. A diferença fundamental reside na ordem de execução e nos locais permitidos no código.
Enquanto os comandos concorrentes executam simultaneamente ao longo do tempo, os comandos sequenciais são executados linha por linha, seguindo a ordem exata em que aparecem no texto.
Desenvolvimento
Para que uma instrução seja considerada sequencial em VHDL, ela deve estar contida obrigatoriamente em uma das três estruturas específicas listadas abaixo:
- PROCESS: É a região mais comum para modelagem sequencial. Dentro de um
process, as atribuições ocorrem em cascata. - FUNCTION: Subprogramas que calculam e retornam um único valor. Seu corpo interno segue lógica sequencial até o comando
RETURN. - PROCEDURE: Subprogramas que realizam operações ou efeitos colaterais, sem necessariamente retornar um valor. Também utilizam lógica sequencial internamente.
Tentei verificar outras opções comuns para entender a armadilha:
- PACKAGES servem apenas para declarar entidades reutilizáveis (tipos, constantes, funções declaradas), mas não executam lógica sequencial direta como um processo.
- COMPONENTS são apenas declarações para instanciar outros módulos, não possuem corpo de código executável.
- BLOCKS são estruturas concorrentes que agrupam outras sentenças concorrentes.
Análise das Alternativas
| Opção | Análise dos Termos | Correto? |
|---|
| A | PROCESS (Sim), FUNCTION (Sim), COMPONENT (Não) | ❌ |
| B | PROCESS (Sim), PACKAGE (Não), PROCEDURE (Sim) | ❌ |
| C | PROCESS, FUNCTION, PROCEDURE (Todos Sim) | ✅ |
| D | FUNCTION (Sim), PROCEDURE (Sim), BLOCK (Não) | ❌ |
| E | FUNCTION (Sim), PROCESS (Sim), MAP (Não) | ❌ |
Conclusão
A única alternativa que lista corretamente as três regiões onde é permitido escrever comandos sequenciais em VHDL é a que contém PROCESS, FUNCTION e PROCEDURE.
Portanto, a Alternativa C está correta.