|
Nios II, C2H-акселератор функций, Вопросы... |
|
|
|
Mar 27 2008, 12:33
|
Местный
  
Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377

|
Пытаюсь применить С2Н-акселератор для ускорения функции загрузки данных в буфер (в данном случае для LAN91C111). Вроде все делаю, как предлагается в ug_nios2_c2h_compiler.pdf: - размещаю описание функции в отдельном файле; - предварительно проверяю ее работоспособность в софт-варианте; - подсвечиваю название функции; - затем правый клик по названию и в выпадающем меню выбираю Accelerate with the Nios II C2H Compiler; - в консоле C2H view устанавливаю опции Build software, generate SOPC Builder system, and run Quartus II compilation, а также Use hardware accelerator in place of software implementation. Flush data cache before each call; - в окне C/C++ Projects запускаю компиляцию своего проекта Build Project.
В итоге выдается сообщение, по поводу которого ничего объясняющего найти не могу: make: *** No rule to make target `my_c2h_load_lan91c111.c', needed by `obj/my_c2h_load_lan91c111.c2h_pre'. Stop.
Попытка сделать все как рекомендуется в ug_nios2_c2h_compiler.pdf, но к учебному примеру, проходит нормально. То есть там все нормально, а у меня не хочет, даже если свою функцию упрощаю до простого присваивания. Кто сталкивался с подобным?
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
Mar 28 2008, 07:11
|
Местный
  
Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377

|
Цитата(Harbour @ Mar 28 2008, 09:53)  c2h лицензия давалясь, до недавнего времени, особо приближенным к альтере - просто так эту фишку в квартусе не включить 1. Хотел бы знать, кто-то еще пытался запустить С2Н с "лицензией", и что из этого вышло? 2. Если Гора не хочет идти к нам, то попробуем к ней подойти сами. Общая идея акселерации понятна, как строить самим операционные устройства, в том числе с конвейеризацией, тоже. При большом желании можно, что-то подобное синтезировать на Verilog и самому. Теперь вопрос, как такой функциональный блок получше подключить к NiosII, какие компоненты SOPC при этом использовать? Похоже, что PIO, потом нужно притормозить NiosII пока внешняя функция полностью не отработает… Полезно бы услышать соображения форумчан по С2Н как в целом, так и по частностям.
|
|
|
|
|
Mar 28 2008, 07:55
|

МедвеД Инженер I
   
Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951

|
Цитата(Волощенко @ Mar 28 2008, 16:11)  1. Хотел бы знать, кто-то еще пытался запустить С2Н с "лицензией", и что из этого вышло? 2. Если Гора не хочет идти к нам, то попробуем к ней подойти сами. Общая идея акселерации понятна, как строить самим операционные устройства, в том числе с конвейеризацией, тоже. При большом желании можно, что-то подобное синтезировать на Verilog и самому. Теперь вопрос, как такой функциональный блок получше подключить к NiosII, какие компоненты SOPC при этом использовать? Похоже, что PIO, потом нужно притормозить NiosII пока внешняя функция полностью не отработает… Полезно бы услышать соображения форумчан по С2Н как в целом, так и по частностям. 1) не пробовал, попробую на след неделе 2)есть отличное средство и главное широко используемое это DMA, и главное не нужно заморачиваться с С2Н ну и писать для железа тоже не надо :-) всё уже придумано до нас да драйвер есть в составе ниоса. вообщем имхо применение С2Н весьмо сомнительно.
--------------------
Cogito ergo sum
|
|
|
|
|
Mar 30 2008, 11:50
|
Знающий
   
Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997

|
Цитата(Postoroniy_V @ Mar 28 2008, 10:55)  2)есть отличное средство и главное широко используемое это DMA, и главное не нужно заморачиваться с С2Н ну и писать для железа тоже не надо :-) всё уже придумано до нас Влезу с демонстрацией своего нубства. Как я понимаю, DMA - Direct Memory Acсess - инструмент для быстрого перекидывания данных. Похоже, я чего-то совсем не понимаю сути DMA и областей его использования, а, значит, неэффективно решаю какие-то задачи, но как DMA делает C2H ненужным? Если не затруднит, то не могли бы Вы поделится примерами использования DMA? Не кодом, а именно задачами - стояла такая задача, использовали при решении DMA таким-то образом, получилось красиво. Просто я DMA в разработке вообще не использую. Просветите, плиз!
|
|
|
|
|
Mar 30 2008, 12:41
|

МедвеД Инженер I
   
Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951

|
Цитата(RHnd @ Mar 30 2008, 20:50)  Влезу с демонстрацией своего нубства. Как я понимаю, DMA - Direct Memory Acсess - инструмент для быстрого перекидывания данных. Похоже, я чего-то совсем не понимаю сути DMA и областей его использования, а, значит, неэффективно решаю какие-то задачи, но как DMA делает C2H ненужным? Если не затруднит, то не могли бы Вы поделится примерами использования DMA? Не кодом, а именно задачами - стояла такая задача, использовали при решении DMA таким-то образом, получилось красиво. Просто я DMA в разработке вообще не использую. Просветите, плиз!  верно понимаете суть дма. используется там где нужно процессор разгрузить, чем просто заниматься копированием данных из одного места в другое. Самый простой, и думаю самый яркий, пример - это использование дма для заполения видео памяти, а в это время....проц занят какиеми то другими более полезными вещами( можете сами нафантазировать какими). Другой пример использовать дма в маршрутизаторе - после того как определили кому(какому физ-кому порту) пакет нужен отдаём пакет на растерзание дма, а в это время...проц делает что то другое Просветил?
--------------------
Cogito ergo sum
|
|
|
|
|
Mar 30 2008, 23:20
|

МедвеД Инженер I
   
Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951

|
Цитата(RHnd @ Mar 31 2008, 06:27)  Хм. На данный момент я делаю так: Модуль, который должен принять/обработать/записать данные, снабжается мастер-портом, подключаемым к памяти с данными. Далее проц отдает этому модулю адрес откуда брать, адрес куда складывать и команду на старт. Проблема же взятия данных из памяти, укладки обратно и т.п. ложится на логику модуля и генерируемый сопсом арбитр памяти. Как такой подход выглядит по сравнению с использованием дма? Может, я жизнерадостно кручю самодельный велосипед? Ну видимо у вас много времени на этот велосипед. писал ведь уже Цитата 2)есть отличное средство и главное широко используемое это DMA, и главное не нужно заморачиваться с С2Н ну и писать для железа тоже не надо :-) всё уже придумано до нас да драйвер есть в составе ниоса в сутках как правило 24 часа  и тратить больше чем 8 часов на работу это глупо или овертайм. вам овертаймы оплачивают?
--------------------
Cogito ergo sum
|
|
|
|
|
Mar 31 2008, 12:03
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Postoroniy_V @ Mar 30 2008, 18:20)  Ну видимо у вас много времени на этот велосипед. писал ведь уже Позвольте с вами не согласиться, насколько я знаю SOPC Builder генерирует cross bar switch систему, для которой, в общем случае более эффективно использование большого количества простых ДМА контроллеров, встроенных в подмодули, нежили одного большого ДМА ИМХО. А простейший дма контроллер это КА на 3-4 состояния + счетчик адреса и пара регистров-дескрипторов. Это не такая уж и сложная и накладная логика для системы логика. Цитата в сутках как правило 24 часа  и тратить больше чем 8 часов на работу это глупо или овертайм. вам овертаймы оплачивают?  А как же хобби ?  ИМХО free style или реверс инженеринг на досуге самое то  Удачи!!
--------------------
|
|
|
|
|
Mar 31 2008, 23:07
|

МедвеД Инженер I
   
Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951

|
Цитата(des00 @ Mar 31 2008, 21:03)  Позвольте с вами не согласиться, насколько я знаю SOPC Builder генерирует cross bar switch систему, для которой, в общем случае более эффективно использование большого количества простых ДМА контроллеров, встроенных в подмодули, нежили одного большого ДМА ИМХО. А простейший дма контроллер это КА на 3-4 состояния + счетчик адреса и пара регистров-дескрипторов. Это не такая уж и сложная и накладная логика для системы логика. А как же хобби ?  ИМХО free style или реверс инженеринг на досуге самое то  Удачи!! в данном контексте, насколько я смог понять, RHnd пишет каждый раз слейв+мастер, суть мастера копирование данных. и на этом всё  . 1 мастер тоесть который только и делает что копирует данные. к нему нужно ещё софт написать и отладить. в противовес дма стандартному, где уже все есть  А вообщем я согласен что много дма лучше чем 1 большой  ...всё зависит от проекта. Автор же топика - хочет заюзать C2H для функций с которыми дма отлично справится  ИМХО
--------------------
Cogito ergo sum
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|