Джон Ф.Уэйкерли Проектирование цифровых устройств. Том I (2002) (1095889), страница 164
Текст из файла (страница 164)
Важно не потерять из виду, что здесь значения сигналов ннт,к и н1нт другие, нежели в примере с выходом типа Мили, поскольку в данном случае эти сигналы вычисляются «с предвидением» на один такт вперед. 742 Глава 7. Принципы проектирования последовательиостных схем шоапхе ВИЕХа ЬХС1е 'Сопд1паььоп-Ьоск Воете Иаспзпе' " Харис апо оитрит Р1пе СЬОСК, Х ЦХ..ЦЗ амьк, нхмт рхп; р1п 1втуре 'геЕ'; р1п 1еьуре 'соп'; " Оегзпьс1опе Б ГЦ1,02,033; ХХР = Г О, О, 03; хо - Г о, о, 13; ХО1 Г О, 1, 03; хо11 - Го,1,13; Х0110 Г 1, О, 03; Х01101 - Г 1, О, 13; хо11011 = Г 1, 1, о3; 10110111 = Г 1, 1, 13; " Вские тагзаЫев " Вовсе епсоазпЕе есате ВзаВтаа Я виасе ХХР. 1Р Х 0 ТНЕМ ХО ЕЬЯЕ ХХР МХТН 0ЛОК 0; М1ТН 'ГОМ К 0; Н1тн Гамьк 0; М1ТН КМЬК 0; МХТН ГСМЬК = О; МХтн Гамьк = 0; ЧХТН ГОМЬК 0; МХТН ГОМЬК = 0; ИХТН ФМЬК = 0; МХТН ГОМЬК = 0; мхтн Гамьк "- 0; МХТН ГОИЬК 0; МХТН 0ЛВ.К = 0; МХТН (ОМЬК О.
МХТН (ОМСК = 1; ЫХТН ГВМЬК = 0; Н1МТ 1Р Н1МТ 0) 1Р Х оо ТНЕМ ХО ЕЬВЕ Х01 1Р Х "0 ТНЕМ ХО Е1.ВЕ Х011 Н1МТ ОР НХМТ = 1) атаке Х01; Н1МТ = ОР Н1МТ " 1) 1Р Х==О ТНЕМ Х0110 ЕЬЯЕ ХХР атаке Х011: Н1МТ 1) Н1МТ 0) НХМТ = 0) Н1МТ 13- 1Р Х 0 ТНЕМ ХО ЕЬВЕ Х01101 воате Х0110: азате ХО1101: Н1МТ "- 0) Н1НТ = 1) ХР Х 0 ТНЕМ Хо ЕХ.БЕ Х011011 итаке Х011011: ХР Х 0 ТНЕМ Х0110 Е1.ЯЕ ХО110111 воаое Х0110111: 1Р Х О ТКЕМ ХО ЕЬВЕ ХХР Н1МТ = ОР Н1МТ " 1Р Н1МТ 1) Н1МТ = 0) ециас1опв В.СЬК = СЬОСК; ЕМО ВИЕХ4 Из-за этого «предвидения» автоматы с конвейерным выходом могут быть более трудными для понимания и проектирования, чем автоматы с выходом Милн В приведенном примере нам пришлось изменить даже постановку задачи, чтобы приспособиться к новым требованиям.
Достоинство конвейерного выхода связано с тем, что сигналы берутся непосредственно с регистровых выходов, и заключается в том, что они устанавливаются после изменения состояния быстрее, табл. 7.31. Конечный автомат со встроенными определениями сигналов иа выходах типа Мили 7 11. Проектирование последоввтельностных схем на языке АВЕь 743 чем в случае выходов типа Мура или типа Мили, логда обычно необходима дополнительная комбинационная логика; при этом экономится время, равное задержке прохождения сигнала через несколько вентилей.
Возможно, что в примере с эдовым замком не так уж важно открыть ваш замок или увидеть подсказку на несколько наносекунд раньше. Однако в быстродействующих устройствах исключение этой задержки может играть решающую роль, вози?е БНЕХБ с?схе 'Совь?пае1ап-?оск Беате насьхпе' ?прис аий оисрие р?пз С?.ОСК, Х й1 ОЗ, ОМ1к, н1ит р1п; р1п 1зсуре ' тек '; " Ое?1пхсхопз Б = ?01,ОЕ,ЦЗ]; Е1Р = Х О, О, 0]; ХО=?0,0,1]; Х01 -" Х О, 1, 0]; ХО11 10,1,1]; Х0110 = Х 1, О. О]; хошо1 = Х 1. О, 1]; ХО?1011 = Х 1, 1, О]; Х011О111 = Х 1, 1, 1]; " Б1асе тзг?ав?ез " Беате впсоа1пйз зсасе Охантав Б азате Е1Р; 1Р Х- "О ТНЕМ ХО М1ТН ХОИ1.К :" 0; Н1ИТ : 1] Еснн Е1Р мхтн ?Омск: 0; н1ит :- "Оу МХТН ХОМ1К:= 0; Н1ИТ:= 11 М1ТН ХОИ?К:= 0; Н?ИТ ™ 1т зсасе ХО: 1Р Х 0 ТНЕИ ХО Е1.БЕ ХО! ?Р х= 0 тнеи хо и?тн ?си?к := 0; н1ит : 1] ЕЬЯЕ Х011 МХТН (НМ1К: 0; НХМГ:= О] зтате Х011: ?Г Х =О ТНЕИ Х0110 М1ТН (ОИЬК : 0; Н1ИТ := 11 ЕЬБЕ ЕХР И1ТН ХОИ1К ;= 0; Н1ИТ := От атаев Х0110: ?Г Х 0 ТКЕМ ХО ЕХ.БЕ ХО1101 МХТН (ОМ1К : 0; НХМТ:= 1] И1ТН ОЛЙ.К : 0; Н1МТ : 1] зевсе Х01101; 1Г Х 0 ТНЕИ ХО Е?БЕ Х011011 ИХТН ХУИ?К:= 0' Н1ИТ: 1] м?тн ХОМ?к :- о; н?ит := 1] зевсе 1011011: ХР х= о тнеи 10110 и?тн Хпм?к : о; нхит := 1] ЕьБЕ Х0110111 ИХТН тоник : 1; Н?ИТ := 01 вьете Х0110111.
ХР Х==о ТНЕМ Хо Е?БЕ Е1Р еЧизс?опз Б С?К - СЫСК; ОЩ.К.СЬК - СЫСК' ЕИО БНЕХБ М1ТН ?он?к : 0; Н1ИТ := 1] м?тн ?писк := о; нхит := о> Н1ИТ,СХ,К = С'ОСК; табл. 7.32. Конечный автомат со встроенными определениями сигналов на конвейерных выходах 7 $4З Глава 7. Принципы проектирования последовательностных схем 7.11.6. Проверочные векторы Полезность проверочных векторов и ограничения в отношении возможностей их использования при проектировании последовательностных схем на языке АВЕ1„ те же, что и в случае комбинационных схем [см. раздел 4.5.7). Одно важное добавление в синтаксис проверочных векторов состоите использовании константы ".
С." для обозначения фроюпа гпакаового сигнала [с!осА ес98е) О з ! -э О. В табл.7.33 приведена АВЕ[.-программа с проверочными векторами для простого 8-разрядного регистра с входом разрешения тактовою сигнала. С помощью набора векторов проверяется возможность загрузки различных значений входных сигналов и способность регистра нх удерживать. Табл. 7.33. Программа на языке АВЕЕ с проверочными векторами для про- стого 8-разрядного регистра поеи1е НЕСНЕИ сае1е '8-Ьзе гевавсег яьиь с1оск епаь1е' " 1прии епи сийрие рапи С1.К, ЕИ, 01..08 реп; Ц1..Ц8 р1п Авгуре 'геЕ'; " Явив О = [01 ° .08) Ц = [Ц1,.08) е<у~ае1опв Ц.С1.К = С1.К; севе иессогв ЕИР НЕСНЕИ Типичный подход к тестированию конечных автоматов заключается в составлении таких векторов, которые заставят автомат не только побывать во всех состояниях, но и пройти по всем переходам из каждого состояния.
Главное отличие и основная трудность по сравнению с проверочными векторами для ([С1.К, ЕИ, 0 ) [.С., 1, "Ь003 [.С., О, ЬРг) [.С., 1, "ЬРН) [.С., О, ЬОО) [.С,, 1, "ЬББ) [.С ° , О, "ЬААЗ [.С., 1, "ЬАА) [.С., 1, -ЬББ) [.С , 1, "ЬААЭ -> [ Ц )) > ["ЬОО); -> [ ЬОО]; "> ["ЬУР); -> [ ЬРР); -> ["ЬББ); -> [ ЬББ); -> [ ?АА); -> [ "ЬББ); "> ["ЬАА); " Ов 1п етегу 51Е " Нс14 сараЬ111су, ЕИ 0 1е зп втягу Ыв " Но16 сараЬШФУ " Аа)а епи Ьгсе впогсеа Но14 сараЬ>1зеу " А43асепс Ь1ев апогеей " ьоае в1сь ои1ск весир Аяа1п 7 Зт.
Проектирование последсвательнсстных схем на языке АВЕК. 745 мбинационных схем состоят в том, что векторы должны сначала ставить автоат в желаемое состояние, перед тем как будет протестирован переход, а затем возвращать автомат назад и делать это столько раз, сколько необходимо для тестирования каждого перехода из данного состояния. В табл. 734 приведены проверочные векторы для конечного автомата, описанного в табл. 7.27. Важно понимать, что, в отличие от комбинационных векторов, эти векторы должны подаваться на входы автомата точно в том порядке, в каком они написаны.
Заметьте, что векторы пишутся так, чтобы не зависеть от кодов состояний. В результате они могут оставаться одними и теми же при изменении способа кодирования состояний. Табл. 7.34. Проверочные векторы для конечного автомата из табл. 7,27 севс пеево«в г!Якает ь, шоск, ! о , .с., [ о , .с., .с. ! О , .С., ! 1 , .С. .с., ! 1 , .С., ! о, .с,, 1 , ,С., .с., ! 1 , ,С. .с., .с., А,В]-> о,о]-> 1, О]-> с, о] -> о, о] -> о, о] -> , о] -> А,О]-> о,о)-> о, о]-> о, о] -> 1, 1] -> 1, О] -> с, ш -> гоатятя г]КТТ !Ткгт паак)ко !Тятт Р ООКТКО р оакяко (ок ПК)Т ПОСК П)О Гок гак )ОК гьаск)ко )АЗТА, К]) О, 0]; , о]; о, о]; о, о]; о, о]; , о]; 1, 1]; о, о]; о, о]; С, 1]; 1, 1]; 1, 1); о , о]; СЬ Ь вЂ” ТКТТ !КЕЗЕТ) апо ЬАЗТА 111р-11ор Сове оыв 01 101С>езахахзов СЬеск ЬООК]ха †>ХМ1Т (КЯЕЯТ) Сове Оыа 01 1в1С1а11хас10п †> ьааКТКО в.п О)-1 --> ОК в>асе 1 =1 Свесе ОК вЂ >)И)Т (ЯЯВЕТ) Со васк соватов ОК --> ОЕ вовсе 1И=Π†> ОК 01ПСЕ В, ЕЫЕП СЬОЫЯЬ 1' Π†> ОК в1псе 1="1 — > ).ООК)я)О в>псе О~ 1 Мы встретимся с еще одной трудностью, если попытаемся составить проверочные векторы для кодового замка, описанного в табл.
7.3 !. При тестировании этого автомата главной проблемой оказывается отсутствие у него входа сброса. Его исходное состояние может быть различным при реализации на основе разных технологий и в разных ПЛУ: при включении питания все триггеры могут устанавливаться в единичные состояния или сбрасываться, либо случайным образом попадать в то или в другое состояние. В реальном воплощении рассматриваемому автомату не нужен вход сброса, но для целей тестирования его необходимо как-то заставлять входить в известное начальное состояние. К счастью, у кодового замка есть синхронизируюи]ая последовательность !Аупс))«оп)х)пй вес]пенсе), то есть фиксированная последовательность из одного или большего числа значений входного сигнала, которая всегда приводит автомат в определенное, известное состояние. В данном конкретном случае, независимо от того, в каком состоянии находился автомат сначала, при подаче на его вход значения Х =! в течение четырех тактов на четвертом такте он всегда будет Оказываться в состоянии 21Р.
Это именно то, что делается первыми четыРьмя векторамн в табл. 7.35. до тех пор, пока автомат не достигнет известного состояния, мы указываем ему в правой части проверочных векторов в качестве следующего состояния «безразличное» состояние, благодаря чему ни моделирующая программа, ни тестер, реализованный в виде отдельного устройства, не отреагиРует на случайное состояние как на ошибку.
746 Глава 7. Принципы проектирования последовательиостных схем СИНХРОНИЗИРУЮЩИЕ ПОСЛЕДОВАТЕЛЬНОСТИ И ВХОДЫ СБРОСА Нам повезло с кодовым замком: не у каждого конечного автомата есть син- хронизируюшие последовательности. Вот почему в большинстве случаев ко- нечныее автоматы проектируются с входом сброса, при наличии которого длина синхронизирующей последовательности становится равной единице. Табл.
7.35. Проверочные векторы для кодового замка из табл. 7.31 Приступив к проверке, мы встретимся еще кое с чем новым: с необходимостью тестирования выходов Мили. Как видно из пятого и шестого векторов, не в каждом проверочном векторе нам нужен тактовый сигнал для перехода.
Вместо этого мы можем удерживать тактовый сигнал равным нулю — при этом автомат будет оставаться в состоянии, в которое он попал при последнем переходе, — и посмотреть, какими будут сигналы на выходах Мили при двух значениях входного сигнала Х. Затем проверяется переход в следующее состояние.