Джон Ф.Уэйкерли Проектирование цифровых устройств. Том I (2002) (1095889), страница 137
Текст из файла (страница 137)
Объект, находящий победный ход лля меня, может также находить ход, блокирующий выигрыш моего противника. С другой стороны, это означает, что объект, который находит победный ход лля меня, может найти для меня и блокирующий ход, если поменять местами представление игрового поля с моей точки зрения и с точки зрения моего противника. Именно здесь дает выигрыш наше симметричное кодирование: игроков легко менять местами простой перестановкой сигналов Х и Х. Имея это в внлу, воспользуемся для выполнения 1-го и 2-го шагов двумя эюемплярами одного и того же обьекта тиотпдои, как показано на рис.
6.17. Обраппе внимание, что сигнал Х подан на верхний вход первого объекта тно 1пдои и на нижний вход такого же второго обьекта. Третий объект РТСк выбирает победный ход, если он имеется на выходе обьекта 01, в противном случае обьект РТСК выбирает блокирующий ход, если он имеется иа выходе обьекта 02; когда ни того, ни другого хода нет, в объекте Рт Ск «используется опыт» для выбора хода на 3-м шаге.
612 Глава 6. Примеры проектирования комбинационных схем тао)пион МОЧЕ Табл. 6.37 представляет собой структурную ЧНОЬ-программу для объекта верхнего уровня ОЕТМОЧЕ. Помимо пакета 1ЕЕЕ зпс) 1одйо 11бй в ней используется наш пакет ТТТс)е 1 Я. Обратите внимание, что предложением впз е" предписывается сохранение пакета ТТ Тс(е ТЯ в библиотеке "ног Н", которая создается автоматически для нашего проекта.
Табл. 6.37. Структурный ЧНОЬ-объект верхнего уровня для выбора хода в игре в крестики и нолики 11ьгпгу 1ЕЕБ; пвв 1ЕЕЕ.взй 1пкгс„1164,а11; пве вогН.ТТгйетв.а11; ссвропвпг Тво1пксп рось ( Х, У: гп ТТТЯггй; ИОЧЕ: опс ЯТО 10010 ЧЕСПВ(3 йояппо О) ); епй сопропепг; сопропепп РХСК рогс ( Х, Т: гп ТТТяггй; ЧХИИЧ, ВХКИЧ: гп Ятп ЬОСХС ЧИСТОВ(З йо- Го О); ИОЧЯ; опъ ЯТО 10010 ЧЕСТОЕ(3 йопп1о 0) ); епй сппропюпгс ппггеу СЕТИОЧЕ зв роге ( Х, Т: гп ТТТягзй; ИОЧЕ: опг ТТТаатв ); впй СЕТИОЧЕ~ пгсвьгесппге СЕТИОЧЕ пгсл от СЕТИОЧЕ зв вввпв1 ВТИ.
В(.К: ЯТО ЬОСХС ЧЕСТОЕ(3 йо гпго О); Ъеягп 01: Тпо1пвоп Япг1 пар (Х, т, В|Е); пап Тпп1лвпп ясгп ппр (Т, Х, ВЬК); ОЗ. Я)СК рп г ппр (Х, т, ЧХЯ, В1Л, ИОЧЕ); впй СЕТИОЧЕ пгс)п Рис. 6.17. Разбиение на отдельные объекты устройства для игры в крестики и нолики 6 3. Примеры проектирования с использованием языка УНОЕ 613 В архителтуре в табл. 6.37 объявлены и используются только два компонена ТИО1ПЕОИ И Р1ОК, КОТОРЫЕ ВСКОРЕ бУЛУт ОПРЕДЕЛЕНЫ. От ДВУХ бЛОКОВ тио1пеох к блоку Р1Ок поступают только два внутренних сигнала ы1Е и век, приводящие к победному или блокирующему ходу, как и на рис. 6.17, Обработа этих сигналов производится всего лишь тремя операторами в исполняемой части архитектуры, соответствующими блокам, указанным на рисунке Теперь пришла очередь интересной работы: нужно создать отдельные объекты, изображенные на рис. 6.17. Начнем с объектов Тио1пцои, так как они составляют две трети проекта.
Согласно табл. 6.38, объявление такого объекта не представляет труда. Но в отношении его архитектуры, приведенной в табл, 6 39, есть целый ряд вопросов, которые следует обсудить. Табл. 6.36. Объявление объекта Тхо1пнои 1въг 1Гца; ввв 1ЕБЕ,вМ ъвлвс 1164 в11; ввв ввтх тттлвГв.ащ; ввввву тво1ваев вв Рогв ( 1, т: ~в Ттта~щ; Ноте, вез .тТаввв ); ввд .вв1вков; В архитектуре определены несколько функций, в каждой из которых решается, будет ли победным (с точки зрения игрока Х) ход в конкретную клетку 1,3. Победный ход существует, когда клетка 1,3 пуста и две другие клетки в той же строке, в том же столбце или на той же диагонали содержат метку Х.
Функции Е и с выполняют поиск победного хода в клетки 1,3 по строкам и столбцам соответственно. Функции 0 и Е осуществляют то же самое по двум диагоналям. В единственном процессе архитектуры объявлены девять переменных О 11— 033 типа ЕООЕЕАН для указания возможности победного хода в каждую клетку. В начале процесса каждой из этих переменных присваивается значение тле, если посредством вызова нужных функций и объединения их результатов устанавливается, что ход в клетку 1,3 возможен. Остальная часть процесса представляет собой оператор "11" с большой глубиной вложений, который ищет победный ход во все возможные клетки.
Хотя обычно это приводит к синтезу более медленной логики, тем не менее, вложенный оператор "з 1в предпочтительнее, нежели какая-либо разновидность оператора "саяе", поскольку может быть несколько допустимых ходов. Если победного хода нет, то соответствующей переменной присваивается значение "ЕОЕЕ". ФУНКЦИИ ЧИСТЫЕ И НЕЧИСТЫЕ Помимо индекса клетки з,3, в фУнкции е, О, О и Е в табл.
6.39 передается состояние игрового поля в виде массивов Х и у. Зто необходимо делать потому, что, по умолчанию, Ъ'НР1:функции являются чистыми ~риге), а это означает, что сигналы и переменные, объявленные в стрултуре, порождающей функцию, непосредственно не видимы в пределах функции. Однако это ограничение можно ослабить путем явного объявления функции нечистол помещая ключевое слово Тырс ге перед ключевым словом 1ипсгз оп в ее определении. 614 Глава 6. Примеры лроектированип комбинационных схем 'табл. 6.69. Архе)тектура объекта тнотоеон агсмгесгнге ТчотдВоч агсЬ о1 Тчо1дкоч 1в ундсс1од В(Х, т: УТТегм; 1, ); ТИТЕСЕВ) гесигп ВООьедх 1в чаг1аъге геви1с: 3001.ЕАИ; Ье31д геви)С; ТЕСЕ; Уог 1) 1п 1 Со 3 1оор 11 )) ) сьеп гево1с;= гевн1с апп х(1)())) '0' апд у(1)()1) '0'; е)ве гева1с:= гевн1г адй ХОХ)())) '1'; еди г(; едд 1оор; гегигд гаага н; епд В; -- Р1ао 2-'д"гоч ч1сЬ едрсу се11 1,) Хипсггод с(х, т: тттег(д; 1, 0: 1мтесеВ) гегнгд ВООьеди 1в наг1аЬ1в геви1с; ВООЬЕАМ; ЬеЕ д геви1с: ТЕСЕ; Рог 11 1д 1 со 3 1оор 11 11 1 сьеп гевн1с: гевн1с анй х(11)()) '0' аьс у(1г)()) '0'; е)ве геви11: гевн1с аль х(м)())='1'; еди 1х; еда )оор; гегнгп геви1С; впй С; -- Ргдд 2-1д-со)иол чАСЬ варну се11 1,) уипсс1од 0(х, у: тттег1п; 1, ): 1итесек) геснгп ВООьеАи Ав саг1аЬХе геви1Г: 000).ЕАИ; — Р1пй 2-1л-01аЕона1 ч1СЬ парсу се11 1,„'.
ЬвЕ(д — ТЫв гв Рог 11, 22, 33 ПгаВлпа1. гевн1с : ТЕСЕ; Уог 11 1п 1 Со 3 1оор 11 г1 ' сь геви)с : геен)с впп х(11)(11)"'0' а а У(11)(11) 'О'; е1ве гевн1с: гевн1с адй Х(11) (11) '1'; еда 11; едд 1оор; геснгд гевиЬс; епд 01 Хидсс1оп Е(Х, Т; ТТТЕг10; 1, 1': 1ИТЕСЕВ) гаднгд ВООЬЕАИ 1в уаггаьЬе геви1гп 000ьРАМ; — РАпп 2-1д-й1аЕопа1 чАсь еарду се11 г,). ЬеВАь — ТЬ(в 1в Рог 13, 22, 31 д(аЕоьа1. гевн1: ТВОЕ; Хог 11 Аь 1 Со 3 1оор гх г1 1 сьед гввс1с:" геви1с апп х(11)(А-11)='0.
*апд у(1г)(4-11) 'О'' в1ве геви1с:= гвви'с ада х(11)(4-г1) '1'; еьд 11; едд 1оор; гегигн гввн1С; епп е; Ье31п ргосевв (Х, У) чаг(аъ)е 011, 012, 013. С21, 022, 023, 031, 032, 033: ВООЬЕАИ; ЬеЕга 011 :" В(Х,У, 1, 1) ог С(Х,У. 1, 1) ог 0(Х,У,1, 1); 012 := В(Х,У,1,2) сг 0(Х,У,1,2)~ 013 : В(Х,У, 1,3) ог С(Х,У,1,3) ог Е(Х,У,1 3). 021 : В(Х,У,2,1) ос С(Х,У,2,1); 022 :" В(Х,У,2,2) ог С(Х,У,2,2) ог 0(Х,У,2,2) о Е(Х,У,2,2); 023 : В(Х,У,2,3; ог 0(Х,У,2,3); 6.6. Примеры проектирования с использованием языка ЧНОЬ 615 табл.
6.39. АРхитектура объекта Тно1пеои (продолх<ение) Табл. 6.40. ЧНО(.-программа для блока, который делает победный или бло- кирующий ходы в игре в крестики и нолики, либо «использует опыт» при вы- боре очередного хода, когда победного и блокирующего ходов нет 11Ьгегу 1ЕЕЕ; пве 1ЕЕЕ,всб 1ов1с !!Зб.а11; пве еогЬ.ТТТбехв,а11; епггсу РХСК гв роге ( Х, У: 1п ТТТКгхб! 71ИИЧ, ВЬКИЧ: 1 Втв 10616 ЧЕСГОВ(З бо .го О): МОЧЕ: опс ЗТО 10616 ЧЕС"ОК(3 боегпо О) ); епб РТСК; агсЬ!се<гоге РТСК агсЬ от Р1СК 1з «пгсп1ог* ИТ(Х, У: ТТТЕг1«; 1, О; 1ИТЕСЕК) гег Ьсв1п — Ое Сего1пе гегпгп Х(г)(„') 'О' апб У(1)())'-'О'! епб МТ; Ьев! а Рго (Х, т, 71ВИЧ, ВЬКИЧ) ЬеЗАа 11 ЧИО»7 / ЕОМЕ сЬеп МОЧЕ <= Ч|ИМЧ; е)згв ВЬКИЧ У= ХОМЕ СЬ ИОЧЕ - ВЬКИЧ; е1згт ИТ(Х,У,2,2) <Ьеп МОЧЕ < МОЧЕ22; е1е11 ИТ(Х,У,'.1) ЕЬеп МОЧЕ < МОЧЕ11; е1з11 МТ(Х.У,Х,З) СЬеп МОЧЕ <= МОЧЕ13; е1вг1 МТ(Х,У,3,1) 1Ьеп МОЧЕ <» ИОЧЕ31; е1з11 МТ(Х,У,З,З) «Ьеп МОЧЕ <«М07ЕЗЗ; е1з11 ИТ(Х,У, 1.2) <Ьеп МОЧЕ <= И07Е12; е)згз ИТ(Х,У,2, 1) сЬеп МОЧЕ <« ИОЧЕ21; е)з!У ИТ(Х,У,2,3) с а МОЧЕ < МОЧЕ23; е)вгг Ит(Х,т,в«2) ЬЬ .
МОЧЕ <= ИОЧЕЗ2; в1зе МОЧЕ <= ИОИЕ; епб гв! апб Ргосезв; епб Р1СК агсЬ; пгп ВООЬЕАМ ~з гг се!1 1,) зе еаРСУ 17 аиаг1аще, Р1сун егппгпв по»е е1ве Ыоск1гв ао«е егве свпгег се11 е1ве согпег се11в е1зе в!бе се))з е1зе Егзб 1в 1п11 СЗ :- В(Х,У,З СЗ2 : В(Х,У,З СЗЗ : Е(Х,У,З 11 С11 сЬеп е1в!1 612 сввп е1вгх 613 ГЬеп е1в11 621 !Ьеп е)в11 622 <Ьеп е1в11 023 ЬЬеп е1вгх СЗ! гЬеп е)згУ 632 ЕЬеп е1вгх 633 сЬвп е1ее епб 1.; епб Ргосезз; епб Тео1екое агсЬ; !) ог С(Х,У,З,1) ог Е(Х,У,З,1); 2) ог С(Х,У,3,2)! 3) ог С(Х,У,З,З) ог О(Х,У,З,З); МОЧЕ <« МО7Е11; М07Е <« И07Е12; МОЧЕ <« МОЧЕ!3! МОЧЕ < МОУЕ21; МОЧЕ < ИОЧЕ22; МОЧЕ <» ИО7Е23; МОЧЕ <» МОЧЕ31; МОЧЕ < МОЧЕ32; МОЧЕ < ИОЧЕЗЗ; МОЧЕ < МОИЕ; 616 Глава 6.
Примеры проектировании комбинационных схем В объекте Ртск результаты работы двух объектов тнотпкон объединяются согласно программе, приведенной в табл. 6.40. Устанавливается приоритет победного хода по отношению к блокирующему ходу. Если таких ходов нет, то вызывается функция мт, нагорая для каждой клетки, начиная с центральной клетки и заканчивая клетками по бокам игрового поля, находит возможный ход. Этим завершается разработка устройства для игры в крестики и нолики.
Задачи Объясните, как можно реализовать 16-разрядное устройство быстрого сдвига из раздела 6.1,1 на основе комбинации ИС 74х157 и 74х! 5 !. Сравните ваш вариант с другими возможными решениями с точки зрения задержки и количества ИС? Покажите, как можно реализовать 16-разрядное устройство быстрого сдвига из раздела 6.1.1 с помощью восьми идентичных ИС ОА1.22Ч10. 6 3 Найдите способ кодирования величины сдвига [Я [3: 0] ) и режима работы (С [2: О] ) в устройстве быстрого сдвига из табл.
6.3, который приведет к сокращению обшего числа термов-произведений, используемых в проекте. «.4 Внесите изменения в программу двойного приоритетного шифратора [табл. 6.6), уменьшающие число требуемых термов-произведений. Определите, приведут ли ваши изменения к увеличению задержки схемы при ее реализации в ИС ОАЬ22Ч10. Можете ли вы сократить число термов-произведений до такого значения, чтобы схема поместилась в ИС ОАЬ ! 6Ч8? Вот вам возможность пошевелить мозгами подобно автору, когда ему пришлось выводить равенство для выходного сигнала 80МО в табл. 6.12: потребуется ли для каждого из выходных сигналов БОМ!-8[]МЗ большее нли меньшее число термов-произведений, чем это оказалось необходимым для сигнала Я[)МО? Завершите начатую в разделе 6.2.6 разработку схемы для подсчета числа единиц в слове на языке АВЕЬ, имея в виду ее реализацию в ПЛУ.