|
NIOS II, программирование ниос2 на СИ |
|
|
|
Jan 20 2015, 06:52
|
Участник

Группа: Участник
Сообщений: 65
Регистрация: 7-05-10
Пользователь №: 57 122

|
Здравствуйте, пишу программу на Си в ниос2 эклипс. Проект был собран в qsys, там имеется ниос2, DDR2, PIO, on-chip memory2 и т.д. Возник вопрос: как на языке Си обратиться например именно к выводу PIO или к шине адреса DDR2? Вставил несколько строк, но не знаю правильно ли сделал ALT_MODULE_CLASS_pio_in (PIO_IN_BASE, data_inp); ALT_MODULE_CLASS_pio_out_on (PIO_OUT_ON_BASE, data_out_on); ALT_MODULE_CLASS_pio_out (PIO_OUT_BASE, data_out); ALT_MODULE_CLASS_onchip_memory2_0 (ONCHIP_MEMORY2_0_BASE, on_chip);
|
|
|
|
|
 |
Ответов
|
Jan 23 2015, 11:59
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Вам FIFO надо.
Данные поступают в FIFO а оттуда в DDR, через какой либо DMA контроллер.
Если данные нужны кому-то еще вы их читаете из ДДР, это приостанавливает DMA контроллер, и данные на время задержек падают в FIFO.
Ничего руками разруливать не надо, потому что проц не долбиться в шину постоянно (хотя может НИОС опять по чудному сделан, но надеюсь что нет). Вот и пока проц делает что-то еще, ДМА сам займет шину и успеет положить еще кусочек. Систему надо строить именно на таком принципе. Кстати ДДР контроллер разьве изначально не 2 портовый?
Вам надо перейти на следующий уровень абстракции, надо забыть про то какая у вас память, это забота контроллера, вы же не собираетесь еще сами следить за тем вовремя ли он подает ревреши, я надеюсь%)... Так же забота контроллера обеспечивать доступ к памяти по нескольким портам, во всяком случае у ксалинкс контроллер точно несколько портовый с арбитражем, наверяка у вас тоже, если это не так, то надо делать свой контроллер - арбитр, но не лезть к памяти напрямую, это дело контроллера памяти.
Обратите внимание что контроллер памяти ДДР - это не что-то собранное из вентилей ПЛИС, а отдельная область, готовый блок, слишком там все по таймингам не просто.
|
|
|
|
|
Jan 28 2015, 06:26
|
Участник

Группа: Участник
Сообщений: 65
Регистрация: 7-05-10
Пользователь №: 57 122

|
Цитата(Golikov A. @ Jan 23 2015, 14:59)  Вам FIFO надо.
Данные поступают в FIFO а оттуда в DDR, через какой либо DMA контроллер.
Если данные нужны кому-то еще вы их читаете из ДДР, это приостанавливает DMA контроллер, и данные на время задержек падают в FIFO.
Ничего руками разруливать не надо, потому что проц не долбиться в шину постоянно (хотя может НИОС опять по чудному сделан, но надеюсь что нет). Вот и пока проц делает что-то еще, ДМА сам займет шину и успеет положить еще кусочек. Систему надо строить именно на таком принципе. Кстати ДДР контроллер разьве изначально не 2 портовый?
Вам надо перейти на следующий уровень абстракции, надо забыть про то какая у вас память, это забота контроллера, вы же не собираетесь еще сами следить за тем вовремя ли он подает ревреши, я надеюсь%)... Так же забота контроллера обеспечивать доступ к памяти по нескольким портам, во всяком случае у ксалинкс контроллер точно несколько портовый с арбитражем, наверяка у вас тоже, если это не так, то надо делать свой контроллер - арбитр, но не лезть к памяти напрямую, это дело контроллера памяти.
Обратите внимание что контроллер памяти ДДР - это не что-то собранное из вентилей ПЛИС, а отдельная область, готовый блок, слишком там все по таймингам не просто. ФИФО максимум как я понял на 8 кБайт. Требуется считать 1.2 МБайт памяти. Пока будет задержка на переключения ддр2 плюс чтение из ддр2 фифо будет переполнена. Поэтому придется по кусочкам производить чтение. On-chip memory можно сделать двухпортовым, а DDR2 насколько мне известно работает либо на чтение либо на запись.
|
|
|
|
|
Jan 28 2015, 07:08
|
Участник

Группа: Участник
Сообщений: 65
Регистрация: 7-05-10
Пользователь №: 57 122

|
Цитата(doom13 @ Jan 28 2015, 09:59)  Что за данные собираетесь писать, какова скорость потока? На входе приходят данные с АЦП со скоростью 60 мегаслов в секунду (1 слово = 8 бит). На выходе считываются данные со скоростью 2 мегаслова в секунду. Скорости потоков разные плюс надо не потерять входные данные. Объем выводимых данных 1.2 мегабайта.
|
|
|
|
Сообщений в этой теме
x66 NIOS II Jan 20 2015, 06:52 doom13 Цитата(x66 @ Jan 20 2015, 09:52) Здравств... Jan 20 2015, 07:55 x66 Цитата(doom13 @ Jan 20 2015, 10:55) Смотр... Jan 20 2015, 08:24  doom13 Цитата(x66 @ Jan 20 2015, 11:24) Все что ... Jan 20 2015, 08:36 Golikov A. DDR2 - это не просто статичная память, даже когда... Jan 20 2015, 08:38 doom13 Обманул Вас, для DDR2 как и для On-Chip Memory не ... Jan 20 2015, 08:49 x66 получается, что я могу работать только с адресами ... Jan 20 2015, 09:07 doom13 Цитата(x66 @ Jan 20 2015, 12:07) altera_a... Jan 20 2015, 09:09  x66 Цитата(doom13 @ Jan 20 2015, 12:09) Да, т... Jan 20 2015, 09:14  x66 Цитата(doom13 @ Jan 20 2015, 12:09) Да, т... Jan 20 2015, 09:19   doom13 Цитата(x66 @ Jan 20 2015, 12:19) В моем с... Jan 20 2015, 09:26 doom13 Цитата(x66 @ Jan 20 2015, 12:07) получает... Jan 20 2015, 09:16  x66 Цитата(doom13 @ Jan 20 2015, 12:16) Не со... Jan 20 2015, 09:22   doom13 Цитата(x66 @ Jan 20 2015, 12:22) Имеется ... Jan 20 2015, 09:42    x66 Цитата(doom13 @ Jan 20 2015, 12:42) Нет, ... Jan 20 2015, 09:57 Golikov A. С DDR можно работать как с памятью вообще
Для этог... Jan 20 2015, 09:21 Golikov A. нет
потому что нужно адрес не
int addr_on_chip=0x... Jan 20 2015, 09:24 x66 Цитата(Golikov A. @ Jan 20 2015, 12:24) н... Jan 20 2015, 09:36 Golikov A. имеет ввиду тоже что и я... просто ответил позже
... Jan 20 2015, 09:59 doom13 Цитата(Golikov A. @ Jan 20 2015, 12:59) В... Jan 20 2015, 10:19 serjj ЦитатаТолько вот в случае ниоса обращение к регист... Jan 20 2015, 10:26 x66 Когда смотрел примеры, на сайте альтеры нашел файл... Jan 20 2015, 10:45 doom13 Цитата(x66 @ Jan 20 2015, 13:45) Когда см... Jan 20 2015, 10:53  x66 Цитата(doom13 @ Jan 20 2015, 13:53) Сомне... Jan 20 2015, 11:00 Golikov A. Ну прекратите сбивать человека
ну возьмите вы свои... Jan 20 2015, 10:59 doom13 Цитата(Golikov A. @ Jan 20 2015, 13:59) Н... Jan 20 2015, 11:38 krux http://www.altera.com/literature/hb/nios2/n2sw_nii... Jan 20 2015, 11:00 Golikov A. ох...
ЦитатаПервый код будет работать, а второй не... Jan 20 2015, 11:51 doom13 Цитата(Golikov A. @ Jan 20 2015, 14:51) а... Jan 20 2015, 11:55 Golikov A. раскройте вы макрос и поглядите что в нем, я не сп... Jan 20 2015, 12:01 doom13 Цитата(Golikov A. @ Jan 20 2015, 14:58)
... Jan 20 2015, 12:24 Golikov A. ну пипец ваша альтера....
этож надо было придумат... Jan 20 2015, 12:28 doom13 Цитата(Golikov A. @ Jan 20 2015, 15:27) н... Jan 20 2015, 12:30 x66 Вот перевод http://www.naliwator.narod.ru/N2swHb9... Jan 20 2015, 12:30 Golikov A. Цитатат.е. вся дискуссия была для того, чтобы Вы с... Jan 20 2015, 13:12 doom13 Цитата(Golikov A. @ Jan 20 2015, 16:12) я... Jan 20 2015, 13:41 Golikov A. не надо передергивать
я говорил что никакой магии ... Jan 20 2015, 16:28 x66 Возник еще такой вопрос: во время переключения DDR... Jan 23 2015, 07:47 doom13 Цитата(x66 @ Jan 23 2015, 10:47) Возник е... Jan 23 2015, 08:39  x66 Цитата(doom13 @ Jan 23 2015, 11:39) Для п... Jan 23 2015, 08:50   doom13 Цитата(x66 @ Jan 23 2015, 11:50) я планир... Jan 23 2015, 08:54    x66 Цитата(doom13 @ Jan 23 2015, 11:54) Смотр... Jan 23 2015, 09:02     doom13 Цитата(x66 @ Jan 23 2015, 12:02) Проблема... Jan 23 2015, 11:16 doom13 Цитата(Golikov A. @ Jan 23 2015, 14:59) О... Jan 23 2015, 12:03    doom13 Цитата(x66 @ Jan 28 2015, 10:08) На входе... Jan 28 2015, 07:26     x66 Цитата(doom13 @ Jan 28 2015, 10:26) А поя... Jan 28 2015, 08:09      doom13 Цитата(x66 @ Jan 28 2015, 11:09)
Из Ваши... Jan 28 2015, 08:22       x66 Цитата(x66 @ Jan 28 2015, 11:09) Из Ваших... Jan 28 2015, 08:31        doom13 Цитата(x66 @ Jan 28 2015, 11:31) Чтение п... Jan 28 2015, 08:33         x66 Цитата(doom13 @ Jan 28 2015, 11:33) Т.е. ... Jan 28 2015, 08:35          doom13 Цитата(x66 @ Jan 28 2015, 11:35) нет, там... Jan 28 2015, 08:58           x66 Цитата(doom13 @ Jan 28 2015, 11:58) Что-т... Jan 28 2015, 09:03           x66 Цитата(doom13 @ Jan 28 2015, 11:58)
Уто... Jan 28 2015, 09:13 Golikov A. Чего то мне говорит что начиная с ддр2, уже не мож... Jan 23 2015, 17:44 doom13 Цитата(Golikov A. @ Jan 23 2015, 20:44) Ч... Jan 23 2015, 19:27 Golikov A. смело... Jan 23 2015, 21:48 doom13 Цитата(Golikov A. @ Jan 24 2015, 00:48) с... Jan 24 2015, 12:03 serjj Xilinx MPMC
И у Xilinx вроде давно уже есть контро... Jan 26 2015, 08:02 doom13 Цитата(serjj @ Jan 26 2015, 11:02) Xilinx... Jan 26 2015, 08:48 Golikov A. В целом конечно я не прав. Все же вопрос частоты. ... Jan 26 2015, 09:26 doom13 Цитата(Golikov A. @ Jan 26 2015, 12:26) В... Jan 26 2015, 10:24 Golikov A. БЛИН!
Ну пипец эта ваша альтера - это так что... Jan 28 2015, 08:59 doom13 Цитата(Golikov A. @ Jan 28 2015, 11:59) Б... Jan 28 2015, 09:11 doom13 Цитата(Golikov A. @ Jan 28 2015, 11:59) Б... Jan 28 2015, 10:32  x66 Цитата(doom13 @ Jan 28 2015, 13:17) В Qsy... Jan 28 2015, 10:37   doom13 Цитата(x66 @ Jan 28 2015, 13:37) А что ес... Jan 28 2015, 10:54    x66 Цитата(doom13 @ Jan 28 2015, 13:54) Вы мо... Jan 28 2015, 11:05     doom13 Цитата(x66 @ Jan 28 2015, 13:57) Можете п... Jan 28 2015, 11:06 Golikov A. ЦитатаЦелых два дня и две ночи Вы не спали - думал... Jan 28 2015, 10:35 doom13 Цитата(Golikov A. @ Jan 28 2015, 13:35) П... Jan 28 2015, 10:47 Golikov A. ЦитатаУточнил кое какую деталь: пользователь нажим... Jan 28 2015, 10:45 x66 Цитата(Golikov A. @ Jan 28 2015, 13:45) У... Jan 28 2015, 10:53 Golikov A. ЦитатаО каких 60 МГц говорили Вы - Вам виднее.
О с... Jan 28 2015, 11:12 x66 Цитата(Golikov A. @ Jan 28 2015, 14:12) В... Jan 28 2015, 11:34 doom13 Цитата(Golikov A. @ Jan 28 2015, 14:12) О... Jan 28 2015, 11:48 Timmy Цитата(Golikov A. @ Jan 28 2015, 14:12) В... Jan 28 2015, 11:50  doom13 Цитата(Timmy @ Jan 28 2015, 14:50) Остало... Jan 28 2015, 12:02   x66 Цитата(doom13 @ Jan 28 2015, 15:02) В DDR... Jan 28 2015, 13:44 Golikov A. Кстати а какая частота DDR2? Jan 28 2015, 12:23 doom13 Цитата(Golikov A. @ Jan 28 2015, 15:23) К... Jan 28 2015, 12:30  x66 Цитата(doom13 @ Jan 28 2015, 15:30) Это в... Jan 28 2015, 12:38 Golikov A. 200 МГц
Я ошибаюсь или пропускная способность так... Jan 28 2015, 12:39 x66 Цитата(Golikov A. @ Jan 28 2015, 15:39) 2... Jan 28 2015, 13:02  doom13 Цитата(x66 @ Jan 28 2015, 16:02) Цитата(G... Jan 28 2015, 13:22 Golikov A. а... 3.2 Гигабита...
А с учетом необходимой задер... Jan 28 2015, 13:39 doom13 Цитата(Golikov A. @ Jan 28 2015, 16:39) а... Jan 28 2015, 14:34 Golikov A. нет.
Надо просто линкеру указать что у него есть т... Jan 28 2015, 13:54 x66 Цитата(Golikov A. @ Jan 28 2015, 16:54) н... Jan 28 2015, 14:02  doom13 Цитата(x66 @ Jan 28 2015, 17:02) Кстати, ... Jan 28 2015, 14:14   x66 Цитата(doom13 @ Jan 28 2015, 17:14) Этого... Jan 28 2015, 14:22 Golikov A. Получается что я ошибся... мне только не понятно ч... Jan 28 2015, 14:34 doom13 Цитата(Golikov A. @ Jan 28 2015, 17:34) Е... Jan 28 2015, 14:52 Golikov A. Из полезного вот что надо сделать
надо ниосом в па... Jan 28 2015, 15:42 doom13 Цитата(Golikov A. @ Jan 28 2015, 18:42) К... Jan 28 2015, 16:55 Golikov A. А сколько тактов доступ к данным по шине Avalon? Н... Jan 28 2015, 17:20 doom13 Цитата(Golikov A. @ Jan 28 2015, 20:20) А... Jan 28 2015, 18:25
2 страниц
1 2 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|