![]() |
Звоните! (926)274-88-54 Бесплатная доставка. Бесплатная сборка. |
Ассортимент тканей График работы: Ежедневно. С 8-00 до 20-00. Почта: soft_hous@mail.ru |
![]() ![]() ![]() |
Читальный зал --> Программные средства foundation P-Terms Fan-iE Fan-out Type Каше 7/9 11/13 18/22 10 14 Pin Pin XEQY XGTY Табл. 6.10. Использование TepMOB-hpoHSBefle-ниий в ПЛУ MODECOMP Best P-Terns Total: 18 Total Pins: 16 Average P-Tersa/Output; 9 Табл. 6.11. Программа на языке ABEL для объединения четырех ИС 74x682 в 32-разрядный компаратор nodule Hodecomp title Control PLD for Hode-Depeadent Comparator M0DECO.MP device P16V8 ; Input and output pins MO, Ml, EQ2 L, G72 L, EQO.L, GTO L EQi L, GTi L, EQ3 L, GT3 L, XO. Xi, YO, Yl XEQY, XGTY pin 1..6; pia 7,.9, 10, 15..IB; pin 19, 12 istype сош Active-level conversioBS EQ3 = fEQ3 L; SQ2 = !EQ2 L; EQl = EQO = !EQO L; GT3 = !CT3 L; GT2 - !GT2 L; GTl = !GT1 L; GTO = !GTO L; Mode definitions H0DE32 -- ([Ml.HOJ [0,03) H0DE31 = ([Ml.HO] [0,13) M0DE30 = (№1,h03 == [2,03) HODEXX = ([Hi,HO] == [1,1]) 32-bit comparison 31-bit comparison 30-bit comparison Unused Expressions for 30-bit equal and greater-than EQ3Q - SQ3 & EQ2 к EQl к EQO; GT30 0X3 # (EQ3 к GT2) (EQ3 к EQ2 к GTl) # (EQ3 & EQ2 к EQl к GTO); equations ШЕЙ HQDE32 THEN { XEQY = EQ3G к (X1==Y1) к СХ0==У0); XGTY = GT3Q # (EQ30 к (Xl>Yi)) # (EQ30 ft (X1-=Y1) к (XO>YO)); ELSE Шт H0DE31 THEN { XEQY = EQ30 к (Xl==Yi); XGTY = GT30 # CEQ30 & (Xi>Yl)); } ELSE mmn мооЕйо then { XEQY = KQ30; XGTY = GT30; } end modecomp ре способа кодирования. Изменяя кодирование mode30 на [1, .x. ], можно уменьшить требуемое число термов-произведений для xgty до 7/12 и таким образом поместить схему в ИС 16V8. 6.2.6. Счетчик числа единиц Существует несколько важных алгоритмов, которые включают операцию подсчета числа единичных битов в операнде. Недавно некоторые микропроцессорные системы команд были расширены путем включения операции подсчета числа единиц в качестве одной из основных команд. Подсчет числа единиц в операнде легко реализовать в виде итеративного процесса, в котором вы просматриваете слово с одного конца до другого и увеличиваете содержимое счетчика на единицу каждый раз, когда встречается 1. Однако внутри АЛУ микропроцессора эта операция должна выполняться быстрее. В идеале мы бы хотели, чтобы подсчет числа единиц происходил так же быстро, как любое другое арифметическое действие типа сложения двух чисел. Поэтому требуется комбинационная схема. Предположим в этом примере, что нам требуется создать счетчик числа единиц в 32-разрядном слове как часть более крупной системы. Очевидно, что необходимое число входов и выходов не позволяет нам разместить счетчик в одном ПЛУ типа 22V10, но мы могли бы разбить устройство на отдельные компоненты для размещения в относительно небольшом числе ПЛУ. На рис. 6.10 показано такое разбиение. С помощью двух первых идентичных ИС 22V10 0NESCNT1 осуществляется счет числа единиц в двух 15-разрядных отрезках 32-разрядного входного слова D[31:0] с выдачей каждой из них результата в виде 4-разрядного числа. Следующая ИС 22V10 0NESCNT2 используется для сложения двух полученных 4-разрядных чисел и числа единиц в оставшихся 2-х разрядах входного слова. D[31:0].
.SUM[4:0] Рис. 6.10. Возможное разбиение схемы счетчика единиц на отдельные компоненты Программа для 0NESCNT1, приведенная в табл. 6.12, обманчиво проста. Операнд @ CARRY 1 включен для ограничения цепочки переносов одним разрядом; как объяснялось в разделе 5.10.8, это уменьшает число термов-произведений за счет появления вспомогательных выходов и увеличения задержки. К сожалению, при компилящ1и этой программы мой компьютер из-за ограниченных возможностей процессора в течение часа не выдавал никаких результатов. Это дало мне время воспользоваться своей головой - хорошее упражнение для тех из нас, кто стал слишком зависимым от автоматизированных средств проектирования. Тогда я понял, что для выхода SUMO могу записать логическую функцию вручную всего лишь за несколько секунд: SUMO = 00 8 01 в 02 8 ОЗе D4eD5eD6eD7e... ®D13®D14. Карта Карно для этой функции выглядит как шахматная доска, и минимальное выражение в виде суммы произведений содержит 2 термов-произведений. Очевидно, что это невозможно реализовать за один или несколько проходов через ИС 22V10! Так или иначе, я прекратил процесс компиляции и перезагрузил Windows на тот случай, если компилятор что-то испортил. Понятно, что для создания схемы, подсчитывающей число единиц, требуется разделение на небольшие блоки. Хотя мы могли бы и дальше продолжить пользоваться языком ABEL в расчете на реализацию в нескольких ПЛУ, но интереснее выполнить структурное проектирование такого устройства, пользуясь средствами VHDL, как это и будет сделано в разделе 6.3.6, а вариант с языком ABEL и микросхемами ПЛУ пусть останется в качестве задачи 6.6. 6.2.7. Игра в крестики и нолики в этом примере мы построим комбинационную схему, которая выбирает очередной ход в ифе в крестики и нолики. Прежде всего нужно решить, какой будет стратегия выбора очередного хода. Давайте попробуем подражать типичной стратегии человека, который принимает решения по шагам: 1- Ищем строку, столбец или диагональ, где имеются две наши метки (X или О в зависимости от того, на чьей мы стороне) и одна пустая клетка. Если такая ситуация обнаруживается, то помещаем свою метку в эту пустую клетку. Мы победили! Табл. 6.12. Программа на языке ABEL для подсчета числа разрядов, содержащих 1, в 15-разредном слове nodule onescntl title Count the ones in a 15-bit word ONESCNTl device P22V10 ; Input and output pins D14..D0 pin 13..15. 23; SUM3..SUM0 pin 17..20 istype com; equations aCARRY 1; [SUM3..SUMO] = DO + DI + D2 + D3 + D4 + D5 + D6 + D7 + D8 + D9 + DIO + Dll + D12 + D13 + D14; end onescntl ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку. Звоните! Ежедневно! (926)274-88-54 Продажа и изготовление мебели. Копирование контента сайта запрещено. Авторские права защищаются адвокатской коллегией г. Москвы. |