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

 
 
> Память на плис, реализация памяти на VHDL или Coregen
Anton1990
сообщение Sep 17 2015, 05:21
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584



Все добрый день.
Использую виртекс6. Реализую промежуточный накопитель оцифрованного сигнала (16 бит) с АЦП с дискретизацией 200 МГц. и последующим сливом в ПК.
На VHDL реализовал накопитель. Вродебы все просто: в массив длинной 65536 загоняю сигнал и останавливаю запись. Далее медленно по PCI скачиваю данные. Сигнал тактирования разумеется законстрейнил (задал period). При компиляции не ругается. Вся конструкция работает, но наблюдается нестабильность от разводки к разведке проекта. При использовании FIFO созданного в Coregeneratore результат значительно лучше (практически нет глюков).
Вопрос: в чем отличие? Может я чего то незнаю? Какая нибудь потаенная галочка, констрейн или еще что?
Кстати памяти в плис используется немного всего 20 %.
Заранее спасибо за ответы.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Sep 17 2015, 18:36
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата
Вообще схема отработанная годами. Память в плис с точки зрения логики ее чтения ничем не отличается от большой кучи регистров. А следовательно проблема в правильной записи в эти ''регистры''.

то есть у вас все работает и проблем никаких нет, да?

наводящий вопрос
Как вы думаете регистр состоящий из Д триггеров, который может быть размещен в любом месте плис и ячейка памяти расположенная в блоке, с адресацией, имеют одинаковое время распространения сигнала от них до точки где данные захлопнуться?
Как вы думаете может такое получиться что вы выставите желаемый адрес по которому хотите считать данные так близко к моменту защелкивания данных, что не все сигналы успели дойти до регистра защелкивающего данные в другой части ПЛИС, к фронту клока управляющего этим регистром?
Go to the top of the page
 
+Quote Post
Anton1990
сообщение Sep 18 2015, 06:08
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584



Цитата(Golikov A. @ Sep 17 2015, 21:36) *
то есть у вас все работает и проблем никаких нет, да?

наводящий вопрос
Как вы думаете регистр состоящий из Д триггеров, который может быть размещен в любом месте плис и ячейка памяти расположенная в блоке, с адресацией, имеют одинаковое время распространения сигнала от них до точки где данные захлопнуться?
Как вы думаете может такое получиться что вы выставите желаемый адрес по которому хотите считать данные так близко к моменту защелкивания данных, что не все сигналы успели дойти до регистра защелкивающего данные в другой части ПЛИС, к фронту клока управляющего этим регистром?


По первой части ответ очевиден - время распространения разное.
По второй части вопрос не доконца понял. Но отвечу так. Если частота выставления адреса чтения очень низкая, то проблем быть не должно. Наверное.

Цитата(iosifk @ Sep 17 2015, 22:16) *
Вот две строки:

if rd'event and rd='1' then
bufDO(15 downto 0) <= Mem(conv_integer(Ard)); --вынимаем из памяти два отсчета данных
bufDO(31 downto 16) <= Mem(conv_integer(Ard+1));

Скажите, как происходит
Mem(conv_integer(Ard)); --вынимаем из памяти два отсчета данных

и Ard+1

Что там с латентностью? И насколько быстро произойдет "Ard+1" и потом Mem(conv_integer(Ard+1));
И все это за один фронт "rd'event and rd='1'" при том, что больше клоков то нет.... Только один этот фронт...
Т.е. это скорее всего счетчик, который идет на младшее слово. А с него же адрес идет на сумматор, и после сумматора на старшее??? Или это действительно две ячейки памяти и по выходу мультиплексор?

И если сравнивать с регистрами, то память медленнне раза в два....


Mem(conv_integer(Ard)); --вынимаем из памяти два отсчета данных
комментарий сразу к двум строкам относиться.

Что касается Ard+1, то у меня были по этому поводу сомнения. Взял да убрал чтения сразу двух отсчетов, теперь пишем в память 16 разрядов и читает из памяти 16 разрядов. Ну стало считываться в ПК в 2 раза медленнее ну и пофиг. НО общая проблема осталась.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Anton1990   Память на плис   Sep 17 2015, 05:21
- - Maverick   Цитата(Anton1990 @ Sep 17 2015, 08:21) Вс...   Sep 17 2015, 05:28
|- - Krys   Цитата(Maverick @ Sep 17 2015, 12:28) дву...   Sep 17 2015, 06:03
- - blackfin   Цитата(Anton1990 @ Sep 17 2015, 08:21) Си...   Sep 17 2015, 05:41
- - Golikov A.   Цитатана двухпортовой памяти с независимыми клокам...   Sep 17 2015, 06:18
|- - blackfin   Цитата(Golikov A. @ Sep 17 2015, 09:18) д...   Sep 17 2015, 06:24
- - Golikov A.   в том что скачиваться данные из памяти могут на од...   Sep 17 2015, 06:52
|- - Anton1990   Цитата(Golikov A. @ Sep 17 2015, 09:52) в...   Sep 17 2015, 08:07
- - Golikov A.   ЦитатаЕще раз. В память данные пишутся на 200 МГц ...   Sep 17 2015, 08:22
|- - Anton1990   Цитата(Golikov A. @ Sep 17 2015, 11:22) к...   Sep 17 2015, 08:36
|- - Maverick   Цитата(Anton1990 @ Sep 17 2015, 11:36) Ни...   Sep 17 2015, 09:02
- - iosifk   Цитата(Anton1990 @ Sep 17 2015, 08:21) Пр...   Sep 17 2015, 09:06
|- - Maverick   Цитата(iosifk @ Sep 17 2015, 12:06) Про к...   Sep 17 2015, 09:10
|- - Anton1990   Цитата(iosifk @ Sep 17 2015, 12:06) Я для...   Sep 17 2015, 09:21
|- - Maverick   Цитата(Anton1990 @ Sep 17 2015, 12:21) А ...   Sep 17 2015, 09:25
|- - iosifk   Цитата(Anton1990 @ Sep 17 2015, 12:21) Ну...   Sep 17 2015, 09:29
|- - Anton1990   Цитата(iosifk @ Sep 17 2015, 12:29) Тогда...   Sep 17 2015, 12:45
|- - iosifk   Цитата(Anton1990 @ Sep 17 2015, 15:45) Си...   Sep 17 2015, 13:06
|- - Maverick   Цитата(Anton1990 @ Sep 17 2015, 15:45) Вы...   Sep 17 2015, 13:06
|- - Anton1990   Цитата(Maverick @ Sep 17 2015, 16:06) я н...   Sep 17 2015, 13:12
||- - Maverick   Цитата(Anton1990 @ Sep 17 2015, 16:12) А ...   Sep 17 2015, 13:22
|- - Anton1990   Цитата(Maverick @ Sep 17 2015, 16:06) я н...   Sep 17 2015, 13:48
|- - Krys   Цитата(Anton1990 @ Sep 17 2015, 20:48) Ту...   Sep 18 2015, 08:05
- - Golikov A.   есть, потому что синтезаторы анализирует текст на ...   Sep 17 2015, 13:25
- - Golikov A.   строго говоря я думаю что именно в этом случае син...   Sep 17 2015, 13:59
|- - Anton1990   Цитата(Golikov A. @ Sep 17 2015, 16:59) с...   Sep 17 2015, 14:41
|- - iosifk   Цитата(Golikov A. @ Sep 17 2015, 21:36) т...   Sep 17 2015, 19:16
|- - Maverick   Цитата(Anton1990 @ Sep 18 2015, 09:08) О...   Sep 18 2015, 06:56
- - Golikov A.   ЦитатаЕсли частота выставления адреса чтения очень...   Sep 18 2015, 06:25


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

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 21:31
Рейтинг@Mail.ru


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