|
Работа с двухпортовой блочной памятью xilinx |
|
|
|
 |
Ответов
|
Oct 13 2014, 12:00
|
Гуру
     
Группа: Свой
Сообщений: 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 сам скорректирует, если путь вдруг слишком короткий и быстрый окажется.
---
Вдогонку... Работать на чтение по спаду есть смысл лишь в одном случае - если требуется эмулировать асинхронное ОЗУ, а есть только синхронное - то есть, считывать текущее записываемое данное из второго порта в том же такте, когда и происходит его же запись в первый порт. А иначе работа фронт-спад бессмысленна, и усугбляет временные соотношения, как я показал выше.
|
|
|
|
|
Oct 14 2014, 05:45
|
Частый гость
 
Группа: Свой
Сообщений: 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)?
|
|
|
|
|
Oct 14 2014, 10:14
|
Знающий
   
Группа: Свой
Сообщений: 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нс без него).На высоких тактовых частотах это может быть критично.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|