Контроль выполнения: оператор утверждения и механизм атрибутов


Одной из задач синтеза схем является обеспечение требований корректности работы схемы в реальных условиях и согласованности временных соотношений входных сигналов (например, кода адреса, кода данных и управляющих сигналов приема кода, задания режима работы схемы, выборки микросхемы и прочее), задержек переключения элементов схемы и т.д.

Поэтому важнейшими задачами моделирования как инструмента анализа схем должны быть:
1) обеспечение контроля корректности (достоверности и непротиворечивости) входных данных;
2) обеспечение контроля временных ограничений.

Требования достоверности входных данных возникают из-за того, что возможны неисправности при формировании или передаче данных, например, появление неправильного (несуществующего) адреса памяти, или могут появляться так называемые запрещенные состояния, например, асинхронные входы R=S=1 в RS-, D-, JK-, T-триггерах, регистрах, счетчиках.

Временные ограничения включают:
— время установки сигнала (сигналы адреса и данных должны быть стабильны в течение определенного интервала времени перед тем, как произойдет изменение управляющего сигнала, например C — синхросигнала, разрешающего прием или сдвиг в регистре сдвига, CS — сигнала выборки микросхемы и т.д.);
— время удержания сигнала (сигналы на информационных входах должны сохранять свои значения в некотором промежутке времени после изменения управляющего сигнала);
— длительность сигнала, длительность фронта и среза сигнала (длительность импульса в состоянии 0 и 1 с учетом длительности фронта и среза для большинства схем не должна быть меньше
задержки переключения элементов, на которые поступает входной импульс).

На языке VHDL указанные ограничения могут описываться и обрабатываться различными способами, основанными на использовании соответствующих операторов контроля и атрибутов.

Операторы контроля (или оператор утверждения) обеспечивают проверку некоторого условия (булевого выражения), записываемого после зарезервированного ASSERT. Если это условие нарушается, т.е. принимает значение false, то после зарезервированного REPORT в строках отладчика DEBUG выдается сообщение об ошибке, которое следует заключать в кавычки. Затем после слова SEVERITY указывается уровень серьезности ошибки: warning, error, failure.

Таким образом, оператор утверждения имеет вид:

ASSERT <булево выражение или условие> REPORT "сообщение об ошибке" SEVERITY <уровень серьезности ошибки>

Для контроля временных ограничений в качестве условия записывается такое выражение (утверждение), которое принимает значение TRUE при соответствующих допустимых отношениях временных ограничений. При этом удобно использовать атрибуты сигналов. Используя механизм атрибутов, в VHDL-программе можно по-разному записать одни и те же условия.

Например, проверка условия появления фронта сигнала clock, т.е. перехода из 0 в 1, может быть записана тремя способами:

1. clock’event and clock = ‘1’
2. not clock’stable and clock = ‘1’
3. clock’last_value = ‘0’ and not clock’stable


Комментарии запрещены.




Статистика