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

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Шина Avalon
Genadi Zawidowsk...
сообщение Jan 8 2015, 23:37
Сообщение #16


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

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Хе, я тут тоже этим занимаюсь... Частично приручил AvalonST, но переход на Q 14.1 отложился как раз из-за необходимости засовывать всё в QSYS.
http://188.134.5.254/browser/hfreceiver/trunk/fpga_q13
Go to the top of the page
 
+Quote Post
verali
сообщение Jan 12 2015, 09:53
Сообщение #17


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 6-11-14
Пользователь №: 83 540



Цитата(Genadi Zawidowski @ Jan 8 2015, 23:37) *
Хе, я тут тоже этим занимаюсь... Частично приручил AvalonST, но переход на Q 14.1 отложился как раз из-за необходимости засовывать всё в QSYS.
http://188.134.5.254/browser/hfreceiver/trunk/fpga_q13

Хочу попробовать всю систему засунуть в qsys, но почему то в qsys'e отсутствует умножитель, да и вообще простые арифметические операции.
Кто работал в qsys подскажите как поступить.
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
serjj
сообщение Jan 12 2015, 10:10
Сообщение #18


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



То что вы отметили на рисунке, это корка для перемножения матриц причем floating point (либа FP альтеры). Зачем вам в Qsys размещать элементарные мат операции? Реализуйте функциональный блок в отдельном .v модуле и сделайте для него авалоновскую обертку, что бы можно было подключить в qsys. Вся простая арифметика (в т.ч. floating point) через обычный megawizzard в 14м квартусе спокойно размещается...
Go to the top of the page
 
+Quote Post
verali
сообщение Jan 12 2015, 11:07
Сообщение #19


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 6-11-14
Пользователь №: 83 540



Цитата(serjj @ Jan 12 2015, 10:10) *
То что вы отметили на рисунке, это корка для перемножения матриц причем floating point (либа FP альтеры). Зачем вам в Qsys размещать элементарные мат операции? Реализуйте функциональный блок в отдельном .v модуле и сделайте для него авалоновскую обертку, что бы можно было подключить в qsys. Вся простая арифметика (в т.ч. floating point) через обычный megawizzard в 14м квартусе спокойно размещается...

Из мануалов я понял, что qsys - это оболочка, в которой собирается вся система. Т.е если работаешь в qsys квартус уже не требуется.

Go to the top of the page
 
+Quote Post
serjj
сообщение Jan 12 2015, 11:25
Сообщение #20


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата
Из мануалов я понял

Ну это вы неправильно поняли laughing.gif

Qsys всего лишь генерирует синтезируемые файлы и скрипты, которые подключаются к проекту Quartus для дальнейшей сборки. Вы можете большую часть проекта накидать в Qsys, оставив на Quartus только верхний уровень и имплементацию, но тогда если вам не будет хватать функционала готовых IP, вам нужно написать собственные, совместимые либо с шиной Avalon либо с AXI. Размещать в Qsys корки с элементарным функционалом (простая арифметика например) не целесообразно по системным и ресурсным соображениям, т.к. совместимость с шинами, которые использует Qsys добавляет некоторую избыточность плюс большой проект в Qsys совершенно нечитаем (правда можно использовать архитектуру субсистем, но там есть ньюансы с пробрасованием сигналов, что не всегда дает выигрыш в удобстве представления). Поэтому есть смысл размещать корки с законченным функционалом, например фильтры, цепочки фильтров, Фурье, преобразование систем координат, интерфейсы и пр.
Go to the top of the page
 
+Quote Post
verali
сообщение Jan 12 2015, 13:06
Сообщение #21


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 6-11-14
Пользователь №: 83 540



Цитата(serjj @ Jan 12 2015, 11:25) *
Ну это вы неправильно поняли laughing.gif

Qsys всего лишь генерирует синтезируемые файлы и скрипты, которые подключаются к проекту Quartus для дальнейшей сборки. Вы можете большую часть проекта накидать в Qsys, оставив на Quartus только верхний уровень и имплементацию, но тогда если вам не будет хватать функционала готовых IP, вам нужно написать собственные, совместимые либо с шиной Avalon либо с AXI. Размещать в Qsys корки с элементарным функционалом (простая арифметика например) не целесообразно по системным и ресурсным соображениям, т.к. совместимость с шинами, которые использует Qsys добавляет некоторую избыточность плюс большой проект в Qsys совершенно нечитаем (правда можно использовать архитектуру субсистем, но там есть ньюансы с пробрасованием сигналов, что не всегда дает выигрыш в удобстве представления). Поэтому есть смысл размещать корки с законченным функционалом, например фильтры, цепочки фильтров, Фурье, преобразование систем координат, интерфейсы и пр.

Подскажите пожалуйста, у меня такая система:
Прикрепленное изображение

Блок 1(первый красный прямоугольник) состоит из spi-slave и nco, блок 2 состоит из двух умножителей и третий блок из фильтров и spi-master.
Правильно ли я понимаю, что следует выполнить следующие шаги :
1) Первый блок генерирую в qsys как отдельную систему. Генерирую HDL файл.
2) Второй блок я генерирую в квартусе с помощью визарда. В этом проекте находится top level. Соединяю первый и второй блок в quartus
3) Третий блок генерирую в qsys как отдельную систему. Генерирую HDL файл. Собираю все три блока в quartus.
Направьте пожалуйста в нужном направлении
Go to the top of the page
 
+Quote Post
serjj
сообщение Jan 12 2015, 14:29
Сообщение #22


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Посмотрел я как в новом квартусе добавлять IP через ip catalog... Раньше с обычным Megawizard'ом было удобнее, а сейчас если честно через одно место sad.gif

Но если отбросить негатив, то как можно сделать:
1) Для FIR и CIC фильтров, NCO, Avalon ST Serial делаем корки, они создадутся с расширением .qsys
2) Генерируем через Qsys для них файлы RTL врапперов, например .v, они лежат в папке synthesis, которая создается в папке корки (название совпадает с именем .qsys файла)
3) Добавляем в проект файлы .qsys или .qip из папки synthesis для каждой корки
4) Изучаем спецификацию на Avalon а главное на ST (streaming)
5) На обычном верилоге накидываем искомую систему, в которой подключаем наши корки, как обычные модули; их враперы лежат в соответствующих папках synthesis
6) Соединяем их, учитывая специфику их шин (у них будут разные разрядности, некоторые шины могут содержать 2 квадратуры, например NCO)
7) Добавляем где надо дополнительную арифметику и логику
8) Подключаем все это добро на топ к портам и вперед собирать/отлаживать, перед вами обычный FPGA/RTL проект
прим: если нужно поменять параметры IP корок, то нужно будет перегенировать содержимое папок synthesis

Из выше сказанного, я думаю, что в вашем случае собирать систему полностью в Qsys не целесообразно, замучаетесь с согласованием интерфейсов и отладкой, на верилоге ИМХО проще будет... Очень не обрадовала скудность и документации на ST корки в перспективе Qsys, сыро все это еще! Qsys напротив имеет преимущество, когда есть Nios/HPS и разветвленная шина Avalon-MM/AXI. Удачи rolleyes.gif
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Jan 12 2015, 17:59
Сообщение #23


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

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата
третий блок из фильтров

Обратите внимание, что FIR фильтр может работать в двухканальном (многоканальном) режиме (а CIC - в двухпортовом на входе и двухканальном на выходе) - что сильно экономит объём логики в применении к квадратурным трактам. В моём проекте именно так - за образцом можно туда заглянуть.

Сообщение отредактировал Genadi Zawidowski - Jan 12 2015, 18:10
Go to the top of the page
 
+Quote Post
verali
сообщение Jan 13 2015, 09:21
Сообщение #24


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 6-11-14
Пользователь №: 83 540



Цитата(Genadi Zawidowski @ Jan 8 2015, 23:37) *
Хе, я тут тоже этим занимаюсь... Частично приручил AvalonST, но переход на Q 14.1 отложился как раз из-за необходимости засовывать всё в QSYS.
http://188.134.5.254/browser/hfreceiver/trunk/fpga_q13

Простите, а как скачать все файлы одновременно?Никогда с таким хранилищем не сталкивался.
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Jan 13 2015, 09:54
Сообщение #25


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

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



SVN-клиентом...
Ловите архив на сегодняшний день. Q13.1 (последний из 13-х).

Сообщение отредактировал Genadi Zawidowski - Jan 13 2015, 10:03
Go to the top of the page
 
+Quote Post
verali
сообщение Jan 13 2015, 10:34
Сообщение #26


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 6-11-14
Пользователь №: 83 540



Цитата(Genadi Zawidowski @ Jan 13 2015, 09:54) *
SVN-клиентом...
Ловите архив на сегодняшний день. Q13.1 (последний из 13-х).

Спасибо!
Go to the top of the page
 
+Quote Post
verali
сообщение Jan 14 2015, 10:05
Сообщение #27


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 6-11-14
Пользователь №: 83 540



Всем привет.
Делаю управление ПЛИС внешним процессором по интерфейсу spi. С процессора на плис идут два 32-х разрядных сигнала управления.
Использую корку Avalon-ST Serial Peripheral Interface Core.
Решил не заморачиваться с шиной Avalon и сделать все в квартусе, а не в qsys.
До работы с интерфейсом сигналы, связанные с шиной Avalon(в cic и fir фильтрах), я задавал самостоятельно.
Сейчас хочу поступить так же, поэтому из корки удаляю сигнал sysclk, stsinkdata, stsinkready, stsourseready, stsoursedata – то есть хоть что-то говорящее об Avalon.
Прикрепленное изображение

И вот здесь встал вопрос, а какой сигнал должен идти от spi slave до блока в ПЛИС?
А как вы делаете управление по spi?
Go to the top of the page
 
+Quote Post
serjj
сообщение Jan 14 2015, 10:23
Сообщение #28


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Имхо для управления лучше поставить altera_avalon_spi, которая имеет шину Avalon-MM. Посмотрите SPI Core в ug_embedded_ip.pdf Altera. Там как раз до 32 бит регистр данных задается. По прерыванию забираются данные из корки. А ST тут как раз не нужен.
Go to the top of the page
 
+Quote Post
verali
сообщение Jan 14 2015, 13:27
Сообщение #29


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 6-11-14
Пользователь №: 83 540



Цитата(serjj @ Jan 14 2015, 10:23) *
Имхо для управления лучше поставить altera_avalon_spi, которая имеет шину Avalon-MM. Посмотрите SPI Core в ug_embedded_ip.pdf Altera. Там как раз до 32 бит регистр данных задается. По прерыванию забираются данные из корки. А ST тут как раз не нужен.

Посмотрел SPI core.
Вижу такую куртинку:
Прикрепленное изображение

В мануале ug_embedded_ip.pdf ничего не сказано ни про data_from_cpu, ни про mem_addr, ни про data_to_cpu.
Я могу додумать и предположить, что ядро позволяет использовать либо external либо spi_control_port (сигналы на прикрепленной мною картинке).
Зачем нужны эти сигналы?
Go to the top of the page
 
+Quote Post
serjj
сообщение Jan 14 2015, 13:35
Сообщение #30


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Эта корка адаптирована для использования под Qsys с шиной Avalon и Nios. Но можно ее использовать и в обычном RTL проекте. External - это то, что выбрасывается на порты SPI. SPI control port - это Avalon. По нему идет управление и обмен данными. Посмотрите карту регистров корки, там расписаны адреса внутренних регистров. Обмен по SPI происходит посредством чтения/записи по Avalon. Прерывание позволит вам узнать момент приёма очередной порции данных. Я использовал UART, данный SPI не пробовал, но думаю, что там все точно также. Если в вашем проекте Nios'a не будет, то вам нужно будет написать простенький Avalon Master, который будет управлять данной коркой (и другими Avalon MM корками, если они появятся далее)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 6th August 2025 - 00:33
Рейтинг@Mail.ru


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