95068

Устройство для деления 2-х двоичных чисел

Курсовая

Информатика, кибернетика и программирование

Устройство предназначено для деления 2-х 8ми разрядных чисел. Устройство осуществляет деление без остатка. Делимое в 2-чном коде Делитель в 2-чном коде. XStart – Для запуска процесса деления на этот вход надо подать лог 1. CLK – Вход для тактовых импульсов. Ответ на операцию деления(правильный только когда FINISH=1).

Русский

2015-09-19

47.78 KB

3 чел.

Федеральное агентство по образованию

ФГАОУ ВПО «Уральский федеральный университет имени первого Президента России Б.Н.Ельцина»

Кафедра ТиСС

 

Устройство для деления 2-х двоичных чисел.

Курсовая работа

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

Студент         Лаптев С.А.

гр. Р-200802         ________________  ____________

дата сдачи работы  Подпись

Преподаватель ________________ ____________ Шилов Ю.В.

 дата приема работы  Подпись

Екатеринбург

2012

Задание

Спроектировать устройство для деления 2-х 8ми разрядных чисел на основе счетчиков.

Схема устройства.

Рисунок 1 :Схема устроства.

ОПИСАНИЕ УСТРОЙСТВА:

Устройство предназначено для деления 2-х 8ми разрядных чисел.

Устройство осуществляет деление без остатка.

ВХОДЫ

A[7..0] – Делимое в 2-чном коде

B[7..0] – Делитель в 2-чном коде.

XStart – Для запуска процесса деления на этот вход надо подать лог 1.

CLK – Вход для тактовых импульсов.

ВЫХОДЫ.

C[7..0] – Ответ на операцию деления(правильный только когда FINISH=1).

BUSY – на этом выходе лог 1 если устройство в процессе деления (иначе – 0).

FINISH – на этом выходе лог 1 если устройство закончило делить (иначе – 0).

 При этом на c[7..0] подается правильный ответ на операция деления.

DIV0 – На этом выходе возникает лог 1 если предпринята попытка делить на 0.

ТЕКСТ, ОПИСЫВАЮЩИЙ РАБОТУ УСТРОЙСТВА

TITLE "DIVIDER";

SUBDESIGN DIVIDER

(

A[7..0]:INPUT;%ДЕЛИМОЕ%

B[7..0]:INPUT;%ДЕЛИТЕЛЬ%

 CLK:INPUT;    %ТАКТОВАЯ ЧАСТОТА;%

xSTART:INPUT;  %ЗАПУСКАЕТ ДЕЛЕНИЕ%

 FINISH:OUTPUT;%ГОТОВО%

 DIV0  :OUTPUT;%Деление На Букву 'О'%

 BUSY:OUTPUT;

C[7..0]:OUTPUT;%Результат%

)

VARIABLE

Q[7..0]:TFF;%Счетчик.Сюда Результат%

QA[7..0]:TFF;%Параллельный счетчик. Сюда Число А%

QB[7..0]:TFF;%Регистр. Сдесь Хранится B%

M[7..0] :TFF;%СЧЕТЧИК. ОСНОВА%

PL:NODE;   %Разрешение параллельного переноса%

Br0:NODE;  %B = 0%

WRK:SRFF; %Триггер "Устройтвао считает"%

FinTr:SRFF;%Завершили работу%

START:SRFF;

QAZERO:NODE;%Счетчик QA Обнулен%

eqp:NODE;

BEGIN

START.S=xSTART&!WRK;

START.R=!xSTART;

START.CLK=CLK;

PL=START;

WRK.S=START&(!Br0);

WRK.R=FinTr;

WRK.CLK=CLK;

 BUSY=WRK;

%Параллельный счетчик (-). Сюда Число А%

 

 QA[].CLK=CLK

QA[0].T=!PL&WRK                                                      #(PL&(!WRK)&(A[0]$QA[0]));

QA[1].T=!PL&WRK&!QA[0]                                               #(PL&(!WRK)&(A[1]$QA[1]));

QA[2].T=!PL&WRK&!QA[1]&!QA[0]                                        #(PL&(!WRK)&(A[2]$QA[2]));

QA[3].T=!PL&WRK&!QA[2]&!QA[1]&!QA[0]                                 #(PL&(!WRK)&(A[3]$QA[3]));

QA[4].T=!PL&WRK&!QA[3]&!QA[2]&!QA[1]&!QA[0]                          #(PL&(!WRK)&(A[4]$QA[4]));

QA[5].T=!PL&WRK&!QA[4]&!QA[3]&!QA[2]&!QA[1]&!QA[0]                   #(PL&(!WRK)&(A[5]$QA[5]));

QA[6].T=!PL&WRK&!QA[5]&!QA[4]&!QA[3]&!QA[2]&!QA[1]&!QA[0]            #(PL&(!WRK)&(A[6]$QA[6]));

QA[7].T=!PL&WRK&!QA[6]&!QA[5]&!QA[4]&!QA[3]&!QA[2]&!QA[1]&!QA[0]     #(PL&(!WRK)&(A[7]$QA[7]));

 %Регистр. Сдесь Хранится B%

 QB[].CLK=CLK;

QB[0].T=PL&(!WRK)&(B[0]$QB[0]);

QB[1].T=PL&(!WRK)&(B[1]$QB[1]);

QB[2].T=PL&(!WRK)&(B[2]$QB[2]);

QB[3].T=PL&(!WRK)&(B[3]$QB[3]);

QB[4].T=PL&(!WRK)&(B[4]$QB[4]);

QB[5].T=PL&(!WRK)&(B[5]$QB[5]);

QB[6].T=PL&(!WRK)&(B[6]$QB[6]);

QB[7].T=PL&(!WRK)&(B[7]$QB[7]);

 %Cчетчик. Сие Есть Результат%

 Q[].CLK=EQp;

Q[].clrn=!(START);

Q[0].T=(BUSY)&VCC;

Q[1].T=(BUSY)&Q[0];

Q[2].T=(BUSY)&Q[1]&Q[0];

Q[3].T=(BUSY)&Q[2]&Q[1]&Q[0];

Q[4].T=(BUSY)&Q[3]&Q[2]&Q[1]&Q[0];

Q[5].T=(BUSY)&Q[4]&Q[3]&Q[2]&Q[1]&Q[0];

Q[6].T=(BUSY)&Q[5]&Q[4]&Q[3]&Q[2]&Q[1]&Q[0];

Q[7].T=(BUSY)&Q[6]&Q[5]&Q[4]&Q[3]&Q[2]&Q[1]&Q[0];

 %СЧЕТЧИК. ОСНОВА%

M[].CLK=CLK;

 M[].clrn=((!Start)&(!eqp)&(!Fintr));

M[0].T=(WRK)&(!QAZERO)&VCC;

M[1].T=(WRK)&(!QAZERO)&M[0];

M[2].T=(WRK)&(!QAZERO)&M[1]&M[0];

M[3].T=(WRK)&(!QAZERO)&M[2]&M[1]&M[0];

M[4].T=(WRK)&(!QAZERO)&M[3]&M[2]&M[1]&M[0];

M[5].T=(WRK)&(!QAZERO)&M[4]&M[3]&M[2]&M[1]&M[0];

M[6].T=(WRK)&(!QAZERO)&M[5]&M[4]&M[3]&M[2]&M[1]&M[0];

M[7].T=(WRK)&(!QAZERO)&M[6]&M[5]&M[4]&M[3]&M[2]&M[1]&M[0];

 

 %Сравнение M и QB (Триггер eqD)%

%eqp=!((M[7]$QB[7])#(M[6]$QB[6])#(M[5]$QB[5])#(M[4]$QB[4])#(M[3]$QB[3])#(M[2]$QB[2])#(M[1]$QB[1])#(M[0]$QB[0]));%

 eqp=(QB[]==M[])&BUSY&!Start;

 %Закончили Делить%

%QA=0%

QAZERO=!(QA[7]#QA[6]#QA[5]#QA[4]#QA[3]#QA[2]#QA[1]#QA[0]);

 %FINISH=1 если QA=0 и M=0%

Fintr.CLK=CLK;

FinTr.S=QAZERO&(WRK);

FinTr.R=START&(!WRK);

Finish=FinTr&(!WRK);

 %Делить на букву 'О' нельзя - Если B=0 и жмем START То DIV0=1%

 Br0=(!(B[7]#B[6]#B[5]#B[4]#B[3]#B[2]#B[1]#B[0]));

DIV0=Br0&START&(!WRK);

 C[]=Q[];

 

РЕЗУЛЬТАТЫ СИМУЛЯЦИИ УСТРОЙСТВА

ВЫВОДЫ

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


 

А также другие работы, которые могут Вас заинтересовать

13273. Исследование трёхфазного синхронного двигателя 240.5 KB
  Исследование трёхфазного синхронного двигателя Цель работы: ознакомление с методом пуска работой и характеристиками синхронного двигателя. Определение его устойчивого режима работы по угловой характеристике. Опыты проводим по схеме: ...
13274. Исследование трехфазного асинхронного двигателя с короткозамкнутым ротором 1.18 MB
  Лабораторная работа А2. Исследование трехфазного асинхронного двигателя с короткозамкнутым ротором. Цель работы: исследование пусковых свойств и рабочих характеристик асинхронного двигателя с короткозамкнутым ротором. Параметры асинхронного двигателя: P2Н =...
13276. Исследование двигателя постоянного тока параллельного возбуждения 36.5 KB
  Лабораторная работа П3 по дисциплине Электрические машины Исследование двигателя постоянного тока параллельного возбуждения Цель работы: исследование рабочих скоростных механических и регулировочных характеристик двигателя параллельного возбуждения. Сх...
13277. Исследование рабочих, скоростных и регулировочных характеристик двигателя параллельного возбуждения 249 KB
  Лабораторная работа П3. Исследование двигателя постоянного тока параллельного возбуждения. Цель работы: исследование рабочих скоростных и регулировочных характеристик двигателя параллельного возбуждения. = 220 В  220 В ABC V6 PH
13278. Исследование двигателя постоянного тока последовательного возбуждения 416 KB
  Лабораторная работа П4. Исследование двигателя постоянного тока последовательного возбуждения. Цель работы: ознакомление с методами пуска и регулирования частоты вращения двигателя последовательного возбуждения изучение его рабочих характеристик. Параметры дви
13280. Исследование трехфазного двухобмоточного трансформатора 625.5 KB
  Лабораторная работа Т1. Исследование трехфазного двухобмоточного трансформатора. Цель работы: ознакомление с конструкцией и принципом работы трехфазного двухобмоточного трансформатора а также определение параметров его схемы замещения в симметричных режимах при
13281. Побудова комбінаційних схем та побудова часових діаграм 3.84 MB
  У даній курсовій роботі буде даний один із логічних виразів, який буде розв’язуватися, як і в ручну так і за допомогою пакетів прикладних програм (ППП). А саме ППП Proteus та ППП ORCAD...