Разработка АЛУ на языке VHDL

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

Разработка АЛУ на языке VHDL

Министерство Образования Республики Беларусь

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

ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ"

Факультет компьютерного проектирования

Кафедра электронной техники и технологий






Лабораторная работа:

"Разработка АЛУ на языке VHDL"



Выполнила: студентка гр.011801 Кружаева Т.С.

Принял: Смирнов А.В.







Минск 2013

1. Цель работы


Овладеть знаниями и практическими навыками по проектированию арифметико-логических устройств (АЛУ). Лабораторная работа также служит для овладения навыками программирования и отладки описания логических схем на языке VHDL.

2. Теоретические сведения


Арифметико-логическое устройство (АЛУ; arithmetic and logic unit, ALU) является комбинационной схемой, способной выполнять целый ряд различных арифметических и логических операций с парой n-разрядных операндов. Выполняемая операция определяется комбинацией сигналов на входах выбора функции.

2.1 Классификация АЛУ


По способу действия над операндами АЛУ делятся на последовательные и параллельные. В последовательных АЛУ операнды представляются в последовательном коде, а операции производятся последовательно во времени над их отдельными разрядами. В параллельных АЛУ операнды представляются параллельным кодом и операции совершаются параллельно во времени над всеми разрядами операндов.

По способу представления чисел различают АЛУ:

для чисел с фиксированной точкой;

для чисел с плавающей точкой;

для десятичных чисел.

По характеру использования элементов и узлов АЛУ делятся на блочные и многофункциональные:

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

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


2.2 Описание АЛУ на языке VHDL


Хотя язык VHDL имеет встроенные операторы сложения (+) и вычитания (-), они работают только с целыми и действительными числами и физическими типами. В частности, они не работают с типами BIT_VECTOR и типом STD_LOGIC_VECTOR стандарта IEEE. Для этих типов в стандартных пакетах определены специальные операторы

Таблица 1 - Список стандартных функций АЛУ

Функция

Описание функции

R=X+Y

Сложение Х и Y

R=X+Y+Cl

Сложение Х и Y с переносом

R=X - Y

Вычесть Y из Х

R=X - Y - Cl

Вычесть Y из Х с заемом

R=Y - Х

Вычесть Х из Y

К=Y - X - Cl

Вычесть Х из Y с заемом

R= - X

Арифметическое отрицание Х

R= - Y

Арифметическое отрицание Y

Инкремент Y

R=Y - 1

Декремент Y

R=PASS Х

Результат равен операнду Х

R=PASS Y

Результат равен операнду Y

R=0 (PASS 0)

Очистить результат

R=ABS Х

Результат равен абсолютному значению Х

R=X AND Y

Логическое и (AND) Х и Y

R=X OR Y

Логическое или (OR) Х и Y

R=X XOR Y

Исключающее логическое или (XOR) Х и Y

R=NOT Х

Логическое отрицание Х

R=NOT Y


В пакете IEEE_std_logic_arith определены два новых типа массивов - SIGNED и UNSIGNED - и набор функций сравнения для операндов типа INTEGER, SIGNED и UNSIGNED. В данном пакете определены операции сложения и вычитания для операндов тех же типов, а также для 1-разрядных операндов типа STD_LOGIC и STDJJLOGIC.

При большом числе перекрывающихся функций сложения и вычитания не столь очевидно, каким окажется тип результата сложения или вычитания. Если хотя бы один из операндов принадлежит типу SIGNED, то обычно результат будет типа SIGNED, в противном случае результат будет типа UNSIGNED. Но если результирующее значение присваивается сигналу или переменной типа STD_LOGIC_VECTOR, то результат типа SIGNED или UNSIGNED преобразуется к этому типу. Разрядность любого результата обычно равна разрядности самого длинного операнда. Однако, когда операнд типа UNSIGNED участвует в одной операции с операндом типа SIGNED или INTEGER, его разрядность увеличивается на 1 для размещения в нем знакового бита, равного 0, и только после этого устанавливается разрядность результата.

В лист 4.1 приведена VHDL-программа сложения 8-разрядных операндов раз - личного типа, иллюстрирующая эти правила. Первый результат S объявлен как 9-разрядное двоичное число в предположении, что разработчика интересует пере нос, который может возникнуть при сложении 8-разрядных операндов А и В типа UNSIGNED. С помощью оператора конкатенации & операнды А и В расширяются так, чтобы функция сложения помещала бит переноса в старший разряд результата.

арифметический логический логическая схема

3. Ход работы


На основании лабораторной работы №1 мы разработали АЛУ.

library IEEE;IEEE. std_logic_1164. all;IEEE. std_logic_arith. all;lab4 is(, B: in UNSIGNED (7 downto 0);: in SIGNED (7 downto 0);: in STD_LOGIC_VECTOR (7 downto 0);: in STD_LOGIC_VECTOR (7 downto 0);: out UNSIGNED (8 downto 0);: out SIGNED (8 downto 0);: out SIGNED (7 downto 0);: out STD_LOGIC_VECTOR (8 downto 0);_i: out STD_LOGIC_VECTOR (7 downto 0);_ili: out STD_LOGIC_VECTOR (7 downto 0);_iili_iskl: out STD_LOGIC_VECTOR (7 downto 0);_not_x: out STD_LOGIC_VECTOR (7 downto 0);_not_y: out STD_LOGIC_VECTOR (7 downto 0)

);lab4;lab4_arch of lab4 is<= ('0' & A) + ('0' & B);<= A + C;<= C + SIGNED (D);<= C - UNSIGNED (D);_i <= (D AND G);_ili <= (D OR G);_iili_iskl <= (D XOR G);_not_x <= (NOT D);_not_y <= (NOT G);

end lab4_arch;

Рисунок 1 - Временная диаграмма

4. Вывод


Овладели знаниями и практическими навыками по проектированию арифметико-логических устройств (АЛУ). Лабораторная навыками программирования и отладки описания логических схем на языке VHDL.

Похожие работы на - Разработка АЛУ на языке VHDL

 

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