|
altera ddr2 sdram controller |
|
|
|
May 5 2007, 18:52
|
Участник

Группа: Свой
Сообщений: 43
Регистрация: 15-09-06
Пользователь №: 20 407

|
Хотелось бы опробовать альтеровский ddr2 контроллер, а как скачать с альтеры не ясно.  Если я правильно понял, то теперь только целиком установка megacore library требуется. Кто пользовался - какие впечатления? 400 МГц Stratix II потянет? Есть ли у кого сам контроллер или вся megacore library, поделитесь, pls.
|
|
|
|
|
May 5 2007, 20:28
|
Участник

Группа: Новичок
Сообщений: 66
Регистрация: 3-03-07
Пользователь №: 25 835

|
На ихнем фтп все что нужно лежит
|
|
|
|
|
May 7 2007, 08:20
|
Участник

Группа: Свой
Сообщений: 43
Регистрация: 15-09-06
Пользователь №: 20 407

|
Цитата(Пушкин @ May 6 2007, 00:28)  На ихнем фтп все что нужно лежит Чего-то не нашел я там ничего.  Есть University Program IP cores, но DDR2 там нет. Поделитесь у кого есть. Заранее благодарен.
|
|
|
|
|
May 7 2007, 10:01
|
Участник

Группа: Свой
Сообщений: 43
Регистрация: 15-09-06
Пользователь №: 20 407

|
Цитата(sazh @ May 7 2007, 13:46)  там есть например 70_ip_windows. 98M Там два контроллера ddrII Что в 71 еще не знаю. А можно ссылку, пожалуйста !!! То ли я не там ищу, то ли нет этого уже...
|
|
|
|
|
May 7 2007, 19:06
|
Участник

Группа: Свой
Сообщений: 43
Регистрация: 15-09-06
Пользователь №: 20 407

|
Цитата(sazh @ May 7 2007, 14:18)  на фтп альтеры удаленный каталог набирать все сразу /o_utg_oing/re_lea__se Спасибо большое!
|
|
|
|
|
Jul 2 2007, 17:05
|
Местный
  
Группа: Свой
Сообщений: 464
Регистрация: 1-10-04
Из: Челябинск
Пользователь №: 751

|
Если это про контроллер SDRAM DDR2 - то это ни о чем. Версия что распространяется как Megacore - покоцанная, по документам 266 Mhz, реально запускал на 300 - работает... Для полного варианта с динамическим обновлением DLL - говорят обращяйтесь лично в оффис ALTERы. Логика динамического обновления DLL мне не понятна, интересно было б узнать как. Минусы Megacore: 1. Схема ресинхронизации - совсем не очень, у меня получилось гораздо проще и совсем не проблеммно по фазе. 2. Выборка полосы пропускания памяти - никакая (работаем только с одним банком, откупорим - закупорим. При линейной записи - считывании нормально, при разбросанных запросах - (как память процессора) будут проблеммы с производительностью). А к примеру для 4 банковых устройств можно сделать одновременное открытие всех 4 банков, хранить можно до 4 открытых банков и тд - этого в Megacore нет. Плюсы: Быстрая проверка дизайна PCB и целостности чипов. Итого: Покупать это чудо не стоит, непонятно за что Altera деньги берет. Демо можно использовать для первоначального ознакомления с DDR SDRAM. Реально за неделю -полторы сделать самому контроллер DDR и не заморачиваться с Megacore. На Stratix 2 - с3 TOP с DLL легко получается 300 MHz, при увеличении длинны конвейеров можно натянуть на 333 MHz. Ключевая особенность при разработке - ручное размещение входных регистров (capture) и указания времени распространения от пинов до них (при большом времени  обратите внимание на входные программируемые задержки)...
|
|
|
|
|
Jul 2 2007, 18:30
|
Местный
  
Группа: Свой
Сообщений: 265
Регистрация: 15-03-05
Из: Москва
Пользователь №: 3 367

|
Цитата(Stas @ Jul 2 2007, 21:05)  Реально за неделю -полторы сделать самому контроллер DDR и не заморачиваться с Megacore. За это время реально сделать контроллер DDR ничем не лучше, чем контроллер от Altera. А чтобы сделать "нормальный" контроллер, нужно значительно больше времени. Не все так просто.
|
|
|
|
|
Jul 3 2007, 02:33
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Stas @ Jul 2 2007, 12:05)  1. Схема ресинхронизации - совсем не очень, у меня получилось гораздо проще и совсем не проблеммно по фазе. можно у вас узнать, для повышения образованности, а какую вы схему синхронизации реализовали ? Цитата 2. Выборка полосы пропускания памяти - никакая (работаем только с одним банком, откупорим - закупорим. При линейной записи - считывании нормально, при разбросанных запросах - (как память процессора) будут проблеммы с производительностью). А к примеру для 4 банковых устройств можно сделать одновременное открытие всех 4 банков, хранить можно до 4 открытых банков и тд - этого в А вы представляете во что выливаеться реализация логики обработки 4-х банков ? думаю что ни о каких 333 МГц в этом случае речи не будет, а будете конвейеризировать тогда либо просядете по латентности доступа либо не уложитесь в конвейер памяти. в свободное время я разрабатываю подобный контроллер, НО для сдрам 133МГц CL=3. логика занятная получаеться. Потом планирую выложить его в опенсорс.
--------------------
|
|
|
|
|
Jul 3 2007, 08:51
|
Участник

Группа: Новичок
Сообщений: 21
Регистрация: 2-02-06
Из: Киев
Пользователь №: 13 896

|
Цитата(sazh @ May 7 2007, 12:46)  там есть например 70_ip_windows. 98M Там два контроллера ddrII Что в 71 еще не знаю. А не подскажите-ли номер фичи (FEATURE хххх_yyyy) для ddr из ихнего ip-пака. а то квартус ругается , что таймлимит.
|
|
|
|
|
Jul 3 2007, 09:54
|
Местный
  
Группа: Свой
Сообщений: 464
Регистрация: 1-10-04
Из: Челябинск
Пользователь №: 751

|
можно у вас узнать, для повышения образованности, а какую вы схему синхронизации реализовали ?
Я в контракте подписывался о собственности заказчика на все мои поделки. Но тонко намекну: 2-x клоковое FIFO+сдвиговый регистр для передачи разрешения приема из генератора адреса в приемную часть. Так я делал в контроллере SSRAM DDR2 300MHz, так и в 2 - контроллерах SDRAM DDR2 . Метастабильности не замечено, но легкая заморочка при подборе длинны сдвигового регистра, что легко решаемо с SignalTap. Секретное комбо - сброс FIFO от задержанного сигнала готовности PLL.
А вы представляете во что выливаеться реализация логики обработки 4-х банков ? думаю что ни о каких 333 МГц в этом случае речи не будет, а будете конвейеризировать тогда либо просядете по латентности доступа либо не уложитесь в конвейер памяти.
Представляю. 4 банка выливаются не во много, и не понятно при чем тут латентность, наверно слово понравилось? Логика как у ALTERA'ы в моей поделке - это простенький автомат на 10 состояний + автомат инициализации на 19 состояний + 2 таймера с конвейерными входами управления и выходами. Обработка одновременно 4-х банков несложно. У меня ето реализовано как стек регистров с номерами банков, кол-во состояний базового автомата не изменилось, 310 тянет контроллер тянет, больше пока не надо, но резервы есть.... Одно но, я в своем контроллере не использую режим Power-down.
|
|
|
|
|
Jul 3 2007, 10:54
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
по датафлоу понятно, спасибо Цитата(Stas @ Jul 3 2007, 04:54)  А вы представляете во что выливаеться реализация логики обработки 4-х банков ? думаю что ни о каких 333 МГц в этом случае речи не будет, а будете конвейеризировать тогда либо просядете по латентности доступа либо не уложитесь в конвейер памяти.
Представляю. 4 банка выливаются не во много, и не понятно при чем тут латентность, наверно слово понравилось? Логика как у ALTERA'ы в моей поделке - это простенький автомат на 10 состояний + автомат инициализации на 19 состояний + 2 таймера с конвейерными входами управления и выходами. Обработка одновременно 4-х банков несложно. У меня ето реализовано как стек регистров с номерами банков, кол-во состояний базового автомата не изменилось, 310 тянет контроллер тянет, больше пока не надо, но резервы есть.... Одно но, я в своем контроллере не использую режим Power-down. похоже вы меня не так поняли. Если бы просто держать банки открытыми проблем бы не было но сдрам в момент act получает адресс ряда банка. и при доступе в разные строки одного банка все равно потребуеться закрыть и открыть банк. что например у сдрам cl = 3 занимает 6 тактов (на precharge + 3 act.). держать 4 банка открытыми хорошо когда идет доступ в пределах 1 ряда всех банков с редкой сменой номера ряда. Есть и такие апликации (особенно с длинным бурстом). Но рано или поздно банки все равно придеться закрыть, а закрыть их можно либо по очереди, либо все сразу. ИМХО при полностью случайном доступе держать открытым имеет смысл только 1 банк + очередь команд и логика конвейеризации команд act + prech. Про латентость доступа : контроллеры с подобной логикой имеет смысл делать только при наличии очереди команд + логика окна просмотра очереди команд на 1 и более команды. без такой очереди коэффициент увеличения полосы пропускания контроллера будет случайным, зависящим от кол-ва смены адреса ряда в банке . Про конвейеризацию : если распаралеливания обработки act+pre нет, то времени на декодирование следующей команды вагон, а если есть то желаемое время принятия решения для этого 2-3 такта, лишний такт конвейризации может сломать грамотно придуманый конвейер комманд. ЗЫ. Вы подали мне хорошую идею, надо сделать реализацию с 1 банком и всеми и погонять на симуляторе со случайным набором адресов и бурстов. и померить коэффициент использования полосы пропусания.
--------------------
|
|
|
|
|
Jul 3 2007, 11:17
|
Местный
  
Группа: Свой
Сообщений: 265
Регистрация: 15-03-05
Из: Москва
Пользователь №: 3 367

|
Stas, то есть в Вашей реализации контроллера DDR2 SDRAM оптимизация пропускной способности осуществляется только лишь поддержкой параллельного открытия до 4-х банков?
А вообще, все зависит от характеристик конкретной системы, в которой используется контроллер: где-то возможность поддержки параллельно открытых банков дает выигрыш по производительности, а где-то и существенный проигрыш.
Так что поддержка параллельно открытых нескольких банков - далеко не панацея для увеличения производительности, существует еще масса достаточно нетривиальных способов.
Понятие же "латентности" вполне применимо для случая контрллера DDR2 SDRAM. Кстати, если не секрет, какова латентность у Вашего контроллера, допустим по чтению? (т.е. количество тактов от момента принятия контроллером запроса на чтение с внешней стороны, до предоставления первых прочитанных данных внешней же стороне)
|
|
|
|
|
Jul 7 2007, 05:45
|
Местный
  
Группа: Свой
Сообщений: 464
Регистрация: 1-10-04
Из: Челябинск
Пользователь №: 751

|
Используем SDRAM c 8 банками, page 1 kB, режим работы с burst =8, шина 64 бит, линейное считываниие и запись, латентность значения не имеет. 4 открытых банка - специфика работы и есть ограничение ИМС на одновременное открытие более 4 банков. ИМХО в этом смысле 4 банковые устройства веселее. Собирается шина адреса в виде row_bank_col, по precharge открывается строка во всех 4 банках (есть такая малоописанная фича) и пишется/читается область в page*4, но опять же это удобно при линийных операциях. А вот про оптимизацию по пропускной способности было интересно услышать, но не с "академических позиций" а от реального опыта, ибо в новых работах предстоит...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|