|
загрузка NIOS при включении питания, загрузка NIOS из EPCS, SDRAM - для хранения инструкций |
|
|
|
Feb 20 2013, 18:13
|
Группа: Участник
Сообщений: 11
Регистрация: 19-02-13
Пользователь №: 75 680

|
Здравствуйте!
На плате установлены: 1. EP3C40Q240-C8 2. SDRAM MT48LC4M32B2 3. EPCS M25P54 в количестве двух штук, одна из которых подключена к конфигурационным ногам ПЛИС, вторая - к regulag I/O (соответствует EPCS контроллеру в qsys)
В qsys добавлено следующее:
1. on-chip memory 2. nios 2 processor 3. sysid 4. JTAG UART 5. EPCS flash controller 6. PIO 7. SDRAM controller (для MT48LC4M32B2 есть установка по умолчанию)
Вектор сброса процессора установлен на базовый адрес EPCS flash controller Вектор обработчика исключений - на on-chip memory В Eclips создан проект, зажигающий светодиод на плате
Задача: использовать SDAM для хранения инструкций и данных
Для этого в BSP Editor во вкладке Linker области .text, .rodata, .rwdata, .heap, .stack, .bss указаны на SDRAM; .entry и .exeptions - на EPCS и on-chip соответственно.
.elf-файл с программной частью зашивается в EPCS при помощи NIOS 2 Flash Programmer. .jic-файл с аппаратной частью зашивается при помощи стандартного Quartus Programmer.
После передергивания питания NIOS не подает признаков жизни.
Если же в BSP Editor во вкладке Linker области .text, .rodata, .rwdata, .heap, .stack, .bss указать на on-chip, после передергивания питания NIOS оживает....
Если у кого есть предположения, в чем проблема, с радостью выслушаю, заранее спасибо!
Да, забыл сказать, что система нормально работает под отладкой в Eclipse, когда все области в BSP Editor указаны в SDRAM
|
|
|
|
|
 |
Ответов
|
Feb 22 2013, 06:36
|
Группа: Участник
Сообщений: 11
Регистрация: 19-02-13
Пользователь №: 75 680

|
При сдвиге фаз в 90 градусов, соблюдения констрайтнов никак не удается достичь. Но при сдвиге -70 градусов, все соблюдается с приличным запасом, но процессор по-прежнему не стартует... Для того, чтобы хранить инструкции и данные в SDRAM не нужет какой-то особенный bootloader, может контроллер SDRAM просто не проинициализирован к моменту запуска bootloader-а? Дело в том, что в отладке я можгу писать/читать в/из SDRAM, все работает корректно
Спасибо всем за ответы! Неужели стандартный загрузчик EPCS контроллера не может загружать в SDRAM?
Vadimuzz, я пробовал с помощью Flash programmer залить elf и sof в одну флешку, результат такой же...
|
|
|
|
|
Feb 23 2013, 03:15
|

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

|
Цитата(a.v.yastrebov @ Feb 22 2013, 13:36)  При сдвиге фаз в 90 градусов, соблюдения констрайтнов никак не удается достичь. значит констрейны кривые, т.к. частоты явно не запредельные. вот пример для K4S561632 (16-битная SDRAM), частота 75МГц, дорожки предполагаются выровненными CODE set main_clk u1|altpll_component|auto_generated|pll1|clk[0] set sdram_clk u1|altpll_component|auto_generated|pll1|clk[1] create_generated_clock -name sdram_clk_pin -source $sdram_clk set_clock_groups -exclusive -group [list $main_clk $sdram_clk sdram_clk_pin] #************************************************************** # sdram timings #************************************************************** set tAC 5.4 set tOH 3 set tCM_Hold 0.8 set tCM_Setup 1.5 set tD_Hold 0.8 set tD_Setup 1.5 set tA_Hold 0.8 set tA_Setup 1.5 set_input_delay -max -clock sdram_clk_pin $tAC [get_ports {sdram_dq[*]}] set_input_delay -min -clock sdram_clk_pin $tOH [get_ports {sdram_dq[*]}] set_output_delay -max -clock sdram_clk_pin $tD_Setup [get_ports {sdram_dq[*]}] set_output_delay -min -clock sdram_clk_pin $tD_Hold [get_ports {sdram_dq[*]}] set_output_delay -max -clock sdram_clk_pin $tCM_Setup [get_ports {sdram_cas_n sdram_ras_n sdram_we_n sdram_cs_n sdram_cke sdram_dqm[*]}] set_output_delay -min -clock sdram_clk_pin $tCM_Hold [get_ports {sdram_cas_n sdram_ras_n sdram_we_n sdram_cs_n sdram_cke sdram_dqm[*]}] set_output_delay -max -clock sdram_clk_pin $tA_Setup [get_ports {sdram_addr[*] sdram_ba[*]}] set_output_delay -min -clock sdram_clk_pin $tA_Hold [get_ports {sdram_addr[*] sdram_ba[*]}] #************************************************************** # Set Multicycle Path #************************************************************** set_multicycle_path -from [get_clocks {sdram_clk_pin}] -to [get_clocks $main_clk] -setup -end 2 set_multicycle_path -from [get_clocks {sdram_clk_pin}] -to [get_clocks $main_clk] -hold -end 0
обратите внимание на 2 последние строки. Цитата Неужели стандартный загрузчик EPCS контроллера не может загружать в SDRAM? может. но загрузчик можно и свой поставить. смысла в этом в вашем случае я не вижу: ПЛИС конфигурируется, значит как минимум 1 интерфейс в цепочке загрузчика рабочий, разбираемся со вторым (sdram).
|
|
|
|
|
Feb 24 2013, 17:35
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Недавно имел похожую ситуацию http://electronix.ru/forum/index.php?showtopic=109862 Все работало нормально в SDRAM из отладчика. Но после прошивки EPCS (после включения питания) не работал .elf. Все нормально заработало в SDRAM только при прошивке EPCS из flash программера, но не вовсех случаях (не работало при переходе на оптимизированный вариант Release). Поэтому думаю полезно прислушаться к советам vadimuzzz по поводу констрейнов для sdram (это помимо сдвига фазы который должен быть обязательно в соответствии с документацией по подключению в систему SDRAM). Сам пока не выставлял констрейны sdram, но наверняка придется...
|
|
|
|
Сообщений в этой теме
a.v.yastrebov загрузка NIOS при включении питания Feb 20 2013, 18:13 vadimuzzz проблема в констрйенах клоков и/или I/O на SDRAM. ... Feb 21 2013, 05:47 a.v.yastrebov PLL из входного клока 16,9344 МГц делает 2, умножа... Feb 21 2013, 06:45 vadimuzzz Цитата(a.v.yastrebov @ Feb 21 2013, 13:45... Feb 21 2013, 06:48 Konst_777 Цитата(a.v.yastrebov @ Feb 20 2013, 22:13... Feb 21 2013, 19:10 Apast Я с Altera и с NIOS не работал, но есть достаточны... Feb 22 2013, 01:44 vadimuzzz Я как-то упустил, что программа работает в отладчи... Feb 22 2013, 03:20 gosu-art Я выкрутился так http://electronix.ru/forum/index.... Feb 22 2013, 04:56 wpost Цитата(a.v.yastrebov @ Feb 22 2013, 10:36... Feb 22 2013, 13:27 alexadmin У меня когда-то была ситуация, что загрузчик не мо... Feb 22 2013, 14:34 a.v.yastrebov Проверил сигналы на SDRAM при помощи осциллографа,... Feb 25 2013, 03:23 vadimuzzz Цитата(a.v.yastrebov @ Feb 25 2013, 10:23... Feb 25 2013, 07:15  a.v.yastrebov Цитата(vadimuzzz @ Feb 25 2013, 10:15) па... Feb 25 2013, 10:07   vadimuzzz Цитата(a.v.yastrebov @ Feb 25 2013, 17:07... Feb 25 2013, 11:28    Konst_777 Цитата(vadimuzzz @ Feb 25 2013, 14:28) у ... Feb 25 2013, 18:49 a.v.yastrebov ниче не понимаю...((( а в каком квартусе Вы собира... Feb 26 2013, 06:36 vadimuzzz прямо сейчас - в 11-м, а вообще системы с ниосом с... Feb 26 2013, 06:46 a.v.yastrebov у меня тоже 11.0 установлен. Но я пробовал в 9.1 s... Feb 26 2013, 07:01 vadimuzzz Цитата(a.v.yastrebov @ Feb 26 2013, 14:01... Feb 26 2013, 07:55 a.v.yastrebov А клок не SDRAM у Вас, говорите, на 90 градусов оп... Feb 26 2013, 08:06 vadimuzzz Цитата(a.v.yastrebov @ Feb 26 2013, 15:06... Feb 26 2013, 08:44 a.v.yastrebov что-то у меня никак не выходит... не могли бы Вы с... Feb 27 2013, 07:45 Konst_777 Цитата(a.v.yastrebov @ Feb 27 2013, 10:45... Feb 27 2013, 11:31 a.v.yastrebov Спасибо, буду ковырять. У меня получилось загрузит... Feb 27 2013, 14:06 vadimuzzz еще один проект, на всякий случай Feb 28 2013, 06:08
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|