|
Подключение синхронной SRAM, помогите разобраться с задержками и избежать состязаний на шине |
|
|
|
Oct 29 2010, 11:55
|
Местный
  
Группа: Свой
Сообщений: 244
Регистрация: 4-03-08
Из: Москва
Пользователь №: 35 621

|
Цитата(CaPpuCcino @ Oct 29 2010, 14:41)  кстати, а зачем вам ОЕ? там реальная течь получается? есть состязание на линиях? Промоделирую с реальным контроллером - скажу точнее; интуитивно казалось, что да. Сразу не стал с ним моделировать, потому что, получалось, каждая подстройка фазы тактового на память - это пересборка, но, видимо, придётся так (пока писал, пришла идея, как вообще всё сделать за 1 прогон). Цитата(CaPpuCcino @ Oct 29 2010, 13:48)  получается, что на 200 МГц с такими задержками память работать не будет в принципе. почему? Так выходило по задержкам; когда сдвигаешь фазу в одну сторону - шли ошибки при переходе R->W, в другую - при W->R, а при среднем значении цикл удавалось сократить только до где-то 6 нс (166 МГц), дальше начинались x-ы. В общем, спасибо всем за некий приданный импульс  - до того моделировал в чисто абстрактных условиях, теперь попробую подключить post-PAR-вариант контроллера. Косвенно связанный с темой вопрос: как в PlanAhead посмотреть, куда физически по топологии разместился триггер? Вывожу его в PlanAhead'овском schematic. В меню по правой кнопке есть разные "выделить" и "подсветить", и он подсвечивается на общем виде кристалла. Но это буквально пара точек на экране, которую тяжеловато искать каждый раз. А аналога знакомого по Altera 'найти на физической топологии (locate in ChipEditor, вроде бы называлось)', по которой его не только выделит, но и приблизит до какого-то удобного увеличения, я пока не нашёл.
--------------------
...а Сила, Брат - она - в несиловых решениях.
|
|
|
|
|
Oct 29 2010, 12:25
|
Профессионал
    
Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770

|
Цитата(Intekus @ Oct 29 2010, 15:55)  Так выходило по задержкам; когда сдвигаешь фазу в одну сторону - шли ошибки при переходе R->W, в другую - при W->R, а при среднем значении цикл удавалось сократить только до где-то 6 нс (166 МГц), дальше начинались x-ы. И это неудивительно - у памяти bus turnaround (время реакции на OE) 3 наны, с учетом буферов ПЛИС за такт не успеть на 200. Надо между чтением и записью просто пропускать такт, и все будет хорошо. Цитата(CaPpuCcino @ Oct 29 2010, 16:15)  просто мне казалось, что ОЕ вообще в современных SRAM - вещь факультативная, там вроде бы внутренние схемы выходы отключают самостоятельно при цикле записи. Нет разницы, каким сигналом будет переключаться шина - проблема очевидно (с учетом времянок памяти) в том, что turnaround не успевает произойти за такт вообще, поэтому получается не короткое наложение, а полное.
|
|
|
|
|
Oct 29 2010, 12:49
|

тоже уже Гуру
     
Группа: Свой
Сообщений: 2 047
Регистрация: 13-06-05
Из: Кёлн - Санкт-Петербург
Пользователь №: 5 973

|
Цитата(DmitryR @ Oct 29 2010, 15:25)  Нет разницы, каким сигналом будет переключаться шина - проблема очевидно (с учетом времянок памяти) в том, что turnaround не успевает произойти за такт вообще, поэтому получается не короткое наложение, а полное. ага, понятно, просто не посмотрел на абсолютные значения. Цитата(DmitryR @ Oct 29 2010, 15:25)  Надо между чтением и записью просто пропускать такт, и все будет хорошо. а вот это вы кажется что-то мудрите... но, будем подумать
--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
|
|
|
|
|
Oct 29 2010, 13:08
|
Местный
  
Группа: Свой
Сообщений: 244
Регистрация: 4-03-08
Из: Москва
Пользователь №: 35 621

|
Цитата(DmitryR @ Oct 29 2010, 16:25)  И это неудивительно - у памяти bus turnaround (время реакции на OE) 3 наны, с учетом буферов ПЛИС за такт не успеть на 200. Надо между чтением и записью просто пропускать такт, и все будет хорошо.
Нет разницы, каким сигналом будет переключаться шина - проблема очевидно (с учетом времянок памяти) в том, что turnaround не успевает произойти за такт вообще, поэтому получается не короткое наложение, а полное. Пропускать не хотелось, вот поэтому и была изначальная идея тактировать OE отдельным сдвинутым сигналом.
--------------------
...а Сила, Брат - она - в несиловых решениях.
|
|
|
|
|
Oct 29 2010, 13:40
|

тоже уже Гуру
     
Группа: Свой
Сообщений: 2 047
Регистрация: 13-06-05
Из: Кёлн - Санкт-Петербург
Пользователь №: 5 973

|
Цитата(DmitryR @ Oct 29 2010, 15:25)  И это неудивительно - у памяти bus turnaround (время реакции на OE) 3 наны, с учетом буферов ПЛИС за такт не успеть на 200. Надо между чтением и записью просто пропускать такт, и все будет хорошо. так и не понял зачем нужно пропускать. главное подтянуть выходной буфер в HZ. делать это можно на том же клоке(фронте), что и фронт захлопывающий данные в ПЛИС, если следующий такт записи в ОЗУ. выходы поднимутся через время примерно равное полупериоду. клок на ОЗУ приходит с задержкой(данные для записи тоже). всё будет зависеть от вр. установки сигнала на регистре OE_fpga + буфер выхода с ПЛИС + страйп. нужно смотреть что получается со временем и уже от этого плясать. Цитата(DmitryR @ Oct 29 2010, 16:29)  Так вот, в сумме эти три цифры дают (для LVCMOS33 24ma и самого быстрого грейда в ПЛИС) 1.55+3.1+0.62=5.27ns. UPD сорри я запоздал с постом. теперь понятно.
--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|