Перейти к содержанию
    

после того как сделаете их Regular I/O, назначайте в пин-планнере. для циклона-3 они автоматом не назначаются

тааак..... понятно.... спасибо ......

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

как соберете проект и зальете 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Собрал в квартусе схему с ниосом. Вектор ресета на 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 и программы для ниоса. Как это побороть?

 

post-49045-1297770484_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тактовые проверьте, законстрейнены ли.

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

И тактовая то какая? Не 120 МГц надеюсь? У меня с -8 кристаллом стабильно система всегда работает только на 80 МГц

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

что-то подобное получилось, см рисунок.

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

 

вот по минимуму:

# 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, то нужно обязательно констрейнить и ее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

частота 50 МГц. констрейн настроил. Непомогло. с утра уже час как рыба на льду.

в отчете квартуса (и таймквеста) все нормально? Critical warnings нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в отчете квартуса (и таймквеста) все нормально? Critical warnings нет?
критикал ворнингов нет. тока почему то в отчете один пукт красный, Unconstrained Paths. см рис.

 

post-49045-1297836839_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

это он про I/O ругается, если внешнее ОЗУ не задействовано, можно забить. покажите конфиг системы (можно скрин из SOPC-билдера)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

post-49045-1297839003_thumb.png

Изменено пользователем juvf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а линкера настройки какие? там в sdram ничего не пишется? если sdram задействована без констрейнов не обойтись

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а линкера настройки какие? там в 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]

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Info: (frontEndOS.elf) 211 KBytes program size (code + initialized data).

Info: 7973 KBytes free for stack + heap.

к гадалке не ходи, это все в sdram только влезет. без констрейнов не взлетит. какой чип памяти?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

к гадалке не ходи, это все в sdram только влезет. без констрейнов не взлетит. какой чип памяти?

ступил, действительно 8Мб - это сдрам. чип - Zentel A3V64S40ETP pdf в инклуде

A3V64S40ETP_v1.2_Zentel.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

#**************************************************************
# 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-билдер и квартус берут эту часть на себя, а тут приходится руками.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...