![]() |
Звоните! (926)274-88-54 Бесплатная доставка. Бесплатная сборка. |
Ассортимент тканей График работы: Ежедневно. С 8-00 до 20-00. Почта: soft_hous@mail.ru |
![]() ![]() ![]() |
Читальный зал --> Программные средства foundation Ties t. vectors
Мы встретимся с еще одной трудностью, если попытаемся составить проверочные векторы для кодового замка, описанного в табл. 7.31. При тестировании этого автомата главной проблемой оказывается отсутствие у него входа сброса. Его исходное состояние может быть различным при реализации на основе разных технологий и в разных ПЛУ: при включении питания все триггеры могут устанавливаться в единичные состояния или сбрасываться, либо случайным образом попадать в то или в другое состояние. В реальном воплощении рассматриваемому автомату не нужен вход сброса, но для целей тестирования его необходимо как-то заставлять входить в известное начальное состояние. К счастью, у кодового замка есть синхронизирующая последовательность (synchronizing sequence), то есть фиксированная последовательность из одного или большего числа значений входного сигнала, которая всегда приводит автомат в определенное, известное состояние. В данном конкретном случае, независимо от того, в каком состоянии находился автомат сначала, при подаче на его вход значения X = 1 в течение четырех тактов на четвертом такте он всегда будет оказьшаться в состоянии ZIP. Это именно то, что делается первыми четырьмя векторами в табл. 7.35. До тех пор, пока автомат не достигнет известного состояния, мы указываем ему в правой части проверочных векторов в качестве следующего состояния безразличное состояние, благодаря чему ни моделирующая профамма, ни тестер, реализованный в виде отдельного усфОйства, не отреагирует на случайное состояние как на ошибку. комбинационных схем состоят в том, что векторы должны сначала ставить автомат в желаемое состояние, перед тем как будет протестирован переход, а затем возвращать автомат назад и делать это столько раз, сколько необходимо для тестирования каждого перехода из данного состояния. В табл. 7.34 приведены проверочные векторы для конечного автомата, описанного в табл. 7.27. Важно понимать, что, в отличие от комбинационных векторов, эти векторы должны подаваться на входы автомата точно в том порядке, в каком они написаны. Заметьте, что векторы пищутся так, чтобы не зависеть от кодов состояний, в результате они могут оставаться одними и теми же при изменении способа кодирования состояний. Табл. 7.34. Проверочные векторы для конечного автомата из табл. 7.27 СИНХРОНИЗИРУЮЩИЕ ПОСЛЕДОВАТЕЛЬНОСТИ И ВХОДЫ СБРОСА Нам повезло с кодовым замком: не у каждого конечного автомата есть синхронизирующие последовательности. Вот почему в большинстве случаев конечные автоматы проектируются с входом сброса, при наличии которого длина синхронизирующей последовательности становится равной единице. Табл. 7.35. Проверочные векторы для кодового замка из табл. 7.31 test vectors
Приступив к проверке, мы встретимся еще кое с чем новым: с необходимостью тестирования выходов Мили. Как видно из пятого и шестого векторов, не в каждом проверочном векторе нам нужен тактовый сигнал для перехода. Вместо этого мы можем удерживать тактовый сигнал равным нулю - при этом автомат будет оставаться в состоянии, в которое он попал при последнем переходе, - и посмотреть, какими будут сигналы на выходах Мили при двух значениях входного сигнала X. Затем проверяется переход в следующее состояние. При переходе в новое состояние мы указываем ожидаемое состояние, но значения выходных сигналов отмечаем как безразличные. В правильно записанном проверочном векторе должны быть указаны значения выходных сигналов, которые возникают после перехода, определяемые следующим состоянием. Хотя в нашем случае эти значения можно бьшо бы найти и включить в таблицу, задача уже достаточно сложна; поэтому, чтобы избавить вас от головной боли, мы повсюду проверяем выходные сигналы следующими векторами с CLOCK = 0. Составление проверочных векторов для конечного автомата вручную - трудоемкий процесс, и, независимо от вашей старательности, нет никакой гарантии, что будут протестированы все функции автомата и найдены все возможные недостатки схемной реализации. Например, проверочными векторами в табл. 7.34 не проверяется комбинация (А LASTA) = 10 в состоянии (LOOKING) и комбинация (А В LASTA) = 100 В состоянии ОК. Таким образом, составление полного набора проверочных векторов для обнаружения возможных недостатков лучше всего поручить программе, автоматически генерирующей проверочные векторы. В табл. 7.35, после составления векторов для первых нескольких состояний, мы бросили это дело, оставив для вас завершение данной процедуры в виде задачи 7.92. Все же полезно бывает проверить работоспособность конструкции, написав хотя бы несколько векторов для проверки того, как автомат выполняет свои самые главные функции; это позволит выявить и исправить очевидные ошибки на ранней стадии разработки. Более тонкие пофешности проекта лучше обнаруживать путем детального моделирования на системном уровне. 7.12. Особенности проектирования последовательностных схем на языке VHDL Большая часть средств, предоставляемых в языке VHDL и используемых при проектировании последовательностных схем, уже была введена нами в парафафе 4.7, в частности, процессы, и мы пользовались этими средствами в параграфах главы 5, связанных с употреблением языка VHDL. В данном парафафе мы познакомим вас еще с нескольким возможностями и приведем простые примеры того, как ими воспользоваться. Примеры проектирования более сложных схем будут даны в относящихся к языку VHDL парафафах главы 8. 7.12.1. Последовательностные схемы С обратной связью фундамент для работы с последовательностными схемами с обратной связью средствами языка VHDL образуют VHDL-процессы и механизм списка событий моделирующей профаммы. Напомним, что состояние последовательностной схемы с обратной связью может измениться под воздействием входных сигналов, и переход в новое состояние проявляется в изменениях, распространяющихся по петле обратной связи до тех пор, пока в петле не наступит стабилизация. При моделировании переход от одного состояния к другому сопровождается занесением изменений сигналов в список событий и составлением расписания, по которому процессы запускаются вновь с элементарным сдвигом по времени; при этом изменения сигналов продолжаю гея до тех пор, пока их список не будет исчерпан. Втабл. 7.36 приведена ViroL-профамма для SR-защелки. Сфуктура содержит два параллельных оператора присваивания, каждый из которых запускает процесс, как это бьшо объяснено в разделе 4.7.9. Взаимодействие этих процессов реализует одиночную процедуру защелкивания в SR-защелке. ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку. Звоните! Ежедневно! (926)274-88-54 Продажа и изготовление мебели. Копирование контента сайта запрещено. Авторские права защищаются адвокатской коллегией г. Москвы. |