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

 
 
43 страниц V  « < 10 11 12 13 14 > »   
Reply to this topicStart new topic
> NIOS для начинающих
juvf
сообщение Feb 15 2011, 10:02
Сообщение #166


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(vadimuzzz @ Feb 15 2011, 14:44) *
после того как сделаете их Regular I/O, назначайте в пин-планнере. для циклона-3 они автоматом не назначаются

тааак..... понятно.... спасибо ......
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Feb 15 2011, 10:11
Сообщение #167


Гуру
******

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



как соберете проект и зальете sof, в консоли наберите nios2-flash-programmer --epcs --debug --base=адрес_контроллера. должна появиться инфа типа:
Цитата
Using cable "USB-Blaster [USB 7-1.2]", device 1, instance 0x00
Resetting and pausing target processor: OK
Processor data bus width is 32 bits
Looking for EPCS registers at address 0x04001800 (with 32bit alignment)
Initial values: 0001703A 04C00074 9801483A 9CFFF804 983FFD1E 0000203A
Not here: reserved fields are non-zero
Looking for EPCS registers at address 0x04001900 (with 32bit alignment)
Initial values: 92400237 4A40100C 483FFD26 90000135 92400237 4A40200C
Not here: reserved fields are non-zero
Looking for EPCS registers at address 0x04001A00 (with 32bit alignment)
Initial values: 108001C4 1004D0FA 002EE03A 003F9C06 002EE03A 003F9506
Not here: reserved fields are non-zero
Looking for EPCS registers at address 0x04001B00 (with 32bit alignment)
Initial values: 00000000 00000000 00000000 00000000 00000000 00000000
Not here: SPI_SLAVE_SEL has 0 valid bits (should be between 1 and 16)
Looking for EPCS registers at address 0x04001C00 (with 32bit alignment)
Initial values: 00000000 00000000 00000260 00000000 00000000 00000001
Valid registers found
EPCS signature is 0x17
EPCS identifier is 0x012018
Go to the top of the page
 
+Quote Post
juvf
сообщение Feb 15 2011, 11:48
Сообщение #168


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



что-то подобное получилось, см рисунок. Но теперь ельф не грузится. Вообще я заметил, что загрузка кода для дебага в ниос зависит от расположения звезд. Похоже сейчас солнце в казероге, дебаг не грузится. Помогите разобраться.

Собрал в квартусе схему с ниосом. Вектор ресета на epcs контроллер. Скомпелял. теперь в эклипсе есть рабочий проект. заного сгенерировал BSP. Собрал проект. Вызвал Quartus Programmer и залил *.sof через JTAG в ПЛИС. Аппаратная часть стартовала и заработала в соответствии с разработкой в квартусе. ПКМ по проекту... Debug AS...->Debug Configuration... На вкладке Project нужный проект и нужный elf. На вкладке Target Connection нужный USB-Blaster. Жму кнопку Debug ..... Побежали цыфры с %%..... ошибка!!!

'Launching nameProject NIOS II Hardware Configuration' has encounted problem. Downloading ELF Process Failed.

смотрю лог

Failed Executing: [nios2-download, '--cable=USB-Blaster on localhost [USB-1]', --device=1, --instance=1, --sidp=0x1004158, --id=0x0, --timestamp=1297768557, /cygdrive/d/Work/Quartus/TestBench/software/frontEndOS/frontEndOS.elf] return code: 4, 'other error'
An exception stack trace is not available.

Что за ошибка? Иногда бывает бьюсь пол дня. на утро включаю - все работает. А иногда помогает пересборка без изменений ниоса, пересборка sof, пересборка BSP и программы для ниоса. Как это побороть?


Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
alexPec
сообщение Feb 15 2011, 13:33
Сообщение #169


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Тактовые проверьте, законстрейнены ли.
От звезд у меня зависело когда тактовый клок не законстрейнен был. Соберешь-работает, чуть поменял - уже не работает.
И тактовая то какая? Не 120 МГц надеюсь? У меня с -8 кристаллом стабильно система всегда работает только на 80 МГц
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Feb 15 2011, 14:20
Сообщение #170


Гуру
******

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



Цитата(juvf @ Feb 15 2011, 17:48) *
что-то подобное получилось, см рисунок.

все нормально, можно шить. насчет констрейнов - поищите по форуму, я вроде выкладывал. завтра еще раз выложу

вот по минимуму:
Код
# Clock constraints
create_clock -name {altera_reserved_tck} -period 100.000 -waveform { 0.000 50.000 } [get_ports {altera_reserved_tck}]
create_clock -name "sys_clk" -period 20ns [get_ports {osc_clk}] -waveform {0.000ns 10.000ns}
# Automatically constrain PLL and other generated clocks
derive_pll_clocks -create_base_clocks
# Automatically calculate clock uncertainty to jitter and other effects.
derive_clock_uncertainty
set_clock_groups -exclusive -group {altera_reserved_tck}

osc_clk замените на свое название. этого достаточно, чтобы завести проект с on-chip. если будет внешняя память, типа DDR, то нужно обязательно констрейнить и ее.
Go to the top of the page
 
+Quote Post
juvf
сообщение Feb 16 2011, 04:34
Сообщение #171


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



частота 50 МГц. констрейн настроил. Непомогло. с утра уже час как рыба на льду.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Feb 16 2011, 04:39
Сообщение #172


Гуру
******

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



Цитата(juvf @ Feb 16 2011, 10:34) *
частота 50 МГц. констрейн настроил. Непомогло. с утра уже час как рыба на льду.

в отчете квартуса (и таймквеста) все нормально? Critical warnings нет?
Go to the top of the page
 
+Quote Post
juvf
сообщение Feb 16 2011, 06:15
Сообщение #173


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(vadimuzzz @ Feb 16 2011, 09:39) *
в отчете квартуса (и таймквеста) все нормально? Critical warnings нет?
критикал ворнингов нет. тока почему то в отчете один пукт красный, Unconstrained Paths. см рис.


Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Feb 16 2011, 06:44
Сообщение #174


Гуру
******

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



это он про I/O ругается, если внешнее ОЗУ не задействовано, можно забить. покажите конфиг системы (можно скрин из SOPC-билдера)
Go to the top of the page
 
+Quote Post
juvf
сообщение Feb 16 2011, 06:50
Сообщение #175


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата
покажите конфиг системы (можно скрин из SOPC-билдера)

как конфиг показать не знаю. а скрин - пожалуста

В sopc билдере 2 варнинга. тоже не понятные.

Сообщение отредактировал juvf - Feb 16 2011, 06:53
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Feb 16 2011, 07:03
Сообщение #176


Гуру
******

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



а линкера настройки какие? там в sdram ничего не пишется? если sdram задействована без констрейнов не обойтись
Go to the top of the page
 
+Quote Post
juvf
сообщение Feb 16 2011, 07:09
Сообщение #177


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(vadimuzzz @ Feb 16 2011, 12:03) *
а линкера настройки какие? там в sdram ничего не пишется? если sdram задействована без констрейнов не обойтись

Ну я сам в проекте ни мапил память. ни каких секций не назначал. все по умолчанию. вот вывод линкера
Код
Info: Linking frontEndOS.elf
nios2-elf-g++  -T'../frontEndOS_bsp/linker.x' -msys-crt0='../frontEndOS_bsp/obj/HAL/src/crt0.o' -msys-lib=ucosii_bsp -L../frontEndOS_bsp   -Wl,-Map=frontEndOS.map   -O0 -g -Wall   -EL -mno-hw-div -mhw-mul -mno-hw-mulx  -o frontEndOS.elf obj/Buffer.o obj/KeeperDevices.o obj/Spi.o obj/devices/Device.o obj/devices/FM25CL64.o obj/devices/Register.o obj/devices/deviceInfo.o obj/init.o obj/main.o obj/timer.o obj/uart.o -lm
nios2-elf-insert frontEndOS.elf --thread_model ucosii --cpu_name cpu_0 --simulation_enabled false --id 0 --sidp 0x1004158 --timestamp 1297768557 --stderr_dev uart_0 --stdin_dev uart_0 --stdout_dev terminal --sopc_system_name cpuNew --quartus_project_dir "D:/Work/Quartus/TestBench" --jdi D:/Work/Quartus/TestBench/software/frontEndOS_bsp/../../topLevel.jdi
Info: (frontEndOS.elf) 211 KBytes program size (code + initialized data).
Info:                  7973 KBytes free for stack + heap.
Info: Creating frontEndOS.objdump
nios2-elf-objdump --disassemble --syms --all-header --source frontEndOS.elf >frontEndOS.objdump
[frontEndOS build complete]
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Feb 16 2011, 07:34
Сообщение #178


Гуру
******

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



Цитата(juvf @ Feb 16 2011, 13:09) *
Info: (frontEndOS.elf) 211 KBytes program size (code + initialized data).
Info: 7973 KBytes free for stack + heap.

к гадалке не ходи, это все в sdram только влезет. без констрейнов не взлетит. какой чип памяти?
Go to the top of the page
 
+Quote Post
juvf
сообщение Feb 16 2011, 07:52
Сообщение #179


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(vadimuzzz @ Feb 16 2011, 12:34) *
к гадалке не ходи, это все в sdram только влезет. без констрейнов не взлетит. какой чип памяти?

ступил, действительно 8Мб - это сдрам. чип - Zentel A3V64S40ETP pdf в инклуде
Прикрепленные файлы
Прикрепленный файл  A3V64S40ETP_v1.2_Zentel.pdf ( 668.98 килобайт ) Кол-во скачиваний: 2759
 
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Feb 16 2011, 08:26
Сообщение #180


Гуру
******

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



Вот пример для похожего чипа (Micron, 32MB). Подправьте тайминги, в т.ч. и в настройках контроллера в билдере.
CODE

#**************************************************************
# sdram clocks (from PLL)
#**************************************************************
set main_clk pll1_inst|altpll_component|auto_generated|pll1|clk[0]
set sdram_clk pll1_inst|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
#**************************************************************
# Board Timings
set CLK_BD_MAX 0.1
set CLK_BD_MIN - 0.1
set DATA_BD_MAX 0.1
set DATA_BD_MIN - 0.1
#**************************************************************
#**************************************************************
# Set Input Delay
#**************************************************************
set_input_delay -max -clock sdram_clk_pin [expr $CLK_BD_MAX + $tAC + $DATA_BD_MAX] [get_ports {sdram_dq[*]}]
set_input_delay -min -clock sdram_clk_pin [expr $CLK_BD_MIN + $tOH + $DATA_BD_MIN] [get_ports {sdram_dq[*]}]
#**************************************************************
# Set Output Delay
#**************************************************************
set_output_delay -max -clock sdram_clk_pin [expr $DATA_BD_MAX + $tD_Setup - $CLK_BD_MIN] [get_ports {sdram_dq[*]}]
set_output_delay -min -clock sdram_clk_pin [expr $DATA_BD_MIN + $tD_Hold - $CLK_BD_MAX] [get_ports {sdram_dq[*]}]
set_output_delay -max -clock sdram_clk_pin [expr $DATA_BD_MAX + $tCM_Setup - $CLK_BD_MIN] [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 [expr $DATA_BD_MIN + $tCM_Hold - $CLK_BD_MAX] [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 [expr $DATA_BD_MAX + $tA_Setup - $CLK_BD_MIN] [get_ports {sdram_addr[*] sdram_ba[*]}]
set_output_delay -min -clock sdram_clk_pin [expr $DATA_BD_MIN + $tA_Hold - $CLK_BD_MAX] [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

в примере анализ времянок идет без учета задержек распространения на плате, но на низких частотах это не влияет. собственно, работать должно и без констрейнов при одном условии: клок, который идет на чип памяти правильно сфазирован относительно клока контроллера. у вас в проекте я не увидел PLL, возможно, причина в этом. я делал так: с приведенными констрейнами собирал проект, при этом на PLL крутил фазу, чтобы попасть примерно в центр кострейнов. этого достаточно для стабильной работы. в проектах с DDR SOPC-билдер и квартус берут эту часть на себя, а тут приходится руками.
Go to the top of the page
 
+Quote Post

43 страниц V  « < 10 11 12 13 14 > » 
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:09
Рейтинг@Mail.ru


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