Разработка АЛУ на языке 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
Подобные документы
Идентификаторы, объекты и операции языка VHDL. Последовательные и параллельные операторы. Описание интерфейса устройства. Синтез схем по описаниям на языке VHDL. Последовательность букв и цифр произвольной длины. Цифровое устройство и его модель.
курсовая работа [132,5 K], добавлен 28.06.2009Мова VHDL. Створення проекту для моделювання цифрових і аналогових схем. Синтез і моделювання комбінаційних пристроїв, заданих в табличній формі, за допомогою системи Active-HDL 6.1. Створення ієрархічних структур при проектуванні складних пристроїв.
реферат [287,3 K], добавлен 14.02.2009Определение принципов работы с САПР Xilinx WebPACK. Особенности проектирования простейших комбинационных схем на базе ПЛИС. Описание устройства на языке VHDL, набор тестовых воздействий и временные диаграммы его работы. Размещение устройства на кристалле.
лабораторная работа [318,7 K], добавлен 28.05.2012Приемы работы с инструментальной средой программирования С++. Кодирование арифметических и логических выражений с использованием стандартных библиотечных функций ввода, вывода в С++. Описание переменной вещественного типа в языке программирования С++.
лабораторная работа [137,9 K], добавлен 13.06.2014Понятие двоично-десятичного кода (ДДК), его получение и использование. Изучение арифметико-логических устройств, использующихся для обработки ДДК. Алгоритмы сложения, вычитания, умножения и деления ДДК при помощи арифметико-логических устройств.
контрольная работа [145,5 K], добавлен 05.09.2010Общие сведения о САПР MAX+PLUS II. Ввод проекта, компиляция и моделирование. Средство для отображения иерархической структуры проекта, для просмотра и редактирования результатов размещения и трассировки. Программа моделирования Simulator и другие модули.
курсовая работа [1,1 M], добавлен 28.06.2009Выбор метода проектирования транслятора с языка Паскаль на язык Си, разработка и кодирование алгоритма программы. Использование допустимых операторов в исходном тексте, определение типов переменных и синтаксиса логических и арифметических выражений.
курсовая работа [1,0 M], добавлен 03.07.2011Загальні відомості про мову VHDL, яка використовуються для проектування цифрових електронних систем та створення програмного продукту, її елементи. Способи структуризації програми, принципи об’єктно-орієнтованого програмування, засоби налагоджування.
курсовая работа [34,9 K], добавлен 09.06.2010Проектирование цифровых устройств на ПЛИС фирмы Xilinx с применением языка VHDL, использование систем Leonardo Spectrum, Foundation Express и Integrated Synthesis Environment (ISE). Синтез и реализация проекта, разработка регистровой схемы и умножителя.
курсовая работа [2,3 M], добавлен 28.06.2009Создание программы для перевода кодов с языка Pascal на язык Си. Обработка программ операторами case, assign, rewrite и write. Способы объявления файла, комментария, переменных, логических и арифметических выражений. Виды синтаксических анализаторов.
курсовая работа [461,0 K], добавлен 03.07.2011