Table of Contents
Хардвер
Для поделок в области программируемой логики я приобрел инструментальную плату Xilinx Spartan-3E Starter Kit. Весьма недорогая, в Москве $150. Есть выход VGA, два порта RS-232 и один порт PS/2 для клавиатуры. Для подключения к 100-контактному расширителю нужны разъемы FX2-100S-1.27DS (на плату) или FX2BA-100SA-1.27R (на кабель).
На плате установлена FPGA XC3S500E из серии Xilinx Spartan3E в корпусе FG-320. Чип имеет 10000 гейтов и стоит около $40.
Существуют варианты попроще:
- Spartan-3 Board (XC3S200) — $99
- Nexys (XC3S200) — $99
- Basys System Board (XC3S100E) — $59
и посложнее:
- Spartan 3E-1600 Development Board (XC3S1600E) — $295
- FX12 Board (Virtex-4 FX12) — $299
Три младших микросхемы семейства Spartan-3E имеют исполнение в корпусе QFP. В таблице приведены количество сигналов ввода-вывода и примерная цена.
Корпус: | vq100 | tq144 | pq208 |
---|---|---|---|
Количество сигналов: | 66 | 108 | 158 |
Цена xc3s100e | $17 | $20 | – – |
Цена xc3s250e | нет? | $26 | нет? |
Цена xc3s500e | – – | – – | $40? |
Для радиолюбительского монтажа корпусов VQFP100, TQFP144, PQFP208 с шагом 0.5 мм годятся макетные платы QFP05 фирмы "Миктех".
Документация
- Руководство пользователя для платы Spartan-3E Starter Kit.
- Полное описание семейства Spartan-3E.
- Описание примитивов и макросов семейства Spartan-3E для VHDL и Verilog.
- Универсальная заготовка файла ограничений для платы Spartan-3E Starter Kit.
- Таблица ножек для xc3s500e в корпусе fg320.
- Таблицы ножек для всех микросхем семейства Spartan-3E в форматах Excel и CSV.
Verilog
Для разработки выбран язык Verilog.
- Краткий обзор из журнала “Схемотехника” 2001/02.
Разработка делится на два этапа:
- моделирование (simulation) — проверка правильности функционирования создаваемого устройства;
- синтез (synthesis) — создание файла “прошивки” для загрузки в микросхему программируемой логики (ПЛИС, FPGA).
Документация по Verilog:
- Introduction to Verilog - прекрасный учебник по языку.
- Designer’s Guide to Verilog - пошаговое введение в Verilog.
- Сайт для разработчиков FPGA - много полезного.
Есть интересные лекции профессора Джона Кубиатовича по разработке микропроцессоров.
Программное обеспечение
Xilinx подкупает наличием бесплатного софта, в том числе под Linux — ISE Webpack. Как использовать Xilinx ISE под Linux описывается здесь.
Загрузка прошивки
Для работы микросхемы FPGA в нее надо загрузить прошивку. Это происходит при нажатии кнопки PROG. Светодиод “DONE” показывает, что процесс загрузки успешно завершился и FPGA готова к работе.
На плате есть три вида памяти, в которых может храниться файл прошивки:
- 512 килобайт Platform Flash — специализированная микросхема Xilinx XCF04S
- 2 мегабайта последовательной Flash-памяти — ST Micro 25P16V6G
- 16 мегабайт параллельной Flash-памяти — Intel TE28F128
Или FPGA может загружаться через порт USB непосредственно из внешнего компьютера. Выбор производится джамперами J30. Файл прошивки для микросхемы XC3S500E имеет размер 283 килобайта.
Утилита прошивки iMPACT входит в состав программного пакета Xilinx ISE Webpack. Её можно вызывать в пакетном режиме:
impact -batch impact.run
При этом командный файл impact.run выглядит так:
setMode -bscan setCable -p auto identify assignFile -p 1 -file "прошивка.bit" program -p 1 quit
Примеры от Xilinx
С сайта Xilinx можно скачать примеры разработок для платы Spartan-3E Starter Kit.
Picoblaze
Плата Spartan-3E Starter Kit изначально поставляется с прошивкой "startup", демонстрирующей возможности процессора Picoblaze. Это 8-битный процессор с объемом памяти 1024 команд и 64 байт данных. Архитектура похожа на младшие модели микроконтроллеров Microchip PIC. Исходные тексты процессора на языке VHDL (около 1900 строк кода) распространяются бесплатно. Прошивку с текстами можно взять здесь: s3esk-startup.zip. Для компиляции дайте команду “make”. Для загрузки в плату выполните файл “install.bat”.
Microblaze
Microblaze представляет собой 32-битный RISC-процессор с архитектурой, напоминающей MIPS-32. Модуль процессора в виде параметризованного netlist распространяется в составе пакета Xilinx ISE. Исходные тексты на языке VHDL доступны бесплатно, но требуется подписать лицензионное соглашение.
Для архитектуры Microblaze существует компилятор GCC. К сожалению, собрать версию 2005-11-21 из исходных текстов не удается, есть несоответствия в include-файлах. Можно скачать бинарную версию GCC 3.4.1 для Linux. Есть тексты на сайте Xilinx, но они тоже не компилируются.
Есть пример "microblaze-lcd" подключения LCD-индикатора к процессору. Скачать можно здесь.
Linux на Microblaze
PetaLogix предлагает встроенный Linux для Spartan3E-500, с поддержкой Ethernet. Тексты, к сожалению, недоступны.
Jason Wu разработал инструкцию по созданию конфигурации ucLinux с помощью Xilinx Base System Builder (входит в состав платной ISE).
OpenRisc: процессор с открытым кодом
OpenRisc 1200 - проект 32-битного процессора с открытым кодом, распространяемым по лицензии GNU. Архитектура похожа на MIPS и ARM. Из периферии есть контроллер прерываний, таймер, контроллер SRAM/Flash, интерфейс отладчика, UART, Ethernet, VGA, клавиатура/мышь PS2. Система модульная, основана на шине Wishbone. Минимальная конфигурация для Spartan-3E Starter Kit занимает 58% ресурса FPGA.
Для OpenRisc есть поддержка в компиляторе GCC. Программное обеспечение можно скачать с сайта фирмы Beyond Semiconductor.
Есть также отличный симулятор архитектуры OpenRisc. Существуют версии Linux, ucLinux, RTEMS и ecos для OpenRisc.