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

 
 
> Работа с двухпортовой блочной памятью xilinx
gotcha
сообщение Oct 13 2014, 07:21
Сообщение #1


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

Группа: Свой
Сообщений: 115
Регистрация: 19-03-06
Пользователь №: 15 389



Подскажите, может чего-то не учел.

Использую true dual block memory сгенеренный из сoregen Xilinx под spartan3e, клок на кристалле 50МГц.
В порт А пишется инфа внешним устройством (частота меньше 25мгц).
Из порта В чтение и запись FSMкой на частоте 50мгц.
Т.к память синхронная на порт A подан клок прямой, на блок B через инвертор.
По идее setup\hold time выдержаны, коллизий не должно быть.

Сообщение отредактировал des00 - Oct 21 2014, 07:34
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SM
сообщение Oct 13 2014, 12:00
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Путь сигнала (допустим, что выход данных влияет на следующий вход данных или адреса) - Tco (clock-to-out) + Tsu = 2.82 нс + 1.26 нс = 4.08 нс. Если у Вас работа по фронту и у источника, и у приемника - то запас = 20 нс - 4.08 нс = 15.92 нс (на разводку и промежуточную логику). А если фронт-спад, то 10 нс-4.08нс = 5.92 нс. В данном конкретном случае это даже не вдвое жестче, а в 2.7 раз! Почти втрое жестче.

Про холды вообще забудьте, их PAR сам скорректирует, если путь вдруг слишком короткий и быстрый окажется.

---

Вдогонку... Работать на чтение по спаду есть смысл лишь в одном случае - если требуется эмулировать асинхронное ОЗУ, а есть только синхронное - то есть, считывать текущее записываемое данное из второго порта в том же такте, когда и происходит его же запись в первый порт. А иначе работа фронт-спад бессмысленна, и усугбляет временные соотношения, как я показал выше.
Go to the top of the page
 
+Quote Post
gotcha
сообщение Oct 14 2014, 05:45
Сообщение #3


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

Группа: Свой
Сообщений: 115
Регистрация: 19-03-06
Пользователь №: 15 389



Цитата(SM @ Oct 13 2014, 16:00) *
Путь сигнала (допустим, что выход данных влияет на следующий вход данных или адреса) - Tco (clock-to-out) + Tsu = 2.82 нс + 1.26 нс = 4.08 нс. Если у Вас работа по фронту и у источника, и у приемника - то запас = 20 нс - 4.08 нс = 15.92 нс (на разводку и промежуточную логику). А если фронт-спад, то 10 нс-4.08нс = 5.92 нс. В данном конкретном случае это даже не вдвое жестче, а в 2.7 раз! Почти втрое жестче.

Про холды вообще забудьте, их PAR сам скорректирует, если путь вдруг слишком короткий и быстрый окажется.

---

Вдогонку... Работать на чтение по спаду есть смысл лишь в одном случае - если требуется эмулировать асинхронное ОЗУ, а есть только синхронное - то есть, считывать текущее записываемое данное из второго порта в том же такте, когда и происходит его же запись в первый порт. А иначе работа фронт-спад бессмысленна, и усугбляет временные соотношения, как я показал выше.

Тогда все операции проходят в 3 такта (60нс). А если надо быстрее, разгоняем клок и получаем те же жесткие условия, что за собой может потянуть изменения FSMок (введения хэндшейка, задержек).

Если в проекте используется спад клока, хватает ли констрейнта на скважность (clock duty)?
Go to the top of the page
 
+Quote Post
SM
сообщение Oct 14 2014, 09:47
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(gotcha @ Oct 14 2014, 09:45) *
Тогда все операции проходят в 3 такта (60нс).

Это с какого перепуга? Считать данное из памяти можно уже на следующем такте после записи. То есть, задержка = 1 такт. А если читать по спаду, то за счет ужесточения setup-времянок можно добиться задержки в 0 (ноль) тактов. Откуда три то?
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Oct 14 2014, 10:14
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(SM @ Oct 14 2014, 16:47) *
Это с какого перепуга? Считать данное из памяти можно уже на следующем такте после записи. То есть, задержка = 1 такт. А если читать по спаду, то за счет ужесточения setup-времянок можно добиться задержки в 0 (ноль) тактов. Откуда три то?

Если речь идёт за блочную память,то транзитная задержка при одинаковых клоках на запись и чтение в принципе не может быть меньше 2 клоков(1 клок на запись и 1 клок на чтение).
Все игрища с rising/falling edge приведут лишь к тому, что будут считаны "старые" данные, т.е. то, что там лежало до цикла записи.

Кроме того, есть и ещё одна мелкая неприятность (речь идёт за Xilinx). Если задержка на чтение равна 1, то это означает что регистр в примитивах
блочной памяти не используется (если бы был использован задержка увеличилась бы до 2 клоков). В этом случае времянка по выходу шины данных памяти сильно ухудшается(например 0.5нС при включенном регистре и 1.5нс без него).На высоких тактовых частотах это может быть критично.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- gotcha   Работа с двухпортовой блочной памятью xilinx   Oct 13 2014, 07:21
- - SM   у true dual port памяти коллизий вообще быть не мо...   Oct 13 2014, 07:33
- - gotcha   Пардон, на порт B чтение и запись (отредактировал)...   Oct 13 2014, 07:40
|- - Bad0512   Цитата(gotcha @ Oct 13 2014, 14:40) Пардо...   Oct 13 2014, 08:04
- - gotcha   Надо реализовать 8 приемопередатчиков полудуплекс ...   Oct 13 2014, 09:14
|- - andrew_b   Цитата(gotcha @ Oct 13 2014, 13:14) если ...   Oct 13 2014, 09:47
|- - gotcha   Цитата(andrew_b @ Oct 13 2014, 13:47) Есл...   Oct 13 2014, 09:58
|- - SM   Цитата(gotcha @ Oct 13 2014, 13:58) А как...   Oct 13 2014, 10:32
|- - gotcha   Цитата(SM @ Oct 13 2014, 14:32) Инверсия ...   Oct 13 2014, 11:13
|- - gotcha   Цитата(SM @ Oct 14 2014, 13:47) Это с как...   Oct 14 2014, 10:03
|- - SM   Цитата(Bad0512 @ Oct 14 2014, 14:14) Если...   Oct 16 2014, 15:22
- - Maverick   Цитата(gotcha @ Oct 13 2014, 10:21) Подск...   Oct 17 2014, 06:43
- - gotcha   Есть ли рекомендации по синхронизации с двунаправл...   Oct 20 2014, 10:20
|- - Bad0512   Цитата(gotcha @ Oct 20 2014, 17:20) Есть ...   Oct 20 2014, 10:28
||- - gotcha   Цитата(Bad0512 @ Oct 20 2014, 14:28) В ПЛ...   Oct 20 2014, 10:33
||- - Maverick   Цитата(gotcha @ Oct 20 2014, 13:33) В мое...   Oct 21 2014, 09:29
|- - SM   Цитата(gotcha @ Oct 20 2014, 14:20) Доста...   Oct 20 2014, 10:55
|- - gotcha   Цитата(SM @ Oct 20 2014, 14:55) Надо data...   Oct 21 2014, 07:18
|- - SM   Цитата(gotcha @ Oct 21 2014, 11:18) Если ...   Oct 21 2014, 15:49
- - gotcha   Сделал так io буфер управляется напрямую Кодwire A...   Oct 24 2014, 06:44
- - SM   Цитата(gotcha @ Oct 24 2014, 10:44) Сдела...   Oct 25 2014, 06:10


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

 


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


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