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

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

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 11.03.2014
Размер файла 633,4 K

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

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

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

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

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

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

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

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

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

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

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

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

Минск 2013

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

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

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

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

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

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

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

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

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

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

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

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

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

По своим функциям АЛУ является операционным блоком, выполняющим микрооперации, обеспечивающие прием из других устройств (например, памяти) операндов, их преобразование и выдачу результатов преобразования в другие устройства (табл. 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

R=Y+1

Инкремент 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

Логическое отрицание 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;

use IEEE. std_logic_1164. all;

use IEEE. std_logic_arith. all;

entity lab4 is

port (

A, B: in UNSIGNED (7 downto 0);

C: in SIGNED (7 downto 0);

D: in STD_LOGIC_VECTOR (7 downto 0);

G: in STD_LOGIC_VECTOR (7 downto 0);

S: out UNSIGNED (8 downto 0);

T: out SIGNED (8 downto 0);

U: out SIGNED (7 downto 0);

V: out STD_LOGIC_VECTOR (8 downto 0);

Log_i: out STD_LOGIC_VECTOR (7 downto 0);

Log_ili: out STD_LOGIC_VECTOR (7 downto 0);

Log_iili_iskl: out STD_LOGIC_VECTOR (7 downto 0);

Log_not_x: out STD_LOGIC_VECTOR (7 downto 0);

Log_not_y: out STD_LOGIC_VECTOR (7 downto 0)

);

end lab4;

architecture lab4_arch of lab4 is

begin

S <= ('0' & A) + ('0' & B);

T <= A + C;

U <= C + SIGNED (D);

V <= C - UNSIGNED (D);

Log_i <= (D AND G);

Log_ili <= (D OR G);

Log_iili_iskl <= (D XOR G);

Log_not_x <= (NOT D);

Log_not_y <= (NOT G);

end lab4_arch;

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

4. Вывод

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

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


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

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