![]() |
Звоните! (926)274-88-54 Бесплатная доставка. Бесплатная сборка. |
Ассортимент тканей График работы: Ежедневно. С 8-00 до 20-00. Почта: soft_hous@mail.ru |
![]() ![]() ![]() |
Читальный зал --> Программные средства foundation функцию устройства для обнаружения простых чисел. Ради удобства, идентификатор NUM определен как синоним набора из четырех входных битов [N3,N2,N1,N0], благодаря чему значения 4-разрядного двоичного входного сигнала можно записывать в виде десятичных целых чисел. Табл. 4.17. Программа на языке ABEL для устройства, обнаруживающего простые числа module PrimeDet title 4-Bit Prime Number Detector Input and output pins NO, N1, N2, N3 Definition NUM = [N3,N2,N1,N0]; truth table (NUM -> F) 1 -> 1 pin; pin istype com; 2 3 5 7 11 -> -> -> -> 13 -> 1 end PrimeDet В пределах одной и той же программы на языке ABEL можно использовать как таблицы истинности, так и равенства. Последовательность равенств вводится ключевым словом equations, аодиночная таблица истинности-ключевым словом truth table. 4.6.5. Диапазоны, наборы и отношения Большинство цифровых систем содержит шины, а также регистры и другие схемы, в которых происходит обработка двух или большего числа сигналов, идентичных по своему характеру. В языке ABEL предусмотрено несколько экономичных и удобных способов определения таких сигналов и обращения с ними. Один из таких приемов применяется для задания имен сигналов, подобных друг другу и указываемых посредством номера. Как показано в табл. 4.18 диапазон (range) имен сигналов можно определить, указав первое имя и последнее имя в этом диапазоне, разделенные двумя точками . . . Например, запись N3.. N0 тождественна записи N3, N2, N1, N0 . Обратите внимание, что, как видно из таблицы, возможно задание диапазона с возрастанием и с убыванием номеров. Далее, в случае, когда все сигналы из некоторой группы обрабатываются совершенно одинаково, нам нужны средства более компактной записи равенств, чтобы уменьшить вероятность появления ошибок и несовместимостей. Набор (set) в языке ABEL - это заданная совокупность сигналов, обрабатываемых как один сигнал. Когда присваивания и логические операции типа И и ИЛИ употребляются применительно к набору, они выполняются для каждого элемента набора. Табл. 4.18. Примеры диапазонов, наборов и отношений module SetOpe title Set Operation Examples Input and output pins N3..NO. M3..MO, SEL pin; Y1..Y4, 20..Z3. EQ, GE, GTR. LTH. UNLUCKY pin istype com; Definitions N = [N3,N2,N1,N03; M = [M3,M2.M1,M03; YOUT = [Yl. .Y4] ; ZOUT = [Z3..ZO]; COMP = CEQ.GE] GT = С 0. 1] LT = [ 0, 0] equations YOUT = N & M; ZOUT = (SEL fe N) # (!SEL fe M); EQ = (N == M); GE = (N >= M); GTR = (COMP == GT); LTH = (COMP == LT); UNLUCKY = (N == 13) # (M == hD) # ((N + M) == bllOD; end SetOps Каждый набор определяется в начале программы путем связывания имени с заключенным в квадратные скобки списком элементов набора (например, N = [ N3, N2, N1, N0] в табл. 4.18). Для списка элементов набора может быть использовано сокращенное обозначение (YOUT = [ Yl.. Y4 ]), но имена элементов не обязательно должны быть похожими или как-то связанными с именем набора (СШР = [EQ, GE]). Элементами набора могут быть также константы (GT = [ 0,1 ]). В любом случае, как мы увидим в дальнейшем, существенны число и порядок элементов в наборе. К наборам применимо большинство операторов языка ABEL. Когда та или иная операция осуществляется с двумя или большим числом наборов, все наборы должны иметь одно и то же число элементов. Операция выполняется по отдельности с элементами наборов, располагающимися на одинаковых позициях, независимо от их имен или номеров. Таким образом, равенство YOUT = N & М эквивалентно следующим четырем равенствам:
Если операция включает набор и переменные, не являющиеся элементами наборов, то эти последние участвуют в операции с элементами набора в каждой позиции по отдельности. Таким образом, равенство ZOUT = (SEL & N) # {! SEL & М) эквивалентно четырем равенствам вида г1= (SEL&Ni) # {! SEL & Mi) для значений/от ОдоЗ. Другой важной особенностью языка ABEL является возможность преобразования отнощении в логические выражения. Отношение (relation) - это пара операндов, соединенных одним из операторов отношения (relational operators), перечисленных в табл. 4.19. Компилятор преобразует отнощение в логическое выражение, принимающее значение 1 тогда и только тогда, когда отнощение истинно. Табл. 4.19. Операторы отношения в языке ABEL
Операнды в отношении считаются целыми числами без знака, но любой из них может быть целым числом или набором. Если операндом является набор, то он воспринимается как целое двоичное число без знака, причем крайняя левая переменная в наборе представляет собой старший разряд этого числа. По умолчанию, числа в программах, написанных на языке ABEL, полагаются десятичными. Шестнадцатеричные и двоичные числа обозначаются приставками h и Ь соответственно, как это продемонстрировано в последнем равенстве в табл. 4.18. Наборы и отношения позволяют представить массу функциональных зависимостей на языке ABEL в виде совсем небольшого числа строк в профамме. Например, равенства в табл. 4.18 порождают минимизированные равенства с 69 термами-произведениями, как это следует из результатов, приведенных в краткой форме в табл. 4.20. *4.6.6. Безразличные комбинации входных сигналов Некоторые версии компилятора языка ABEL обладают офаниченной способностью оперировать с безразличными комбинациями входных сигналов. Как упоминалось выше, равенствами языка ABEL определяются комбинации входных сигналов, принадлежащие множеству включений логической функции; про остающиеся комбинации предполагается, что они принадлежат множеству выключе- ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку. Звоните! Ежедневно! (926)274-88-54 Продажа и изготовление мебели. Копирование контента сайта запрещено. Авторские права защищаются адвокатской коллегией г. Москвы. |