Устройство деления BCD чисел

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

Устройство деления BCD чисел

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

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Электроэнергетический факультет

Кафедра промышленной электроники

и информационно-измерительной техники





Контрольная работа

по дисциплине «Цифровая схемотехника»

Устройство деления BCD чисел


Исполнитель

Сивков Н.К.




Оренбург 2015

Содержание

1. Разработка функциональной схемы

. Разработка основных функциональных узлов

.1 Устройство ввода значений

.2 Устройство преобразования BCD=>BIN

.3 Устройство деления

.5 Сигнал запрещенного деления

.6 Блок интервалов времени

.7 Антидребезговый модуль

.8 Блок индикации

Приложения

1. Разработка функциональной схемы

На рисунке 1 изображена общая функциональная схема устройства деления трёхзначного двоично-десятичного числа (BCD) на однозначное.

Рисунок 1 - Функциональная схема

Назначение входных сигналов:

-sw[7..0] - модуль значения в цифровом виде. Одной единице соответствует 20.

-bt_clk - сигнал с кнопки. Сигналом с кнопки переключается режим задачи значения сотен и десяток делимого на режим задачи значения единиц делимого и единиц делителя.

-clk - тактовый сигнал.

2. Разработка основных функциональных узлов

.1 Устройство ввода значений

Значение сотен и десяток делимого в двоично-десятичном коде (BCD) с помощью ключей sw[7..0] фиксируется в регистр делимого vvod1 [11..4]

По нажатию кнопки «bt_clk», начинает записываться значение единиц делимого в регистр делимого vvod1[3..0] и единиц делителя в регистр делителя vvod2[3..0] с помощью тех же ключей sw[7..0].

Для индикации значений на экран, по отдельности, преобразуются в ASCII код сотни делимого ascii_hun[7..0], десятки делимого ascii_dec[7..0], единицы делимого ascii_one[7..0], единицы делителя ascii_one_del[7..0].

Преобразование происходит по условию: если значение, заданное ключами больше 9, то на экран выводить 0

На рисунке 2 описание на языке AHDL условия.

Рисунок 2 - Условие вывода на экран


2.2 Устройство преобразования BCD=>BIN

Преобразование реализуется путём сложения в сумматоре единиц делимого, десяток делимого умноженных на 10 и соток делимого умноженных на 100.

Рисунок 3 - Сумматор

На рисунке 4 представлено преобразование BCD=>BIN на языке AHDL.

Рисунок 4 - Преобразование

2.3 Устройство деления

Деление реализовано методом вычитания из делимого делителя со сдвигом влево.

На рисунке 5 представлен блок деления трехзначного числа на однозначное.

Рисунок 5 - Блок деления

сигнал время индикация код

Где bin[9..0] - трехзначное число делимого;

vvod2[3..0] - однозначное число делителя;

result[9..0] - результат деления;

mods[3..0] - остаток от деления.

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

2.4 Преобразование кода

Перевод двоичного числа в двоично-десятичное происходит путём выделения декад делимого делением на 10.

В программе преобразование реализовано по условию: если результат трёхзначный, то на 10 делить 2 раза; если результат двухзначный, то делить 1 раз; если результат однозначный, то сразу выводить на экран.

На рисунке 6 представлено описание преобразования на языке AHDL.

Рисунок 6 - Описание на языке AHDL


Как известно, деление на нуль запрещено. Поэтому было реализовано, что при делении на нуль в строке результата выведется слово «ZERRO», в остатке будут нули и загорится предупреждающий светодиод.

Описание на языке AHDL представлено на рисунке 7.

Рисунок 7 - Условия деления на нуль

2.6 Блок интервалов времени

Блок интервалов (рисунок 8) нам нужен для синхронизации LCD - индикатора, а также схемы устранения дребезга кнопки.

Рисунок 8 - Блок интервалов времени

На вход схемы подается глобальный синхросигнал clk частотой 40 МГц, на выходах схемы формируются импульсные последовательности:

-f_10kHz c частотой 10 кГц, длительность импульса 0,1 мс;

-F_200Hz частотой 200 Гц, длительность импульса 5 мс;

-res_b частотой 12,5 Гц, длительность импульса 80 мс.

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

Опишем генератор эталонных интервалов времени на языке AHDL (рисунок 9).

Основные сигналы генератора эталонных интервалов времени и память делителей частоты:

Рисунок 9 - Описание на языке AHDL

Элементы памяти делителей частоты объявлены как DFF (D-триггер) и DFFE (D- триггер с сигналом разрешения). Делителем частоты является счетчик с модулем счета, равным коэффициенту деления, и цепями формирования сигнала переноса:

Рисунок 10 - Счётчик делителя на 4000

Первое булево уравнение соединяет вход clk с портами clk триггеров div_4000[]. Во втором уравнении использован оператор if … then … else для задания условия, при котором будет происходить сброс всех триггеров div_4000[].d=0 и формирование сигнала переноса F_10kHz=vcc. Если данное условие не выполняется, то выполняется инкремент счетчика div_4000[].d=div_4000[].q+1. Данное описание определяет алгоритм работы делителя частоты и способ его включения в схему генератора эталонных интервалов времени на рисунке 11. Аналогичным образом можно описать работу остальных делителей частоты, особенность этих описаний заключается в указании групповых переносов, поступающих на входы разрешения триггеров ena в соответствии со схемой (рисунок 11):

Рисунок 11 - Счётчики деления частоты на 50 и на 16

2.7 Антидребезговый модуль

Для подавления «дребезга» контактов кнопки управления используем IP-модуль debounce (рисунок 12). При нажатии на кнопку формируется низкий уровень сигнала ctrl_bt, при этом на выходе модуля debounce формируется одиночный импульс bt_clk.

На рисунке 13 представлено описание на языке AHDL.

Рисунок 13 - Описание на языке AHDL

2.8 Блок индикации

Значение делимого, делителя, знака деления, результата и остатка должно отображаться на LCD индикаторе.

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

Для отображения значений, двоичные десятиразрядные числа преобразуются в три тетрады в двоично-десятичном коде. Затем каждую тетраду в ASCII код.

Для преобразователя одного знака в код ASCII старшим 4 битам присваивается двоичное число «0011», а младшим соответствует значение тетрады результата.

Приложение А

описание проекта





Похожие работы на - Устройство деления BCD чисел

 

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