реклама на сайте
подробности

 
 
> загрузка NIOS при включении питания, загрузка NIOS из EPCS, SDRAM - для хранения инструкций
a.v.yastrebov
сообщение Feb 20 2013, 18:13
Сообщение #1





Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
a.v.yastrebov
сообщение Feb 22 2013, 06:36
Сообщение #2





Группа: Участник
Сообщений: 11
Регистрация: 19-02-13
Пользователь №: 75 680



При сдвиге фаз в 90 градусов, соблюдения констрайтнов никак не удается достичь. Но при сдвиге -70 градусов, все соблюдается с приличным запасом, но процессор по-прежнему не стартует... Для того, чтобы хранить инструкции и данные в SDRAM не нужет какой-то особенный bootloader, может контроллер SDRAM просто не проинициализирован к моменту запуска bootloader-а? Дело в том, что в отладке я можгу писать/читать в/из SDRAM, все работает корректно

Спасибо всем за ответы! Неужели стандартный загрузчик EPCS контроллера не может загружать в SDRAM?

Vadimuzz, я пробовал с помощью Flash programmer залить elf и sof в одну флешку, результат такой же...
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Feb 23 2013, 03:15
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 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).
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Feb 24 2013, 17:35
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 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, но наверняка придется...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 01:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01412 секунд с 7
ELECTRONIX ©2004-2016