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

 
 
> Память для плис
sergey sva
сообщение Nov 13 2010, 15:59
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



плисы программировать пока не приходилось, но скоро наверно придется разбираться с такой задачей.
нужно обрабатывать около 32 дискретных сигналов (частота максимум 1мгц) и 10 сигналов до 5мгц подсчитывать длительность импульсов усреднять и результат выводить в SPI. С плисами пока не занимался поэтому возникает вопрос если сигналы усреднять
нужно будет сохранять n результатов складывать делить... значит нужна будет память (озу)? Какую память лучше использовать вот не плохая MT47H32M16 ? Что может дополнительно пригодится еще кроме памяти для такой задачи?
плис EP1С3 (циклон1)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 11)
vitan
сообщение Nov 13 2010, 16:07
Сообщение #2


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Цитата(sergey sva @ Nov 13 2010, 18:59) *
плисы программировать ...
складывать делить...

В последнее время что-то постоянно такие желания у народа появляются.
Ну не программирование это. Это - конфигурирование внутренних ресурсов ПЛИС.
Вы хотите обойтись высокоуровневым описанием? Готовьтесь к неработающему проекту и длительному чтению мануалов.
Если хотите быстро получить нормальные результаты, забудьте о программировании и представьте себе _схему_, которая выполнит Ваше задание. Приступайте только после этого.
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Nov 13 2010, 16:25
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Понятно что плис это логика, Поэтому и спрашиваю что раньше не занимался. Память можно и с spi прицепить. Просто если кто занимался скажет: нет это будет не удобно потом придется городить лишнее что то .....
Или для этой задачи может еще потребоваться кроме памяти.....
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Nov 13 2010, 16:48
Сообщение #4


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



..память вы выбрали DDR2 , значит придётся ставит контроллер к ней в плис и с ним разбираться ещё . Может вам подойдёт какая-нибудь SRAM ? У вас же не потоки идут , а просто грубо говоря 40 с чем-то автоматов меряют параметры импульсов , усредняют и кладут результат в память, она может вам большая и не нужна такая и скорости может поскромнее . Вы подсчитывали требуемые мощности на обработку ?
Вам бы надо сделать связку плис - память - проц , плис кладёт в память какие-то сырые данные , проц от туда их берёт и обрабатывает .


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Nov 13 2010, 17:24
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Цитата
Вы подсчитывали требуемые мощности на обработку ?

Схему которую нужно сделать в плис представляю так:
42 сигнала поступают на 42 счетчика32р когда сигнал активный счетчик начинает считать когда сигнал пропадает результат измерения умножается на 1/clk результат нужно поместить в память (32бита) и так много раз должно измерятся но не больше 50,
когда будет 50 взять все результаты суммировать и разделить на кол. измерений и отправить в мк.
памяти рабочей много не нужно 50*42 *4 =8400 10кб Может конечно можно и по другому сделать ?
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Nov 13 2010, 17:40
Сообщение #6


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



Делить в ПЛИС на что-то отличное от степени двойки несколько затруднительно . Ну и хорошо что памяти надо так мало уже вроде как DDR2 на 16 Мбайт сразу ни к чему smile.gif .
Осталось разобраться с вопросом что значит активный сигнал ? ..если активный сигнал это череда смен едениц и нулей то это одно , а если активный сигнал это наличие на соответствующем входе ограниченного по времени состояния (1 или 0) то это другое . От этого зависит как именно вы будете узнавать что измеряемое событие у вас начало происходить , с этим надо разобраться. Это я к тому что в первом посте вы говорили об измерении длительности импульсов а не о подсчёте их количеств.

Ну пусть у вас будет 42 счётчика , по какому-то измерительному интервалу с них со всех будет сняты показания и эти показания надо поместить в память (умножать на частоту ни к чему - это всё равно константа общая для всех измерений) , надо думать что и разрядность в 32 бита ни к чему если вы не собираетесь измерять ваши сигналы дольше чем 1 секунду . Результаты можно помещать , каждый по своему адресу в память суммируя с содержимым уже по этому адресу. Делить не обязательно, чтобы не тратить ресурсы понапрасну . Можно будет потом в МК просто дообработать ваши результаты .

Итого вам надо 42 ячейки памяти по (ну пусть будет smile.gif ) 32 бита , а на самом деле ещё меньше , такого объёма вполне можно найти и в самой ПЛИС если конкретно в вашей плис стока памяти не найдётся - поставьте небольшую SRAM-ку


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Nov 13 2010, 18:12
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Цитата
Осталось разобраться с вопросом что значит активный сигнал ? ..если активный сигнал это череда смен едениц и нулей то это одно , а если активный сигнал это наличие на соответствующем входе ограниченного по времени состояния (1 или 0) то это другое .

Активный когда на одном из входов 1 и не активный когда 0. может быть и дольше одной секунды но тогда нужно будет ошибку выдавать в мк. Еще смущает такой момент сигналов 42 они не зависимы друг от друга на одном например может быть 1мгц а на другом 500кгц а память будет одна, если одновременно несколько сигналов (а может и все 42) установятся в 0 то их можно не успеть записать в Sram , так прикинул за 0,5-1 мкс нужно успеть записать 42 сигнала 42*4 = 168 байт за 0,5мкс скорость получается 340мб может конечно что то не так посчитал.

Цитата
От этого зависит как именно вы будете узнавать что измеряемое событие у вас начало происходить , с этим надо разобраться. Это я к тому что в первом посте вы говорили об измерении длительности импульсов а не о подсчёте их количеств.

Думал так когда на входе 1 подавать на счетчик импульсы clk когда ноль записывать в память и обнулять счетчик.
только получается точность будет зависеть от длительности импульса.
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Nov 13 2010, 18:32
Сообщение #8


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



Цитата(sergey sva @ Nov 13 2010, 21:06) *
Активный когда на одном из входов 1 и не активный когда 0. может быть и дольше одной секунды но тогда нужно будет ошибку выдавать в мк. Еще смущает такой момент сигналов 42 они не зависимы друг от друга на одном например может быть 1мгц а на другом 500кгц а память будет одна, если одновременно несколько сигналов (а может и все 42) установятся в 0 то их можно не успеть записать в Sram , так прикинул за 0,5-1 мкс нужно успеть записать 42 сигнала 42*4 = 168 байт за 0,5мкс скорость получается 340мб может конечно что то не так посчитал.


..ну пусть так . Пришла единица в канал, что мы делаем ? Увеличим на единицу счётчик событий - это раз , второе начинаем собственно подсчитывать в тактах длительность этой единицы , по окончанию события - пишем результат в запоминающий регистр канала (записываем состояния счётчика событий + значение счётчика длинны импульса) , сбрасываем значение счётчика длинны импульсов .
И так по всем 42 каналам . Всю систему нужно сделать синхронной (работающей от одного источника клоков) , в таком случае опрос выходных регистров с последующей передачей их значений в память не составит проблемы. передавать данные в память можно в то время как идёт новый подсчёт, по этому не имеет значения что разные каналы у нас будут одновременно заканчивать подсчёт . Последовательно всё время обегаем все 42 канала и смотрим готов к передаче данных в память или нет .
В худшем случае , если по всем каналам всё время будут идти короткие импульсы 1 мкс и ещё по 10 каналам 200 нс , тогда конечно передавать в память 42 * 32 бита будет проблематично , в таком случае нужно суммировать непосредственно в каждом канале со значением хранящимся в его канальном регистре , а передавать в память только результат за 50 измерений.

Цитата
Думал так когда на входе 1 подавать на счетчик импульсы clk когда ноль записывать в память и обнулять счетчик.
только получается точность будет зависеть от длительности импульса.


..точность будет по любому зависеть от длинны импульса , просто если быстро-быстро измерять то можно добиться приемлемой точности в худшем случае. Если у вас самые короткие импульсы - 200 нс то что бы измерять с точностью около процента надо мерить на частоте что-то около 500 МГЦ что наверное не наш случай . Наверное по этому вы и проводите серию измерений чтобы усреднить и получить ответ близкий к правде .


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
iosifk
сообщение Nov 15 2010, 06:31
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(sergey sva @ Nov 13 2010, 22:12) *
Еще смущает такой момент сигналов 42 они не зависимы друг от друга на одном например может быть 1мгц а на другом 500кгц а память будет одна, если одновременно несколько сигналов (а может и все 42) установятся в 0 то их можно не успеть записать в Sram , так прикинул за 0,5-1 мкс нужно успеть записать 42 сигнала 42*4 = 168 байт за 0,5мкс скорость получается 340мб может конечно что то не так посчитал.


Это все так, но только трошечки не так....
Сегодня в ПЛИС тактовая в 50 мгц не проблема. А потому ставим 42 блока привязки к внутренней тактовой, 1 счетчик и 1 командоаппарат, который вполне успеет опросить 50 входов по-очередно и сделать 50 инкрементов значений счетчика. И эти значения забросить в память, а из памяти взять значения для других каналов. Я такое описывал в статьях... Кстати, все тоже самое может делать какой-нибудь быстрый микроконтроллер, например Блэкфин, благо у них есть теперь чипы с флэшью...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Nov 17 2010, 15:18
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Такой вопрос память подобрал AS7C34096A Sram, думаю подключить можно ее к любым портам ep1c3 (кроме тех которые нужны для работы Jtag и flash) может конечно есть какие грабли ?
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Nov 19 2010, 15:45
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Ну с памятью понятно тонкостей нет, а как с сопряжением с мк есть тонкости ?
просто иногда бывает например когда устройство готово нужно сделать программу и в процессе программирования уже начинают всплывать нюансы это было бы лучше подключить сюда и тд ... что лучше spi и просто прицепить портов 16 например для at91sam7?
Go to the top of the page
 
+Quote Post
vitan
сообщение Nov 19 2010, 15:52
Сообщение #12


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Можно случайно забыть, что есть пины, которые могут использоваться только для входа. Можно использовать как пользовательские те пины, которые могут понадобиться для конфигурации\отладки (например, JTAG). Можно тактовую частоту не туда завести. И других много можно граблей найти... smile.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 18:36
Рейтинг@Mail.ru


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