|
NIOS для начинающих |
|
|
|
 |
Ответов
(330 - 344)
|
Dec 13 2011, 05:43
|
Знающий
   
Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939

|
Пытаюсь оживить на своей плате CIII SDRAM (MT48LC32M16A2P-75). Собрал систему:
все вектора установил на on_chip_mem. Далее завожу Eclipce пишу прогу: Код #include "sys/alt_stdio.h" #include "system.h" #include "io.h" #include "alt_types.h"
int main() { alt_putstr("Hello from Nios II!\n");
volatile alt_u16 a[1024]; alt_u16 i; /* Event loop never exits. */
for (i=0;i<=1023;i++) {
IOWR_16DIRECT(SDRAM_0_BASE, i, i);
}; while (1) { for (i=0;i<=1023;i++) {
a[i]=IORD_16DIRECT(SDRAM_0_BASE, i);
};
};
return 0; } В итоге имеем:
Может кто подскажет в чем дело? Если указать вектора на SDRAM, то есно Ниос не стартует  Ну и собственно констрейны: Код set_time_format -unit ns -decimal_places 3
derive_clock_uncertainty
#************************************************************** # Create Clock #**************************************************************
create_clock -name {clk_0} -period 20 -waveform { 0.000 10 } [get_ports {clk_0}] derive_pll_clocks -create_base_clocks
|
|
|
|
|
Dec 13 2011, 10:02
|
Знающий
   
Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939

|
Цитата(Stewart Little @ Dec 13 2011, 11:57)  Что-то я не понял... Вы On-Chip RAM тактируете от PLL, а SDRAM от внешнего генератора? УПС  не заметил. Сейчас попробую второй чип припаять и попробовать 32х.р. вариант. UPD: А Fast input/output registers обязательно использовать нужно? Пока так на 100 МГц работает.
|
|
|
|
|
Dec 16 2011, 05:46
|
Знающий
   
Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939

|
Заработал у меня СДРАМ. Ниос грузился, читалось, писалось, но потом все блин сломалось  Сейчас ситуация такая: Пока работаю из он-чип памяти. Пишу, читаю как в предыдущем посте и вот что получается:
Причем если делаю запись по адресу, а потом сразу чтение из данного адреса, то данные правильные. вот настройки
|
|
|
|
|
Dec 19 2011, 05:31
|
Знающий
   
Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939

|
Сейчас вроде опять все работает. Но возникли некоторые вопросы. 1. Как активировать Burst режим памяти? Сейчас работа идет одиночными транзакциями (Ниос без кеша данных)
2. Когда рисовал схему завел DQML, DQMH параллельно на обе микросхемы (16х) можно ли будет при таком раскладе сделать 32х вариант?
|
|
|
|
|
Dec 19 2011, 06:33
|
Знающий
   
Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939

|
Спасибо за ответы! Но поставил кеш, поэкспериментировал с размерами, галочками берст, но так и не удалось увидеть в СигналТапе данного явления
И еще.. в режиме дебага (все выполняется из СДРАМ). шагаю по программе. Код #include <stdio.h> #define len 8000000 int main() { volatile unsigned int a [len+1]; volatile unsigned int c [len+1]; volatile unsigned int i;
int n_err=0; int b=0;
printf("Start SDRAM TEST\n"); printf("Write\n"); for (i=0;i<len;i++) { a[i]=i; c[i]=0;
} Стоит зайти в цикл for так каждый шаг занимает по 5 секунд (из он чип нормально шагает, правда и буфер намного меньше). Если прыгать по брейкпойнтам то все тоже нормально. С чем это может быть связанно?
|
|
|
|
|
Dec 19 2011, 06:42
|

Гуру
     
Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988

|
Цитата(gosu-art @ Dec 19 2011, 13:33)  Но поставил кеш, поэкспериментировал с размерами, галочками берст, но так и не удалось увидеть в СигналТапе донного явления  это зависит от версии квартуса, одно время поддержки burst в sdr sdram не было. я сам только в ddr его видел. в спецификациях на текущую версию burst есть Цитата Стоит зайти в цикл for так каждый шаг занимает по 5 секунд (из он чип нормально шагает, правда и буфер намного меньше). Если прыгать по брейкпойнтам то все тоже нормально. С чем это может быть связанно? да, замечал, м.б. не 5 сек, но лагает. списал на тормознутость усб-бластера под линуксом
|
|
|
|
|
Dec 20 2011, 07:48
|

Участник

Группа: Свой
Сообщений: 60
Регистрация: 1-04-10
Из: СПб
Пользователь №: 56 354

|
Решил дописать стабильно работающий проект и впоролся в такую ошибку при отладке Код .gdbinit: No such file or directory. Reading symbols from E:/name.elf...done. info threads * 1 Thread <main> _start () at HAL/src/crt0.S:237 с чем это может быть связано? в режиме Run проект работает. Иногда запускается и дебаг но ооочень редко... Форум альтеры помог найти только собратьев по несчастью... ОС 7 (к сожалению)
|
|
|
|
|
Feb 9 2012, 13:48
|

Частый гость
 
Группа: Свой
Сообщений: 146
Регистрация: 11-08-08
Из: Kolpino
Пользователь №: 39 551

|
Цитата(Full41 @ Feb 9 2012, 17:41)  Здравствуйте коллеги, подскажите что за ошибка? Ошибка сборки BSP. Попробуйте регенерировать заново.
--------------------
|
|
|
|
|
Feb 9 2012, 14:09
|

Частый гость
 
Группа: Свой
Сообщений: 146
Регистрация: 11-08-08
Из: Kolpino
Пользователь №: 39 551

|
Цитата(Full41 @ Feb 9 2012, 17:49)  Пытался несколько раз генерировать, переставлял все с нуля, не чего не помогает. Пришлите сообщения из консоли.
--------------------
|
|
|
|
|
  |
6 чел. читают эту тему (гостей: 6, скрытых пользователей: 0)
Пользователей: 0
|
|
|