Частичная реконфигурация ПЛИС

Довелось по учебе разбираться с темой частичной реконфигурации(partial reconfiguration, PR) в ПЛИС фирмы Altera. Для тех, кто не в теме — частичная реконфигурация, это такая штука, которая позволяет динамически перепрошить часть нашей ПЛИС, пока остальная ПЛИСина продолжает работать. Это может быть удобно в случае ограниченности ресурсов, построения самовосстанавливающихся систем (Self-healing systems) и т.д.
В сети довольно немного информации на русском языке по этой теме, а еще меньше информации о том, как же заставить работать частичную реконфигурацию на плате с Cyclone V (пример, представленный в статье, был успешно запущен на плате DE1-SoC даташит на плату).
Приступим к практике.


Читать дальше

Формирование VGA изображения с использованием NIOS II


В своей предыдущей статье я рассказывал о подключении индикатора от телевизора к отладочной плате DE0-NANO. Однако получившаяся конструкция достаточна сложна и неудобна в работе — куча проводов, несколько источников питания, в том числе и 12В. Кроме того, из-за экзотичности индикатора, статья получилась не очень полезной. Поэтому далее в своих экспериментах я решил использовать обычный ЖК-монитор. О том, как подключить его к DE0-NANO — эта статья.


Читать дальше

Подключение LCD индикатора к ПЛИС


В этой статье я расскажу о подключении цветного графического LCD индикатора к ПЛИС, установленной на отладочной плате DE0-nano.



Читать дальше

Геморрой под названием Modelsim Altera Starter Edition

Небольшое философское вступление. Я окончательно понял, что Человечество действительно идет к концу света. И это произойдет не от падения какого-то там офонаревшего метеорита, или вдруг очнувшегося супер-мега-гига-вулкана. А просто потому, что мы начали отходить от важнейшего принципа: «надежно и просто работающее в усовершенствовании не нуждается». Это хорошо видно во всем: от современных автомобилей, которые осталось только оснастить ракетами «автомобиль-автомобиль», что бы по сложности они догнали истребители, до средств разработки.

Яркий пример тому – это попу_лярная среда разработки Quartus (в среде отечественных разработчиков-остряков «крякус», «кактус», «<вставить собственное созвучие>» и т.п.) от легендарной Altera.

Читать дальше

Quartus + ModelSim. Интеграция в картинках и создание TestBench

В жизни каждого начинающего разработчика настает момент, когда необходимо делать качественные скачки в процессе разработки. Для меня такая необходимость возникла при отладке Verilog проекта в Quartus. Моими основными инструментами на тот момент были: тупое долбление в код, SignalTap и In-System Source and Probe.
Времени на компиляцию тратилось все больше и больше, количество памяти в кристалле все меньше, а ясности не прибавлялось.
Тогда было принято решение перенести отладку в виртуальное пространство при помощи инструмента ModelSim.
Поразительно, но перерыв кучи документации я так и не нашел нигде единого руководства по интеграции Quartus и ModelSim.

Данная статья посвящена новичкам, освещает основные моменты интеграции программ Quartus и ModelSim.


Читать дальше
  • +2
  • 22 ноября 2011, 14:58
  • covsh

Инициализация RAM в FPGA Altera

Эмм, читал сейчас Recommended HDL coding styles в книжке по Квартусу и вот что не совсем понятно:

1) в секции про RAM в примерах они используют инициализацию ячеек памяти при включении питания. Используется конструкция с блоком initial и еще директива $readmemh(b) с загрузкой содержимого из файла. Причем вроде как говорится, что эти конструкции подходят не только для симуляции, но и для синтеза. Для меня это пока странно, т.к. во многих учебниках по Verilog указано, что initial — это чисто симуляционная директива, типо тестбенчи писать. НО если уж все реально синтезится, то интересно еще и понимать как это реализовано физически. Что, создается таблица ROM и из нее уже данные читаются?

2) снова инициализация, но уже триггеров.
такой код тоже немножко удивил, ведь не привык, что он используется для синтеза. Типо reg myreg = 1'b1. И утверждается, что его значение при инициализации будет 1, а не 0, как по умолчанию на Альтеровских девайсах. Недопонял вот что — единицей будет инициализироваться всегда — и при power-on, и при синхронном или асинхронном сбросе. Все верно?

Вопрос: Машина состояний на VHDL с Generic параметром

Отмазка: проходим в институте VHDL(а именно его применение для плис в Quartus II), тема «умножение\деление N разрядных»

есть вот такая радость, например:
STATE: PROCESS (CLK, RST)
BEGIN
	IF RST = '1' THEN
		ST<=FINISH;
	ELSIF CLK = '1' AND CLK'EVENT THEN
	CASE ST IS
	WHEN S1 => ST<= S2;
	WHEN S2 => ST<= S3; 


Читать дальше
  • 0
  • 05 ноября 2011, 17:01
  • NCCat

Интеграция IDE Code::Blocks с программным комплексом Altera Quartus II. Часть III.

5. Приближение четвёртое. Сливаемся с местностью.
Главное правило любого диверсанта — необходимо замаскировать результаты своего творчества так, как будто так всё и было. Наша цель — сделать видимость среды, изначально проектировавшейся для разработки на HDL. Что бы убрать всё, что нас выдаёт надо прикрутить честные действия по Build и Run (написать модуль типа Compiller), автодополнение кода для интересующих нас языков (перегрузить модуль CodeCopletion), прикрутить деббагер, симулятор, RTL-вьювер… Да много чего нужно, но мы это делать сейчас не будем — очень много работы придётся сделать, а для некоторых вещей даже потребуется править исходники самого C::B. Вместо этого мы сделаем пару небольших, но полезных хаков.


Читать дальше

Интеграция IDE Code::Blocks с программным комплексом Altera Quartus II. Часть II.

4. Приближение третье. Ставим на поток.
Теперь у нас есть, простите за тавтологию, файл проекта среды C::B для нашего проекта. В принципе, из него мы можем довольно просто делать файлы для всех последующих проектов, но это требует некоторых лишних телодвижений — копировать, редактировать, переименовывать… А ещё ведь проект для квартуса новый создавать надо… В общем, лениво как-то этим заниматься, перевалим и это на плечи IDE.
Когда мы в C::B создаём новый проект через соответствующее меню, появляется диалог, предлагающий выбрать какого типа проект мы хотим создать. Далее появляется визард, который запрашивает параметры создаваемого проекта и создаёт новые файлы. Вот такой визард мы и свояем.


Читать дальше

Интеграция IDE Code::Blocks с программным комплексом Altera Quartus II. Часть I.

Наша недавняя дискуссия с vga на тему сред разработки [1] оказалась не такой уж бесполезной, как я думал сначала — она придала мне направляющий пинок в сторону повышения удобства разработки устройств на базе ПЛИС. Вообще-то я и раньше задумывался над тем, что это надо бы сделать, но никаких реальных шагов по выяснению, как именно это сделать я не предпринимал, а после той беседы я нашёл немного времени на то, что бы поковыряться в потрохах квартуса и сделать себе более менее удобное окружение. Собственно, об этом я и хочу поведать. Товарищ vga, правда, просил ещё написать о прикручивании иара и использовании AVR-симулятора/дебаггера, но я этим всем добром не пользуюсь, по-этому интереса к сему делу не имею (про второе, кстати, статьи где-то были, можно раскопать).
Logo
Внимание! В статье беспорядочно перемешаны кишки двух весьма мощных и замороченных систем. Слабонервным просьба под кат не ходить!


Читать дальше