Что такое ПЛИС?

Итак, что такое ПЛИС? По Википедии «Программи́руемая логи́ческая интегра́льная схе́ма (ПЛИС, англ. programmable logic device, PLD) — электронный компонент, используемый для создания цифровых интегральных схем. В отличие от обычных цифровых микросхем, логика работы ПЛИС не определяется при изготовлении, а задаётся посредством программирования (проектирования).».

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

Основной параметр ПЛИС это количество имеющихся логических элементов. Например, наиболее простой чип из серии Altera Cyclone имеет около 5000 элементов. Это очень много! Для сравнения процессор Z80 или 6502 потребует от 1000 до 2000 элементов. Целый ретро-компьютер из 80-х годов займет от 3000 до 6000 элементов!

Кроме того, у ПЛИС обычно есть и немного памяти (50-100 килобайт) и несколько PLL.

При всем при этом, ПЛИС не дороги. Весьма неплохой чип стоит $10-$20.

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

Эти языки не являются языками программирования как C или Бейсик. Они языки описания схем. Проекты состоят из «процессов». Каждый процесс выполняет самостоятельную и независимую работу от остальных. Они общаются между собой посредством «сигналов», в точности как обычные электронные элементы. Обычно, все процессы синхронизируются от таймера.

При программировании ПЛИС надо принимать во внимание те же принципы как и при дизайне обычных электронных схем. К примеру, задержки распространения сигналов должны быть учтены во избежание «гонки сигналов». Сигналы в ПЛИС достаточно быстры. Даже простые ПЛИС способны работать с таймерами на 50МГц и даже 100Мгц. Более чем достаточно для создания ретро компьютера!

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

Для программирования чипов от Altera я использую бесплатную версию программы «Quartus». Она может быть скачена с сайта Altera. Моя отладочная плата называется Terasic DE1 с чипом Altera Cyclone II на ней.

Terasic DE1 development board

Эта плата почти идеальна для построения ретро-компьютеров на ней! Смотрите сами:

  • Altera Cyclone II 2C20 ПЛИС с 20 000 логических элементов (этого более чем достаточно для большинства хобби проектов)
  • Встроенный USB Blaster (не требуется программатор)
  • 8Мбайт (1M x 4 x 16) SDRAM, 4Мбайт Flash памяти, 512Кбайт(256Kx16) SRAM (достаточное количество памяти для почти любого проекта)
  • Гнездо SD Card
  • 4 кнопки и 10 переключателей
  • 8 зеленых светодиодов, 10 красных светодиодов и 4 7-ми сигментных индикатора (идеально для отладки)
  • 50МГц осцилятор, 24МГц осцилятор, 27МГц осцилятор плюс вход для внешнего таймера
  • 24-битный звуковой кодек с линейными выходом и входом, а также микрофонным входом
  • VGA ЦАП (4-битный R-2R на канал) с выходным разъемом VGA
  • RS-232 передатчик с 9 пиновым разъемом
  • PS/2 разъем для мыши или клавиатуры
  • Два 40 пиновых разъема расширения (на случай если понадобится подключить что-то еще)

 

Цена этой платы $150 плюс доставка с сайта Terasic.

Я буду использовать эту платы для создания реплики компьютера «ЮТ-88», который я вкратце описал в предыдущем посте. Давайте посмотрим, что же из этого получится.

Leave a Reply