Помощь в написании студенческих работ
Антистрессовый сервис

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

Лабораторная работаПомощь в написанииУзнать стоимостьмоей работы

В пакете IEEE_std_logic_arith определены два новых типа массивов — SIGNED и UNSIGNED — и набор функций сравнения для операндов типа INTEGER, SIGNED и UNSIGNED. В данном пакете определены операции сложения и вычитания для операндов тех же типов, а также для 1-разрядных операндов типа STD_LOGIC и STDJJLOGIC. По своим функциям АЛУ является операционным блоком, выполняющим микрооперации… Читать ещё >

Разработка АЛУ на языке VHDL (реферат, курсовая, диплом, контрольная)

Министерство Образования Республики Беларусь УО «БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ»

Факультет компьютерного проектирования Кафедра электронной техники и технологий Лабораторная работа:

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

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

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

Минск 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.

Показать весь текст
Заполнить форму текущей работой