Синтез автомата с “жесткой” логикой

ЗАДАНИЕ

 на  курсовой проект

Дисциплина:  Теория Автоматов

Тема: Синтез автомата с “жесткой” логикой

Задание: Синтезировать  цифровой автомат с жесткой логикой  для операций MUL, ASR, BIT, BNE, SEV в базисе ИЛИ-НЕ на триггерах типа JK  с использованием  косвенно- автодекрементного и регистрового методов адресации. 

                                                                                     
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

СОДЕРЖАНИЕ

 

  1. Введение…………………………………………………………………………
  2. Микропрограммные  автоматы……………………………………………
  3. Автоматы  с жесткой логикой…………………………………………….
  4. Управляемые автоматы…………………………………………………..
  5. Дешифратор……………………………………………………………….
  6. Глава первая……………………………………………………………………
  7. Описание  способов адресации…………………………………………..
  8. Описание  JK триггера…………………………………………………….
  9. Глава вторая…………………………………………………………………..
  10. Описание  команд…………………………………………………………
  11. Команда MUL………………………………………………………..
  12. Команда ASR…………………………………………………………
  13. Команда BIT…………………………………………………………
  14. Команда BNE……………………………………………………….
  15. Команда SET………………………………………………………...
  16. Описание  содержательной ГСА………………………………………….
  17. Глава третья…………………………………………………………………….
  18. Синтез  управляющего автомата…………………………………………….
  19. ГСА…………………………………………………………………………
  20. МСА……………………………………………………………………….
  21. ОМСА…………………………………………………………………….
  22. Общая ГСА…………………………………………………………………

       4.  Глава четвертая………………………………………………………………..

            4.1. Синтез управляющего автомата  с жесткой логикой……………………

            4.2. Структурные таблицы…………………………………………………..

            4.3. Функции возбуждения…………………………………………………….

            4.4. Функции выходов…………………………………………………………

       5. Глава пятая……………………………………………………………………..

            5.1. Используемая литература……………………………………………….

            5.2. Схемы…………………………………………………………………….. 
 
 
 
 

                                                                                     
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

ВВЕДЕНИЕ 
 
 

 

    Курс “Теория автоматов”  — основной этап в изучении электронной вычислительной техники.

    Обобщенно любую ЭВМ можно представить (согласно принципу академика В.М. Глушкова) в виде двух основных устройств: операционного (ОУ) и управляющего (УУ). Управляющее устройство вырабатывает распределенную во времени последовательность управляющих сигналов, порождающих в операционном блоке нужную последовательность микроопераций. То есть автоматически управляет вычислительным процессом, посылая всем другим устройствам сигналы, предписывающие им те или иные действия.

    Генерируемая  управляющими устройствами последовательность управляющих сигналов задается поступающими на его входы кодом операции, сигналами из операционного устройства, несущими информацию об особенностях операндов, промежуточных конечных результатов операций, а также синхросигналами, задающими границы тактов.  Существует два основных типа управляющих автоматов:

    Управляющий автомат с хранимой в памяти логикой.  Каждой

выполняемой в  операционном устройстве операции, ставится в соответствие совокупность слов —  микрокоманд.   То есть функции  переходов и выходов управляющего автомата реализуются хранимой в  памяти совокупностью микрокоманд.   

    Управляющий автомат с  “жесткой”,  или  схемной логикой. Для каждой операции, задаваемой, например, кодом операции  команды, строится набор комбинационных схем, которые в нужных тактах возбуждают соответствующие управляющие сигналы. Другими словами строится конечный автомат, в котором необходимое множество состояний представляется состояниями  k запоминающих элементов. С целью приобретения навыков построения цифровых схем, их синтеза, выбора элементной базы, и анализа принципов построения управляющих  автоматов, главная задача данного проекта — проектирование и реализация устройства управления с «жесткой» логикой.

    

0.1. Микропрограммные автоматы

        В ВТ к операционным автоматам относятся блоки памяти регистры, сумматоры, каналы передачи информации, шифраторы, дешифраторы, а к устройству управления ту часть машины, которая координирует действие всех перечисленных в определенной последовательности переработки информации.

      Задача  устройства управления является выработка  распределенная во времени последовательностью сигналов, под действием которых в операционном автомате осуществляется некоторая операция (сложение, умножение).

      Проектирование  устройства управления представляет наибольшую сложность и более того часто  проектирование систем делается после выбора основных частей операционных устройств.

      Микропрограмма  – это порядок выполнения операций в дискретном устройстве и представляет собой совокупность микроопераций  и логических условий.

      Микрооперация – элементарный процесс обработки  информации в дискретной системе, или какой либо ее части происходящий за один такт работы автомата (такт – это промежуток между двумя последовательными моментами дискретного автоматного времени).

      Для выполнения той или иной микрооперации управляемый автомат выполнит y1, y2, … yn где yi – работа одной микрооперации.

      Если  за один такт автоматного времени  выполняется несколько микрооперации, то эта совокупность называется микрокомандой Yt={yt1, yt2, … ytn}

      Выполнение  микропрограммы состоит в последовательном выполнении микроопераций определенными булевыми функциями. 

    1. Автоматы  с жесткой логикой

     Операционная  схема состоит из ОЗУ (оперативного запоминающего устройства), УУ (устройства управления), АЛУ (арифметико-логического устройства) и 19 регистров (8 из них находятся в СОЗУ).

       ОЗУ называют устройство, служащее для хранения информации (данных, программ, промежуточных и конечных результатов обработки), непосредственно используемой в процессе выполнения операций в АЛУ и в УУ. Оно состоит из N ячеек по K байт. В процессе обработки информации процессор тесно взаимодействует с ОЗУ. Из ОЗУ в процессор поступают команды программы и данные, а из процессора в ОЗУ направляются для хранения промежуточные и конечные результаты. Одну ячейку памяти можно использовать для хранения одного двоичного числа или одной команды программы. Пользователь должен определить области памяти для данных и программы.

       

       УУ служит для реализации заданного набора операций и реагирования на прерывание программы от устройств ввода-вывода. УУ вырабатывает необходимые управляющие сигналы для выборки очередной команды из памяти, дешифрирования кода команды, формирования адресов операндов, выборки операндов из памяти, передачи их в АЛУ, выполнения в АЛУ операции, предусмотренной кодом команды, передачи полученного в АЛУ результата операции в память, инициирования операции ввода-вывода, организации процессора на запросы прерывания. В данном курсовом проекте УУ представляет собой управляющий автомат с «жесткой» логикой, т.е. логические схемы, вырабатывающие распределенные во времени управляющие функциональные сигналы. В отличии от УУ с хранимой в памяти логикой у этих автоматов можно изменить логику работы только путем переделок схем автомата.

       АЛУ позволяет реализовывать арифметические и логические операции над данными. Характер выполняемой АЛУ операции задается программой.

       Операционная  схема содержит следующие регистры:

       Рг0-Рг7 – регистры общего назначения:

       Рг6 – играет роль указателя стека.

       Рг7 – счетчик команд, предназначен для организации обращения к ячейкам памяти, где хранится программа. В конце каждого цикла исполнения команды счётчик указывает адрес ячейки памяти, содержащую следующую команду программы. В некоторых случаях содержимое счётчика команд может быть изменено самой программой (например, при командах перехода). Таким образом, передаётся управление другой части программы.

       РгPSW – регистр состояний процессора, который содержит коды условий:

       1. N – знак результата;

       2. Z – нулевой результат;

       3. V – переполнение;

       4. С – перенос из 15-го разряда;

       5. Т – разряд слежения (установкой Т=1 программист обеспечивает возможность покомандного выполнения программ при их отладке);

       6. Р – маска прерывания.

       Понятие о состоянии процессора занимает важное место в организации вычислительного процесса в ЭВМ. Информация в РгPSW лежит в основе многих процедур управления вычислительным процессом, например при анализе ситуации при отказах и сбоях. РгPSW должен в каждый момент времени содержать информацию, достаточную для продолжения выполнения программы или ее повторного запуска с точки формирования РгPSW.

       Регистр РгPSW описан на основе одноименного регистра микроЭВМ «Электроника-60».

       Рг10, Рг11, Рг12, Рг13 – регистры, использующиеся для хранения исходных операндов, промежуточных данных и для других целей.

       Рг14 – служит для реализации сдвигов в Рг12 и Рг13.

       РгА и РгВ – являются входными регистрами АЛУ.

       Рг8 – выходной регистр АЛУ.

       РгАП – содержит адрес ячейки памяти, к которой образуется цикл обращения к памяти.

       РгК – используется для хранения команды непосредственно выполняемой ЭВМ. Код операции пересылается из РгК в УУ. 

       Серьезным недостатком данного вида автомата является одинаковое число тактов для всех команд. Это требует выравнивания числа тактов исполнения команд по более «длинной» команде, что ведет к увеличению времени работы программы.

       

Для повышения быстродействия в состав процессора включают регистровое ОЗУ (СОЗУ) небольшой емкости, но более высокого быстродействия, чем ОЗУ. Регистры СОЗУ указываются в программе путем укороченной регистровой адресации и служат для хранения промежуточных результатов

    1. Управляемые автоматы
    2. Дешифратор

   Устройство  для автоматической расшифровки (декодирования) сообщения и перевода содержащейся в нем информации на язык (код) воспринимающей системы.

1.1. Описание способов  адресации. 

        Основные режимы адресации источников (SR) и приемников (DR) информации.

Код режима

     (S,D)

 Мнемоника   Название    Адрес 

 операнда

    Содержимое

после команды

     

        101

   

     @-(Rn)

Косвенно-автодекремент-ная   

    ((Rn)-2)

    

        (Rn)-2

     

        011

    

     @(Rn)+

Косвенно-автоинкрементная    

     ((Rn))

    

        (Rn)+2

        Примечания: Rn – регистр, заданный  в R-поле команды, (R0)- содержимое индексного регистра.

        Адресация источников SR и приемников  DR в одно - и двухадресных командах  осуществдяется  с использованием 8 регистров общего назначения (Rn=R0...R7), задаваемых в поле R.

С точки зрения программиста все способы адресации  делятся на  регистровую, прямую и косвенную. При использовании  регистровой адресации операндом  является содержимое указанного регистра. При использовании автодекрементной, автоинкрементной и индексной адресации операнд выбирается из памяти по адресу, вычисляемому на основе содержимого указанного регистра. При использовании косвенной адресации получаемый адрес указывает на ячейку, хранящую адрес операнда.

1.2. Описание JK триггера.

     Триггер является элементом, который может находиться в одном из двух устойчивых состояний. Одному из этих состояний приписывается значение 1, а другому 0. Состояние триггера распознается по его выходному сигналу. Под влиянием входного сигнала триггер может скачкообразно переходить из одного устойчивого состояния в другое, при этом скачкообразно изменяется уровень напряжения его выходного сигнала.

     Для удобства использования в схемах вычислительных устройств триггеры обычно имеют два выхода: прямой Q (называется также «выход 1») и инверсный Q («выход 0»). У единичного состояния триггера на выходе Q высокий уровень сигнала, а в нулевом – низкий. На выходе Q наоборот.

     Схемы триггеров можно разделить на несколько типов: с установочными  входами – RS-триггер, со счетным входом – Т-триггер, а также D-триггер,     JK-триггер и др.

     Распространенным  типом триггера в системе интегральных логических элементов является двухтактный  JK-триггер, условное обозначение которого показано на рисунке: 
 
 
 
 
 
 
 
 

       
 
 
 
 
 

     У рассматриваемого триггера имеются  входы несинхронизируемой установки R и S, с помощью которых при С=0 триггер может быть установлен в состояние 1 путем подачи R=1 и S=0 либо в состояние 0 путем подачи R=0 и S=1. При подаче сигналов R=S=1, не меняющих состояние схемы, работа триггера осуществляется под воздействием синхронизирующих входных сигналов. В этом случае функционирование триггер может быть описано таблицей: 
 

t t+1 Примечание
J K Q
0

0

1

1

0

1

0

1

Q(t)

0

1

Q(t)

Хранение

Установка 0

Установка 1

Инверсия

 

     Здесь J=J1J2J3 и К=К1К2К3. Входы J и K соответствуют входам установки в 1 и 0 триггера. Однако в отличие от RS-триггера, в JK-триггере сигналы 1 могут одновременно поступить на входы J и K, при этом состояние триггера изменяется на противоположное, т.е. при J=K схема ведет себя как триггер со счетным входом.

     

     Функцию переходов JK-триггера можно представить в виде булевой функции:

 

при условии, что  RS=1.

     JK-триггер удобен тем, что при различных вариантах подключения его входов можно получить схемы, функционирующие как RS- D - и T-триггеры.

2.1. Описание команд

      2.1.1. Команда MUL

           Команда MUL – Двухадресная арифметическая команда.

       Назначение: Операция умножения двух целых чисел без учета знака.

       Мнемоника: MUL.

       Восьмеричный  код:  070RDR.

     Описание: Команда выполняет умножение двух операндов без учета знаков. Алгоритм зависит от формата операнда команды и требует явного указания местоположения только одного сомножителя, который может быть расположен в памяти или в регистре. Местоположение второго сомножителя фиксировано и зависит от размера первого сомножителя:

  • если операнд, указанный в команде — байт, то второй сомножитель должен располагаться в al;
  • если операнд, указанный в команде — слово, то второй сомножитель должен располагаться в ax;
  • если операнд, указанный в команде — двойное слово, то второй сомножитель должен располагаться в eax.

     Результат умножения помещается также в  фиксированное место, определяемое размером сомножителей:

  • при умножении байтов результат помещается в ax;
  • при умножении слов результат помещается в пару dx:ax;
  • при умножении двойных слов результат помещается в пару edx:eax.

     Применение: Команда mul выполняет целочисленное умножение операндов без учета их знаковых разрядов. Для этой операции необходимо наличие двух операндов-сомножителей, размещение одного из которых фиксировано, а другого задается операндом в команде. Контролировать размер результата удобно, используя флаги cf и of.

     Состояние флагов после выполнения команды:

     Если  старшая половина результата нулевая: 

        11 07 06 04 02 00
        OF SF ZF AF PF CF
        0 ? ? ? ? 0
 

     Если  старшая половина результата ненулевая: 

        11 07 06 04 02 00
        OF SF ZF AF PF CF
        1 ? ? ? ? 1
 

     2.1.2. Команда ASR

Описание:

Выполнение сдвига всех битов Rd на одно место вправо. Состояние  бита 7 не изменяется. Бит 0 загружается во флаг переноса (С) регистра состояния (SREG). Эта команда эффективно делит значение дополнения до двух на два, без изменения знака. Флаг переноса может быть использован для округления результата.

Операция:

      (i)
       
        Синтаксис Операнды: Счетчик программ:
      (i) ASR Rd 0 < d <31 PC <- PC + 1

 

16-разрядный  код операции: 

1001 010d dddd 0101

Булевы выражения  регистра статуса (SREG)

I T H S V N Z C
 
- - - Û Û Û Û Û
 
 

      2.1.3. Команда BIT

      2.1.4. Команда BNE

Перейти, если не равно (Branch if Not Equal)

Операция PC <-- (PC) + $0002 + rel, если (Z) = 0
Описание Проверяется состояние  бита Z регистра кодов признаков (CCR) и, если Z очищен, выполняется переход. При выполнении операции после команд сравнения и вычитания переход  произойдет только тогда, когда аргументы не равны. (Более подробно выполнение перехода описано в команде BRA).
Коды  признаков Не используются
Булевы  выражения
V     H I N Z C
 
- 1 1 - - - - -
 
 

Исходные формы, режимы адресации, машинные коды и количество циклов

Исходные  формы Режим адресации Машинные  коды Количество  циклов HC08
Код операции Операнд(ы)
BNE rel REL 26 rr 3

В приведенной  ниже таблице приведены все команды  переходов.

Переход Комплементарный переход Тип
Тест Булево выражение Мнемоника Операционный  код Тест Мнемоника Операционный  код
r>m Z | (NÅV)=0 BGT 92 r£m BLE 93 Со знаком
r³m (NÅV)=0 BGE 90 r<m BLT 91 Со знаком
r=m Z=1 BEQ 27 r¹m BNE 26 Со знаком
r£m Z | (NÅV)=1 BLE 93 r>m BGT 92 Со знаком
r<m (NÅV)=1 BLT 91 r³m BGE 90 Со знаком
 
r>m C | Z=0 BHI 22 r£m BLS 23 Без знака
r³m C=0 BHS/BCC 24 r<m BLO/BCS 25 Без знака
r=m Z=1 BEQ 27 r¹m BNE 26 Без знака
r£m C | Z=1 BLS 23 r>m BHI 22 Без знака
r<m C=1 BLO/BCS 25 r³m BHS/BCC 24 Без знака
 
Перенос C=1 BCS 25 Без переноса BCC 24 Простой
r=0 Z=1 BEQ 27 r¹0 BNE 26 Простой
Отрицательный N=1 BMI 2B Положительный BPL 2A Простой
Маска I I=1 BMS 2D Маска I = 0 BMC 2C Простой
Бит H H=1 BHCS 29 H=0 BHCC 2B Простой
Высокий IRQ# _ BIH 2F _ BIL 2E Простой
Всегда _ BRA 20 Никогда BRN 21 Безусловный