Статья опубликована в рамках: XV Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 24 декабря 2013 г.)
Наука: Технические науки
Секция: Радиотехника, Электроника
Скачать книгу(-и): Сборник статей конференции
- Условия публикаций
- Все статьи конференции
дипломов
ИСПОЛЬЗОВАНИЕ ПЛИС В СОВРЕМЕННЫХ УСТРОЙСТВАХ
Тупиков Павел Андреевич
студент 5 курса, кафедра АРТ ОмГТУ, РФ, г. Омск
На сегодняшний день программируемые логические интегральные схемы (ПЛИС) находят все большее применение в различных современных устройствах, это связано с тем, что ПЛИС имеют значительные преимущества по сравнению с обычными цифровыми микросхемами. К данными преимуществам можно отнести:
· Улучшаются временные характеристики изделия.
· Уменьшается цена изделия.
· Уменьшаются габариты изделия.
· Увеличивается надежность изделия (уменьшается количество дискретных микросхем)
· Повышается гибкость изделия (ПЛИС всегда можно перепрограммировать)
Архитектура ПЛИС имеет сложную структуру (Рис. 1)
Рисунок 1. Внутренняя структура ПЛИС
Как видно из рисунка 1 основная часть ПЛИС состоит из программируемых логических блоков и программируемых внутренних связей [1].
Сам процесс программирования (прошивки) ПЛИС состоит в формировании нужных связей между входами и выходами устройства.
На сегодняшний день в мире есть два мировых лидера в производстве ПЛИС. Это американские фирмы Xilinx и Altera.
Каждая фирма предлагает свой САПР для работы с ПЛИС. Фирма Xilinx предлагает Xilinx Software Development Kit (SDK). Фирма Altera предлагает Max+Plus II и Quartus II, а так же систему моделирования ModelSim.
Для создания программ прошивки обычно используются языки описания работы аппаратуры, наиболее распространенные на сегодняшний день распространены следующие языки:
· VHDL;
· Verilog HDL.
Язык VHDL является наиболее сложным для обучения, но при этом обладает наибольшими возможностями на функциональных и поведенческих уровнях абстракции, однако имеет меньшие возможности на структурном уровне абстракции по сравнению с Verilog HDL, для расширения возможностей языка VHDL была разработана библиотека VITAL (Рис. 2) [3].
Рисунок 2. Уровни абстракции Verilog и VHDL
Примером работы языка Verilog HDL является программа, реализованная на ПЛИС CYCLONE III EP3C5E1444C8N стенда Mini-DiLab общий вид которого представлен на рис. 3.
Рисунок 3. Общий вид платы Mini-DiLab
Данная программа реализует последовательное переключение светодиодов led0—led7, с выбором набавления движения «огонька» при помощи кнопок pba и pbb, а так же управлением скоростью переключения при помощи переключателей sw0, sw1.
//Текст программы
module proect(output [7:0]led, input clk_25mhz, input pba, input pbb,
input [1:0]sw);
// Назначение внутренних соединений проекта
wire [5:0]s1;
wire s2;
wire [2:0]s3;
// Вызов других файлов (подпрограмм), подключаемых к проекту
tr tr_1 (.out(s2), .set(pba), .res(pbb));
counter counter_1 (.q(s1[5:0]), .clk(clk_25mhz), .up(s2));
mx mx_1 (.a(s3[2:0]), .in(s1[5:0]), .load(sw[1:0]));
dc3_8 dc3_8_1 (.out(led[7:0]), .in(s3[2:0]));
endmodule // конец программы
Подпрограмма tr
module tr (out, set, res); // Создание программы
// Назначение входов/выводов
output reg out;
input set;
input res;
// Инициализация
initial
begin
out <= 1'd0;
end
// Основной код программы
always @(negedge set or negedge res)
begin
if(~(set))
out <= 1'd1;
else
out <= 1'd0;
end
endmodule //Конец программы
Подпрограмма counter
module counter (con[25:0], q, clk,up); // Начало программы
// Назначение входов/выходов
output reg [25:0]con;
output [5:0]q = con[25:20];
input up, clk;
// Основной код программы
always @(posedge clk)
begin
if (clk)
if (up)
con <= con - 1'd1;
else
con <= con + 1'd1;
end
endmodule //Конец программы
Подпрограмма mx(мультиплексор)
module mx ( output reg [2:0]a, input [5:0]in, input [1:0]load);
// Основной код программы
always @*
begin
case (load)
2'b00: a[2:0] = in[5:3];
2'b01: a[2:0] = in[4:2];
2'b10: a[2:0] = in[3:1];
2'b11: a[2:0] = in[2:0];
endcase
end
endmodule // Конец программы
Подпрограмма dc3_8 (мультиплексор)
module dc3_8 (out, in); // Начало программы
// Назначение входов/выходов
output reg [7:0] out;
input wire [2:0] in;
// Основной код программы
always @*
begin
case (in)
3'd0: out = 8'b11111110;
3'd1: out = 8'b11111101;
3'd2: out = 8'b11111011;
3'd3: out = 8'b11110111;
3'd4: out = 8'b11101111;
3'd5: out = 8'b11011111;
3'd6: out = 8'b10111111;
3'd7: out = 8'b01111111;
endcase
end
endmodule // Конец программы
Программа была реализована в САПР Quartus II[2].
После компиляции программы компилятор не выдал ошибки и замечания в программе, связанные с анализом и синтаксисом программы (рис. 4).
Рисунок 4. Окно сообщений проекта
Замечание, сделанные компилятором, говорят об отсутствии лицензии на Quartus II(была использована бесплатная версия программы, для обучения) и отсутствия файлов, необходимых для моделирования проекта.
RTL Структура данного проекта представлена на рис. 5.
Рисунок 5. Реализация проекта (RTL структура)
Как показано на рис. 6 в данной программе испозльзуется лишь незначительная часть возможностей данной ПЛИС.
Рисунок 6. Часть ПЛИС, участвующая в работе проекта
Выводы: Программируемые логические интегральными схемы являются могут находить применение во многих устройствах. Для обучения работы с ними следует вводить в образовательную программу специальностей, связанных с проектированием и конструированием радиоэлектронной аппаратуры знакомство с языками описания аппаратуры(Verilog HDL и VHDL).
Список литературы:
1.Грушевицкий Р.И. Проектирование систем на микросхемах программной логики/ Р.И. Грушевицкий, A.X. Мурсаев, Е.П. Угрюмое. СПб.: БХВ Петербург, 2002. — 608 с.
2.Коломов Д.А. Системы автоматизированного проектирования фирмы Altra MAX+plus II и Quartus II. Краткое описание и самоучитель/ Д.А. Коломов, Р.А. Мяльк, А.А. Зобенко, А.С. Филиппов. М.: ИП РадиоСофт, 2002. — 126 с.
3.Максфилд К. Проектирование на ПЛИС. Курс молодого бойца./ К. Максфилд. М.: Издательский дом «Додэка-XXI», 2007. — 408 с. (перевод с английского).
дипломов
Комментарии (1)
Оставить комментарий