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

 
 
2 страниц V   1 2 >  
Closed TopicStart new topic
> Моделирование NiosII в ModelSim
lostbegan
сообщение Feb 18 2017, 20:08
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 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.

Теперь нужно промоделировать, по коду понятно, что я просто хочу увидеть клок, резет и единицу на выходе. Подскажите пожалуйста как и где увидеть правильные "волны"?









Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Feb 18 2017, 22:00
Сообщение #2


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



AN351: Simulating Nios II Embedded Processor Designs
AN351 Software Files


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
lostbegan
сообщение Feb 20 2017, 18:00
Сообщение #3


Участник
*

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



ну проект рабочий, инструкция понятная. однако например файл wave.do был там изначально, как его сформировать непонятно. таким способом свой проект прогонял, диаграммы ничего не показывают. может я немного не так сформировал вопрос. мне нужно что бы pio_out что то давал на диаграммы
Go to the top of the page
 
+Quote Post
AVR
сообщение Feb 20 2017, 18:43
Сообщение #4


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(lostbegan @ Feb 20 2017, 21:00) *
ну проект рабочий, инструкция понятная. однако например файл wave.do был там изначально, как его сформировать непонятно. таким способом свой проект прогонял, диаграммы ничего не показывают. может я немного не так сформировал вопрос. мне нужно что бы pio_out что то давал на диаграммы

Меня реально подмывает уже сделать моделирование Nios2 в Modelsim, но будет ли получен академический эффект для автора темы? Ведь это самый кайф - расколоть такой орех самому.

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

В инете много сайтов типа марсохода с примерами как запустить в Modelsim хотя бы примитивный счетчик и увидеть его сигналы. Заработает счетчик - будет проще Nios2 запустить.


--------------------
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 21 2017, 18:35
Сообщение #5


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

Группа: Свой
Сообщений: 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 (согласно доке).
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
lostbegan
сообщение Feb 22 2017, 05:46
Сообщение #6


Участник
*

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



Цитата(AVR @ Feb 20 2017, 19:43) *
Ведь это самый кайф - расколоть такой орех самому.


Не такой уж и кайф) много времени провел в попытках, результата мало, итога как такового нет, это немного напрягает.

В Qsys пункт меню Generate -> Generate Testbench (согласно доке). - это так и делал, тб генерировал
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 22 2017, 06:41
Сообщение #7


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

Группа: Свой
Сообщений: 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 - третий рисунок
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
lostbegan
сообщение Feb 23 2017, 09:49
Сообщение #8


Участник
*

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




>>Далее п 8 на рисунке, команда в консоли elab_debug и т.д., как написал выше и всё увидите

п8 я так понимаю это RunAs-NiosII ModelSim.
Далее насчет консоли вопрос? имеется в виду надо в скриптовый файл написать elab_debug. Тот который msim_setup.tcl? Просто как таковой консоли я не вижу

И еще вопрос, в Run configurations у меня стоит сссылка на ModelSim, а у вас на Questa SIM, это другой софт или просто часть Modelsim?
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 23 2017, 10:25
Сообщение #9


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

Группа: Свой
Сообщений: 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).
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
lostbegan
сообщение Feb 23 2017, 10:35
Сообщение #10


Участник
*

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



Цитата(doom13 @ Feb 23 2017, 11:25) *
Да


Можно и в скрипт, но я в консоли вводил, эта команда "выбирает пункт меню из скрипта" msim_setup.tcl.


после выполнения команды elab_debug вытаскиваете нужные вам линии (второй рисунок) и запускаете симуляцию (команда в консоли run XXX us).

все в принципе понятно, подобное делал, только без elab_debug. Только у меня ModelSim виснет. просто окошко закрывается с ошибкой. думаю стоит переустановить
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 23 2017, 11:22
Сообщение #11


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

Группа: Свой
Сообщений: 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?

Другой
Go to the top of the page
 
+Quote Post
lostbegan
сообщение Feb 23 2017, 12:49
Сообщение #12


Участник
*

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



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


код тот, что вы писали, точно такой же
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 24 2017, 09:41
Сообщение #13


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

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(lostbegan @ Feb 23 2017, 15:49) *
Добавляю все объекты на волну, даю шагов столько, чтобы резет отработал, и хоть убей PIO не реагируют (скрин2)

На моём рисунке (Сообщение #7) время анализа 200 мкс и тактовая 125 МГц и PIO начал "моргать" где-то ~120 мкс после старта.
Go to the top of the page
 
+Quote Post
lostbegan
сообщение Feb 24 2017, 09:52
Сообщение #14


Участник
*

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



Я думаю дело не в этом. Скорее всего что то сделал не так. Я даже просматривал 2ms. Тактовый сигнал при отображении на экране был сплошной толстой зеленой полосой, но PIO так и не отозвался. Так же было и раньше, такое чувство, что не хватает какой то мелочи
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 24 2017, 10:02
Сообщение #15


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

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Как настроен PIO в Qsys и какой код выполняет Nios?
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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