Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: XV Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 24 декабря 2013 г.)

Наука: Технические науки

Секция: Радиотехника, Электроника

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Тупиков П.А. ИСПОЛЬЗОВАНИЕ ПЛИС В СОВРЕМЕННЫХ УСТРОЙСТВАХ // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. XV междунар. студ. науч.-практ. конф. № 15. URL: https://sibac.info/archive/technic/9(12).pdf (дата обращения: 01.12.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов


ИСПОЛЬЗОВАНИЕ  ПЛИС  В  СОВРЕМЕННЫХ  УСТРОЙСТВАХ


Тупиков  Павел  Андреевич


студент  5  курса,  кафедра  АРТ  ОмГТУ,  РФ,  г.  Омск


E-mail: 


 


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


·     Улучшаются  временные  характеристики  изделия.


·     Уменьшается  цена  изделия. 


·     Уменьшаются  габариты  изделия.


·     Увеличивается  надежность  изделия  (уменьшается  количество  дискретных  микросхем)


·     Повышается  гибкость  изделия  (ПЛИС  всегда  можно  перепрограммировать)


Архитектура  ПЛИС  имеет  сложную  структуру  (Рис.  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  с.  (перевод  с  английского).

Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Комментарии (1)

# виктор 23.08.2019 13:40
для использования в учебном процесс

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.