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

 
 
> Процессор<-->ПЛИС. Асинхронный интерфейс, Как правильно сделать
winipuh
сообщение Nov 2 2012, 16:07
Сообщение #1


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

Группа: Участник
Сообщений: 127
Регистрация: 31-10-12
Пользователь №: 74 189



Добрый вечер. Прошу помощи по следующим вопросам.

ПЛИС (циклон 3) подключается к процессору через интерфейс асинхронной SRAM. Процессор может читать/писать внтуренние регистры ПЛИС.
Тактовая в ПЛИС - около 98 МГц, клок внешней шины процессора - около 101 МГц.
Прикрепленное изображение

Сигнал wr_stb - это строб записи внутри ПЛИС (полученный после цепочки триггеров для предотвращения метастабильности).
Возникли сомнения по поводу того как правильно организовать запись в ПЛИС.

1. Можно ли завести данные на вход регистра напрямую и использовать wr_stb в качестве сигнала clock enable?
Может ли возникнeть метастабильное состояние триггера при смене данных и при неактивном CE? Или это полностью безопасно?

2. Можно ли формировать clock enable для триггера, объединяя через логику линии адреса и wr_stb? Или же это может вызвать глитч на выходе LUT при изменениях на шине адреса и как следствие метастабильное состояние (из-за нарушения требования по setup/hold на входе CE триггера)? Согласно документации, у LUT-а в режиме двух входов глитч на выходе исключен. Однако где гарантия, что так получится при синтезе и quartus не будет использовать, например, все 4 входа LUT-а для wr_wtb и линий адреса?

3. Может быть использование общего сигнала wr_stb является неверными, а для каждого регистра нужно формировать свой строб записи, объединяя через логику ADDR, nCS и nWR, а затем пропуская через цепочку триггеров?

Ответов на эти вопросы в альтеровской документации пока не нашел, в инете тоже.
Так что буду благодарен всем откликнувшимся. sm.gif

Сообщение отредактировал winipuh - Nov 2 2012, 16:10
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MSL
сообщение Nov 8 2012, 07:56
Сообщение #2


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

Группа: Участник
Сообщений: 75
Регистрация: 25-07-04
Из: Rostov-on-Don
Пользователь №: 382



Цитата(winipuh @ Nov 8 2012, 00:18) *
Т.е. при нарушении требований по setup/hold для rdaddress-а во время чтения может испортиться содержимое памяти? blink.gif
А как это? Может мне кто-нибудь объяснить?


Ну такие требования есть для работы с любой памятью, вы ж не можете работать с памятью 10ns статикой на 200mhz, например-)) У вас же данные на адресах должны появиться раньше минимум на сетап тайм до строба записи и быть не менее холд тайм...

Я вообще тоже не могу понять зачем вам wr_wtb, зачем через него клок пускать... Записали данные и команду в статус - у вас появился сигнал (flag_start как пример в моих аттачах), по клоку плис если этот сигнал есть отрабатываете то что вам нужно и потом сбрасываете его. Если в данном случае так сильно боитесь метастабильности - ну пропусите этот сигнал через тригеры и ваш клок плис...
Go to the top of the page
 
+Quote Post
winipuh
сообщение Nov 8 2012, 10:46
Сообщение #3


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

Группа: Участник
Сообщений: 127
Регистрация: 31-10-12
Пользователь №: 74 189



Цитата(MSL @ Nov 8 2012, 11:56) *
Если в данном случае так сильно боитесь метастабильности - ну пропусите этот сигнал через тригеры и ваш клок плис...

Да нет, я уже кое-как в теме освоился, спасибо.
Заданный вопрос - вообщем-то простое любопытство, не более. sm.gif

Цитата(MSL @ Nov 8 2012, 11:56) *
Ну такие требования есть для работы с любой памятью, вы ж не можете работать с памятью 10ns статикой на 200mhz, например-)) У вас же данные на адресах должны появиться раньше минимум на сетап тайм до строба записи и быть не менее холд тайм...

Логично, что при нарушении времянок могут неправильно считаться данные.
Но как при чтении содержимое памяти может испортиться?
У меня, что называется, "разрыв шаблона"... sad.gif
Go to the top of the page
 
+Quote Post
maksimp
сообщение Nov 8 2012, 17:55
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 313
Регистрация: 2-07-11
Пользователь №: 66 023



Цитата(winipuh @ Nov 8 2012, 13:46) *
Но как при чтении содержимое памяти может испортиться?

Это такой особый прибабах циклона:

"Violating the setup or hold time on the memory block input registers might corrupt
the memory contents. This applies to both read and write operations."

Даташит на циклон 3, "Chapter 3: Memory Blocks in the Cyclone III Device Family", раздел "Clocking Modes", страница 3-15.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- winipuh   Процессор<-->ПЛИС. Асинхронный интерфейс   Nov 2 2012, 16:07
- - iosifk   Цитата(winipuh @ Nov 2 2012, 20:07) Добры...   Nov 2 2012, 18:11
- - zomg   Я так понимаю, что строб wr_stb формируется по сре...   Nov 2 2012, 18:23
|- - Shamil   Цитата(zomg @ Nov 3 2012, 00:23) 3. Делае...   Nov 3 2012, 04:00
- - winipuh   Спасибо, zomg.   Nov 2 2012, 18:58
- - Iptash   ЦитатаСигнал wr_stb - это строб записи внутри ПЛИС...   Nov 2 2012, 19:11
|- - winipuh   Цитата(Iptash @ Nov 2 2012, 23:11) Мне ка...   Nov 2 2012, 21:27
|- - Iptash   Цитата(winipuh @ Nov 3 2012, 01:27) Нет, ...   Nov 3 2012, 04:13
|- - mihalevski   Цитата(winipuh @ Nov 3 2012, 04:27) Нет, ...   Nov 3 2012, 16:45
- - zomg   2 Shamil: а как следующая запись наложится, если я...   Nov 3 2012, 08:37
|- - Shamil   Цитата(zomg @ Nov 3 2012, 14:37) 2 Shamil...   Nov 3 2012, 11:40
- - MSL   Прикручивал когда-то макс2 к ARMу, чтобы к максу м...   Nov 6 2012, 08:25
- - winipuh   Попутно возник вопрос по блочной памяти в циклоне-...   Nov 7 2012, 20:18
- - winipuh   Цитата(maksimp @ Nov 8 2012, 21:55) Это т...   Nov 8 2012, 19:39
- - MSL   Цитата(winipuh @ Nov 8 2012, 23:39) Вообщ...   Nov 8 2012, 20:53
- - maksimp   Цитата(winipuh @ Nov 8 2012, 22:39) Вообщ...   Nov 9 2012, 03:35
- - winipuh   Цитата(maksimp @ Nov 9 2012, 07:35) Мульт...   Nov 9 2012, 10:09
- - maksimp   Цитата(winipuh @ Nov 9 2012, 13:09) А это...   Nov 9 2012, 19:26


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

 


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


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