Spartan 3e starter kit linux

Программирование ПЛИС. Плавное изменение яркости светодиодов на Spartan-3E Starter Kit с использованием ШИМ (PWM)

Эта статья ориентирована на новичков в программировании ПЛИС на языке VHDL и тех, кто хочет научиться это делать. Ранее на хабре уже была рассмотрена статья с аналогичной задачей, реализованной на PIC-контроллере. А в этой статье речь пойдет об изменении яркости свечения светодиода с помощью ПЛИС.
Итак, цель работы: Освоить понятие ШИМ и применить его в изменении яркости светодиода. Для реализации воспользоваться языком программирования VHDL в среде разработки Xilinx ISE Project Navigator v12.3.

Перейдем к реализации цели

Для реализации нам потребуется какая-нибудь железка с ПЛИС, я выбрал имеющуюся под рукой платку Spartan-3E Starter Kit (DataSheet). Так же необходимо установить Xilinx ISE Project Navigator (у меня установлена версия 12.3). В принципе, все готово работе. Осталось только подключить питание к платке и соединить ее по USB с компьютером для последующего программирования.

Часть 1. Теория изменения яркости светодиода.

Яркость светодиода можно регулировать подачей на него разных значений постоянного напряжения (например, переменным резистором). Но на нашей плате установлены светодиоды без переменных резисторов, которые могут принимать значение ‘1’ и светиться в полную яркость, либо ‘0’. Так как же тогда сделать регулировку яркости у такого столь простого девайса? Ответ – ШИМ. Вся суть в том, что мы будем «моргать» этим светодиодом настолько быстро, что моргание даже не будет заметно нашему глазу, а мы просто будем видеть тускло светящийся светодиод. Если сказать точнее, то просто у светодиода есть переходный процесс при зажигании, то есть загорается он не мгновенно. Именно этим мы пользуемся, подавая единицу на очень короткий промежуток времени, так чтобы светодиод не успел загореться в полную яркость.

Часть 2. Создание нового проекта.

Загружаем ISE Project Navigator и тыкаем File -> New Project. Пишем имя проекта (у меня shim_habr), выбираем директорию для сохранения и снизу выбираем Top-level source type: HDL. Жмем Next.

Далее выбираем ПЛИС. В моем случае Family: Spartan3E; Device: XC3S500E; Package: FG320; Speed: -4. Все эти данные можно увидеть на самой микросхеме, либо посмотреть в даташите.

Далее выбираем Preferred Language: VHDL, жмем Next и потом Finish.

Проект создан. Теперь нужно добавить в него модуль, в котором мы будем описывать логику работы светодиода. Слева вверху находим кнопку New Source и жмем на нее:


В появившемся окне выбираем VHDL Module и пишем любое имя файла (можно одноименное с проектом shim_habr). Жмем Next.

Теперь нам нужно задать используемые в проекте ножки. Этого можно не делать сейчас и пропустить этот шаг, а потом написать все руками. Но поскольку для нашего проекта нам потребуется всего лишь три ножки, то я ввел их прямо здесь. Итак, нам потребуется опорная частота от установленного на плате 50 МГц кварца, подключенного к ПЛИС к ножке с именем C9, а так же мы будем использовать два светодиода так же уже установленных на плате. Допустим, это будут два правых светодиода, подключенных к ножкам ПЛИС под именами E12 и F12. Назовем ножку кварца clk, установим Direction: IN т.к. мы будем считывать частоту, а ножки со светодиодами – led1 и led2 со значением Direction: OUT, т.к. мы будем ими управлять.


Жмем Next, потом Finish. Видим открывшийся текстовый редактор с уже заполненной заготовкой I/O портов проекта.

entity shim_habr is
Port ( clk : in STD_LOGIC ;
led1 : out STD_LOGIC ;
led2 : out STD_LOGIC ) ;
end shim_habr ;

Как я уже говорил, можно было пропустить предыдущий шаг и ввести все это вручную. Далее нам нужно сопоставить имена портов с именами ножек ПЛИС. Тыкаем правой кнопкой на имени файла shim_habr.vhd в иерархии и выбираем пункт New Source.

В открывшемся окне выбираем Implementation Constrains File и называем этот файл pin. Жмем Next, затем Finish.

В открывшийся пустой файл пишем следующее:

NET «clk» LOC = «C9» ;
NET «led1» LOC = «F12» ;
NET «led2» LOC = «E12» ;

Сохраняем.
Номера ножек можно посмотреть в даташите, либо в нашем случае нам упростили поиск — номера можно посмотреть прямо на плате рядом с нужной периферией:

Часть 3. Программирование постоянной яркости светодиода.

architecture Behavioral of shim_habr is

constant clk_freq : integer := 50 _000_000 ; — частота кварца
constant shim_freq : integer := 10 _000 ; — частота ШИМ
constant max_count : integer := clk_freq / shim_freq ; — разрядность ШИМ

signal count : integer range 0 to max_count := 0 ; — счетчик делителя частоты
constant porog : integer := max_count / 48 ; — ширина импульса логической единицы

process ( clk )
begin
if rising_edge ( clk ) then
if count = max_count then
count 0 ;
else
count count + 1 ;
end if ;
end if ;
end process ;

led1 ‘ 1 ‘ when count porog else ‘ 0 ‘ ;
led2 ‘ 1 ‘ ;

Теперь разберемся, что делает этот код. Вначале обратите внимание на строчку led2 ‘ 1 ‘ when count porog else ‘ 0 ‘ ;

То есть на светодиоде висит логическая единица тогда, когда наш счетчик меньше какого-то порогового значения porog (у меня это 1/48 от всего периода, смотри объявление констант), остальную часть периода на светодиоде висит логический ноль. Это наглядно можно показать рисунком:

Часть 4. Прошивка.

Сохраняем все изменения, выбираем в иерархии файл shim_habr.vhd и снизу под иерархией ищем процесс Configure Target Device и запускаем его. Ждем, пока проект оттранслируется в файл прошивки, после чего откроется окно программы iMPACT, с помощью которой мы будем зашивать его в ПЛИС.
Двойной щелчек на Boundary Scan, и если у вас плата подключена к компьютеру по USB, то вы увидите примерно следующее:

Если вам не предложили выбрать файл прошивки для xc3s500e, то кликайте правой кнопкой по соответствующей микросхемке и выбирайте пункт меню Assign Configuration File. В окне выбора файла выбираем недавно созданный shim_habr.bit. Далее опять правой кнопкой на xc3s500e, затем Program. Запустится процесс зашивки, после чего появится надпись Program Successful. Если все прошло именно так, то можно смотреть на платку =)

Часть 5. Программирование плавного изменения яркости светодиода.

signal porog : integer range 0 to max_count := 0 ;

constant max_count_div : integer := clk_freq / 600 ;
signal count_div : integer range 0 to max_count_div := 0 ;

if count_div = max_count_div then
count_div 0 ;
— здесь частота поделена на 600.
else
count_div count_div + 1 ;
end if ;

if porog = max_count then
porog 0 ;
else
porog porog + 1 ;
end if ;

architecture Behavioral of shim_habr is

constant clk_freq : integer := 50 _000_000 ; — частота кварца
constant shim_freq : integer := 10 _000 ; — частота ШИМ
constant max_count : integer := clk_freq / shim_freq ; — разрядность ШИМ

Читайте также:  Gpt или mbr при установке windows 10 rufus

signal count : integer range 0 to max_count := 0 ; — счетчик делителя частоты
signal porog : integer range 0 to max_count := 0 ; — ширина импульса логической единицы

constant max_count_div : integer := clk_freq / 600 ;
signal count_div : integer range 0 to max_count_div := 0 ;

process ( clk )
begin
if rising_edge ( clk ) then
if count = max_count then
count 0 ;
else
count count + 1 ;
end if ;

if count_div = max_count_div then
count_div 0 ;
if porog = max_count then
porog 0 ;
else
porog porog + 1 ;
end if ;
else
count_div count_div + 1 ;
end if ;
end if ;
end process ;

led1 ‘ 1 ‘ when count porog else ‘ 0 ‘ ;
led2 ‘ 1 ‘ ;

Транслируем, зашиваем, радуемся успехам. =) Вам может показаться, что светодиод большую часть времени светится ярко, а тусклый он только в начале цикла. Я уже писал об этом эффекте в своей предыдущей статье про цветомузыку. Дело в том, что яркость зависит от порога не линейно, а логарифмически. То есть, например, чтобы яркость изменялась плавно от минимума к максимуму с использованием ШИМ разрядностью 1024 необходимо брать последовательно следующие значения переменной porog: 0, 16, 32, 64, 128, 256, 512, 1024.

Домашнее задание.

Как видите, светодиод плавно набирает яркость, а как только набрал – сразу сбрасывает в 0 (собственно, что написали то и получили). В качестве тренировки можно попробовать сделать плавный набор яркости, а по достижении максимальной начать ее плавно уменьшать до нуля. Тем, кто с легкостью справится с этим заданием, можно попытаться сделать «бегущие огни» из восьми имеющихся светодиодов: плавно загорается и гаснет первый диод, потом второй и т.д. Если не получается, но интересно, то спрашивайте — постараюсь ответить и объяснить.

Заключение.

Итак, мы освоили применение ШИМ к светодиоду и научились регулировать яркость светодиода с помощью ПЛИС. Этим же методом можно регулировать скорость вращения двигателя, магнитную силу катушек, и т.д.
Желаю всем успехов в освоении ПЛИС!

Источник

Инструментальный комплект Spartan-3 Starter Kit: разработки ПЛИС семейства FPGA компании Xilinx

Для эффективного изучения сквозного проектирования встраиваемых микропроцессорных систем на основе ядер семейств PicoBlaze и MicroBlaze рекомендуется воспользоваться серийно выпускаемыми универсальными инструментальными модулями, выполненными на основе ПЛИС фирмы Xilinx. Использование готовых инструментальных средств позволяет не только ускорить процесс аппаратной реализации, но и избежать ошибок, вносимых при изготовлении печатной платы и монтаже компонентов. Настоящая публикация знакомит с основными характеристиками и структурой аппаратного модуля, выполненного на основе кристалла семейства Spartan-3. Этот модуль поставляется в составе инструментального комплекта Spartan-3 Starter Kit.

Назначение и основные характеристики инструментального комплекта Spartan-3 Starter Kit

Инструментальный комплект Spartan-3 Starter Kit предназначен, в первую очередь, для практического изучения методов проектирования цифровых устройств с аппаратной реализацией операций и разработки встраиваемых микропроцессорных систем на основе ПЛИС семейств FPGA фирмы Xilinx. Функциональные возможности и конструктивное исполнение инструментального модуля позволяют не только выполнять отладку проектов, реализуемых на основе ПЛИС семейства Spartan-3, но и использовать его в качестве промышленного серийного варианта разрабатываемого устройства. Рассматриваемый модуль можно рекомендовать для аппаратной реализации проектируемой системы при жестких требованиях, предъявляемых ко времени ее разработки. Применение серийно выпускаемого модуля позволяет значительно сократить суммарную длительность этого процесса за счет исключения этапов проектирования и изготовления печатной платы устройства и монтажа компонентов.

Инструментальный модуль Xilinx Spartan-3 Starter Board может использоваться для реализации автономных систем управления, сбора и обработки цифровой информации, встраиваемых цифровых устройств с различными компьютерными интерфейсами. Кроме того, данный модуль целесообразно применять в учебных лабораториях для изучения функционирования и проектирования микропроцессорных систем с различной архитектурой. Ресурсы инструментального модуля Xilinx Spartan-3 Starter Board позволяют реализовать проекты встраиваемых микропроцессорных систем, выполняемых на основе как 8-разрядного ядра семейства PicoBlaze, так и 32-разрядного ядра семейства MicroBlaze. В частности, тестовый проект, включенный в состав комплекта, содержит наглядный пример реализации системы, выполненной на базе микропроцессорного ядра семейства MicroBlaze.

В состав комплекта Spartan-3 Starter Kit входят:

  • плата инструментального модуля Xilinx Spartan-3 Starter Board;
  • сетевой адаптер с выходным стабилизированным напряжением 5 В и максимальным током нагрузки 1,6 А, предназначенный для питания инструментального модуля;
  • универсальный загрузочный JTAG-кабель для конфигурирования ПЛИС семейств CPLD и FPGA, а также ППЗУ серий XC18V00 и Platform Flash, подключаемый к параллельному порту компьютера;
  • комплект CD-ROM, содержащий новую полнофункциональную версию системы проектирования ISE (Integrated Synthesis Environment) WebPACK, оценочную версию САПР ISE Foundation, тестовый проект, иллюстрирующий применение ПЛИС семейств FPGA для реализации «системы на кристалле», и необходимую документацию.

Характерными особенностями инструментального модуля Spartan-3 Starter Board являются:

  • использование ПЛИС из семейства Spartan-3 с объемом 200 000 системных вентилей в корпусе FT256, логические и трассировочные ресурсы которой в сочетании с большим количеством пользовательских выводов позволяют реализовать не только отдельные блоки проектируемой системы, но разрабатываемую систему в полном объеме;
  • возможность поддержки на уровне проектов стандартных интерфейсов вычислительных систем RS-232, PS/2 и VGA;
  • подключение специальных и пользовательских выводов ПЛИС к контактам трех стандартных разъемов расширения, обеспечивающее возможность сопряжения с внешними устройствами;
  • внешнее высокоскоростное асинхронное статическое ОЗУ на основе SRAM емкостью 1 Мбайт, расширяющее возможности оперативной памяти, реализуемой на основе соответствующих ресурсов ПЛИС;
  • применение в качестве ППЗУ для хранения конфигурационных данных ПЛИС Flash-PROM серии Platform Flash, программируемой в системе;
  • наличие двух разъемов для подключения загрузочных кабелей различного типа, позволяющих выполнять операции конфигурирования ПЛИС и программирования ППЗУ через порт JTAG-интерфейса в различных режимах, а также обратного считывания конфигурационных данных;
  • применение кварцевого генератора с частотой 50 МГц для формирования внешнего тактового сигнала ПЛИС;
  • наличие панели для установки дополнительного кварцевого генератора;
  • включение в схему модуля преобразователя уровней RS-232, обеспечивающего возможность непосредственного подключения к последовательному порту через разъем DB-9, установленный на плате (при реализации универсального асинхронного приемопередатчика UART на основе ПЛИС);
  • присутствие на плате элементов индикации нескольких типов, обеспечивающих возможность визуального контроля напряжения питания, процесса конфигурирования кристалла и функционирования разрабатываемой системы;
  • наличие 8 ползунковых переключателей и 4 кнопок, которые могут использоваться, например, для ручной установки режима работы реализуемой системы или в процессе отладки проектируемой системы, а также для тестирования инструментального модуля и прикладного программного обеспечения;
  • использование комплексной схемы управления питанием, выполняющей функции формирования напряжений, необходимых для питания компонентов модуля, в том числе для блоков ввода-вывода и ядра кристалла FPGA, а также конфигурационного ППЗУ;
  • наличие кнопки, обеспечивающей реализацию режима принудительной загрузки конфигурационной последовательности в ПЛИС;
  • полная совместимость со всем семейством систем проектирования и программирования кристаллов фирмы Xilinx (ISEWebPACK, ISE BaseX и ISE Foundation).
Читайте также:  Windows server volume license

Структура инструментального модуля Spartan-3 Starter Board

Внешний вид инструментального модуля Spartan-3 Starter Board показан на рис. 1. Компоненты модуля смонтированы на печатной плате с двухсторонним размещением компонентов.

Структурная схема рассматриваемого модуля изображена на рис. 2. Основными элементами структуры модуля Spartan-3 Starter Board являются:

  • ПЛИС XC3S200 в корпусе FT256, на основе которой реализуется проектируемая система;
  • программируемое в системе ППЗУ серии Platform Flash XCF02S, предназначенное для хранения конфигурационных данных ПЛИС;
  • схема загрузки конфигурационных данных;
  • схема управления конфигурированием ПЛИС;
  • блок синхронизации, предназначенный для формирования внешних тактовых сигналов;
  • схема формирования питающих напряжений;
  • внешнее высокоскоростное ОЗУ;
  • блок светодиодных индикаторов;
  • четырехзначный дисплей, выполненный на основе 7-сегментных светодиодных индикаторов;
  • блок ползунковых переключателей;
  • блок кнопочных переключателей;
  • схема преобразования уровней сигналов интерфейса RS-232;
  • стандартные разъемы интерфейсов RS-232, PS/2 и VGA;
  • три 40-контактных разъема расширения.

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

В состав схемы загрузки конфигурационных данных входят два разъема, которые предназначены для подключения загрузочных кабелей различного типа к JTAG-порту ППЗУ XCF02S иПЛИС XC3S200. Выводы JTAG-портов конфигурационного ППЗУ и ПЛИС инструментального модуля скоммутированы соответствующим образом, образуя единую цепочку периферийного сканирования, как показано на рис. 3. Таким образом, разработчику предоставляется возможность программирования ППЗУ и загрузки конфигурационных данных непосредственно в ПЛИС из компьютера через один разъем. Режим конфигурирования ПЛИС из компьютера целесообразно использовать на этапе отладки проекта. Разъем J5 позволяет использовать для операций конфигурирования и отладки универсальные загрузочные кабели, выпускаемые фирмой Xilinx: Parallel Cable IV (PC IV) и MultiPro Desktop Tool. Разъем J7 используется для присоединения загрузочного кабеля Digilent JTAG3, который входит в инструментальный комплект Spartan-3 Starter Kit. Кроме того, данный разъем позволяет использовать для загрузки и обратного считывания конфигурационных данных универсальный кабель Parallel Cable 3, который выпускался фирмой Xilinx до появления кабеля следующего поколения Parallel Cable 4.

Схема управления конфигурированием ПЛИС включает в себя набор перемычек Mode (J8), кнопку PROGRAM и светодиодный индикатор DONE. Три перемычки Mode предназначены для выбора режима конфигурирования ПЛИС. С их помощью задаются значения сигналов на входах выбора режима конфигурирования M0, M1, M2 кристалла XC3S200. При отсутствии перемычки (разомкнутой паре контактов разъема J8) сигнал на соответствующем входе устанавливается в состояние высокого логического уровня (логической единицы). Установка перемычки переключает сигнал на соответствующем входе выбора режима в состояние низкого логического уровня. Описание различных комбинаций перемычек Mode и соответствующих режимов конфигурирования ПЛИС приведено в таблице на рис. 4 изображено расположение перемычек для каждого режима конфигурирования ПЛИС.

Кнопка PROGRAM позволяет выполнить принудительную загрузку конфигурационной последовательности в ПЛИС. Светодиодный индикатор DONE сигнализирует об успешном завершении процесса загрузки конфигурационной последовательности в ПЛИС.

Блок синхронизации образуют кварцевый генератор с частотой 50 МГц и панель для установки дополнительного кварцевого генератора. Внешний тактовый сигнал, который формируется кварцевым генератором, установленным на плате инструментального модуля, подается на один из восьми специально выделенных контактов кристалла, сопряженных с глобальными буферными элементами — GCLK0 (вывод T9 для корпуса FT256). Так как выход каждого глобального буфера связан (через глобальные тактовые мультиплексоры) с глобальной сетью тактовых линий и цифровыми блоками управления синхронизацией (Digital Clock Manager, DCM) ПЛИС семейства Spartan-3, то такое решение оптимальным образом обеспечивает возможность применения модуля DCM для получения сетки внутренних тактовых частот, соответствующих требованиям реализуемого проекта. Цифровой блок управления синхронизацией позволяет сформировать тактовые сигналы со сдвигом фаз на 90, 180 и 270°, с удвоенной частотой и с одним из возможных коэффициентов деления (1,5; 2; 2,5; 3; 3,5; 4; 4,5; 5; 5,5; 6; 6,5; 7; 7,5; 8; 9; 10; 11; 12; 13; 14; 15; 16) по отношению ко входному тактовому сигналу. Кроме того, применение схемы цифровой автоподстройки задержек (Delay Locked Loop, DLL), входящей в состав DCM, позволяет устранить временной перекос при распространении сигналов синхронизации как внутри кристалла, так и на уровне печатной платы инструментального модуля. В случае установки дополнительного кварцевого генератора, его выход также оказывается подключенным к глобальному тактовому входу ПЛИС — GCLK4 (вывод D9 для корпуса FT256).

Внешнее высокоскоростное ОЗУ выполнено на основе двух микросхем асинхронной статической памяти SRAM IS61LV25616AL-10T, выпускаемых фирмой ISSI. В разрабатываемых проектах встраиваемых микропроцессорных систем данное ОЗУ может быть сконфигурировано в виде двух независимых массивов с организацией 256K16 разрядов или в виде одного банка с организацией 256K32. В случае конфигурации внешней памяти в форме двух независимых массивов, в каждом из них используются общие сигналы разрешения записи, разрешения выходов и сигналы на адресных входах. При этом каждый из массивов памяти управляется индивидуальным сигналом выбора кристалла. Организация внешнего ОЗУ в виде одного банка с организацией 256K32 идеально подходит для использования в проектах 32-разрядных микропроцессорных систем на основе ядер семейства MicroBlaze. При этом внешнее запоминающее устройство может выполнять функции программной или оперативной памяти микропроцессорной системы.

Комплексная схема формирования питающих напряжений включает в себя три DC/DC-преобразователя, вырабатывающих напряжения требуемых номиналов, и светодиодный индикатор POWER. Встроенные DC/DC-преобразователи формируют напряжения питания 1,2 В для ядра кристалла семейства Spartan-3, а также напряжения 2,5 В и 3,3 В, используемые в блоках ввода-вывода ПЛИС и других компонентах инструментального модуля. В качестве входного напряжения используется напряжение 5 В, поступающее от сетевого адаптера. Светодиодный индикатор POWER предназначен для визуального контроля наличия или отсутствия входного напряжения.

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

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

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

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

Большинство пользовательских выводов кристалла FPGA подключено к контактам разъемов различного типа, установленных на плате инструментального модуля. Тем самым, обеспечивается возможность реализации в проекте, выполняемом на основе ПЛИС, ряда наиболее широко применяемых интерфейсов вычислительных систем. Инструментальный модуль предоставляет в распоряжение разработчика разъемы интерфейсов RS-232, PS/2 и VGA. Для реализации асинхронного последовательного порта в соответствии с электрическими характеристиками интерфейса RS-232 в состав модуля включена схема преобразования уровней сигналов, выполненная на основе микросхемы MAX3232 фирмы Maxim. Часть пользовательских выводов ПЛИС разведена к контактам трех стандартных разъемов расширения, обеспечивающим возможность сопряжения с различными внешними периферийными устройствами. Кроме того, конфигурация разъемов расширения позволяет подключать к ним напрямую следующие инструментальные модули, выпускаемые фирмами Xilinx и Digilent:

  • Xilinx Spartan-3 Starter Kit Expansion Boards;
  • Digilent Expansion Boards;
  • Digilent Breakout Probe Header (TPH1);
  • Digilent Breadboard (DBB1);
  • Digilent Wire-wrap Board (DWR1);
  • Digilent SPP, EPP, ECP Parallel Port (PIO1).
Читайте также:  Как сделать клонирование диска windows 10

Краткая характеристика ПЛИС XC3S200, используемой в инструментальном модуле Spartan-3 Starter Board

Функциональные возможности ПЛИС XC3S200, используемой в инструментальном модуле Spartan-3 Starter Board, характеризуются следующими показателями:

  • логическая емкость кристалла составляет 480 конфигурируемых логических блоков (Configurable Logic Block, CLB) или 4320 логических ячеек (Logic Cell, LC);
  • 173 пользовательских контакта ввода-вывода;
  • высокая производительность, допускающая реализацию проектов с системными частотами до 326 МГц;
  • применение четырех цифровых блоков управления синхронизацией (DCM), выполняющих функции умножения, деления и сдвига фаз тактовых частот, и обеспечивающих расширенные возможности управления тактовыми сигналами не только внутри кристалла, но и на уровне печатной платы проектируемой системы;
  • использование глобальной сети тактовых сигналов предоставляет возможность распределения сигналов синхронизации внутри кристаллов с малыми разбегами фронтов;
  • наличие двух видов внутренней оперативной памяти: распределенной Distributed RAM, реализуемой на базе 4-входовых таблиц преобразования (LookUp Table, LUT) конфигурируемых логических блоков, и встроенной блочной памяти Block RAM, которая может быть организована как двухпортовое ОЗУ;
  • максимальный объем внутренней распределенной оперативной памяти Distributed RAM составляет 30 кбит;
  • предельная информационная емкость встроенной блочной памяти Block SelectRAM, организованной в виде секций ОЗУ по 18 кбит, составляет 216 кбит;
  • возможность реализации быстрых внутренних интерфейсов к внешним высокопроизводительным элементам памяти (ОЗУ или ПЗУ);
  • применение специальной логики ускоренного переноса для выполнения высокоскоростных арифметических операций;
  • наличие 12 встроенных аппаратных умножителей, предназначенных для вычисления произведения двух 18-разрядных операндов;
  • наличие цепочек каскадирования обеспечивает возможность реализации функций с большим количеством входных переменных;
  • поддержка передачи данных с удвоенной скоростью Double Data Rate (DDR), открывающая широкие возможности для реализации высокоскоростных устройств цифровой обработки сигналов;
  • использование технологии SelectI/O позволяет поддерживать 17 однополюсных и 6 дифференциальных цифровых сигнальных стандартов ввода-вывода, в частности, LVTTL, LVCMOS12, GTL, SSTL2(II), HSTL(III), PCI 3.3, AGP, CTT;
  • применение в блоках ввода-вывода функции цифрового управления импедансом DCI (Digitally Controlled Impedance), позволяющей исключить необходимость установки на печатной плате большого количества внешних согласующих резисторов;
  • полная поддержка протокола периферийного сканирования в соответствии со стандартами IEEE Std 1149.1 (JTAG) и IEEE Std 1532;
  • неограниченное количество циклов загрузки конфигурационных данных;
  • поддержка 5 режимов конфигурирования ПЛИС (Master Serial, Slave Serial, Master Parallel, Slave Parallel , JTAG).

Основу архитектуры кристаллов Spartan-3 XC3S200 составляет регулярная матрица конфигурируемых логических блоков CLB, окруженных программируемыми блоками ввода-вывода (Input/Output block, IOB) (рис. 5). Кроме того, в нее входят блоки аппаратных умножителей Multiplier Blocks, цифровые блоки управления синхронизацией DCM и блоки выделенной памяти Block RAM. Коммутация всех перечисленных выше архитектурных элементов осуществляется с помощью программируемых трассировочных ресурсов нового поколения. Трассировочные ресурсы ПЛИС семейства Spartan-3 имеют иерархическую структуру, основным элементом которой является главная трассировочная матрица GRM (General Routing Matrix) [1].

Функциональные возможности инструментального модуля наглядно демонстрирует тестовый проект. Поэтому далее кратко рассматривается структура и основные характеристики компонентов тестового проекта.

Описание структуры тестового проекта

Тестовый проект, включенный в состав инструментального комплекта Spartan-3 Starter Kit, выполнен с помощью комплекса средств проектирования встраиваемых микропроцессорных систем Xilinx Embedded Development Kit (EDK). Этот проект представляет собой образец разработки «системы на кристалле» (System-on-Chip), реализующей в одном корпусе ПЛИС функции процессора и периферийных устройств. Основой этой системы является микропроцессорное ядро семейства MicroBlaze. Структура системы показана на рис. 6.

В состав системы, разработанной в рамках тестового проекта, входят следующие компоненты:

  • микропроцессорное ядро MicroBlaze;
  • модуль универсального асинхронного приемопередатчика UART;
  • модули параллельного интерфейса ввода/вывода GPIO;
  • ядро контроллера 4-значного дисплея;
  • таймер;
  • контроллер прерываний;
  • контроллер внешней памяти EMC (External Memory Controller);
  • отладочный модуль MDM (Microprocessor Debug Module);
  • контроллер дисплея VGA;
  • ядро контроллера клавиатуры PS/2.

Модуль универсального асинхронного приемопередатчика, предназначенный для организации обмена данными между микропроцессорным ядром и внешними устройствами (в частности, последовательным портом ПК) через интерфейс RS-232, конфигурируется со следующими параметрами протокола приема-передачи:

  • максимальная скорость приема-передачи информации составляет 9600 кбит/с;
  • формат передаваемых данных включает в себя стартовый бит, 8 информационных битов, один стоповый бит;
  • контроль четности (нечетности) не производится.

Тестовый проект может быть загружен в ПЛИС инструментального модуля с помощью программы iMPACT, входящей в состав САПР серии Xilinx ISE, или в среде системы проектирования Xilinx EDK. Для программирования конфигурационного ППЗУ серии Platform Flash с помощью программы iMPACT предназначен файл new_S3_Master.mcs, который расположен в разделе download рабочего каталога тестового проекта. Процесс загрузки конфигурационной последовательности в рамках системы проектирования Xilinx EDK подробно рассмотрен в одной из предыдущих публикаций [2].

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

Использование инструментального модуля Spartan-3 Starter Board

Перед началом работы с инструментальным модулем следует подключить загрузочный кабель, входящий в состав инструментального комплекта, к разъему JTAG-интерфейса платы, а также необходимые кабели к разъемам, предназначенным для обмена данными с внешними устройствами. В частности, при реализации прилагаемого тестового проекта нужно подключить коммуникационный кабель к разъему последовательного порта DB-9 модуля и разъему соответствующего COM-порта компьютера. Кроме того, необходимо, используя стандартный VGA-кабель, соединить разъем VGA-порта модуля с входом дисплея, соответствующего спецификации VGA или SVGA. После этого можно подать питание на инструментальный модуль, подключив выходной разъем сетевого адаптера, и активизировать средства программирования (программу iMPACT, входящую в состав САПР серии Xilinx ISE). При успешном выполнении указанных операций после обнаружения загрузочного кабеля производится автоматический поиск и инициализация цепочки периферийного сканирования (включающей в себя ПЛИС и ППЗУ), подключенной к используемому JTAG-порту. Информация об обнаруженной цепочке периферийного сканирования представлена в графической форме в рабочей области основного окна и в текстовом виде в окне регистрации сообщений программы iMPACT. После этого можно приступать к выполнению операций программирования ППЗУ или конфигурирования ПЛИС, а также обратного считывания конфигурационных данных или контрольной информации из ППЗУ. Последовательность необходимых для этого процедур подробно была рассмотрена ранее [3].

Источник

Оцените статью