Джон Ф.Уэйкерли Проектирование цифровых устройств. Том I (2002) (1095889), страница 165
Текст из файла (страница 165)
При переходе в новое состояние мы указываем ожидаемое состояние, но значения выходных сигналов отмечаем как безразличные. В правильно записанном проверочном векторе должны быть указаны значения выходных сигналов, которые возникают после перехода, определяемые следующим состоянием. Хотя в нашем случае эти значения можно было бы найти и включить в таблицу, задача уже достаточно сложна; поэтому, чтобы избавить вас от головной боли, мы повсюду проверяем выходные сигналы следующими векторами с СЬ(зСк = О. ( [С1.ОСК, .С. С., .С. [ .С. [ 0 о .С.
0 О .С. .С. [ .С. .С. .С. ств х)-> [ 3 13 -> [.Х. 13 -> [.Х. 13 -> [.Х. 13 -> [Х1Р 03 -> [21Р 13 -> [11Р 13 -> [Х1Р 03 -> [ХО 03 -> [ХО 13 -> [хо 03 -> [ХО 13 -> [Х01 03 -> [Х01 13 -> [Х01 03 -> [Хо 13 -> [ХО1 13 -> [Х011 , ОМ1к, нтнт)) , .х , х. 3; .Х, Х.3; .Х, Х.); О, 1 .Х...Х. 3; О, 1 3; " в>псе по гевег харис, арр1у и 'вупсЬгспга1пй веииепсе' Со геасЬ а Кпоцп ацагцхпй агате " Тевг Меа1у оигриив Хог ЬссЬ та1иев ох Х " Теис Х1Р†>11Р (Х==1) аии ХТР— >ХО (Х О) " тиас Меа1у оцгрцее гог ьогь та1иев ит Х " Тев- ХΠ†>ХО (Х""0) апс ХΠ†>Х01 (Х= 1) " Теис Меа1у оиериив гиг Ьогв тахаев ох Х " Тевг ХО1 — >ХО (Х= 0) " Сеи Ьасх:о Х01 теэе ХО1-->ХО(1 (Х"=1) т.
З 2. Г1роектированиепоследовательностных схем на языке УНОЬ 747 Составление проверочных векторов для конечного автомата вручную — трудоемкий процесс, и, независимо от вашей старательности, нет никакой гарантии, что будут протестированы все функции автомата и найдены все возможные недостатки схемной реализации. Например, проверочными векторами в табл. 7,34 не проверяется комбинация (А гАБтА) = ! 0 в состоянии (т Ооктнб) и комбинация (А в 7.АятА) = 100 в состоянии ок, таким образом, составление полного набора проверочных векторов для обнаружения возможных недостатков лучше всего поручить программе, автоматически генерирующей проверочные векторы, В табл.
7.35, после составления векторов для первых нескольких состояний, мы бросили это дело, оставив для вас завершение данной процедуры в виде задачи 7.92. Все же полезно бывает проверить работоспособность конструкции, написав хотя бы несколько векторов для проверки того, как автомат выполняет свои самые главные функции; это позволит выявить и исправить очевидные ошибки на ранней стадии разработки. Более тонкие погрешности проекта лучше обнаруживать путем детального моделирования на системном уровне.
7.12. Особенностипроектирования последовательностных схем на языке ЧН01 Ббльшая часть средств, предоставляемых в языке ЧНРБ н используемых при проектировании последовательностных схем, уже была введена нами в параграфе 4.7, в частности, процессы, и мы пользовались этими средствами в параграфах главы 5, связанных с употреблением языка ЧНР1..
В данном параграфе мы познакомим вас еще с нескольким возможностями и приведем простые примеры того, как ими воспользоваться. Примеры проектирования более сложных схем будут даны в относящихся к языку ЧНРБ параграфах главы 8. 7.12.1. Последовательностные схемы с обратной СВЯЗЬЮ Фундамент для работы с последовательностными схемами с обратной связью средствами языка ЧНРБ образуют Ч НРБ-процессы и механизм списка событий моделирующей программы. Напомним, что состояние последовательностной схемы с обратной связью может измениться под воздействием входных сигналов, и переход в новое состояние проявляется в изменениях, распространяющихся по петле обратной связи до тех пор, пока в петле не наступит стабилизация.
При моделировании переход от одного состояния к другому сопровождается занесением изменений сигналов в список событий и составлением расписания, по которому процессы запускаются вновь с элементарным сдвигом по времени; при этом изменения сигналов продолжаются до тех пор, пока их список не будет исчерпан. В табл. 7.36 приведена ЧНРБ-программа лля Зй-защелки. Структура содержит два параллельных оператора присваивания, каждый из которых запускает процесс, как это бьио объяснено в разделе 4.7.9.
Взаимодействие этих процессов реализует одиночную процедуру защелк иванна в ВВ-защелке. 7ас Глава 7. Принципы проектирования последсвательностных схем Табл. 7.36. Потоковая ЧНОЬ-программа для ЯВ- защелки 1гьгагу 1ЕЕЕ; овв 1ЕЕЕ.вга 1овгс 11ВЧ.в11; евгзгу Чвг1вгоЬ гв роге 1Е, В. тв ЕТП„Ь001ро Ц, Цкн Ьиуувг ЕТП ЬЦЦТС ); вас Чвг1агсЬ; агсЬтеессвтв Чвг1агаЬ вгсЬ ог" Чвг1агсЬ гв Ьебгв ЦУ < Б пот Ц; ц < К аог цры впс Чвг1аесЬ вгсЬ; НЕ ВОСПОЛЬЗОВАТЬСЯ ЛИ НАМ СИГНАЛОМ '0'7 Конечно, было бы замечательно, если бы в модели ЗВ-защелки, представленной в табл.
7.36, при одновременном переходе сигналов 8 и й на неактивный уровень вырабатывался выходной сигнал 'У, но ведь этого нет. Однако язык ЧН1)Ь является достаточно мощным, чтобы разработчик, имеющий опыт работы с ЧНОЬ, мог легко описать модель, обладаю~цую таким свойстволь В подобной модели надо было бы воспользоваться средствами языка ЧНРЬ, позволяющими имитировать течение времени (мы не рассматриваем эти средства), чтобы учесть «время восстановления» защелки (см, второе замечание в разделе 7.2.1, вынесенное за пределы основного текста) и вырабатывать сигнал на выходе 'У', если второе изменение во входных сигналах происходит слишком близко по времени. Таким способом можно смоделировать даже максимально допустимое разрешенное время пребывания в состоянии метастабильности.
Заметьте, что в случае, когда у схемы есть возможность попасть в мета- стабильное состояние, нет гарантии, что моделирующая программа обнаружит это, особенно в больших проектах. Лучший способ избежать каких бы то ни было проблем с метастабильностью при проектировании систем заключается в ясном задании и зашито асинхронных входов в соответствии с тем, как это обсуждается в параграфе 8 9. Моделирование в среде ЧНР1- является достаточно точным, чтобы справиться со случаем, когда одновременно поданы оба сигнала Я и В.
Самый интересный результат моделирования получается тогда, когда сигналы В и В снимаются одновременно. В первом из замечаний в разделе 7.2.1, вынесенных за пределы основного текста, уже объяснялось, что в этой ситуации в реальной ВН-защелке могут начаться колебания, либо она может войти в метастабильное состояние. При моделировании это приведет к потенциально бесконечному циклу, в котором каждое исполнение одного из операторов присваивания будет запускать очередное исполнение другого. После некоторого числа повторений хорошее средство моделирования «раскусит» проблему — число элементарных сдвигов по времени растет, а время в модели стоит на месте — и остановит процесс моделирования. 7.12. Проектироввниепоследоввтельностных схем нв языке )ГНОЕ 749 У.12.2. ТаКТИРУЕМЫЕ СХЕМЫ На практике большинство устройств, проектируемых и моделируемых в среде ХгНрЬ, представляют собой тактируемые синхронные системы, в которых используются переключающиеся по фронту триггеры.
В дополнение к тому, что вам уже известно о возможностях языка ЧНР1., для описания переключающегоя по фронту элемента нам понадобится еше средство, а именно — признак е тел г гетеп г аплЬвге), который можно присоединить к имени сигнала, чтобы получить переменную типа Ьоо1еап, принимающую значение ггсе, если то или иное событие в сигнале запускает объемлющий процесс в текущем цикле моделирования, и значение 1а1яе — в противном случае.
Используя признак еоепг, можно смоделировать поведение переключающегося по положительному фронту 1)-трнпера с асинхронным входом сброса так, как это сделано в табл. 7.37. Здесь асинхронный сигнал С?л на входе сброса преобладает над тактовым входным сигналом С1 К и поэтому проверяется первым в предложении "г1", Только тогда, когда сигнал на входе С?Л имеет неактивный уровень, вступает в действие то, что предусмспрено предложением "е1эг1", и имеющиеся в нем операторы исполняются по положительному фронту сигнала С1,К.
Заметьте, что величина "СРК ' етеос" истинна при любом гпменении сигната сРК, поэтому для переключения только по положительному перепаду в сигнале С1.К предусмотрена проверка "С1.К = '1' ". Существует много других способов задать процесс или составить оператор, отражающие чувствительность к перепаду сигнала; еще два способа описания 1)-триггера (без входа сброса) приведены в табл. 7.38. Табл. 7.37. Поведенческое описание первключающегося по положительно- му фронту 1)-триггера на языке ЧНИ.
1гЬгвгу 1ЕЕЕ; пво 1ЕЕЕ.во<1 1оЕ<с 116<.в11; всюду ЧровРТХ за рого (СЬК, Сон, Р: зп ЕТР ьРСХС; Я„ ЯИ: оис ЯТР 1.001С ); епо Уровпгг; агспзтвсгпгв ЧровРгг агсЬ ог уровР11 гв ьвкгп ргосевв 1СРК, СЫ) Ьокгп гХ СЫ='1' ЕЬеп Ц <= 'О'; ЦИ < '1'; о1вгз сек'степе впо с1.к '1' ььвп Р < Р; Ри < псе Р; опо гг, епа ргосевв, епо 'тровРГХ вг<Ь; При тестировании тактируемой схемы вам понадобится еще одна вещь: нужно будет генерировать системный тактовый сигнал.
Это совсем легко реализовать, организуя цикл внутри процесса, как это показано в табл. 7.39 для тактовой частоты 100 МГц с коэффициентом заполнения 60<4, «ВНУТРЕННОСТИ» СИНТЕЗА Вам„наверное, интересно узнать, как программные средства синтеза реал изуют в настоящем триггере описание чувствительности к фронту, приведенное в табл. 7.37 и 7.38. Большинство программных средств распознает только небольшое число предопределенных способов описания поведения схемы, переключающейся по фронту, и отображает их в предопределенные компоненты внутри программируемой ИС.
Программа синтеза фирмы Бупоряз (Яупоряз зупбзеяз еп81пе) распознает используемое нами в этой книге выражение "СЬК ' еоепг ап<1 СБК = '1' " с помощью программного продукта Роппоабоп Бег|ее 1.5 фирмы Х111пх. Но язык ЧН?Н, предоставляет также и другие возможности для выражения того же самого функционального поведения, что и в табл. 7.38. Питер Ашенден (Регег Аз)зепг)еп), автор Справочника проектировщика по языку УНШ (77ге Резгяпег з биЫе га КНШ.