Разница между процессом и "ванилью" VHDL - PullRequest
0 голосов
/ 03 октября 2018

Я практикую VHDL, и у меня есть фундаментальный вопрос о «простых» утверждениях, которые не требуют процесса.

Я хотел бы знать разницу между

c <= a and b;

Где утверждение не находится внутри процесса, просто написано после начала архитектуры, и

process(a,b)
begin
    c <= a and b;
end process;

Дадут ли эти результаты одно и то же?Ты:)

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Вы можете рассматривать любой VHDL-лайнер как подразумеваемый процесс с аргументами RHS <= в списке чувствительности.Вот почему оба написанных вами фрагмента кода практически эквивалентны.</p>

0 голосов
/ 03 октября 2018

Да, два описания эквивалентны.

Назначение одновременного сигнала c <= a and b оценивается при каждом обновлении любого из аргументов (a или b), и процесс также оцениваеткаждый раз, когда любой из аргументов в списке чувствительности обновляется (a или b).

В простом примере не требуется использовать process, но для более сложных выражений *Преимущество 1011 * заключается в том, что могут использоваться управляющие структуры, такие как if и for, что невозможно при одновременном назначении сигналов.Также для последовательной логики требуется process.

...