verali 0 December 22, 2014 Posted December 22, 2014 · Report post Добрый день! Собрал из IP ядер цифровой приемник (digital down converter). Провел моделирование в ModelSim. Все хорошо, но есть НО! В IP ядрах цифровых фильтров присутствуют входные и выходные сигналы для шины Avalon. Из литературы я понял, что Avalon - универсальная шина для построения системы на кристалле. Правильно ли я понимаю, что помимо прямого соединения компонентов цифровой обработки сигналов, их еще и надо связать этой шиной? CIC фильтр так же требует входной сигнал с этой шины (in_valid(), .out_ready(), .in_error(). При моделировании я самостоятельно задавал эти сигналы. Немного непонятно, зачем она нужна, направьте пожалуйста в правильную сторону. Quote Share this post Link to post Share on other sites More sharing options...
Копейкин 0 December 22, 2014 Posted December 22, 2014 · Report post Если вы для сборки системы используете QSYS или SOPC builder, то соединения посредством шины Авалон будут сгенерированы автоматом. Если есть несовместимость сигналов - будут выданы ошибки и предупреждения. Если вы делали свой собственный компонент, то рекомендую использовать мастер, для генерации шаблона. Quote Share this post Link to post Share on other sites More sharing options...
verali 0 December 22, 2014 Posted December 22, 2014 · Report post Если вы для сборки системы используете QSYS или SOPC builder, то соединения посредством шины Авалон будут сгенерированы автоматом. Если есть несовместимость сигналов - будут выданы ошибки и предупреждения. Если вы делали свой собственный компонент, то рекомендую использовать мастер, для генерации шаблона. Для сборки системы я использовал Quartus. Делал step by step: последовательно соединял ip ядра и моделировал их. Получается что данную системы (цифровой приемник) правильнее сделать в Qsys или Sopc builder? Quote Share this post Link to post Share on other sites More sharing options...
Копейкин 0 December 22, 2014 Posted December 22, 2014 · Report post Если вы планируете использовать шину Авалон и готовые IP (типа NIOSII, DDR(1,2,3), Ethernet и т.п. ), то следует использовать Qsys или Sopc builder. Для создания шаблонов компонентов и затем создания системы. Также последняя версия Квартуса поддерживает не только Авалон. Если вы создаёте собственную систему "с нуля" "врукопашную", то всё равно, что использовать. ;) Quote Share this post Link to post Share on other sites More sharing options...
Golikov 0 December 22, 2014 Posted December 22, 2014 · Report post у ксалинкса IP ядра могут быть 2 видов (выбираются при запихивании в проект) нативные и на AXI шину. Последняя если цеплять на проц микроблайз, для систем без проца, я брал нативные и работал с предоставленными сигналами. Может у альтеры есть что-то подобное? Quote Share this post Link to post Share on other sites More sharing options...
verali 0 December 22, 2014 Posted December 22, 2014 · Report post Если вы планируете использовать шину Авалон и готовые IP (типа NIOSII, DDR(1,2,3), Ethernet и т.п. ), то следует использовать Qsys или Sopc builder. А чем отличается Qsys от SOPC Builder? Quote Share this post Link to post Share on other sites More sharing options...
Копейкин 0 December 22, 2014 Posted December 22, 2014 · Report post А чем отличается Qsys от SOPC Builder? Версии Квартуса после 10 (если правильно помню), для построения систем, имеют в составе QSYS. Более ранние - SOPC builder. Quote Share this post Link to post Share on other sites More sharing options...
krux 9 December 22, 2014 Posted December 22, 2014 · Report post Смотря что этой шиной делать. Сигналы у вас streaming или memory-mapped? Если надо данные через неё загонять куда-нибудь (может, например, в DDR2/3 ?) - это одно. Если надо по этой шине всего-лишь управление организовать - это другое. Другими словами, нужно для начала понять - для чего она используется: для передачи данных или для управления? Выходы видятся следующие: 1) если нужно гибкое управления - то напрашивается микроконтроллер, и, как следствие, Nios2, который в свою очередь, тянет qsys, который требует аккуратного заворачивания всех субмодулей в qsys-обёртки. 2) если гибкость не требуется, вы понимаете что и куда, и писать объемные компоненты не предвидится, а нарисовать небольшой конечный автомат для вас не проблема - то можно плюнуть на qsys, и наваять один-два недостающих компонента врукопашную. Quote Share this post Link to post Share on other sites More sharing options...
verali 0 December 23, 2014 Posted December 23, 2014 (edited) · Report post Смотря что этой шиной делать. Сигналы у вас streaming или memory-mapped? Если надо данные через неё загонять куда-нибудь (может, например, в DDR2/3 ?) - это одно. Если надо по этой шине всего-лишь управление организовать - это другое. Другими словами, нужно для начала понять - для чего она используется: для передачи данных или для управления? Выходы видятся следующие: 1) если нужно гибкое управления - то напрашивается микроконтроллер, и, как следствие, Nios2, который в свою очередь, тянет qsys, который требует аккуратного заворачивания всех субмодулей в qsys-обёртки. 2) если гибкость не требуется, вы понимаете что и куда, и писать объемные компоненты не предвидится, а нарисовать небольшой конечный автомат для вас не проблема - то можно плюнуть на qsys, и наваять один-два недостающих компонента врукопашную. Задача такая: На вход приемника (16 разрядный вход) приходит сигнал с АЦП . Управление планирую сделать по SPI. Съем данных (квадратуры) планирую сделать тоже по SPI. Не до конца понял назначение шины Avalon, требуется ли она для моего проекта, если управление идет по spi? Решил в качестве получения доп.опытав пересобрать систему в Qsys. Но есть одно НО: почему то для Cyclone V недоступно ядро NCO и CIC фильтр. Или требуется отдельная лицензия на эти ядра? Стоит Quartus 14.0 Web Edition Edited December 23, 2014 by verali Quote Share this post Link to post Share on other sites More sharing options...
verali 0 December 24, 2014 Posted December 24, 2014 · Report post Кто-нибудь соединял блоки DSP в Qsys? Требуется отдельная лицензия на ip ядра в qsys, чтобы их активировать? Quote Share this post Link to post Share on other sites More sharing options...
Копейкин 0 December 24, 2014 Posted December 24, 2014 · Report post Кто-нибудь соединял блоки DSP в Qsys? Требуется отдельная лицензия на ip ядра в qsys, чтобы их активировать? С этими блоками не сталкивался. :laughing: Другие TSE, DDR, NIOS позволяли собрать timelimited систему, которая работала, пока к схеме подключен программатор или только 1 час. Возможно с вашими IP есть какие-то нюансы, почитайте подробное описание. Quote Share this post Link to post Share on other sites More sharing options...
verali 0 December 24, 2014 Posted December 24, 2014 · Report post С этими блоками не сталкивался. :laughing: Другие TSE, DDR, NIOS позволяли собрать timelimited систему, которая работала, пока к схеме подключен программатор или только 1 час. Возможно с вашими IP есть какие-то нюансы, почитайте подробное описание. Описание полностью идентично, как для ip ядра в Визарде, так и для ядра в qsys - они имеют только временные ограничения по работе. Quote Share this post Link to post Share on other sites More sharing options...
serjj1333 0 December 25, 2014 Posted December 25, 2014 · Report post В Quartus 14.1 для Cyclone V доступны перечисленные вами ядра. Если хотите использовать их через QSys, обновите софтину и все появится :rolleyes: . Обратите внимание, что Авалон у фильтров имеет тип Streaming, тогда как у большинства компонентов (в т.ч. Nios) он Memory mapped. Соответсвенно, если вы хотите передать результат фильтрации/децимации в Nios для дальнейшей обработки, вам интерфейсы нужно будет согласовать, поставив преобразование Streaming-MM. SPI так же имеет интерфейс Memory mapped, следовательно что бы передать данные из SPI в NCO нужно будет реализовать преобразование MM-Streaming. Quote Share this post Link to post Share on other sites More sharing options...
verali 0 January 3, 2015 Posted January 3, 2015 · Report post В Quartus 14.1 для Cyclone V доступны перечисленные вами ядра. Если хотите использовать их через QSys, обновите софтину и все появится :rolleyes: . Обратите внимание, что Авалон у фильтров имеет тип Streaming, тогда как у большинства компонентов (в т.ч. Nios) он Memory mapped. Соответсвенно, если вы хотите передать результат фильтрации/децимации в Nios для дальнейшей обработки, вам интерфейсы нужно будет согласовать, поставив преобразование Streaming-MM. SPI так же имеет интерфейс Memory mapped, следовательно что бы передать данные из SPI в NCO нужно будет реализовать преобразование MM-Streaming. Спасибо за ответ! Скажите пожалуйста зачем в ядре spi нужен сигнал data_in? Quote Share this post Link to post Share on other sites More sharing options...
novartis 0 January 3, 2015 Posted January 3, 2015 · Report post Ваш slave spi должен возвращать мастеру какие-либо данные, вот для этого и нужна шина data_in. Почитал документацию на эту корку, не понял как там данные складируются, надо вдаваться в тонкости, так что дерзайте. Quote Share this post Link to post Share on other sites More sharing options...