ВУЗ:
Составители:
Рубрика:
памяти будут пропорциональны числу конъюнкций в ДНФ реализуемой
функции, то предварительно необходимо минимизировать искомую
функцию, т. е. построить ее кратчайшую ДНФ ( с минимальным числом
конъюнкций).
Обратимся к реализации такого подхода. Как и ранее, в качестве
искомой функции возьмем функцию y. Будем считать, что входные
переменные уже введены в память микропроцессора и упорядочены в одно
входное слово, каждый разряд которого соответствует одной входной
переменной. С каждым из слов-конъюнкций искомой функции
сопоставляется маскирующее слово. В разрядах маскирующего слова
записаны 1, если соответствующие разряды слова-конъюнкции являются
определенными, т. е. содержат 1 или 0. Если некоторый разряд слова-
конъюнкции является неопределенным ( т.е. содержит символ « х»), то в
соответствующий разряд маскирующего слова записывается 0. Хранение
маскирующих слов и слов-конъюнкций осуществляется в стеке. Пусть стек
организован в оперативном ЗУ, а обращение к нему осуществляется через
регистр указателя стека, в котором постоянно хранится адрес первого
слова стека. По мере продвижения данных из стека в рабочие регистры
микропроцессора содержимое регистра указателя стека автоматически
увеличивается на единицу. Последним словом стека всегда является
нулевое слово, т. е. слово, все разряды которого равны нулю.
Программа первоначально осуществляет поразрядное сложение по
модулю 2 разрядов входного слова и текущего слова-конъюнкции. Если
соответствующие разряды этих двух слов совпадают, то разряд резуль-
тирующего слова будет нулевым. В случае несовпадения этих разрядов
соответствующий разряд результирующего слова будет единичным. Для
исключения влияния неопределенных разрядов в слове-конъюнкции
производится поразрядное логическое умножение результирующего слова
и соответствующего маскирующего слова. Если все разряды полученного
при этом слова будут нулевыми, то функции присваивается единичное
значение. При считывании из стека нулевого слова вычисления
прекращаются. При использовании этого метода искомая функция будет
равна единице только в том случае, когда наблюдается полное совпадение
входного слова и одного из слов-конъюнкций в тех разрядах, для которых в
маскирующем слове записаны единицы.
По сравнению с методом непосредственного вычисления булевых
функций рассмотренный подход обладает рядом преимуществ. Вo-первых,
программа вычислений в значительной степени является универсальной и
единственное изменение, которое требуется при переходе к реализации
новой функции, сводится либо к изменению содержимого стека, либо к
организации дополнительного стека и занесению адреса первого слова
нового стека в регистр указателя стека. Во-вторых, данный метод является
памяти будут пропорциональны числу конъюнкций в ДНФ реализуемой функции, то предварительно необходимо минимизировать искомую функцию, т. е. построить ее кратчайшую ДНФ ( с минимальным числом конъюнкций). Обратимся к реализации такого подхода. Как и ранее, в качестве искомой функции возьмем функцию y. Будем считать, что входные переменные уже введены в память микропроцессора и упорядочены в одно входное слово, каждый разряд которого соответствует одной входной переменной. С каждым из слов-конъюнкций искомой функции сопоставляется маскирующее слово. В разрядах маскирующего слова записаны 1, если соответствующие разряды слова-конъюнкции являются определенными, т. е. содержат 1 или 0. Если некоторый разряд слова- конъюнкции является неопределенным ( т.е. содержит символ « х»), то в соответствующий разряд маскирующего слова записывается 0. Хранение маскирующих слов и слов-конъюнкций осуществляется в стеке. Пусть стек организован в оперативном ЗУ, а обращение к нему осуществляется через регистр указателя стека, в котором постоянно хранится адрес первого слова стека. По мере продвижения данных из стека в рабочие регистры микропроцессора содержимое регистра указателя стека автоматически увеличивается на единицу. Последним словом стека всегда является нулевое слово, т. е. слово, все разряды которого равны нулю. Программа первоначально осуществляет поразрядное сложение по модулю 2 разрядов входного слова и текущего слова-конъюнкции. Если соответствующие разряды этих двух слов совпадают, то разряд резуль- тирующего слова будет нулевым. В случае несовпадения этих разрядов соответствующий разряд результирующего слова будет единичным. Для исключения влияния неопределенных разрядов в слове-конъюнкции производится поразрядное логическое умножение результирующего слова и соответствующего маскирующего слова. Если все разряды полученного при этом слова будут нулевыми, то функции присваивается единичное значение. При считывании из стека нулевого слова вычисления прекращаются. При использовании этого метода искомая функция будет равна единице только в том случае, когда наблюдается полное совпадение входного слова и одного из слов-конъюнкций в тех разрядах, для которых в маскирующем слове записаны единицы. По сравнению с методом непосредственного вычисления булевых функций рассмотренный подход обладает рядом преимуществ. Вo-первых, программа вычислений в значительной степени является универсальной и единственное изменение, которое требуется при переходе к реализации новой функции, сводится либо к изменению содержимого стека, либо к организации дополнительного стека и занесению адреса первого слова нового стека в регистр указателя стека. Во-вторых, данный метод является