Проектирование специализированного вычислительного устройства

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информатика, ВТ, телекоммуникации
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    385,78 Кб
  • Опубликовано:
    2014-04-06
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Проектирование специализированного вычислительного устройства

Введение

Эффективность применения современных средств вычислительной техники во всех сферах научной и производственной деятельности оказывает решающее влияние на увеличение производительности труда и ускорение научно-технического прогресса.

ЭВМ широко применяются в области экономики, планирования, управления производственной деятельностью предприятия, автоматизации исследований и проектно-конструкторских работ, автоматизации технологических процессов и управления различными объектами.

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

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

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

Непрерывный сигнал всегда можно представить его дискретными значениями с помощью аналого-цифрового преобразователя. После такого преобразования сигнал удобно обрабатывать в каких-либо цифровых вычислительных системах. Примером одной из таких систем является цифровой фильтр. Цифровые фильтры могут быть построены на базе микропроцессорного комплекта БИС, либо на микросхемах средней степени интеграции (СИС) К155, К1533, К555 и др. серий.

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

Z=((6A+2D)/8)vB

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

1. Разработка СВУ на базе СИС

.1 Выбор формата данных

Для простоты реализации СВУ выбираем целый тип данных. Будем рассматривать представление чисел с фиксированной запятой. Диапазон изменения чисел:

-128ЈЈХЈЈ127

Для представления таких чисел необходимо восемь разрядов. Старший разряд будет использоваться для представления знака числа, цифровыми являются биты с 0 по 6. Нумерация бит вводится справа налево (рис.1.1.а)

                                      Нумерация битов

7

6

5

4

3

2

1

0






Знаковые разряды              Цифровые разряды

Рис 1.1.(а)

                                      Нумерация битов

8

7

6

5

4

3

2

1

0




Знаковые разряды               Цифровые разряды

Рис 1.1.(б)

Ели в знаковом разряде 0 - кодируется положительное число, если 1 - отрицательное число. Все работы ведутся для 8-разрядных чисел. В некоторых случаях для анализа переполнения разрядной сетки для представления чисел используется модифицированный код. В модифицированном коде для представления знака числа используется два разряда (рис.1.1.(б)).

Если в разрядах - комбинация 00, то это соответствует положительному результату, и переполнения разрядной сетки нет. Если 11 - результат отрицательный, переполнения нет. Комбинация 01 означает положительное переполнение, а комбинация 10 - отрицательное.

.2 Разработка алгоритма и графа макрооперации

Схема алгоритма работы СВУ представлена на рис 1.2. Если р=1, то СВУ начинает работать, в противном случае СВУ находится в режиме ожидания. Далее осуществляется проверка условия -128ЈЈХЈЈ127. Если условие выполнено, то далее следуют операции умножения, сложения, деления, логического сложения, выдача результатов и конец схемы алгоритма. В противном случае необходимо произвести остановку СВУ (прерывание) и выйти на конец алгоритма. Потом произвести масштабирование исходных данных и вернуться на начало алгоритма.

Для того чтобы показать информационные связи в алгоритме и наметить перечень функциональных элементов СВУ исходная макрооперация представляется в виде графа алгоритма с операциями деления и умножения на рис.1.3.

Рис.1.2 Cхема алгоритма работы СВУ

                       2                        2                         8



Рис.1.3 Граф алгоритма макрооперации с операциями умножения и деления

Заменив операции деления на арифметический сдвиг вправо, получим граф алгоритма макрооперации изображенной на рис.1.4.





Рис.1.4 Граф алгоритма макрооперации с операциями сдвигов

По виду графа алгоритма составляется упрощённая функциональная схема СВУ (рис.1.5).

Регистры Р1, Р2, РЗ служат для хранения данных A, B, C соответственно, которые представлены в дополнительном коде. Операция сложения осуществляется в сумматоре накапливающего типа.

Рис.1.5 Упрощённая функциональная схема без управляющих сигналов

В накапливающий сумматор входит 8-разрядный комбинационный сумматор и 8-разрядный регистр сумматора (РСМ). Арифметические сдвиги влево осуществляются в сдвигающем регистре сумматора. Операция логического сложения осуществляется с помощью логического элемента «ИЛИ».

1.3 Разработка микропрограммы выполнения макрооперации

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

Предполагается, что управляющий блок уже спроектирован и выдаёт в определённые моменты времени управляющие сигналы Y-(Y1,Y2,...,Yn).

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


Для проверки переполнения после алгебраического сложения возможны два подхода. Первый подход: анализ переполнения производится по единице переноса в знаковый разряд и из знакового разряда. Возможны четыре случая, они представлены в таблице 1.1.

Таблица 1.1

единица переноса

переполнение

из знакового разряда

в знакового разряда


0

0

0

0

1

1

1

0

1

1

1

0

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


Для этой цели в сумматоре и РСМ предусматривается девять разрядов.

Микропрограмма выполнения исходной макрооперации представлена на рис.1.6.

Рис.1.6. Алгоритм выполнения макрооперации

Алгоритм программы

Перечень управляющих сигналов для каждого функционального узла СВУ:

Сигналы управления

Рсм: Y2: Рсм:= Р1

Y3: Рсм:= ALS(Рсм,1)

Y4: Рсм:= Рсм + Р1

Y5: Рсм:= ALS(Рсм,1)

Y7: Рсм:= Р2

Y8: Рсм:= ALS(Рсм,1)

Y9: Рсм:= Рсм + Р1

Y10: Рсм:= ALS(Рсм,4)

Y11: Рсм:=РсмvР3

Р1: Y6: Р1:= Рсм

Сигналы осведомления

:= Р1[7]ÅР1[6]:= Рсм[8]ÅРсм[7]:= Рсм[7]ÅРсм[6]:= Р2[7]ÅР2[6]

Сигналы переполнения

ТП: Y1: ТП:= 0: ТП:= 1

Расставив управляющие сигналы на упрощённой функциональной схеме СВУ и введя дополнительные логические элементы для получения Z, получаем вариант функциональной схемы, изображённый на рис.1.7.

Рис.1.7 Упрощённая функциональная схема с управляющими сигналами

1.4 Разработка функциональной электрической схемы СВУ

Для получения структурной схемы СВУ расставим управляющие сигналы на упрощенной структурной схеме СВУ и введем дополнительные логические узлы для получения Z1.

При этом число регистров выбирается исходя из соображения хранения исходных данных, промежуточных результатов.

Регистры Р1,Р2 и Р3 служат для хранения исходных данных, регистр Рсм выполняет операцию арифметического сдвига вправо, а также хранит промежуточный и окончательный результат. В СВУ используется сумматор накапливающего типа, на один вход которого подаются данные с Р1, Р2 и Р3, на другой с Рсм.

Для временного разделения подачи данных с Р1 и Р2 необходимо ввести мультиплексор MS. На структурной схеме это будет выглядеть следующим образом


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

Т.к. у нас имеются четыре сигнала, которые необходимо разделить, а мультиплексор рассчитан на 3, сделаем ступенчатое подключение мультиплексоров.

В результате получим следующий вариант структурной схемы


Рис.1.8. Функциональная схема по графу алгоритма

1.5 Выбор элементной базы для СВУ

Для реализации всех элементов СВУ выбраны микросхемы серий К555 и К155. Регистры Р1, Р2 и Р3 построены на микросхемах К555ИР13. Так как эта микросхема представляет собой восьмиразрядный сдвигающий регистр, то для каждого из регистров Р1, Р2 и РЗ понадобится одна ИМС К555ИР13.

Микросхема ИР13 - это восьмиразрядный синхронный реверсивный регистр сдвига. Цоколевка и условное обозначение приведены на рис.1.9.2.

Синхронную работу регистру обеспечивают входы выбора режима S0 и S1 режим хранения (входы S0= S1=0), параллельной загрузки (входы S0=1, S1=1), сдвиг влево (входы S0=0, S1=1), сдвиг вправо (входы входы S0=1, S1=0). Кроме параллельных входов D0,…,D7, первый и последний разряды регистра имеют дополнительные входы: DSR - для сдвига вправо, DSL - для сдвига влево. На входы S0,S1 отрицательный перепад можно подавать, когда на входе С действует напряжение высокого уровня. При параллельной загрузке данные, подготовленные на входах D0,…,D7 появятся на выходах Q0,…,Q7 после прихода очередного положительного перепада тактового импульса на вход С. Для обнуления регистра (на выходах D0,…,D7 будет низкий уровень) необходимо на синхронный вход сброса  подать низкий уровень напряжения.

Таблица состояний ИР13

Режим работы

Входы

Выходы


C

S0S1DSRDSLDnQ0Q1,…,Q6Q7









Cброс


0

x

x

x

x

x

0

0,…,0

0

Хранение

­

1

0

0

x

x

x

Q0

Q1,…,Q6

Q7

Левый сдвиг

­

1

1

0

x

0

x

Q1

Q2,…,Q7

0


­

1

1

0

x

1

x

Q1

Q2,…,Q7

1

Правый сдвиг

­

1

0

1

0

x

x

0

Q0,…,Q5

Q6


­

1

0

1

1

x

x

1

Q0,…,Q5

Q6

Параллельная загрузка

­

1

1

1

1

x

dn

d0

d1,…d6

d7


- питание

- общий

Рис. 1.9.2 Условное графическое изображение и цоколёвка

Регистр сумматора РСМ построен на одной ИМС К555ИР13, которая представляет собой двухсторонне сдвигающий 8-разрядный регистр. Для построения девятого разряда используем дополнительный регистр К555ИР11.

Микросхема ИР11 - четырехразрядный универсальный регистр сдвига. Цоколевка с УГО изображена на рис. 1.9.0. Он позволяет строго синхронно сдвигать цифровое слово вправо или влево, т.е. двунаправленный регистр. Регистр имеет: входы данных D0,…,D3, прямой динамический тактовый вход С, инверсный вход сброса R, входы выбора режимов S0,S1, выходы Q0,…,Q3. Кроме параллельных входов D0,…,D3, первый и последний разряды регистра имеют дополнительные входы: DSR - для сдвига вправо, DSL - для сдвига влево.

Если на входы выбора S0,S1 поданы напряжения низкого уровня, то код регистра сохраняется (режим хранения).

Когда на входы S0,S1 поданы напряжения высокого уровня, то данные от входов D0,…,D3 параллельно загружаются в регистр, а при очередном положительном перепаде (фронте) тактового импульса, поданном на вход С, появляются на выходах Q0,…,Q3 регистра.

Если на входе S0 действует напряжение высокого уровня, а на входе S1 низкого уровня, то код, поступающий на вход последовательных данных DSR, сдвигается по регистру вправо от Q0 к Q3 при поступлении положительного перепада тактового импульса на вход С.

При S0=0, S2=1 код принимается последовательным входом DSL и сдвигается влево от Q3 к Q0 при каждом положительном перепаде импульсов, поступающих на вход С.

Если на вход сброса  подать напряжение низкого уровня, то происходит сброс данных (обнуление) и на выходах Q0,…,Q3 появится напряжение низкого уровня.

Когда на вход  подано напряжение высокого уровня, то возможны различные режимы: загрузки, хранения, сдвига влево или вправо.

 

Таблица состояний ИР11

Режим работы

Входы

Выходы


C

S0S1DSRDSLDnQ0Q1Q2Q3










Cброс


0

x

x

x

x

x

0

0

0

0

Хранение

­

1

0

0

x

x

x

Q0

Q1

Q2

Q3

Левый сдвиг

­

1

1

0

x

0

x

Q1

Q2

Q3

0


­

1

1

0

x

1

x

Q1

Q2

Q3

1

Правый сдвиг

­

1

0

1

0

x

x

0

Q0

Q1

Q2


­

1

0

1

1

x

x

1

Q0

Q1

Q2

Параллельная загрузка

­

1

1

1

1

x

dn

d0

d1

d2

d3



16 - питание

- общий

Рис. 1.91 Условное графическое обозначение ИР11

В качестве девятиразрядного сумматора необходимо использовать два сумматора К155ИМ3 и один К155ИМ2.

Микросхема ИМЗ - это четырехразрядный быстродействующий двоичный полный сумматор. Цоколевка приведена на рис. 1.9.3. Он принимает два четырехразрядных слова по входам данных АО,…,А3 и ВО,…,В3, а по входу Сn - сигнал переноса. Сумма разрядов входных слов появляется на выходах S0….S3. На выходе Сn+1 выделяется сигнал переноса. Имеется схема ускоренного переноса (СУП). Сумматор может работать со словами как положительной, так и отрицательной логики.

Суммирование происходит по уравнению:

 

Таблица суммирования чисел ИМ3

Данные на входе

Сn

А0

А1

А2

А3

В0

В1

В2

В3

S0

S1

S2

S3

Сn+1

Результат

Электрические уровни

0

0

1

0

1

1

0

0

1

1

1

0

0

1


Активный уровень 1

0

0

1

0

1

1

0

0

1

1

1

0

0

1

19

1

1

0

1

0

0

1

1

0

0

0

1

1

0

12


Микросхема ИМ2 - двухразрядный полный сумматор. Состояния сумматора приведены в таблице, где S0 отображает сумму младших разрядов А0 и В0, а S1 - старших разрядов А1 и В1.

Таблица состояний сумматора ИМ2

Входы

Выходы

А0

В0

А1

В1

Cn=0

Cn=1





S0

S1

Cn+1

S0

S1

Cn+1

0

0

0

0

0

0

0

1

0

0

1

0

0

0

1

0

0

0

1

0

0

1

0

0

1

0

0

0

1

0

1

1

0

0

0

1

0

1

1

0

0

0

1

0

0

1

0

1

1

0

1

0

1

0

1

1

0

0

0

1

0

1

1

0

1

1

0

0

0

1

1

1

1

0

0

0

1

1

0

1

0

0

0

1

0

1

0

1

1

0

1

0

0

1

1

1

0

0

0

1

0

1

0

1

1

1

0

0

0

1

1

1

0

1

0

0

1

1

0

1

0

0

1

1

0

0

1

1

0

1

1

0

1

1

1

0

1

0

1

1

0

1

1

1

1

0

1

0

1

1

1

1

1

1

0

1

1

1

1

1


Рис. 1.9.3 Условное графическое обозначение:

А - сумматора ИМ2

В - сумматора ИМ3


Мультиплексор МS построен на 2-х ИМС К555КП13.

Микросхема КП13 - это четыре двухвходовых селектора-мультиплексора, имеющих общий адресный вход выбора S, и четырёхразрядный регистр хранения информации при разрешении записи, запускаемого отрицательным перепадом (спадом) тактового импульса. Цоколевка и условное обозначение приведены на рис. 1.9.4. Каждый из мультиплексоров имеет по четыре информационных входа IA1 ,…,IA4 и IB1 ,…,IB4 и вход разрешения S с активным низким уровнем напряжения, выход прямой Qn. Входы разрешения можно независимо использовать для стробирования выходов:

если на вход S подать напряжение высокого уровня, то выбираются входы данных IB1 ,…,IB4 с отрицательным перепадом тактового импульса;

если на вход S подать напряжение низкого уровня, то выбираются входы данных IA1 ,…,IA4 с отрицательным перепадом тактового импульса.

Таблица состояний мультиплексора КП13

Режим работы

Входы

Выход Qn


SI1I2





Загрузка от входа I1

¯

0

0

´

0


¯

0

1

´

1

Загрузка от входа I2

¯

1

´

0

0


¯

1

´

1

1


16 - питание

8 - общий

Рис. 1.9.4 Условное графическое обозначение КП13


1.6 Разработка принципиальной схемы СВУ

Принципиальная схема определяет полный состав элементов и связей между ними, она даёт детальное представление о принципах работы. Схема служит для изучения принципа работы устройства и используется для наладки, контроля и ремонта. Для перехода от функциональной к принципиальной схеме необходимо на условных графических обозначениях (УГО) элементов ввести номера выводов, а также показать, как осуществляется синхронизация, сброс, питание.

2. Микропроцессорная реализация СВУ

Микропроцессорная реализация СВУ заключается в составлении программы выполнения заданной макрооперации на определённом языке программирования в системе команд имеющейся ЭВМ. В данном случае осуществлена реализация СВУ на языке Ассемблер в системе команд процессора 8086.

Программа составляется на основе разработанной микропрограммы и алгоритма работы СВУ.

Текст программы представлен в приложении.

Описание программы

Данная программа выполняет вычисление макрооперации

Z=((6A+2B)/8)vC

Числа A, B, D вводятся с клавиатуры и хранятся в двоичном коде. Далее между числами производятся арифметические и логические операции. Результат работы программы выводится в двоичном коде. При возникновении переполнения выдаётся соответствующее сообщение.

данные алгоритм граф макрооперация

Приложение

Листинг программы

title              SVU            segment 'code'       CS:cseg, DS:cseg, SS:cseg, ES:cseg             100h

: jmp SVU             db 'Введите a в двоичном коде a = ','$'

inpb             db 'Введите b в двоичном коде b = ','$'             db 'Введите c в двоичном коде c = ','$'                   db 10,13,'$'_1               db 'Вычисление z=((6a+2b)/8)\/c',10,13,'$'

ms_2           db '(6a+2d)/8=','$'_3               db '((6a+2d)/8)\/b = ','$'

ms_over_a   db 'Ошибка: переполнение а',10,13,'$'_over_b   db 'Ошибка: переполнение b',10,13,'$'_over_summ db 'Ошибка: переполнение суммы (6a+2b)/8',10,13,'$'

res               db ?                     db ?                     db ?           db ?proc ax,0600h          ;устанавливаем атрибуты экранаbh,74h     ;серый фон красные буквыcx,00      ;с левого верхнего углаdx,184Fh  ;по правый нижний угол экрана10hah,02h ;устанавливаем курсорbh,00h       ;в точку с координатами:dh,05        ;по вертикали - 5,dl,15   ;по горизонтали - 1510h

;вывод начального сообщения

ah,09h          ;выводим строку ms_1dx,ms_1        ;на экран21h

linebr  ;переход строки

;ввод а и вычисление 6a

bg:ia

:linebr ;переход строки

mov ah,09h ;выводим сообщение о переполнении а

lea dx,ms_over_a ;на экран21h

linebr  ;переход строки

ia:ah,09h      ;выводим строку inpadx,inpa ;на экран21h

input  ;вводим двоичное число (результат в bl)a,bl    ;сохраняем его в aax,0 ;обнуляем регистр ax

al,a     ;вычисляем 6а

sal al,1         ;2aofaal,a    ;2a+a

jo ofa ;при переполнении переходим на вывод сообщения об ошибкеal,1      ;(2a+a)*2ofa          ;при переполнении переходим на вывод сообщения об ошибкеa,al       ;сохраняем результат в а

;ввод d и вычисление 2d

ib:linebr        ;переход строки

ah,09h ;выводим сообщение о переполнении

lea dx,ms_over_b ;на экран21h

linebr  ;переход строки

ib:ah,09h      ;выводим строку inpbdx,inpb         ;на экран21h

input  ;вводим двоичное число (результат в bl)b,bl    ;сохраняем его в bax,0 ;обнуляем регистр ax

al,b    ;вычисляем 2bal,b        ;2bofb        ;при переполнении переходим на вывод сообщения об ошибкеb,al      ;сохраняем результат в b

;вычисление и вывод на экран (6a+2b)/8

cl,a              ;помещаем 6a в регистр clbl,b        ;помещаем 2b в регистр bl

add bl,cl      ;6a+2b в bl

jo ofs ;при переполнении переходим на вывод сообщения об ошибкеbl,4      ;выполнение (6a+2b)/8

jmp nxt

:linebr ;переход строки

mov ah,09h ;выводим сообщение о переполнении суммы (6a+2b)/8 на экран

lea dx,ms_over_summ ;на экран21h

linebr  ;переход строки

jmp bg         ;переходим на повторный ввод a и b:linebr       ;переход строки

ah,09h          ;выводим строку ms_2dx,ms_2      ;на экран21h

output          ;выводим на экран значение суммы (6a+2b)/8summ,bl        ;сохраняем сумму (6a+2b)/8 в summlinebr ;переход строки

;ввод c

linebr  ;переход строки

ah,09h          ;выводим inpcdx,inpc    ;на экран21h

input  ;вводим двоичное число (результат в dl)

;логическое умножение c и (6a+2b)/8

;и вывод результата на экран

bh,summ      ;перемещаем сумму в регистр bhbl,bh       ;логически складываем с и (6a+2b)/8res,bl      ;записываем результат в рес res

linebr  ;переход строкиah,09h  ;выводим строку ms_3dx,ms_3        ;на экран21h

output          ;выводим на экран значение результата

linebr  ;переход строки

;выход из программы

ah,07h          ;ожидаем нажатия любой клавиши21h

ah,4ch          ;выходим в DOS21hendp

;процедура ввода 8-разрядного двоичного кода

procdx         ;сохраняем регистр dx в стекbl,0     ;обнуляем bl

cx,8d          ;организация цикла на 8 итераций:ax,ax    ;обнуляем axah,07h       ;ввод символа с клавиатуры цифры без вывода на экран21h         ;результат сохраняется в al

al,30h ;сравниваем код введенного символа с кодом 0lp1    ;если меньше возвращаемся на ввод цифрыal,31h          ;сравниваем код введенного символа с кодом 1lp1          ;если больше возвращаемся на ввод цифры

ah,02h         ;выводим ввденный символdl,al      ;на экран21h

al,30h          ;преобразуем код нажатой клавиши в цифруbl,al         ;и добавляем к bl

cx,1d ;проверяем если последняя итерацияm1            ;то пропуская сдвиг регистра (переходим на m1)

bl,1    ;сдвигаем регистр bl влево

m1:lp1

linebr  ;переход строки

pop dx         ;возвращаем значение регистра dx из стека                 ;выходим из процедурыendp

процедура ввода 8-разрядного двоичного числаprocbh,bl   ;сохраняем bl в bhdx,dx          ;обнуляем dxcx,cx         ;обнуляем cx

cl,08h ;организация цикла на 8 итераций:bl,1      ;сдвигаем bl влевоm2              ;если старший разряд был 1 то переходим на m2

dl,'0'   ;записываем на вывод 0m3:dl,'1'      ;записываем на вывод 1:ah,02h           ;выводим записанную цифру21h     ;на экранlp2

bl,bh  ;возвращаем сохраненное в bh значение в bl               ;выходим из процедурыendp

процедура перевода на следующую строкуprocah,09h ;выводим на экран строкуdx,nlstr ;содержащую переход строки (nlstr)21h                   ;выходим из процедуры

linebr endp

endsbegin

Скриншот работы программы

Похожие работы на - Проектирование специализированного вычислительного устройства

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!