logo search
TurboProlog / Документация / TOM_1

Моделирование элементов аппаратуры

Любая логическая цепь может быть описана в Турбо Прологе при помощи

предикатов, где предикаты описывают соотношения между входными и выходны-

ми сигналами. Основные элементы логики описаны при помощи таблицы истин-

ности значений (см. предикаты and_, or_ и not_ в программе СH18EX04.PRO).

Основные элементы логики могут быть описаны с помощью не только

внешних, но и внутренних связей. В качестве примера сконструируем элемент

исключающее ИЛИ из элементов AND, OR и NOT, а затем проверим его работу с

помощью полученной программы.

В программе CH18EX04.PRO этот элемент описан при помощи предиката

xor.

/*Program CH18EX04.PRO*/

domains

d = integer

predicates

not_(d, d)

and_(d, d, d)

or_(d, d, d)

xor(d, d, d)

clauses

not_(1, 0). not_(0, 1).

and_(0, 0, 0). and_(0, 1, 0).

and_(1, 0, 0). and_(1, 1, 1).

or_(0, 0, 0). or_(0, 1, 1).

or_(1, 0, 1). or_(1, 1, 1).

xor(Input1, Input2, Output) :-

not_(Input1, N1), not_(Input2, N2),

and_(Input1, N2, N3), and_(Input2, N1, N4),

or_(N3, N4, Output).

Введя целевое утверждение

xor(Input1,Input2,Output)

мы получим следующий результат

Input1 = 1, Input2 = 1, Output =0

Input1 = 1, Input2 = 0, Output =1

Input1 = 0, Input2 = 1, Output =1

Input1 = 0, Input2 = 0, Output =0

4 solutions (решения)

который подтверждает, что указанный элемент действительно выполняет тре-

буемую задачу.