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

 
 
 
Reply to this topicStart new topic
> NIOSII: связка памяти с АЦП
CaKTYC
сообщение Dec 11 2008, 17:01
Сообщение #1





Группа: Участник
Сообщений: 12
Регистрация: 11-12-08
Пользователь №: 42 389



Доброе время суток)
Сразу оговорюсь - я студент, с NIOS только начинаю знакомство, разработка скорее всего останется только на бумаге (диплом).
Суть вопроса: есть аналоговый сигнал. По запросу требуется произвести 512 замеров этого сигнала через каждые 50нс. В одну область памяти надо складывать эти 512 отсчетов, а в другую область памяти надо записывать сумму этих 512ти замеров и результатов предыдущих измерений. После каждого цикла измерений проц производит анализ содержимого памяти и принимает решение производить ли еще один цикл или нет. Если нет, то проводит окончательную обработку инфы и выдает результат измерений.
Хочется забирать инфу с АЦП, записывать ее в первую область памяти и одновременно с этим производить подсуммирование и запись во вторую область. Пока не нашел решения с помощью стандартных модулей NIOS, которые доступны в SOPC.
Есть ли какие-нибудь идеи как это реализовать? Хотя бы в какую сторону копать =) Спасибо
Go to the top of the page
 
+Quote Post
slog
сообщение Dec 11 2008, 17:27
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Тут проц то нужен только для для окончательного анализа, если вообще он нужен. Из внутреннуй памяти мегавизардом делаешь двухпортовую на 512 слов твоего АЦП. С одного порта пишешь в память выборки с АЦП через 50нс, одновременно суммируешь их сумматором, с другого порта читаешь из памяти ниосом что в ней оказалось. Из элементов SOPC наверно надо только Nios и интерфейс с авалона до двухпортовой памяти. Примерно так.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
CaKTYC
сообщение Dec 11 2008, 17:52
Сообщение #3





Группа: Участник
Сообщений: 12
Регистрация: 11-12-08
Пользователь №: 42 389



Идея понятна. Спасибо. Не понял только что подразумевается под интерфейсом авалона до двухпортовой памяти. Можно как-нить подробнее объяснить?
Go to the top of the page
 
+Quote Post
CaKTYC
сообщение Dec 11 2008, 19:56
Сообщение #4





Группа: Участник
Сообщений: 12
Регистрация: 11-12-08
Пользователь №: 42 389



что-то я не понимаю видимо. Ведь если On-chip RAM включить в SOPC, то снаружи никак к этой памяти не обратиться. А если в квартусовском проекте сделать двухпортовую память, то нужен будет Avalon-MM Slave контроллер для этой памяти. Вот только в SOPC билдере я вижу только SRAM, SDRAM и т.д. контроллеры памяти. Просвятите неуча)
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Dec 11 2008, 23:50
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(CaKTYC @ Dec 12 2008, 01:56) *
... А если в квартусовском проекте сделать двухпортовую память, то нужен будет Avalon-MM Slave контроллер для этой памяти...

вот его и надо написать. как вариант "сляпать по-быстрому" - обращаться к внешней памяти через Tristate Bridge или через PIO. еще вроде в 8.1 видел SOPC-компонент двухпортовой памяти.
Go to the top of the page
 
+Quote Post
slog
сообщение Dec 12 2008, 05:15
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Ради 512 слов городить внешнюю память не стоит, и тристэйт бридж не нужны. Onchip memory которая есть в SOPC не будет видна за пределами SOPC системы. Её можно как память для Nios использовать. Я имел ввиду другое. Запускаешь MegaWizard и в нем делаешь onchip двухпортовую память. Это будет не SOPC-элемент. Его надо подключить одним портом к Avalon, чтобы обращаться к этой памяти из Nios-a. Для этого наверно проще всего в SOPC сделать File->New Component. При его создании первые две закладки пропускаешь, на третьей указываешь необходимые сигналы к внешней памяти. Там все просто. Это будет просто ММ-мост для вывода Avalon сигналов наружу. Через него твоя двухпортовая память будет видна в адресном пространстве авалон. И что-то мне кажется этот порт у памяти лучше делать 32-х разрядным, независимо от ширины слова твоего АЦП, из ниоса проще будет обращаться. Просто у тебя у памяти порты будут разной ширины. В SOPC 8.1 элемента двухпортовой памяти не видел, делал ручками. Там все элементарно.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Dec 12 2008, 13:00
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(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
Go to the top of the page
 
+Quote Post
slog
сообщение Dec 14 2008, 16:22
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Так тож FIFO. Я конечно с ним не разбирался, но только потому что по моим понятиям FIFO это совсем не память с произвольным доступом. Хотя для АЦП возможно и FIFO сойдёт.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
CaKTYC
сообщение Dec 16 2008, 11:26
Сообщение #9





Группа: Участник
Сообщений: 12
Регистрация: 11-12-08
Пользователь №: 42 389



Огромное спасибо за помощь! Буду пробовать)
Go to the top of the page
 
+Quote Post
sazh
сообщение Dec 16 2008, 11:50
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(CaKTYC @ Dec 11 2008, 20:01) *
Суть вопроса: есть аналоговый сигнал. По запросу требуется произвести 512 замеров этого сигнала через каждые 50нс. В одну область памяти надо складывать эти 512 отсчетов, а в другую область памяти надо записывать сумму этих 512ти замеров и результатов предыдущих измерений.


А конкретнее. В каждом измерении 512 отсчетов. Что складывать нужно? Одноименные отсчеты в каждом измерении?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 07:22
Рейтинг@Mail.ru


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