lostbegan 0 18 февраля, 2017 Опубликовано 18 февраля, 2017 · Жалоба Проблема такая. Есть задача - выполнить элементарные действия на NiosII, получить диаграммы путем моделирования, как итог (проверка) работы. Платы нет, и скорее всего не будет. Перечислю инструменты: 1. Quartus Prime 16.1 Lite Edition 2. ModelSim - Intel FPGA 10.5b (Quartus Prime 16.1) Опишу сначала что есть: Создаю проект в QP16.1 семейства Cyclone IVE устройство пока "Auto selected by the fitter". Так же при создании проекта во вкладке EDA tools settings выбираю Simulation - ModelSim-Altera - VHDL. Дальше собираю в Qsys: NiosII (classic) processor самый простой с дебаггером 1ур. память On-chip Memory (Ramrom) с размером 65536b. (на всякий случай) pio output pio input оба на 8 бит. при генерации ставлю галки Create HDL - VHDL, создаю .bsf и создаю simulation model - VHDL. Так же создаю тут в qsys тестбенч на vhdl. Прикреплю скрин. Опять в QP16.1: Создаю .bdf и собираю там вышесозданный .bsf с входами и выходами. Прикрепляю к проекту файл *.qip, ставлю .bdf на top-level и компиллирую, ошибок нет. Еще скрин прикреплен Eclipse: Создаю NiosII Application and BSP from template, прикрепляю .sopcinfo и создаю blank_project. Добавляю сишник с кодом #include "altera_avalon_pio_regs.h" #define PIO_IN_BASE 0x1000 #define PIO_OUT_BASE 0x1010 //Скопировал адреса с system.h int main() { while(1) { IOWR_ALTERA_AVALON_PIO_DATA(PIO_OUT_BASE, 1); } return 0; } Generate bsp Build project и еще make targets - build - mem_target_generate Создается elf и hex. Теперь нужно промоделировать, по коду понятно, что я просто хочу увидеть клок, резет и единицу на выходе. Подскажите пожалуйста как и где увидеть правильные "волны"? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 45 18 февраля, 2017 Опубликовано 18 февраля, 2017 · Жалоба AN351: Simulating Nios II Embedded Processor Designs AN351 Software Files Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lostbegan 0 20 февраля, 2017 Опубликовано 20 февраля, 2017 · Жалоба ну проект рабочий, инструкция понятная. однако например файл wave.do был там изначально, как его сформировать непонятно. таким способом свой проект прогонял, диаграммы ничего не показывают. может я немного не так сформировал вопрос. мне нужно что бы pio_out что то давал на диаграммы Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 20 февраля, 2017 Опубликовано 20 февраля, 2017 · Жалоба ну проект рабочий, инструкция понятная. однако например файл wave.do был там изначально, как его сформировать непонятно. таким способом свой проект прогонял, диаграммы ничего не показывают. может я немного не так сформировал вопрос. мне нужно что бы pio_out что то давал на диаграммы Меня реально подмывает уже сделать моделирование Nios2 в Modelsim, но будет ли получен академический эффект для автора темы? Ведь это самый кайф - расколоть такой орех самому. Вообще do-файлы это грубо просто последовательность команд, добавление файлов, вывод сигналов, запуск самой симуляции. Он может быть недостаточно полным чтобы запустить. В инете много сайтов типа марсохода с примерами как запустить в Modelsim хотя бы примитивный счетчик и увидеть его сигналы. Заработает счетчик - будет проще Nios2 запустить. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 21 февраля, 2017 Опубликовано 21 февраля, 2017 · Жалоба ну проект рабочий, инструкция понятная. однако например файл wave.do был там изначально, как его сформировать непонятно. таким способом свой проект прогонял, диаграммы ничего не показывают. может я немного не так сформировал вопрос. мне нужно что бы pio_out что то давал на диаграммы После выполнения 8 пункта из вышеприведённой доки (рисунок), выполняете в консоли команду elab_debug, вытаскиваете необходимые линии/порты и запускаете симуляцию. при генерации ставлю галки Create HDL - VHDL, создаю .bsf и создаю simulation model - VHDL. Так же создаю тут в qsys тестбенч на vhdl. Прикреплю скрин. В Qsys пункт меню Generate -> Generate Testbench (согласно доке). Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lostbegan 0 22 февраля, 2017 Опубликовано 22 февраля, 2017 · Жалоба Ведь это самый кайф - расколоть такой орех самому. Не такой уж и кайф) много времени провел в попытках, результата мало, итога как такового нет, это немного напрягает. В Qsys пункт меню Generate -> Generate Testbench (согласно доке). - это так и делал, тб генерировал Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 22 февраля, 2017 Опубликовано 22 февраля, 2017 · Жалоба Далее п 8 на рисунке, команда в консоли elab_debug и т.д., как написал выше и всё увидите Все сделано согласно приведённой доке: #include <stdio.h> #include "system.h" #include "altera_avalon_pio_regs.h" int main() { while(1) { IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, 0xAA); IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, 0x55); } return 0; } Настройки Run Configurations - третий рисунок Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lostbegan 0 23 февраля, 2017 Опубликовано 23 февраля, 2017 · Жалоба >>Далее п 8 на рисунке, команда в консоли elab_debug и т.д., как написал выше и всё увидите п8 я так понимаю это RunAs-NiosII ModelSim. Далее насчет консоли вопрос? имеется в виду надо в скриптовый файл написать elab_debug. Тот который msim_setup.tcl? Просто как таковой консоли я не вижу И еще вопрос, в Run configurations у меня стоит сссылка на ModelSim, а у вас на Questa SIM, это другой софт или просто часть Modelsim? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 23 февраля, 2017 Опубликовано 23 февраля, 2017 · Жалоба п8 я так понимаю это RunAs-NiosII ModelSim. Да Далее насчет консоли вопрос? имеется в виду надо в скриптовый файл написать elab_debug. Тот который msim_setup.tcl? Просто как таковой консоли я не вижу Можно и в скрипт, но я в консоли вводил, эта команда "выбирает пункт меню из скрипта" msim_setup.tcl. после выполнения команды elab_debug вытаскиваете нужные вам линии (второй рисунок) и запускаете симуляцию (команда в консоли run XXX us). Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lostbegan 0 23 февраля, 2017 Опубликовано 23 февраля, 2017 · Жалоба Да Можно и в скрипт, но я в консоли вводил, эта команда "выбирает пункт меню из скрипта" msim_setup.tcl. после выполнения команды elab_debug вытаскиваете нужные вам линии (второй рисунок) и запускаете симуляцию (команда в консоли run XXX us). все в принципе понятно, подобное делал, только без elab_debug. Только у меня ModelSim виснет. просто окошко закрывается с ошибкой. думаю стоит переустановить Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 23 февраля, 2017 Опубликовано 23 февраля, 2017 · Жалоба Вот что получается в итоге: 1. Кнопка "Run As -> Nios II ModelSim" выполняет следующее ... cd obj/default/runtime/sim/mentor/ && "C:/questasim64_10.4a/win64/vsim" -gui -do "do load_sim.tcl; ld; " , где C:/questasim64_10.4a/win64/ - директория установки симулятора на моём ПК 2. ld - команда описанная в файле obj/default/runtime/sim/mentor/msim_setup.tcl, включает в себя dev_com, com, elab: #msim_setup.tcl ... alias ld " dev_com com elab " ... 3. Вместо elab (Elaborates the top-level design) нужна команда elab_debug (Elaborates the top-level design with the novopt option), которую и запускаем из консоли. 4. Далее вытаскиваем нужные сигналы (можно оформить это запуском *.do файла). 5. Запускаем симуляцию - команда run И еще вопрос, в Run configurations у меня стоит сссылка на ModelSim, а у вас на Questa SIM, это другой софт или просто часть Modelsim? Другой Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lostbegan 0 23 февраля, 2017 Опубликовано 23 февраля, 2017 · Жалоба поставил тоже квестасим. Работает, окна не зависают. Генерирую тб в qsys - не simple, а standart. Напомню что выходы PIO у меня экспортированы. Далее все делаю как вы описывали, даю ссылку эклипсу на .spd, жму RUN, открывается questa. Генерирует, пишу elab_debug, опять генерирует и остается вот это (скрин1). Добавляю все объекты на волну, даю шагов столько, чтобы резет отработал, и хоть убей PIO не реагируют (скрин2) код тот, что вы писали, точно такой же Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 24 февраля, 2017 Опубликовано 24 февраля, 2017 · Жалоба Добавляю все объекты на волну, даю шагов столько, чтобы резет отработал, и хоть убей PIO не реагируют (скрин2) На моём рисунке (Сообщение #7) время анализа 200 мкс и тактовая 125 МГц и PIO начал "моргать" где-то ~120 мкс после старта. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lostbegan 0 24 февраля, 2017 Опубликовано 24 февраля, 2017 · Жалоба Я думаю дело не в этом. Скорее всего что то сделал не так. Я даже просматривал 2ms. Тактовый сигнал при отображении на экране был сплошной толстой зеленой полосой, но PIO так и не отозвался. Так же было и раньше, такое чувство, что не хватает какой то мелочи Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 24 февраля, 2017 Опубликовано 24 февраля, 2017 · Жалоба Как настроен PIO в Qsys и какой код выполняет Nios? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться