Vhdl - aplicado
4.9.1- Na próxima figura são apresentadas as duas formas de onda previstas. Na esquerda é apresentado o caso “ PROCESS (sa) ”. Como o sinal “ sb ” foi removido da lista de sensibilidade, o processo não é executado por uma segunda vez, e novo valor de “ sb ” não é transferido para “ sc ”. No caso “ PROCESS (sa, sb, sc) ”, o processo é executado por uma terceira vez não acarretando nenhuma alteração no resultado final da simulação. processo suspenso sa sb sc 10 10+∆ como ∆=0 sa sb sc processo suspenso
t sa sb sc 10
10
10+∆ 10+2∆ 10+3∆ como ∆=0
t sa sb sc
t
10
t
Figura do exercício 4.9.1.
4.9.2- No próximo quadro são apresentadas as correções para o código. O primeiro erro é devido ao fato de que o resultado do teste da condição não é um valor do tipo “ boolean ”. Uma possível solução é apresentada na linha 13: o resultado da avaliação de “ a=1 ” é um valor “ false ” ou “ true ”. No caso da linha 15 do quadro, o teste está correto pois o sinal “ c ” é do tipo “ boolean ”. O teste da linha 17 contém um problema, e ele pode ser entendido quando comparado com o teste da linha 21. No teste da linha 17, é necessário identificar através de um parêntesis que será avaliado se “ a AND b ” resulta em um valor igual a “ 1 ”. O parêntesis indica a operação a ser executada primeiro. No caso da linha 21, o sinal “ c ” é do tipo “ boolean ”, e o resultado da expressão “ b=1 ” também é do tipo “ boolean ”, assim a operação “ AND ” é realizada entre dois tipos “ boolean ”.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
ENTITY certo1 IS PORT (a, b : IN c : IN x, y, z, k END certo1;
BIT; BOOLEAN; : OUT BIT);
ARCHITECTURE teste OF certo1 IS BEGIN abc: PROCESS (a, b, c) BEGIN -- IF a THEN