Скачать Quartus Ii Altera

      Комментарии к записи Скачать Quartus Ii Altera отключены

Уважаемый гость, на данной странице Вам доступен материал по теме: Скачать Quartus Ii Altera. Скачивание возможно на компьютер и телефон через торрент, а также сервер загрузок по ссылке ниже. Рекомендуем также другие статьи из категории «Шаблоны».

Скачать Quartus Ii Altera.rar
Закачек 2015
Средняя скорость 8485 Kb/s

Скачать Quartus Ii Altera

Open Source Hardware Project

Компания Altera (с 2016 года — подразделение Intel) является производителем микросхем FPGA и CPLD. Она так же разработала среду программирования для своих микросхем Altera Quartus II. Эта программа САПР позволяет проектировать логику работы микросхем схемотехнически и на языках программирования AHDL, VHDL, Verilog и других. Среда программирования Altera Quartus II так же позволяет производить симуляцию проектов, программировать микросхемы и многое другое.

Альтера на протяжении многих лет совершенствовала среду Quartus II и в настоящее время, то есть последняя версия этой программы, теперь называется Altera Quartus Prime.

Существуют бесплатные, но вполне функциональные версии САПР Quartus II Web Edition или последняя Quartus Prime Lite. Есть и платные подписки. Однако, даже для профессиональной работы зачастую хватает бесплатных версий квартуса.

Несомненно отличия между Quartus II и Quartus Prime есть. В первую очередь нужно обратить внимание, что для разных серий ПЛИС может потребоваться разная САПР. Ниже представлена таблицы, которая показывает, какие серии ПЛИС мы используем в своих платах серий Марсоход, Марсоход2 и Марсоход3 и какие САПР следует выбирать.

Manage Your Profile

Self Service Licensing Center

Download Center

Get the complete suite of Intel® design tools

Software Selector

Quartus Software

Devices

Three Intel® Quartus® Prime Software Editions to Meet Your System Design Requirements

Pro Edition 1,2,3

Standard Edition 1,2

Lite Edition 1,4

Paid license required

The Intel® Quartus® Prime Pro Edition software supports the advanced features in Intel’s next-generation FPGAs and SoCs with the Intel Stratix® 10, Intel Arria® 10, and Intel Cyclone® 10 GX device families.

Paid license required

The Intel Quartus Prime Standard Edition software includes extensive support for earlier device families in addition to the Intel Cyclone 10 LP device family.

FREE, no license required

The Intel Quartus Prime Lite Edition software supports Intel’s low-cost FPGA device families.

Open Source Hardware Project

В микросхемах Altera SoC FPGA (Cyclone V SoC, Arria V SoC, Arria 10 SoC) Nios II может быть использован как сопроцессор, выполняющий какие-то определенные функции (управление моторами, зарядом аккумуляторов, тачскрином и т.п) для того, чтобы разгрузить основное вычислительное ядро. Синтезируемый процессор Nios II в отличие от любого другого синтезируемого процессора замечателен тем, что он разработан фирмой Altera для ПЛИС фирмы Altera, соответственно позволяет получить наилучшее соотношение производительность/аппаратные затраты при реализации на Alter-овских ПЛИСах. Для связи процессора Nios II c остальными компонентами системы-на-кристалле Altera разработала собственную шину Avalon. Процесс создания системы осуществляется в среде системной интеграции Qsys.

Кроме различных конфигураций процессора, мы также располагаем большими возможностями в отладке:

Сразу видим блок типа Clock Source под названием clk_0, он транслирует внешний тактовый сигнал на блоки проектируемой системы, обеспечивая необходимый коэффициент ветвления (fanout) тактового сигнала. Также он транслирует внешний сигнал сброса. Под названием блока перечислены названия сигналов, под типом блока – их назначение. В графе Export отображается, выводится ли данный сигнал наружу и если да, то как он будет называться. В нашем случае наружу выводится вход тактовой частоты под именем clk и вход сброса под именем reset. В левом фрейме находятся разбитые по категориям IP-блоки, которые можно добавить в систему. Также можно создать свой блок (New Component) на основе HDL описания. Не все IP-блоки доступны для нашей ПЛИС, например, блок Hard Processor System мы можем использовать только в Cyclone V SoC и Arria V SoC. Для проекта нам понадобятся:

  1. процессор Nios II (Embedded Processors ? Nios II Processor);
  2. память, из которой будет исполняться программа; для этих целей вполне подойдет встроенная память ПЛИС (Memories and Memory Controllers ? On-Chip ? On-Chip Memory (RAM or ROM);
  3. блок параллельного ввода/вывода (PIO) для управления светодиодами (Peripherals ? Microcontroller Peripherals ? PIO (Parallel I/O).

Создадим процессор Nios II:

Создадим память команд и данных для нашего процессора:

Займемся объединением компонентов, попутно устраняя кучу появившихся ошибок и предупреждений. Сперва подключим тактовый сигнал и сигнал сброса, порождаемые блоком clk_0, ко всем потребителям. Процесс объединения интуитивно понятен: нажимая на пустые кружочки подключаем тот или иной сигнал к тому или иному потребителю. Как я уже говорил, компоненты системы объединяются альтеровской шиной Avalon. Процессор на этой шине является ведущим (master), а память и блок PIO – ведомыми (slave). Процессор имеет отдельный интерфейс для команд (instruction_master), отдельный для данных (data_master). Объединим устройства шиной Avalon, также нажимая на кружочки: память onchip_memory2_0 подключим к обоим интерфейсам процессора, так как она является памятью и команд, и данных, а блок pio_0 к data_master. Кроме двух перечисленных Avalon-интерфейсов, процессор имеет третий интерфейс — custom_instruction_master — он предназначен для выполнения пользовательских аппаратно-ускоренных команд. Такая возможность – интересная и полезная особенность процессора Nios II. Теперь необходимо указать процессору, откуда ему выбирать команды, – вернемся в настройки процессора и смэппируем векторы сброса, исключения и останова (во вкладке JTAG Debug Module) в память on_chip_memory2_0. Теперь осталось устранить конфликты в адресном пространстве (System ? Assign Base Addresses), а также вывести наружу выходы PIO, нажмем в графе Export напротив external_connection, назовем их «leds».

Получившаяся система имеет следующий вид:

#include «system.h»
#include «altera_avalon_pio_regs.h»

int main ()
<
char leds = 0x1;
int i = 0;
while (1)
<
IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, leds);
for (i=0; i >3) & 0x1);
>
return 0;
>

Будем выводить на светодиоды счетчик Джонсона, мне нравится код Джонсона, он имеет большое значение в информатике и схемотехнике и на светодиодах выглядит красиво: четырехразрядное слово заполняется сначала единицами, затем нулями и т.д. Создавая систему, мы не добавили в нее таймеров, но для мигания светодиодами они и не нужны. Используем программную задержку, реализованную циклом for. Величина задержки получена эмпирически и зависит, в первую очередь, от тактовой частоты системы (ALT_CPU_CPU_FREQ). Макроопределение PIO_0_BASE соответствует базовому адресу блока PIO, запись по нему приводит к записи в порт. В файле system.h содержится основная информация о процессоре и периферийных блоках, в том числе определены ALT_CPU_CPU_FREQ и PIO_0_BASE. Файл altera_avalon_pio_regs.h является библиотечным файлом для работы с периферийным блоком параллельного ввода/вывода.

Скомпилировав проект, получим следующий отчет:

Как видно из отчета, наша Nios-система в минимальной конфигурации заняла всего 708 логических элементов. Памяти задействовано 66 Кбит: 64 Кбит – память программ и 2 Кбит под нужды процессора. Также получаем довольно странное предупреждение:

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

При этом мы видим, что адрес в каждой следующей строке, больше, чем в предыдущей на 8, т.е. в каждой строке 8 32-разрядных слов (32 байта). Такое количество слов данных задано по умолчанию в утилите elf2hex. Компилятору Quartus II нужно, чтобы в каждой строчке было одно 32-разрядное слово, и адрес в каждой следующей строчке был больше, чем в предыдущей на 1. Когда мы генерируем .hex-файл, Nios II SBT запускает make-файл mem_init.mk, который в свою очередь запускает необходимую утилиту с нужными аргументами, в нашем случае это elf2hex. Для того, чтобы получить .hex-файл в подходящем квартусу формате, нам необходимо добавить аргумент командной строки «—record=4», означающий, что в одной строке 4 байта данных. По умолчанию он имеет значение 0x20, т.е. 32 байта. Найдем строчку, описывающую дополнительные аргументы командной строки для утилиты elf2hex:

И допишем туда необходимый аргумент:

Посмотрим, насколько сократился объем исполнимого кода теперь, после отключения этих трех опций.
Info: (hello_nios.elf) 696 Bytes program size (code + initialized data).
Info: 7496 Bytes free for stack + heap.

Как видим, существенно сократился – более чем в 6 раз. Сумма размера программы и оставшегося свободного пространства нам дает 8192, т.е. больше не используется никаких зарезервированных областей памяти, и 696 байт – это реальный объем используемой памяти. Наибольший вклад в использование памяти вносит опция «enable_exit», так что если в ней нет необходимости, рекомендую ее отключать. Постараемся еще уменьшить размер программы и поместить ее в 512 байт. Опции «enable_lightweight_device_driver_api», «enable_reduced_device_drivers», «enable_small_c_library» в общем случае могут сократить объем исполнимого кода, но не в нашем, так как наш примитивный проект сам по себе не использует библиотеки, размер которых позволяют сократить эти опции. Опция «enable_sopc_sysid_check» в нашем случае неактуальна, так как мы не добавляли в аппаратную систему блок System ID, присваивающий уникальный идентификатор системе. Этот идентификатор может проверяться софтом, для защиты от подделки или каких-либо других целей.

Теперь наш код помещается в 512 байт. Однако оптимизацию, как известно, следует использовать с большой осторожностью. Например, попытка оптимизации самого проекта ни к чему хорошему не приведет: компилятор уберет за ненадобностью цикл for, который формирует нам задержку, и все светодиоды будут гореть постоянно. В нашем случае оптимизация BSP позволила сократить объем исполнимого кода и не повлияла на работоспособность программы. Теперь можно установить размер памяти равным 512 байт, пересобрать проект и сконфигурировать ПЛИС. В итоге, имеем законченный работоспособный проект, требующий минимум ресурсов.


Статьи по теме