Музыкальный синтезатор

Автор: Пользователь скрыл имя, 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

Работа содержит 1 файл

Записка.docx

— 134.96 Кб (Скачать)

 

 

 

СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ 5

1 ОБЗОР СОСТОЯНИЯ  ВОПРОСА 7

2 ВЫБОР АППАРАТНЫХ  СРЕДСТВ 8

3 ПРОГРАММИРОВАНИЕ  И ОПИСАНИЕ АППАРАТНО-ПРОГРАММНОГО  КОМПЛЕКСА 9

3.1 Структура  комплекса 9

3.2 Описание  модулей и их реализация 10

4 ТЕСТИРОВАНИЕ 16

ЗАКЛЮЧЕНИЕ 19

СПИСОК ЛИТЕРАТУРЫ 20

ПРИЛОЖЕНИЕ  А 21

 

 

 

ВВЕДЕНИЕ

 

Современный этап развития цифровой техники характеризуется  широким 

применением программно-аппаратных комплексов, которые строятся по принципу «система на кристалле». При этом в  качестве элементной базы для реализации таких систем все чаще используются программируемые логические интегральные схемы (ПЛИС)

ПЛИС позволяют реализовать  в своем составе практически  любое цифровое устройство от простейших триггеров до цифровых фильтров. процессоров, контроллеров и синтезаторов. Микросхемы ПЛИС хороши тем, что позволяют перепрограммировать  себя в системе, то есть уже запаянными на печатную плату. Так же они обладают десятками и сотнями выводов, 94 % из которых — перепрограммируемые  пользователем двунаправленные  выводы. Это значит, что на любом  этапе создания цифрового устройства можете переназначить вывод под  другую функцию либо вообще исключить  из проекта. 

В настоящее время наиболее распространенные серии ПЛИС имеют 

следующую архитектуру:

  • CPLB (Complex Programmable Logic Device), устройства, использующие для хранения конфигурации энергонезависимую память;
  • FPGA (Field Programmable Gate Array), устройства, использующие для хранения конфигурации энергозависимую память, которая требует инициализации после включения питания .

ПЛИС  CPLD относятся к  устройствам начального уровня и  предназначены для реализации устройств небольшого логического объема.

По сравнению с архитектурой  CPLD, ПЛИС  FPGA содержат намного большее число меньших по размерам отдельных логических блоков и имеют развитую распределенную структуру внутренних соединений, которая занимает почти весь кристалл . Помимо большего объема логических ресурсов, современные ПЛИС  FPGA отличаются наличием аппаратно выделенных ресурсов для решения типичных задач цифровой обработки сигналов и используются для построения более сложных устройств.

Целью курсовой работы является разработать проект “Музыкальный синтезатор” используя ПЛИС фирмы Xilinx в среде проектирования XilinxISE.

Для программирования логики работы синтезатора  использовался язык  VHDL ((Very high speed integrated circuits) Hardware Description Language).

Язык VHDL - это международный стандарт в области автоматизации проектирования цифровых систем.Средствами языка VHDL возможно проектирование на различных уровнях абстракции (поведенческом или алгоритмическом, регистровых передач, структурном), в соответствии с техническим заданием и предпочтениями разработчика. Заложена возможность иерархического проектирования, максимально реализующая себя в экстремально больших проектах с участием большой группы разработчиков. Представляется возможным выделить следующие три составные части языка: алгоритмическую — основанную на языках Ada и Pascal и придающую языку VHDL свойства языков программирования; проблемно ориентированную — в сущности и обращающую VHDL в язык описания аппаратуры; и объектно-ориентированную, интенсивно развиваемую в последнее время.

VHDL является входным языком многих современных систем автоматизированного проектирования (САПР), программируемых логических интегральных схем.VHDL предназначен для точного описания проектируемых систем и их моделирования на начальных этапах проектирования.

 

 

1 ОБЗОР СОСТОЯНИЯ ВОПРОСА

 

Музыкальный синтезатор  — музыкальный  инструмент синтезирующий звук при помощи одного или нескольких генераторов звуковых волн.

Выход звукового сигнала достигается за счёт изменения свойств электрического сигнала (в аналоговых синтезаторах) или же методом настройки параметров центрального процессора (в цифровых синтезаторах). Синтезатор, выполненный в виде корпуса с клавиатурой, называется клавишным синтезатором. В случае, если клавишный синтезатор оборудован встроенным секвенсором, он называется рабочей станцией. Синтезатор в виде компьютерной программы, использующей универсальную звуковую плату для озвучивания и стандартные средства ввода-вывода (компьютерные клавиатуру, мышь, монитор, а также, возможно, MIDI-клавиатуру), называется программным синтезатором.

В ходе курсового проекта  был разработан простейший музыкальный синтезатор  оборудованный семью входами, каждый из который соответствует определенной ноте и одним выходом который подключен к динамику. 

Принцип работы данного пешеходного перехода достаточно прост. При нажатии на клавишу генерируется частота соответствующей музыкальной ноте, сигнал на выходе поступает динамику с помощью которого можно прослушать нашу ноту.

Целью курсового проекта является разработка АПВС для осуществления  работы музыкального синтезатора. 

Исходные данные проекта:

  • при нажатии на клавишу генерируется сигнал с частотой соответствующей музыкальной ноте;
  • частота тактового сигнала 1 МГц.

 

 

 

 

2 ВЫБОР АППАРАТНЫХ  СРЕДСТВ

 

Для реализации поставленной задачи была выбрана ПЛИС EPM1270F256I5N семейства  MAX® II CPLDs. ПЛИС серии MAX® II содержат от 240 до 2210 логических элементов и от 128 до 2210 макроэлементов, а также имеют энергонезависимую память с минимальным объемом 8Кбит. Устройства серии MAX® II обеспечивают высокую производительность и надежную работу в сравнении с другими архитектурами CPLD.

Основой CPLD является матрица  макроячеек, в которой реализованы  логические соединения вентилей или  более сложные логические операции. Блоки макроячеек объединены программируемой  коммутационной матрицей с последующим  выходом на входы (выходы) схемы.

Особенности:

  1. Низкая стоимость,CPLD малой мощности;
  2. Мгновенное действие,энергонезависимая архитектура;
  3. Ток в режиме ожидания до 25мкА;
  4. Быстрая задержка распространения;
  5. UFM блок до 8Кбит для долговременного хранения данных;
  6. Мультивольтовое ядро, позволяющее питать устройство от 3.3V/2.5V или 1.8V;
  7. поддержка мультивольтового интерфейса ввода/вывода рассчитанного на логические уровни 3.3V, 2.5V, 1.8V и 1.5V;
  8. Триггеры Шмитта позволяют ограничить уровень входного шума;
  9. Входы/выходы полностью соответствуют периферийным компонентам;
  10. ISP схема соответствует стандарту IEEE Std. 1532.

В таблице 1 приведены основные характеристики ПЛИС EPM1270F256I5N.

 

 

Наименование

 

Тип памяти

 

Частота

 

Число макроячеек

Число вводов/

выводов

Количество логических блоков/ элементов

EPM1270F256I5N

FLASH

1.8797GHz

980

212

1270


 

Таблица 1 – Основные характеристики ПЛИС EPM1270F256I5N.

3 ПРОГРАММИРОВАНИЕ  И ОПИСАНИЕ АППАРАТНО-ПРОГРАММНОГО КОМПЛЕКСА

3.1 Структура комплекса

 

Созданный проект состоит  из четырех модулей, как показано на рисунке 3.1:

  1. Main.vhd — главный модуль;
  2. CLK_1MGz.vhd — модуль тактового генератора;
  3. Music.vhd — модуль синтеза нот;
  4. test.vhd— тестовый модуль.

 

 

Рисунок 3.1– Модули проекта

Упрощенная структурная схема разработанной системы представлена на рисунке 3.2.

Рисунок 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;

Назначение сигналов:

    • clk_cnt – тактовый сигнал;
    • button_do –кнопка синтеза ноты до;
    • button_re – кнопка синтеза ноты ре;
    • button_mi – кнопка синтеза ноты ми;
    • button_fa – кнопка синтеза ноты фа;
    • button_sol – кнопка синтеза ноты соль;    
    • button_lia – кнопка синтеза ноты ля;
    • button_si – кнопка синтеза ноты си;
    • dinamik – динамик для воспроизведения звука.

Далее идет описание модуля 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;

Информация о работе Музыкальный синтезатор