#vhdl
#vhdl
Вопрос:
Код VHDL:
next_x(7 downto 0) <= rec_data;
Что делает эта строка? Каков эквивалентный оператор? Эта строка находится внутри процесса и выполняется, когда condition_1 имеет значение true .
Я предполагаю, что это утверждение обновит next_x?
Может кто-нибудь, пожалуйста, объяснить инструкцию и найти эквивалент, если таковой имеется?
Спасибо.
Комментарии:
1. Эквивалентная инструкция в чем?
Ответ №1:
Поскольку это назначение сигнала, оно планирует next_x
иметь значение rec_data
после завершения процесса. Самое большое предостережение, о котором следует знать, заключается в том, что последующее считывание сигнала next_x
в процессе, в котором запланировано это изменение, вернет старое значение этого сигнала — изменение еще не вступило в силу. Вы можете думать о нем как о выполняемом одновременно со всеми другими назначениями сигналов в процессе, но допускается несколько назначений одного и того же сигнала, и только последнее вступит в силу.
С другой стороны, назначения переменных вступают в силу немедленно, поэтому изменения видны во всех последующих операторах процесса, во многом как в императивных языках программирования.
Эквивалентным присвоением переменной было бы next_x(7 downto 0) := rec_data;
, но next_x
тогда это должна быть переменная, а не сигнал.
Вот хорошее краткое изложение зависимости сигнала от назначения переменной.
Комментарии:
1. Я не думаю, что в вопросе упоминались переменные.
2. Это было предположение. Я разобрал заголовок следующим образом: каково эквивалентное «утверждение» этого VHDL «присваивания»? Исходя из этого, я предположил, что OP ссылается на предоставленное назначение сигнала как на «назначение» и искал связанную концепцию, которую они назвали «заявлением». Самое близкое, о чем я могу думать, — это присвоение переменных. Я не стал вдаваться в подробности вопроса, поэтому, надеюсь, они будут расширяться, если это сильно ошибочный ответ. Изучение метаязыка для описания другого языка иногда является половиной проблемы.