Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: NIOSII: связка памяти с АЦП
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
CaKTYC
Доброе время суток)
Сразу оговорюсь - я студент, с NIOS только начинаю знакомство, разработка скорее всего останется только на бумаге (диплом).
Суть вопроса: есть аналоговый сигнал. По запросу требуется произвести 512 замеров этого сигнала через каждые 50нс. В одну область памяти надо складывать эти 512 отсчетов, а в другую область памяти надо записывать сумму этих 512ти замеров и результатов предыдущих измерений. После каждого цикла измерений проц производит анализ содержимого памяти и принимает решение производить ли еще один цикл или нет. Если нет, то проводит окончательную обработку инфы и выдает результат измерений.
Хочется забирать инфу с АЦП, записывать ее в первую область памяти и одновременно с этим производить подсуммирование и запись во вторую область. Пока не нашел решения с помощью стандартных модулей NIOS, которые доступны в SOPC.
Есть ли какие-нибудь идеи как это реализовать? Хотя бы в какую сторону копать =) Спасибо
slog
Тут проц то нужен только для для окончательного анализа, если вообще он нужен. Из внутреннуй памяти мегавизардом делаешь двухпортовую на 512 слов твоего АЦП. С одного порта пишешь в память выборки с АЦП через 50нс, одновременно суммируешь их сумматором, с другого порта читаешь из памяти ниосом что в ней оказалось. Из элементов SOPC наверно надо только Nios и интерфейс с авалона до двухпортовой памяти. Примерно так.
CaKTYC
Идея понятна. Спасибо. Не понял только что подразумевается под интерфейсом авалона до двухпортовой памяти. Можно как-нить подробнее объяснить?
CaKTYC
что-то я не понимаю видимо. Ведь если On-chip RAM включить в SOPC, то снаружи никак к этой памяти не обратиться. А если в квартусовском проекте сделать двухпортовую память, то нужен будет Avalon-MM Slave контроллер для этой памяти. Вот только в SOPC билдере я вижу только SRAM, SDRAM и т.д. контроллеры памяти. Просвятите неуча)
vadimuzzz
Цитата(CaKTYC @ Dec 12 2008, 01:56) *
... А если в квартусовском проекте сделать двухпортовую память, то нужен будет Avalon-MM Slave контроллер для этой памяти...

вот его и надо написать. как вариант "сляпать по-быстрому" - обращаться к внешней памяти через Tristate Bridge или через PIO. еще вроде в 8.1 видел SOPC-компонент двухпортовой памяти.
slog
Ради 512 слов городить внешнюю память не стоит, и тристэйт бридж не нужны. Onchip memory которая есть в SOPC не будет видна за пределами SOPC системы. Её можно как память для Nios использовать. Я имел ввиду другое. Запускаешь MegaWizard и в нем делаешь onchip двухпортовую память. Это будет не SOPC-элемент. Его надо подключить одним портом к Avalon, чтобы обращаться к этой памяти из Nios-a. Для этого наверно проще всего в SOPC сделать File->New Component. При его создании первые две закладки пропускаешь, на третьей указываешь необходимые сигналы к внешней памяти. Там все просто. Это будет просто ММ-мост для вывода Avalon сигналов наружу. Через него твоя двухпортовая память будет видна в адресном пространстве авалон. И что-то мне кажется этот порт у памяти лучше делать 32-х разрядным, независимо от ширины слова твоего АЦП, из ниоса проще будет обращаться. Просто у тебя у памяти порты будут разной ширины. В SOPC 8.1 элемента двухпортовой памяти не видел, делал ручками. Там все элементарно.
vadimuzzz
Цитата(slog @ Dec 12 2008, 11:15) *
. В SOPC 8.1 элемента двухпортовой памяти не видел, делал ручками. Там все элементарно.

Volume 5: Embedded Peripherals (ver 8.1, Nov 2008, 4 MB)
Section II. On-Chip Storage Peripherals (2 MB)

* Chapter 14. Avalon-ST Single Clock and Dual Clock FIFO Cores (ver 8.1.0, Nov 2008, 187 KB) Updated
* Chapter 15. On-Chip FIFO Memory Core (ver 8.1.0, Nov 2008, 226 KB) Updated
* Chapter 16. Avalon-ST Multi-Channel Shared Memory FIFO Core (ver 8.1.0, Nov 2008, 200 KB) Updated


http://altera.com/literature/hb/nios2/qts_qii55014.pdf
http://altera.com/literature/hb/nios2/qts_qii55002.pdf
http://altera.com/literature/hb/nios2/qts_qii55015.pdf
slog
Так тож FIFO. Я конечно с ним не разбирался, но только потому что по моим понятиям FIFO это совсем не память с произвольным доступом. Хотя для АЦП возможно и FIFO сойдёт.
CaKTYC
Огромное спасибо за помощь! Буду пробовать)
sazh
Цитата(CaKTYC @ Dec 11 2008, 20:01) *
Суть вопроса: есть аналоговый сигнал. По запросу требуется произвести 512 замеров этого сигнала через каждые 50нс. В одну область памяти надо складывать эти 512 отсчетов, а в другую область памяти надо записывать сумму этих 512ти замеров и результатов предыдущих измерений.


А конкретнее. В каждом измерении 512 отсчетов. Что складывать нужно? Одноименные отсчеты в каждом измерении?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.