|
Моделирование NiosII в ModelSim |
|
|
|
Feb 18 2017, 20:08
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 6-01-17
Пользователь №: 94 893

|
Проблема такая. Есть задача - выполнить элементарные действия на 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. Добавляю сишник с кодом CODE #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. Теперь нужно промоделировать, по коду понятно, что я просто хочу увидеть клок, резет и единицу на выходе. Подскажите пожалуйста как и где увидеть правильные "волны"?
Эскизы прикрепленных изображений
|
|
|
|
|
Feb 20 2017, 18:00
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 6-01-17
Пользователь №: 94 893

|
ну проект рабочий, инструкция понятная. однако например файл wave.do был там изначально, как его сформировать непонятно. таким способом свой проект прогонял, диаграммы ничего не показывают. может я немного не так сформировал вопрос. мне нужно что бы pio_out что то давал на диаграммы
|
|
|
|
|
Feb 21 2017, 18:35
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(lostbegan @ Feb 20 2017, 21:00)  ну проект рабочий, инструкция понятная. однако например файл wave.do был там изначально, как его сформировать непонятно. таким способом свой проект прогонял, диаграммы ничего не показывают. может я немного не так сформировал вопрос. мне нужно что бы pio_out что то давал на диаграммы После выполнения 8 пункта из вышеприведённой доки (рисунок), выполняете в консоли команду elab_debug, вытаскиваете необходимые линии/порты и запускаете симуляцию. Цитата(lostbegan @ Feb 18 2017, 23:08)  при генерации ставлю галки Create HDL - VHDL, создаю .bsf и создаю simulation model - VHDL. Так же создаю тут в qsys тестбенч на vhdl. Прикреплю скрин. В Qsys пункт меню Generate -> Generate Testbench (согласно доке).
Эскизы прикрепленных изображений
|
|
|
|
|
Feb 22 2017, 05:46
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 6-01-17
Пользователь №: 94 893

|
Цитата(AVR @ Feb 20 2017, 19:43)  Ведь это самый кайф - расколоть такой орех самому. Не такой уж и кайф) много времени провел в попытках, результата мало, итога как такового нет, это немного напрягает. В Qsys пункт меню Generate -> Generate Testbench (согласно доке). - это так и делал, тб генерировал
|
|
|
|
|
Feb 22 2017, 06:41
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Далее п 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 - третий рисунок
Эскизы прикрепленных изображений
|
|
|
|
|
Feb 23 2017, 09:49
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 6-01-17
Пользователь №: 94 893

|
>>Далее п 8 на рисунке, команда в консоли elab_debug и т.д., как написал выше и всё увидите
п8 я так понимаю это RunAs-NiosII ModelSim. Далее насчет консоли вопрос? имеется в виду надо в скриптовый файл написать elab_debug. Тот который msim_setup.tcl? Просто как таковой консоли я не вижу
И еще вопрос, в Run configurations у меня стоит сссылка на ModelSim, а у вас на Questa SIM, это другой софт или просто часть Modelsim?
|
|
|
|
|
Feb 23 2017, 10:25
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(lostbegan @ Feb 23 2017, 12:49)  п8 я так понимаю это RunAs-NiosII ModelSim. Да Цитата(lostbegan @ Feb 23 2017, 12:49)  Далее насчет консоли вопрос? имеется в виду надо в скриптовый файл написать elab_debug. Тот который msim_setup.tcl? Просто как таковой консоли я не вижу Можно и в скрипт, но я в консоли вводил, эта команда "выбирает пункт меню из скрипта" msim_setup.tcl. после выполнения команды elab_debug вытаскиваете нужные вам линии (второй рисунок) и запускаете симуляцию (команда в консоли run XXX us).
Эскизы прикрепленных изображений
|
|
|
|
|
Feb 23 2017, 10:35
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 6-01-17
Пользователь №: 94 893

|
Цитата(doom13 @ Feb 23 2017, 11:25)  Да
Можно и в скрипт, но я в консоли вводил, эта команда "выбирает пункт меню из скрипта" msim_setup.tcl.
после выполнения команды elab_debug вытаскиваете нужные вам линии (второй рисунок) и запускаете симуляцию (команда в консоли run XXX us). все в принципе понятно, подобное делал, только без elab_debug. Только у меня ModelSim виснет. просто окошко закрывается с ошибкой. думаю стоит переустановить
|
|
|
|
|
Feb 23 2017, 11:22
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Вот что получается в итоге: 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 Цитата(lostbegan @ Feb 23 2017, 12:49)  И еще вопрос, в Run configurations у меня стоит сссылка на ModelSim, а у вас на Questa SIM, это другой софт или просто часть Modelsim? Другой
|
|
|
|
|
Feb 23 2017, 12:49
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 6-01-17
Пользователь №: 94 893

|
поставил тоже квестасим. Работает, окна не зависают. Генерирую тб в qsys - не simple, а standart. Напомню что выходы PIO у меня экспортированы. Далее все делаю как вы описывали, даю ссылку эклипсу на .spd, жму RUN, открывается questa. Генерирует, пишу elab_debug, опять генерирует и остается вот это (скрин1). Добавляю все объекты на волну, даю шагов столько, чтобы резет отработал, и хоть убей PIO не реагируют (скрин2) код тот, что вы писали, точно такой же
Эскизы прикрепленных изображений
|
|
|
|
|
Feb 24 2017, 09:52
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 6-01-17
Пользователь №: 94 893

|
Я думаю дело не в этом. Скорее всего что то сделал не так. Я даже просматривал 2ms. Тактовый сигнал при отображении на экране был сплошной толстой зеленой полосой, но PIO так и не отозвался. Так же было и раньше, такое чувство, что не хватает какой то мелочи
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|