verali 0 14 января, 2015 Опубликовано 14 января, 2015 · Жалоба Эта корка адаптирована для использования под Qsys с шиной Avalon и Nios. Но можно ее использовать и в обычном RTL проекте. External - это то, что выбрасывается на порты SPI. SPI control port - это Avalon. По нему идет управление и обмен данными. Посмотрите карту регистров корки, там расписаны адреса внутренних регистров. Обмен по SPI происходит посредством чтения/записи по Avalon. Прерывание позволит вам узнать момент приёма очередной порции данных. Я использовал UART, данный SPI не пробовал, но думаю, что там все точно также. Если в вашем проекте Nios'a не будет, то вам нужно будет написать простенький Avalon Master, который будет управлять данной коркой (и другими Avalon MM корками, если они появятся далее) А без avalon spi реализовать возможно? Я не представляю о каком avalon мастере идет речь( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serjj1333 0 14 января, 2015 Опубликовано 14 января, 2015 · Жалоба А без avalon spi реализовать возможно? Да, написать самому. Я не представляю о каком avalon мастере идет речь Посмотрите спецификацию на шину Avalon, честное слово, там всё ж просто, это же не AXI4. Если бы был Nios, то функции мастера выполнялись бы им, но т.к. его судя по всему у Вас нет, управлять шиной прийдется вручную. Удачи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
verali 0 5 февраля, 2015 Опубликовано 5 февраля, 2015 · Жалоба Да, написать самому. Посмотрите спецификацию на шину Avalon, честное слово, там всё ж просто, это же не AXI4. Если бы был Nios, то функции мастера выполнялись бы им, но т.к. его судя по всему у Вас нет, управлять шиной прийдется вручную. Удачи. Огромное спасибо за советы! Всвязи с далеким пониманием как сделать мастер( а так же для чего он нужен и из чего должен состоять) управления шины Avalon, решил управление реализовать на NIOS для понимая и освоения программирования процессора, т.к он в перспективе потребуется. Собрал я систему в QSYS: NIOS(+on-chip memory) -> Avalon FIFO (для перехода AvMM-AvST) ->NCO(AvST) Пробую из NIOS загрузить код частоты в NCO, для последующего наблюдения квадратур в QuestaSim, а так же для заливки прошивки в ПЛИС. Как мне вывести сигналы с NCO на пины ПЛИС, если ip nco требует, чтобы его выход был подключен к Avalon ST sink? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serjj1333 0 6 февраля, 2015 Опубликовано 6 февраля, 2015 · Жалоба Вы можете вытащить сигналы из Qsys с помощью экспортирования (столбец Export в System Contents). После генерации Qsys компонента они появятся в Verilog/VHDL врапере в списке портов вместе с остальными внешними сигналами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
goodsoul 0 6 февраля, 2015 Опубликовано 6 февраля, 2015 (изменено) · Жалоба Огромное спасибо за советы! Всвязи с далеким пониманием как сделать мастер( а так же для чего он нужен и из чего должен состоять) управления шины Avalon, решил управление реализовать на NIOS для понимая и освоения программирования процессора, т.к он в перспективе потребуется. Собрал я систему в QSYS: NIOS(+on-chip memory) -> Avalon FIFO (для перехода AvMM-AvST) ->NCO(AvST) Пробую из NIOS загрузить код частоты в NCO, для последующего наблюдения квадратур в QuestaSim, а так же для заливки прошивки в ПЛИС. Как мне вывести сигналы с NCO на пины ПЛИС, если ip nco требует, чтобы его выход был подключен к Avalon ST sink? На начальном этапе можно еще SystemConsole использовать. Если в двух словах, то этот инструмент позволяет получать доступ к периферии внутри fpga через jtag. Цепочка получается такой: SystemConsole (PC) -> USB-Blaster -> Jtag to Avalon Master преобразователь (есть модуль такой) -> периферия. Имея адреса модулей на шине Avalon можете читать и писать в них. Применение System Console на начальных этапах позволяет не заморачиваться с ниосом или HPS (в случае SoC), а сразу начать отладку ваших блоков в ПЛИС. http://www.altera.com/products/software/qu...ms-console.html Изменено 6 февраля, 2015 пользователем goodsoul Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
verali 0 6 февраля, 2015 Опубликовано 6 февраля, 2015 · Жалоба Вы можете вытащить сигналы из Qsys с помощью экспортирования (столбец Export в System Contents). После генерации Qsys компонента они появятся в Verilog/VHDL врапере в списке портов вместе с остальными внешними сигналами. Не понимаю, почему nco ip ругается на reset? Я же его подключил: На начальном этапе можно еще SystemConsole использовать. Если в двух словах, то этот инструмент позволяет получать доступ к периферии внутри fpga через jtag. Цепочка получается такой: SystemConsole (PC) -> USB-Blaster -> Jtag to Avalon Master преобразователь (есть модуль такой) -> периферия. Имея адреса модулей на шине Avalon можете читать и писать в них. Применение System Console на начальных этапах позволяет не заморачиваться с ниосом или HPS (в случае SoC), а сразу начать отладку ваших блоков в ПЛИС. http://www.altera.com/products/software/qu...ms-console.html Спасибо, буду иметь ввиду, сейчас уж начал заниматься nios, если будут проблемы буду обращаться к помощи консоли. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serjj1333 0 6 февраля, 2015 Опубликовано 6 февраля, 2015 · Жалоба Не понимаю, почему nco ip ругается на reset? Формальная проблема. Вы экспортировали выходной Avalon-ST, если резет произойдет, то приёмник в другой системе ничего об этом не узнает и формально будет считаться, что транзакция на шине продолжается. Если вы не планируете постоянно рулить этим резетом, то можно не обращать внимание на этот ворнинг. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
verali 0 16 февраля, 2015 Опубликовано 16 февраля, 2015 · Жалоба Продолжаю разбираться с программированием NIOS. Сейчас затруднение вызывает fifo. FIFO в моем случае выполняет роль моста AvMM-slave - AvST Sourse. Читаю manuals ug_fifo и ug_1085, в последнем есть раздел software programming Model (стр. 16-7) в котором указаны функции для работы с фифо, такие как инициализация фифо, чтения статуса, запись в фифо, чтения из фифо и т.д. Функций так много, что я запутался в каком порядке из применять. К сожалению на просторах интернета не нашел примера как правильно инициализировать фифо для отправки одного 32-битного числа из NIOSа. Может быть у кого-нибудь есть пример? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
verali 0 19 февраля, 2015 Опубликовано 19 февраля, 2015 · Жалоба Идея следующая - из Nios выгружаю число в fifo, а из fifo выгружаю это число на внешние пины. Соединяю все таким образом: при это выход fifo вывожу наружу(выделено красным) Код на Си: #include "io.h" #include "altera_avalon_fifo_regs.h" #include "altera_avalon_fifo_util.h" #include "system.h" #include "sys/alt_irq.h" #include <stdio.h> #include <stdlib.h> #define ALMOST_EMPTY 2 #define ALMOST_FULL FIFO_0_IN_CSR_FIFO_DEPTH-3 int main(){ int a, b, c, d; //initializes the FIFO a = altera_avalon_fifo_init(FIFO_0_IN_CSR_BASE, //the base address of the FIFO control slave 0, //the value to write to the interruptenable register ALMOST_EMPTY, //the value for the almost empty threshold (порог) level ALMOST_FULL); //the value for the most full threshold level //write a, b into fifo b = 0xffff; c = altera_avalon_fifo_write_fifo(FIFO_0_IN_BASE, //the base address of the fifo write slave FIFO_0_IN_CSR_BASE, //the base address of the fifo control slave b ); //value to write to address //read a,b from fifo d = altera_avalon_fifo_read_fifo(FIFO_0_IN_BASE, //the base address of the fifo read slave FIFO_0_IN_CSR_BASE); //the base address of the fifo control slave return 0; } Вопрос: как выход fifo вывести наружу так, чтобы это было видно при моделировании? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
verali 0 24 февраля, 2015 Опубликовано 24 февраля, 2015 · Жалоба Скорее всего неправильно выразился: есть ли возможность выведенную наружу шину Avalon St промоделировать в ModelSim? Уже неделю борюсь с эти, выслушаю любые советы. Идея в выводе требуемого числа на внешние пины для моделирования. Для начала хочу вывести одно число через fifo, после подключить nco и вывести синус в modelsim. Fifo использую в качестве перехода Av-MM -> Av-ST. Если уже ничего не получится, думаю двойной fifo сделать(Av-MM->Av-ST -->Av-St->Av-MM), а потом подключить PIO (тип Av-MM). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kapsik 0 29 мая, 2015 Опубликовано 29 мая, 2015 · Жалоба Также как ТС пытаюсь поднять ядро SPI. Почитал спецификацию Avalon и IP-переферию. Ниос использовать не хочу, пытаюсь написать свой мастер на шину. Как я понял необходим Memory-Mapped Master. Описал его сигналы, address, byteenable, read, readdata и т.п. Собрал в QSYS систему из своего мастера и IP-ядра SPI и ...ничего не произошло… Пытаюсь выдавить хоть какой-то отклик, но чет совсем глухо. Делаю следующее. В Register Map первый адрес адрес – адрес передатчика, выставляю на шину адреса «1», на шину данных число, на write «1», на byteenable «11» так как ширина шины на SPI 16 бит. Смотрю все это дело в ModelSim внутри IP SPI обсалютная тишина, ничего кроме входных сигналов не дрыгается. Вопрос, что я делаю не так? Видимо упускаю, что-то важное… Среда Quartus 14.1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 29 мая, 2015 Опубликовано 29 мая, 2015 · Жалоба Вопрос, что я делаю не так? Видимо упускаю, что-то важное… Единственная здравая мысль, приходящая в голову, что если вы не хотите использовать процессор, то шина авалон вам не особо нужна и проще написать за 30 минут свой собственный spi (или взять готовый) с более простым управлением. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kapsik 0 29 мая, 2015 Опубликовано 29 мая, 2015 · Жалоба Единственная здравая мысль, приходящая в голову, что если вы не хотите использовать процессор, то шина авалон вам не особо нужна и проще написать за 30 минут свой собственный spi (или взять готовый) с более простым управлением. Тут такая интересная штука. SPI написал. А то чем я сейчас занимаюсь я подключу к своему slave и посмотрю, как он работает. Просто мне в дальнейшем надо будет использовать ADС, возможно другие IP ядра, а они все садятся на Avalon, вот я и решил попрактиковаться начав с SPI. Тут сама цель не SPI, а разобраться в целом, на примере SPI... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 29 мая, 2015 Опубликовано 29 мая, 2015 · Жалоба ? Присмотрелся к картинкам. reset - он у вас активным 0 сделан ведь? byteena - он вам совсем не нужен. Если уж делать, то почему он стоит раным 3? для 32-разрядной шины он должен быть тогда уж 0xf. Но лучше убрать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kapsik 0 1 июня, 2015 Опубликовано 1 июня, 2015 · Жалоба Решил подключить Nios и в ModelSim посмотреть как он дергает шину, но возникла странная ошибка. "Description Resource Path Location Type make: *** [prog.elf] Error 1 prog C/C++ Problem". Проект в QSYS выглядит как Nios + RAM + SPI. Собирается все без ошибок С кодом особо не мудрил #include "system.h" #include "altera_avalon_spi_regs.h" int main () { int spi = 0x5; IOWR_ALTERA_AVALON_SPI_TXDATA(SPI_0_BASE, spi); return 0; } При сборке появляется ошибка С этой ошибкой я явно не одинок, обсуждалась и на нашем форуме и на заграничных, но однозначного ответа как исправить я не нашел. Демо от Altera заработала, добавил SPI тоже работает, добавил UART вылезла ошибка. Откатился на состояние без UART, но уже не помогло. Теперь и проект с 0 нормально не собирается. Среда: - Nios II 14.1 Software Build Tools for Eclipse - Quartus II 14.1 (64-bit) Прикрепляю папку с проектом nio.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться