juvf 17 15 февраля, 2011 Опубликовано 15 февраля, 2011 · Жалоба после того как сделаете их Regular I/O, назначайте в пин-планнере. для циклона-3 они автоматом не назначаются тааак..... понятно.... спасибо ...... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 15 февраля, 2011 Опубликовано 15 февраля, 2011 · Жалоба как соберете проект и зальете 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 15 февраля, 2011 Опубликовано 15 февраля, 2011 · Жалоба что-то подобное получилось, см рисунок. Но теперь ельф не грузится. Вообще я заметил, что загрузка кода для дебага в ниос зависит от расположения звезд. Похоже сейчас солнце в казероге, дебаг не грузится. Помогите разобраться. Собрал в квартусе схему с ниосом. Вектор ресета на 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 и программы для ниоса. Как это побороть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexPec 3 15 февраля, 2011 Опубликовано 15 февраля, 2011 · Жалоба Тактовые проверьте, законстрейнены ли. От звезд у меня зависело когда тактовый клок не законстрейнен был. Соберешь-работает, чуть поменял - уже не работает. И тактовая то какая? Не 120 МГц надеюсь? У меня с -8 кристаллом стабильно система всегда работает только на 80 МГц Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 15 февраля, 2011 Опубликовано 15 февраля, 2011 · Жалоба что-то подобное получилось, см рисунок. все нормально, можно шить. насчет констрейнов - поищите по форуму, я вроде выкладывал. завтра еще раз выложу вот по минимуму: # 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, то нужно обязательно констрейнить и ее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 16 февраля, 2011 Опубликовано 16 февраля, 2011 · Жалоба частота 50 МГц. констрейн настроил. Непомогло. с утра уже час как рыба на льду. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 16 февраля, 2011 Опубликовано 16 февраля, 2011 · Жалоба частота 50 МГц. констрейн настроил. Непомогло. с утра уже час как рыба на льду. в отчете квартуса (и таймквеста) все нормально? Critical warnings нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 16 февраля, 2011 Опубликовано 16 февраля, 2011 · Жалоба в отчете квартуса (и таймквеста) все нормально? Critical warnings нет?критикал ворнингов нет. тока почему то в отчете один пукт красный, Unconstrained Paths. см рис. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 16 февраля, 2011 Опубликовано 16 февраля, 2011 · Жалоба это он про I/O ругается, если внешнее ОЗУ не задействовано, можно забить. покажите конфиг системы (можно скрин из SOPC-билдера) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 16 февраля, 2011 Опубликовано 16 февраля, 2011 (изменено) · Жалоба покажите конфиг системы (можно скрин из SOPC-билдера) как конфиг показать не знаю. а скрин - пожалуста В sopc билдере 2 варнинга. тоже не понятные. Изменено 16 февраля, 2011 пользователем juvf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 16 февраля, 2011 Опубликовано 16 февраля, 2011 · Жалоба а линкера настройки какие? там в sdram ничего не пишется? если sdram задействована без констрейнов не обойтись Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 16 февраля, 2011 Опубликовано 16 февраля, 2011 · Жалоба а линкера настройки какие? там в 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] Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 16 февраля, 2011 Опубликовано 16 февраля, 2011 · Жалоба Info: (frontEndOS.elf) 211 KBytes program size (code + initialized data). Info: 7973 KBytes free for stack + heap. к гадалке не ходи, это все в sdram только влезет. без констрейнов не взлетит. какой чип памяти? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 16 февраля, 2011 Опубликовано 16 февраля, 2011 · Жалоба к гадалке не ходи, это все в sdram только влезет. без констрейнов не взлетит. какой чип памяти? ступил, действительно 8Мб - это сдрам. чип - Zentel A3V64S40ETP pdf в инклуде A3V64S40ETP_v1.2_Zentel.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 16 февраля, 2011 Опубликовано 16 февраля, 2011 · Жалоба Вот пример для похожего чипа (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-билдер и квартус берут эту часть на себя, а тут приходится руками. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться