- •Лабораторная работа № 1. Исследование дешифратора.
- •Задание на работу в лаборатории.
- •Лабораторная работа № 2. Исследование работы демультиплексора.
- •Порядок выполнения работы.
- •Проектирование 4-разрядного сумматора.
- •Лабораторная работа № 4.
- •Лабораторная работа № 5.
- •Исследование счетчиков.
- •Порядок выполнения работы.
- •Лабораторная работа № 6. Исследование регистров.
Лабораторная работа № 1. Исследование дешифратора.
Цель работы: получение основных навыков проектирования схем в редакторе пакета Quartus. Изучение функционирования простейшего КЦУ.
Задание на работу в лаборатории.
1. Зайдя в свою директорию, на рабочем столе правой клавишей мыши создать кнопку запуска. В открывшемся окне возле кнопки Имя записать Quartus , а возле кнопки Команда активировать Просмотреть и указать путь (файловая система/afs/dcti.sut.ru/soft/quartus). Затем нажать ОК, на рабочем столе появится ярлык Quartus. Пользуясь созданной кнопкой запустить пакет Quartus 7.1.
2.Открыть проект. Для этого в окне File верхнего меню выбрать New project wizard, проверить путь к проекту до папки пользователя, создать в ней папку для работы в лаборатории в течении семестра, например …/homes/students/m0./m0.n../xx, объявить имя проекта и файла верхнего уровня, нажать Next. Окно добавления внешних файлов пока проигнорировать, Next. Выбрать тип кристалла: Cyclone – верхнее окно меню, EP1C6T144C8 – нижнее окно меню. Нажать FINISH.
Открыть файл VHDL- редактора. Для этого проделать следующий путь: File – New – VHDL File. При таком выборе откроется окно редактора. На открывшемся поле записать программу функционирования дешифратора на 3 входа. Обратите внимание на то, что в программе имя устройства –dec. Замените его в соответствии с именем вашего проекта или файла верхнего уровня.
Программа 1
library ieee;
use ieee.std_logic_1164.all;
entity dec is
port(
adr_i: in bit_vector(2 downto 0);
data_out: out bit_vector(7 downto 0)
);
end dec;
architecture BBB of dec is
begin
p0: process (adr_i)
begin
case adr_i is
when "000"=>data_out<="00000001";
when "001"=>data_out<="00000010";
when "010"=>data_out<="00000100";
when "011"=>data_out<="00001000";
when "100"=>data_out<="00010000";
when "101"=>data_out<="00100000";
when "110"=>data_out<="01000000";
when "111"=>data_out<="10000000";
end case;
end process;
end ;
5.Сохранить и откомпилировать полученный файл. Путь к компилятору: Processing – Start Compilation, или соответствующий значок верхнего меню редактора. Если компилятор указывает на ошибки, обратиться к преподавателю или лаборанту.
6. Построить временные диаграммы работы устройства. Для этого открыть файл временных диаграмм File – New – Others Files – Vector Waveform File. C помощью двух кликов мышью с левой стороны от вертикальной оси открыть окно Insert Node or Bus, выбрать в нем кнопку Node Finder. В разделе Filter выбрать Pins all, затем нажать List и проверить наличие списка выводов схемы в левом окне. Перенести список в правую часть с помощью кнопки >>, нажать OK. Временные интервалы – клик на обозначении вывода, обращение к опции C бокового меню, выбор в открывшемся окне пути Timing, установка временного интервала в ns. (20ns, 40ns, 80ns).
Сохранить файл и обратиться к симулятору: Processing – Start Simulation или соответствующий значок верхнего меню редактора. При получении сообщения об ошибках обратиться к преподавателю или лаборанту. Если симуляция прошла без ошибок, проанализировать полученные диаграммы.
Отчет должен содержать программу устройства и диаграммы его работы.
В качестве проверки полученных знаний попробуйте самостоятельно составить программу работы шифратора на 4 входа и проанализировать временные диаграммы этого устройства. Внимание! При записи программы по образцу, указанному выше необходимо запись bit_vector заменить на std_logic_vector, adr_i на y_i и data_out на adr_out и, т.к. оператор требует записи всех комбинаций, последняя строка описания поведения устройства имеет следующий вид:
when others=>adr_out<=”ZZ”