Сложение чисел с плавающей запятой в прямом коде

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

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид курсовая работа
Язык русский
Дата добавления 11.03.2014
Размер файла 201,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Министерство образования и науки Российской Федерации

Омский государственный технический университет

Кафедра информатики и вычислительной техники

Специальность "Информатика и вычислительная техника"

Курсовой проект

на тему: "Сложение чисел с плавающей запятой в прямом коде"

по дисциплине "Дискретная математика"

Студент Алейников Д.Е.

Руководитель проекта Червенчук И.В.

Омск 2008

Содержание

Введение

1. Описание алгоритма

2. Структура операционного устройства

3. Таблица оповещающих, управляющих сигналов

4. Моделирование работы алгоритма на ЭВМ

Список используемой литературы

Приложение

Введение

Каноническая структура синтеза синхронного вычислительного устройства состоит из двух автоматов - операционного (ОА) и управляющего (УА).

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

1. Описание алгоритма

Сложение мантисс выполняется на сумматоре мантисс SmM и возможно только при одинаковых порядках чисел. В связи с этим сначала нужно выровнять порядки, для чего на сумматоре порядков SmP определяется разность

АР=P1 - Р 2.

Если АР = 0, то порядки равны (P1= Р 2) и возможно сложение мантисс. При АР>0 первое число больше второго, и мантисса второго числа должна быть сдвинута на АР разрядов вправо. В случае АР<0 второе число больше первого. Следовательно, для выравнивания порядков необходимо сдвинуть на |A.Р| разрядов вправо мантиссу первого числа. Если |A.Р| превосходит количество цифровых разрядов, то в качестве результата операции сложения принимается большее число: n-количество разрядов мантиссы, к - число разрядов порядка, M1, М 2 - мантиссы и P 2 Р 1-- порядки чисел.

При нахождении разности порядков может иметь место переполнение результата (SmP). Если переполнение положительное, то в качестве результата сложения должен быть принят первый операнд. Отрицательное переполнение сумматора порядков свидетельствует о том, что в качестве результата сложения должен быть принят второй операнд.

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

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

2. Структура операционного устройства

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

3. Таблица оповещающих, управляющих сигналов

Y1= Rg1M:=Ma

X1= SmP=0

Y2= Rg1P :=Pa

X2= SmP[1]=1

Y3= Rg2M:=Mb

X3= SmP[1]=0

Y4= Rg2P:=Pb

X5= SmM[2]=0

Y5= SmP:=Rg1P

X6= SmM=0

Y6= SmP:= Rg1P -Rg2P

Y7= Rg1P:=Rg1P+n

Y8= Rg2P:=Rg2P+n

Y9= SmP:=Rg2P

Y10= SmP:=SmP-1

Y11=Smm= Rg1M

Y12=Smm= Rg2M

Y13= Rg2M:= Rg2M"

Y14= Rg1M:= Rg1M"

Y15= SmM:= SmM"

Y16= SmM:= Rg1M +Rg2M

4. Моделирование работы алгоритма на ЭВМ

Отличительные черты разработки программы

Моделирование алгоритма умножения, а дополнительном коде производилось на языке высокого уровня Turbo Pascal 7.0. Программа состоит из ряда процедур, функций и основного кода.

Процедуры и функции программы:

1) Procedure vvod (a:integer ;var m:mass) - Задает с клавиатуры исходные массивы до элемента с номером "а".

2) Procedure vivod (m:mass; a:integer)- Выводит на экран массив до элемента с номером "а".

3) Procedure sloj (m1,m2:mass; q:integer; var sm:mass)- Складывает два массива по правилам двоичной арифметики.

4) Procedure invert (m1:mass; a:integer; var m2:mass)- Инвертирует элементы массива.

5) Procedure vi4it (m1,m2:mass; q:integer; var sm:mass)- Вычитает из первого массива второй.

6) Procedure sdvigvlevo (sm1:mass; var sm2:mass)- Сдвигает массив влево на 1 разряд.

7) Procedure okrug (m1:mass; var m2:mass)- Округляет массив.

ma=0.1011 pa=0.101

mb=0.1000 pb=0.100

Ap=0.101+1.100=0.001

ma=0.1011

+

mb=0.0100

----------

mc=0.1111

pc=pa=0.101

ma=0.1010 pa=00.101

mb=0.1101 pb=11.011

Ap=00.101+00.101=01.010

mc=ma=0.1010

pc=pa=0.101

ma=1.0100 pa=0.100

mb=0.1100 pb=0.111

Ap=0.011

ma=1.1110

+

mb=0.1100

----------

mc=0.1010 pc=pb=0.111

Список используемой литературы

1. Операции двоичной и десятичной арифметики в ЭВМ: Метод. указания / Сост. Пальянов И.А.; Омск: ОмПИ, 1990. - 36 с.

2. Моделирование на ЭВМ алгоритмов выполнения арифметических операций и синтез управляющих автоматов: Метод. указания / Сост. Пальянов И.А., Шафеева О.П.; Омск: ОмПИ, 1988. - 36 с.

3. Б.Н. Иванов Дискретная математика. Алгоритмы и программы: Учеб. пособие. - М.: Лаборатория Базовых Знаний, 2002 - 288 с.: ил.

Приложение

Текст программы.

Program Kursovik;

Uses crt;

Type mass=array[1..11] of integer;

mass1=array[1..5] of integer;

Const

qwe1:mass1=(0,0,0,0,0);

lm:mass1=(0,0,0,0,1);

qwe2:mass=(0,0,0,0,0,0,0,0,0,0,0);

Var ch:char;

n,buf,por,po,sdvigman,i:integer;

Rg1M,Rg2M,SmM:mass;

Rg1Par,Rg2Par,SmPar,smpred:mass1;

label l1,l2,l3,l4;

Procedure vvod(a:integer ;var m:mass);

Begin

For i:=1 to a do

read(m[i]); end;

Procedure vvod1(a:integer ;var m:mass1);

Begin

For i:=1 to a do

read(m[i]); end;

Procedure vivod(m:mass; a:integer);

Begin

For i:=1 to a do

write(m[i]); end;

Procedure vivod1(m:mass1; a:integer);

Begin

For i:=1 to a do

write(m[i]); end;

Procedure sloj(m1,m2:mass; q:integer; var sm:mass; var buv:integer);

var buf:integer;

a:mass;

Begin

buf:=0;

for i:=q downto 1 do begin

a[i]:=m1[i]+m2[i]+buf;

Case a[i] of

0:begin buf:=0; sm[i]:=0 end;

1:begin buf:=0; sm[i]:=1 end;

2:begin buf:=1; sm[i]:=0 end;

3:begin buf:=1; sm[i]:=1 end;

end; end;

buv:=buf;

end;

Procedure sloj1(m1,m2:mass1; q:integer; var sm:mass1);

var buf:integer;

a:mass1;

Begin

buf:=0;

for i:=q downto 1 do begin

a[i]:=m1[i]+m2[i]+buf;

Case a[i] of

0:begin buf:=0; sm[i]:=0 end;

1:begin buf:=0; sm[i]:=1 end;

2:begin buf:=1; sm[i]:=0 end;

3:begin buf:=1; sm[i]:=1 end;

end;

end;

end;

Procedure sloj2(m1,m2:mass1; q:integer; var sm:mass1; per:integer);

var buf:integer;

a:mass1;

Begin

buf:=0;

for i:=q downto 1 do begin

a[i]:=m1[i]+m2[i]+buf;

Case a[i] of

0:begin buf:=0; sm[i]:=0 end;

1:begin buf:=0; sm[i]:=1 end;

2:begin buf:=1; sm[i]:=0 end;

3:begin buf:=1; sm[i]:=1 end;

end;

end;

per:=buf;

end;

Procedure invert(m1:mass; a:integer; var m2:mass);

var i:integer;

Begin

for i:=1 to a do

if m1[i]=0 then m2[i]:=1 else m2[i]:=0; end;

Procedure invert1(m1:mass1; a:integer; var m2:mass1);

var i:integer;

Begin

for i:=1 to a do

if m1[i]=0 then m2[i]:=1 else m2[i]:=0; end;

Procedure vi4it1(m1,m2:mass1; q:integer; var sm:mass1);

Const dop:mass1=(0,0,0,0,1);

Begin

invert1(m2,5,m2);

sloj1(m2,dop,5,m2);

sloj1(m1,m2,5,sm); end;

Procedure vi4it2(m1,m2:mass1; q:integer; var sm:mass1;var perepolnenie:integer);

Const dop:mass1=(0,0,0,0,1);

Begin

invert1(m2,5,m2);

sloj1(m2,dop,5,m2);

sloj2(m1,m2,5,sm,perepolnenie); end;

Procedure sdvigvlevo(sm1:mass; var sm2:mass);

var j:integer;

begin

for j:=4 to 10 do

sm2[j]:=sm1[j+1];

sm2[11]:=0; end;

Begin

por:=0;

clrscr;

writeln('Vvedite mantissu 1-ogo 4isla');

vvod(11,rg1m);

writeln('Vvedite poryadok 1-ogo 4isla');

vvod1(5,rg1par);

writeln('Vvedite mantissu 2-ogo 4isla');

vvod(11,rg2m);

writeln('Vvedite poryadok 2-ogo 4isla');

vvod1(5,rg2par);

writeln('Press any key...');

readkey;

vi4it2(rg1par,rg2par,5,smpred,buf);

if buf=1 then begin

if smpred[1]=0 then begin smm:=rg1m; smpar:=rg1par; end

else begin smm:=rg2m; smpar:=rg2par; end;

goto l1;

end;

sdvigman:=smpred[5]+2*smpred[4]+4*smpred[3];{prav}

if sdvigman=0 then smpar:=rg1par

else

begin

if smpred[1]=0 then begin

smpar:=rg1par;

po:=11-sdvigman;

for i:=4 to po do begin

rg2m[i+sdvigman]:=rg2m[i]

end;

for i:=1 to sdvigman do begin

rg2m[i+3]:=0;

end;

end

else

begin

smpar:=rg2par;

po:=11-sdvigman;

for i:=4 to po do begin

rg1m[i+sdvigman]:=rg1m[i]

end;

for i:=1 to sdvigman do begin

rg1m[i+3]:=0;

end;

end;

end;

sloj(rg1m,rg2m,11,smm,buf); {prav}

n:=0;

l2:

if smm[4]=0 then

begin

sdvigvlevo(smm,smm);

vi4it2(smpar,lm,5,smpar,buf);

n:=n+1;

if n=11 then begin

smpar:=qwe1;

goto l3;

end;

goto l2;

end;

if buf=1 then begin

if smpar[1]=1 then begin

smpar:=qwe1;

smm:=qwe2;

end

else begin writeln('beskone4nost'); goto l4; end;

end;

l1:

l3:

writeln;

write('Mantissa= ');

vivod(smm,11);

writeln;

write('Poryadok= ');

vivod1(smpar,5);

l4:

readkey;

end.

Размещено на Allbest.ru

...

Подобные документы

  • Изучение основных понятий теории автоматов. Анализ работы цифровых машин с программным управлением на примере автоматов Мили и Мура. Устройство преобразователей дискретной информации (RS-триггера). Разработка схемы цифрового автомата для сложения чисел.

    курсовая работа [449,2 K], добавлен 16.09.2017

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

    курсовая работа [758,5 K], добавлен 18.02.2011

  • Разработка электрической функциональной схемы устройства. Обоснование выбора серии интегральных микросхем. Расчет частоты тактового генератора, его потребляемой мощности. Среднее время выполнения операции после расчета по временному графу автомата Мура.

    курсовая работа [20,9 K], добавлен 10.01.2015

  • Назначение устройства, его cтруктурная схема, элементная база. Функциональная схема сложения в двоично-десятичном коде. Время выполнения операции. Принцип работы суммирующего счетчика в коде Грея. Синтез функций возбуждения триггеров. Временные диаграммы.

    курсовая работа [853,7 K], добавлен 14.01.2014

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

    курсовая работа [283,3 K], добавлен 06.08.2013

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

    курсовая работа [1,1 M], добавлен 10.01.2013

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

    лабораторная работа [614,9 K], добавлен 20.06.2011

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

    контрольная работа [500,9 K], добавлен 19.01.2014

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

    курсовая работа [530,1 K], добавлен 30.01.2016

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

    практическая работа [261,7 K], добавлен 08.03.2012

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

    курсовая работа [366,2 K], добавлен 23.12.2012

  • Проектирование и синтезирование комбинационной схемы и счетчика с коэффициентом пересчета на D-тригерах. Синтезирование вычислительного устройства для реализации алгоритма вычислений на дискретных элементах. Проектирование и синтезирование автомата Мили.

    курсовая работа [829,7 K], добавлен 21.03.2010

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

    курсовая работа [1,2 M], добавлен 06.04.2013

  • Техническая характеристика микроконтроллера ADuC812 – интегральной 12-разрядной системы сбора информации, включающей в себя прецизионный многоканальный АЦП с самокалибровкой, два 12-разрядных ЦАП. Описание алгоритма работы устройства и листинг программы.

    курсовая работа [442,3 K], добавлен 25.12.2012

  • Описание принципа работы структурной электрической схемы устройства умножения двоичных чисел, назначение каждого из входящих в нее узлов. Назначение и принцип построения матричных умножителей двоичных чисел, его структурная и электрическая схемы.

    реферат [63,9 K], добавлен 04.02.2012

  • Анализ и синтез асинхронного счетчика с КСЧ=11 в коде 6-3-2-1 и с типом триггеров JJJJ, его назначение, разновидности и технические характеристики. Пример работы суммирующего счетчика. Синтез JK–триггера (устройства для записи и хранения информации).

    курсовая работа [2,4 M], добавлен 25.07.2010

  • Технические системы сбора телеметрической информации и охраны стационарных и подвижных объектов, методы обеспечения целостности информации. Разработка алгоритма и схемы работы кодирующего устройства. Расчет технико-экономической эффективности проекта.

    дипломная работа [3,8 M], добавлен 28.06.2011

  • Представление чисел в дополнительном двоичном коде. Номенклатура арифметических операций в цифровом фильтре. Назначение аналого-цифрового преобразователя. Амплитудно-частотная характеристика рекурсивного фильтра. Составление схемы лабораторного макета.

    реферат [215,6 K], добавлен 14.02.2016

  • Практическое изучение логических элементов, реализующих элементарные функции алгебры логики. Классификация и параметры триггеров, принципы построения асинхронных и синхронных RS-триггеров. Изучение работы синхронного двоичного счетчика на j-k триггерах.

    лабораторная работа [1,4 M], добавлен 28.06.2013

  • Проектирование контроллера опорно-поворотного устройства антенны. Структура микроконтроллера. Функциональная и принципиальная схема устройства. Выбор транзисторной сборки, двигателя, дисплея, источника питания. Алгоритм работы устройства, моделирование.

    курсовая работа [1,6 M], добавлен 08.06.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.