Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: вопрос новичка
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
bva_rzn
Доброго времени.

Плата DE1, Cyclone II. Среда Quartus 7 и Nios II IDE.

Собрал в SOPCBuilder контроллер по шагам, как написано в описании Altera.

В Nios II IDE собрал маленький проект.

Возникли проблемы в загрузке на плату. После компиляции выбираю Run As->Nios II Hardware. Компилятор выдаёт ошибку, что нет файла с расширением elf.

Подскажите, что это за файл.

Спасибо
Golikov A.
это как бы и есть ваш проект, с программой, контроллером и все дела....
Копейкин
1) QII версия 7 старовата уже wink.gif
2) Вы уверены, что в NIOS IDE компиляция проходит без ошибок?

По моему опыту QII ver 9.1
1) В квартусе компилируется проект и создаётся *.sof, который содержит железо.
2) *.sof заливается в отлаживаемую систему.
3) Копилируется программа для NIOS, создаётся *.elf, который содержит код программы.
4) Run As/Debug As-> NiosII Hardware заливает программу, в указанную при создании,
область памяти процессора и начинает выполнение.

!!! Если предварительно не будет залит sof,
запуск или отладка будут выдавать ошибку и откажутся выполняться.

А релиз готовится в зависимости от архитектуры системы...
bva_rzn
Разобрался, почему не создавался проект.

И ещё вопрос. У меня в устройстве 3 идентичных канала обработки данных. Можно ли в ПЛИС использовать несколько Nios-в?
Maverick
Цитата(bva_rzn @ Jul 12 2013, 23:06) *
Можно ли в ПЛИС использовать несколько Nios-в?

можно...
bva_rzn
Добрый день.

Вопрос по быстродействию Nios.
Собрал в SOPBulder контроллер. Nios II f.
Плата De1, на ней Cyclone II.

CLK 100 МГц, умножители аппаратные, аппартное деление.
В проекте есть необходимость решить СЛАУ размером 5 на 5.
Для этого взял метод изключения Гаусса. Все типы данных int. И здесь возник вопрос по поводу быстродействия.
Для оценки быстродействия добавил в SOPBuilder интервальный таймер. Оптимизация -O2.

#include "sys/alt_stdio.h"
#include "alt_types.h"
#include "system.h"
#include "altera_avalon_timer_regs.h"

int alt_timestamp_start(void)
{
IOWR_ALTERA_AVALON_TIMER_CONTROL (TIMER_0_BASE,ALTERA_AVALON_TIMER_CONTROL_STOP_MSK);
IOWR_ALTERA_AVALON_TIMER_PERIODL (TIMER_0_BASE,0xFFFF);
IOWR_ALTERA_AVALON_TIMER_PERIODH (TIMER_0_BASE,0xFFFF);
IOWR_ALTERA_AVALON_TIMER_CONTROL (TIMER_0_BASE,ALTERA_AVALON_TIMER_CONTROL_START_MSK);
return 0;
}

alt_u32 alt_timestamp(void)
{
volatile alt_u32 lower;
volatile alt_u32 upper;

IOWR_ALTERA_AVALON_TIMER_SNAPL (TIMER_0_BASE, 0);
lower = IORD_ALTERA_AVALON_TIMER_SNAPL(TIMER_0_BASE);
upper = IORD_ALTERA_AVALON_TIMER_SNAPH(TIMER_0_BASE);

return (0xFFFFFFFF - ((upper << 16) | lower));
}

int main()
{
volatile alt_u32 a;
volatile alt_u32 beg,end,res_timer;


beg = alt_timestamp();

Solve_G();

end = alt_timestamp();
res_timer = end - beg;


while (1){};
return 0;
}

Если я правльно понял функция alt_timestamp() возвращает текущее значение счётчика.
В отладчике res_timer имеет значение 25345. Получается, что система решается примерно за 250 мкс?
Можно ли повысить быстродействие Nios?



vadimuzzz
1. Метод Гаусса - отстой
2. хоть у вас данные и int, вычисления все равно идут в плавучке => нужен аппаратный FPU. причем родной альтеровский довольно убог
bva_rzn
Тогда риторический вопрос.
Что посоветуете: делать связку ПЛИС+ARM9, или сразу осваивать Cyclone V SoC с ARM на борту?
Maverick
Цитата(bva_rzn @ Jul 15 2013, 15:17) *
Тогда риторический вопрос.
Что посоветуете: делать связку ПЛИС+ARM9, или сразу осваивать Cyclone V SoC с ARM на борту?

почему?
Возможные выходы:
1. можно попробовать оптимизировть математику...
2. решить СЛАУ размером 5 на 5 - реализовав на логике, использовав главное достоинство ПЛИС возможность паралльно выполнять задачи...
3. для процессора сделать блок FPU
4 взять как Вы предлагаете "ПАРАВОЗ" в виде ПЛИС+ARM9, или Cyclone V SoC с ARM на борту

Все зависит от финансов, быстродействия и временем, которым Вы обладаете
bva_rzn
Можно поподробнее про п.2 и 3:
- смотрел, вроде есть статьи про реализацию QR разложения на ПЛИС, но дальше статей дело не пошло. Если сбросите ссылку - буду очень признателен;
- как для NIOS сделать блок FPU, ссылку не скинете?
Maverick
Цитата(bva_rzn @ Jul 15 2013, 15:51) *
Можно поподробнее про п.2 и 3:
- смотрел, вроде есть статьи про реализацию QR разложения на ПЛИС, но дальше статей дело не пошло. Если сбросите ссылку - буду очень признателен;

вначале решаете СЛАУ в символьном виде - получаете решение...
Потом продумываете какие операции можно решать параллельно, какие повторяются.
И не забывайте о точности вычислений...
Дальше описываете на xHDL.
Kuzmi4
2 bva_rzn
На счёт FPU - думаю стоит глянуть на родной, хоть он и не блещет идеальностью, но может вам сгодится. И как отправная точка (если не сгодится) не плохо будет.

Можно ещё вот с этим
Using Nios II Floating-Point Custom Instructions
Nios II Custom Instruction
ознакомиться
bva_rzn
У меня стоит Nios IDE 8.1 и Quartus 8.1 в мауалах написано, что в SOPBulder есть страница с FPU, но никак не могу её найти.
Можно ли подключить FPU через директивы компилятора в Nios II?

Имеется ввиду Nios IDE.

И ещё вопрос.
Nios в SOPBuilder собрался, после того, как подключил SDRAM, SRAM, FLASH. Когда подключал только On-chip memory, IDE писало, что
не хватает места.
Вопрос в том, как разместить переменные в on-chip memory?
До какой частоты можно разогнать Nios IIf?
DASM
Зачем Циклон 5 ? Zynq ZC 7020 здесь и сейчас sm.gif

Цитата(bva_rzn @ Jul 15 2013, 18:09) *
У меня стоит Nios IDE 8.1 и Quartus 8.1 в мауалах написано, что в SOPBulder есть страница с FPU, но никак не могу её найти.
Можно ли подключить FPU через директивы компилятора в Nios II?

Имеется ввиду Nios IDE.

И ещё вопрос.
Nios в SOPBuilder собрался, после того, как подключил SDRAM, SRAM, FLASH. Когда подключал только On-chip memory, IDE писало, что
не хватает места.
Вопрос в том, как разместить переменные в on-chip memory?
До какой частоты можно разогнать Nios IIf?

Сильно зависит от кол-ва шин и степени их коннективности. В реалии более 80 Мгц будет не устойчиво с парой-тройкой Авалон слейвов и СДРАМ
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.