Автор: Пользователь скрыл имя, 28 Марта 2013 в 12:13, курсовая работа
Целью курсовой работы является разработать проект “Музыкальный синтезатор” используя ПЛИС фирмы Xilinx в среде проектирования XilinxISE.
Для программирования логики работы синтезатора использовался язык VHDL ((Very high speed integrated circuits) Hardware Description Language).
Язык VHDL - это международный стандарт в области автоматизации проектирования цифровых систем.Средствами языка VHDL возможно проектирование на различных уровнях абстракции (поведенческом или алгоритмическом, регистровых передач, структурном), в соответствии с техническим заданием и предпочтениями разработчика
ВВЕДЕНИЕ 5
1 ОБЗОР СОСТОЯНИЯ ВОПРОСА 7
2 ВЫБОР АППАРАТНЫХ СРЕДСТВ 8
3 ПРОГРАММИРОВАНИЕ И ОПИСАНИЕ АППАРАТНО-ПРОГРАММНОГО КОМПЛЕКСА 9
3.1 Структура комплекса 9
3.2 Описание модулей и их реализация 10
4 ТЕСТИРОВАНИЕ 16
ЗАКЛЮЧЕНИЕ 19
СПИСОК ЛИТЕРАТУРЫ 20
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 5
1 ОБЗОР СОСТОЯНИЯ ВОПРОСА 7
2 ВЫБОР АППАРАТНЫХ СРЕДСТВ 8
3 ПРОГРАММИРОВАНИЕ
И ОПИСАНИЕ АППАРАТНО-
3.1 Структура комплекса 9
3.2 Описание модулей и их реализация 10
4 ТЕСТИРОВАНИЕ 16
ЗАКЛЮЧЕНИЕ 19
СПИСОК ЛИТЕРАТУРЫ 20
ПРИЛОЖЕНИЕ А 21
Современный этап развития цифровой техники характеризуется широким
применением программно-аппаратных комплексов, которые строятся по принципу «система на кристалле». При этом в качестве элементной базы для реализации таких систем все чаще используются программируемые логические интегральные схемы (ПЛИС)
ПЛИС позволяют реализовать
в своем составе практически
любое цифровое устройство от простейших
триггеров до цифровых фильтров. процессоров,
контроллеров и синтезаторов. Микросхемы
ПЛИС хороши тем, что позволяют
В настоящее время наиболее распространенные серии ПЛИС имеют
следующую архитектуру:
ПЛИС CPLD относятся к устройствам начального уровня и предназначены для реализации устройств небольшого логического объема.
По сравнению с архитектурой CPLD, ПЛИС FPGA содержат намного большее число меньших по размерам отдельных логических блоков и имеют развитую распределенную структуру внутренних соединений, которая занимает почти весь кристалл . Помимо большего объема логических ресурсов, современные ПЛИС FPGA отличаются наличием аппаратно выделенных ресурсов для решения типичных задач цифровой обработки сигналов и используются для построения более сложных устройств.
Целью курсовой работы является разработать проект “Музыкальный синтезатор” используя ПЛИС фирмы Xilinx в среде проектирования XilinxISE.
Для программирования логики
работы синтезатора использовался
язык VHDL ((Very high speed integrated circuits) Hardware Description
Язык VHDL - это международный стандарт в области автоматизации проектирования цифровых систем.Средствами языка VHDL возможно проектирование на различных уровнях абстракции (поведенческом или алгоритмическом, регистровых передач, структурном), в соответствии с техническим заданием и предпочтениями разработчика. Заложена возможность иерархического проектирования, максимально реализующая себя в экстремально больших проектах с участием большой группы разработчиков. Представляется возможным выделить следующие три составные части языка: алгоритмическую — основанную на языках Ada и Pascal и придающую языку VHDL свойства языков программирования; проблемно ориентированную — в сущности и обращающую VHDL в язык описания аппаратуры; и объектно-ориентированную, интенсивно развиваемую в последнее время.
VHDL является входным языком многих современных систем автоматизированного проектирования (САПР), программируемых логических интегральных схем.VHDL предназначен для точного описания проектируемых систем и их моделирования на начальных этапах проектирования.
Музыкальный синтезатор — музыкальный
инструмент синтезирующий звук при помощи одного или нескольких генераторов звуковы
Выход звукового сигнала достигается за счёт изменения свойств электрического сигнала (в аналоговых синтезаторах) или же методом настройки параметров центрального процессора (в цифровых синтезаторах). Синтезатор, выполненный в виде корпуса с клавиатурой, называется клавишным синтезатором. В случае, если клавишный синтезатор оборудован встроенным секвенсором, он называется рабочей станцией. Синтезатор в виде компьютерной программы, использующей универсальную звуковую плату для озвучивания и стандартные средства ввода-вывода (компьютерные клавиатуру, мышь, монитор, а также, возможно, MIDI-клавиатуру), называется программным синтезатором.
В ходе курсового проекта был разработан простейший музыкальный синтезатор оборудованный семью входами, каждый из который соответствует определенной ноте и одним выходом который подключен к динамику.
Принцип работы данного пешеходного перехода достаточно прост. При нажатии на клавишу генерируется частота соответствующей музыкальной ноте, сигнал на выходе поступает динамику с помощью которого можно прослушать нашу ноту.
Целью курсового проекта является разработка АПВС для осуществления работы музыкального синтезатора.
Исходные данные проекта:
Для реализации поставленной задачи была выбрана ПЛИС EPM1270F256I5N семейства MAX® II CPLDs. ПЛИС серии MAX® II содержат от 240 до 2210 логических элементов и от 128 до 2210 макроэлементов, а также имеют энергонезависимую память с минимальным объемом 8Кбит. Устройства серии MAX® II обеспечивают высокую производительность и надежную работу в сравнении с другими архитектурами CPLD.
Основой CPLD является матрица макроячеек, в которой реализованы логические соединения вентилей или более сложные логические операции. Блоки макроячеек объединены программируемой коммутационной матрицей с последующим выходом на входы (выходы) схемы.
Особенности:
В таблице 1 приведены основные характеристики ПЛИС EPM1270F256I5N.
Наименование |
Тип памяти |
Частота |
Число макроячеек |
Число вводов/ выводов |
Количество логических блоков/ элементов |
EPM1270F256I5N |
FLASH |
1.8797GHz |
980 |
212 |
1270 |
Таблица 1 – Основные характеристики ПЛИС EPM1270F256I5N.
Созданный проект состоит из четырех модулей, как показано на рисунке 3.1:
Рисунок 3.1– Модули проекта
Упрощенная структурная схема разработанной системы представлена на рисунке 3.2.
Рисунок 3.2 – Упрощенная структурная схема
Главным модулем приложения является Main. Описание объекта моделирования:
entity Main is
PORT ( clk_cnt, button_do, button_re, button_mi, button_fa, button_sol, button_lia, button_si : in STD_LOGIC;
dinamik: out STD_LOGIC );
end Main;
Назначение сигналов:
Далее идет описание модуля Music в котором происходит синтез всех нот.
Процесс смены нажатии кнопки ноты:
architecture Behavioral of Music is
begin
proc_state: process (clk_cnt,button_do, button_re, button_mi, button_fa, button_sol, button_lia, button_si)
variable count_Gz : integer range 0 to 3832;
begin
if (clk_cnt'event and clk_cnt='1' ) then
if (button_do='1') then
count_Gz := count_Gz + 1;
if (count_Gz<3850) then
dinamik <= '0';
end if;
if (count_Gz>=3850) then
dinamik <= '1';
if (count_Gz>5775) then
count_Gz:=0;
dinamik <= '0';
end if;
end if;
end if;
if ( button_re='1') then
count_Gz := count_Gz + 1;
if (count_Gz<3412) then
dinamik <= '0';
end if;
if (count_Gz>=3412) then
dinamik <= '1';
if(count_Gz>5518) then
count_Gz:=0;
dinamik <= '0';
end if;
end if;
end if;
if (button_mi='1') then
count_Gz := count_Gz + 1;
if (count_Gz<3039) then
dinamik <= '0';
end if;
if (count_Gz>=3039) then
dinamik <= '1';
if(count_Gz>4558) then
count_Gz:=0;
dinamik <= '0';
end if;
end if;
end if;
if ( button_fa='1') then
count_Gz := count_Gz + 1;
if (count_Gz<2865) then
dinamik <= '0';
end if;
if (count_Gz>=2865) then
dinamik <= '1';
if(count_Gz>4297) then
count_Gz:=0;
dinamik <= '0';
end if;
end if;
end if;
if ( button_sol='1') then
count_Gz := count_Gz + 1;
if (count_Gz<2551) then
dinamik <= '0';
end if;
if (count_Gz>=2551) then
dinamik <= '1';
if(count_Gz>3826) then
count_Gz:=0;
dinamik <= '0';
end if;
end if;
end if;
if ( button_lia='1') then
count_Gz := count_Gz + 1;
if (count_Gz<2272) then
dinamik <= '0';
end if;
if (count_Gz>=2272) then
dinamik <= '1';
if(count_Gz>3404) then
count_Gz:=0;
dinamik <= '0';
end if;
end if;
end if;
if ( button_si='1') then
count_Gz := count_Gz + 1;
if (count_Gz<2028) then
dinamik <= '0';
end if;
if (count_Gz>=2028) then
dinamik <= '1';
if(count_Gz>3042) then
count_Gz:=0;
dinamik <= '0';
end if;
end if;
end if;
end if;
end process;
В модуле CLK_1MGz создается тактовый генератор с частотой 1МГц:
architecture Behavioral of CLK_1MGz is
begin
process(clk)
variable cnt: integer range 0 to 1000;
begin
if (clk 'event and clk='1') then
if(cnt>=500) then
clk_out<='1';
else
clk_out<='0';
end if;
if(cnt=1000) then
cnt:=0;
else
cnt:=cnt+1;
end if;
end if;
end process;
Тестовый модуль — Test. Сначала декларируется тестируемый компонент:
COMPONENT Main
PORT(
clk_cnt : IN std_logic;
button_do : IN std_logic;
button_re : IN std_logic;
button_mi : IN std_logic;
button_fa : IN std_logic;
button_sol : IN std_logic;