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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> MIG, помогите разобратся.
hdlstarter
сообщение Jan 20 2009, 22:58
Сообщение #1


Участник
*

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



Нужно создать проект на основе Virtex-5 и памяти DDR2 MT47H128M8. Я с помощью MIG (Memory Interface Generator) создал кору для работы с данной памятью. Но я что-то не могу разобратся как она работает, так как ещё новичек программировании ПЛИС. Не могли бы вы кто имел опыт работы с этой корой объяснить на словах, как она работает со стороны пользователя?
Go to the top of the page
 
+Quote Post
YuP
сообщение Jan 21 2009, 05:23
Сообщение #2


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

Группа: Свой
Сообщений: 129
Регистрация: 28-11-06
Пользователь №: 22 854



Ну если на пальцах,то там есть фифо на адрес и фифо на данные.
С вашей стороны это выглядит просто как запись и чтение из фифо.Ни о какой инициализации и подзарядке вы не думаете,это уже реализовано в MIG(всё уже украдено до нас laughing.gif )

А если не на пальцах то прочитайте UG на MIG(не знаю какой версией софта вы пользуетесь).Раздел не двусмысленно называется User Interface Accesses.
Write Interface
Read Interface
Скриншоты с интерфейсом фифо не добавляю,думаю их найдете в этом документе,например UG086.


--------------------
Противник, вскрывающий ваши ошибки, гораздо полезнее, чем друг, скрывающий их. /Леонардо да Винчи/
Go to the top of the page
 
+Quote Post
hdlstarter
сообщение Jan 21 2009, 07:39
Сообщение #3


Участник
*

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



Спасибо, меня в основном интересовало вот это: "Ни о какой инициализации и подзарядке вы не думаете,это уже реализовано в MIG"
При компиляции уже выдаёт вот такие вот ошибки:

# Warning: ELAB1_0026: ddr2_sdram.vhd : (626, 0): There is no default binding for component "icon4".(No entity named "icon4" was found).
# Warning: ELAB1_0026: ddr2_sdram.vhd : (639, 0): There is no default binding for component "vio_async_in192".(No entity named "vio_async_in192" was found).
# Warning: ELAB1_0026: ddr2_sdram.vhd : (650, 0): There is no default binding for component "vio_async_in96".(No entity named "vio_async_in96" was found).
# Warning: ELAB1_0026: ddr2_sdram.vhd : (660, 0): There is no default binding for component "vio_async_in100".(No entity named "vio_async_in100" was found).
# Warning: ELAB1_0026: ddr2_sdram.vhd : (670, 0): There is no default binding for component "vio_sync_out32".(No entity named "vio_sync_out32" was found).

Где эти модули находятся?

А какую частоту нужно для памяти сгенерировать?
И если можно конечно, если у кого ссылки на документацию по поводу DDR2 на русском

Сообщение отредактировал hdlstarter - Jan 21 2009, 08:30
Go to the top of the page
 
+Quote Post
YuP
сообщение Jan 21 2009, 09:34
Сообщение #4


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

Группа: Свой
Сообщений: 129
Регистрация: 28-11-06
Пользователь №: 22 854



Цитата(hdlstarter @ Jan 21 2009, 10:39) *
А какую частоту нужно для памяти сгенерировать?
И если можно конечно, если у кого ссылки на документацию по поводу DDR2 на русском

SYS_CLK_P, SYS_CLK_N-Differential input clock to the DCM. The DDR2 controller and
memory operate at this frequency
CLK200_P, CLK200_N- Differential clock used in the idelay_ctrl logic.

А вообще просто настоятельно рекомендую ознакомиться с UG86!!!
Там всё разжовано очень хорошо,правда на супостатском английском laughing.gif
Но по другому никак.

http://www.dsioffe.narod.ru/mysdram/MyMicronSDRAM.htm
Русская инфа для начала


--------------------
Противник, вскрывающий ваши ошибки, гораздо полезнее, чем друг, скрывающий их. /Леонардо да Винчи/
Go to the top of the page
 
+Quote Post
hdlstarter
сообщение Jan 21 2009, 09:53
Сообщение #5


Участник
*

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



За ссылку очень спасибо. С UG86 сейчас подробно буду ознакамливатся. Я английский понимаю, но намного медленней читается чем родной, но ничего, надо привыкать.

А с помощью Virtex-5 и памяти DDR2 MT47H128M8, можно будет весь гектар этой памяти забить в течении одной секунды (адресса выставлятся будут в разброс)?
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jan 21 2009, 10:31
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(hdlstarter @ Jan 21 2009, 12:53) *
А с помощью Virtex-5 и памяти DDR2 MT47H128M8, можно будет весь гектар этой памяти забить в течении одной секунды (адресса выставлятся будут в разброс)?

Это сомнительно, так как пиковая производительность памяти равна 5.3 гигабода (333*8*2), однако при записи вразброс каждый раз будет CAS latency в пять тактов и две команды (RAS и CAS; precharge допустим автоматический). То есть скорость упадет раз в десять. Простой, но некрасивый выход - поставить две микросхемы (и два контроллера). Непростой, но красивый - поставить кэш. Простой и красивый - использовать RLDRAM.
Go to the top of the page
 
+Quote Post
hdlstarter
сообщение Jan 21 2009, 10:58
Сообщение #7


Участник
*

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



DmitryR, А где-нить почитать про RLDRAM почитать можно (желательно на-русском)? И чем он отличается от DDR2, кроме того что это память с низкими задержками??? На сколько она дороже? Сам интерфейс RLDRAM чем-то отличаетсяот DDR2? Ну и с помощью xilinx core generstor можно сгенерировать кору для работы с этой памятью?

Сообщение отредактировал hdlstarter - Jan 21 2009, 11:01
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jan 21 2009, 12:11
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(hdlstarter @ Jan 21 2009, 13:58) *
DmitryR, А где-нить почитать про RLDRAM почитать можно
Да, даташит на сайте производителя smile.gif

Цитата(hdlstarter @ Jan 21 2009, 13:58) *
(желательно на-русском)?
Вряд ли.

Цитата(hdlstarter @ Jan 21 2009, 13:58) *
И чем он отличается от DDR2, кроме того что это память с низкими задержками???
У нее интерфейс как у статической памяти. То есть она хорошо приспособлена для произвольного доступа.

Цитата(hdlstarter @ Jan 21 2009, 13:58) *
На сколько она дороже?
Ориентируйтесь на 10 раз примерно.

Цитата(hdlstarter @ Jan 21 2009, 13:58) *
Сам интерфейс RLDRAM чем-то отличаетсяот DDR2?
См. выше, не имеет ничего общего.

Цитата(hdlstarter @ Jan 21 2009, 13:58) *
Ну и с помощью xilinx core generstor можно сгенерировать кору для работы с этой памятью?
Да, тем же MIG.
Go to the top of the page
 
+Quote Post
hdlstarter
сообщение Jan 21 2009, 12:42
Сообщение #9


Участник
*

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



Цитата(DmitryR @ Jan 21 2009, 15:11) *
Да, даташит на сайте производителя smile.gif
Я просто на сайте micron посмотрел, там на один гигабайт памяти нет. Или это я плохо посмотрел?
Цитата(DmitryR @ Jan 21 2009, 15:11) *
Да, тем же MIG.
Вроде и MIG последней версии, но ничего про RLDRAM я не нашел


А если расмотреть другие ваши варианты, предложенные вами.


Цитата(DmitryR @ Jan 21 2009, 15:11) *
Простой, но некрасивый выход - поставить две микросхемы (и два контроллера).
Это как я понимаю, вместо одного DDR2 на гигабайт, использовать два DDR2 по 512 мегабайт???
Цитата(DmitryR @ Jan 21 2009, 15:11) *
Непростой, но красивый - поставить кэш.
А вот про это можно поподробнее. Принцип подключения и работы? Где про это можно почитать? Посмотреть пример проекта?
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jan 21 2009, 13:27
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(hdlstarter @ Jan 21 2009, 15:42) *
Я просто на сайте micron посмотрел, там на один гигабайт памяти нет. Или это я плохо посмотрел?
Нет, это правда. Однако обратите внимание, что приведенная вами микросхема DDR2 имеет емкость 1 гигабит, а не гигабайт. RLDRAM же вроде максимум пол-гигабита, так что надо ставить две.

Цитата(hdlstarter @ Jan 21 2009, 15:42) *
Вроде и MIG последней версии, но ничего про RLDRAM я не нашел
Упс, RLDRAM не поддерживается MIG в Virtex-5. Смотрите xapp852, там в конце есть ссылка на reference design.

Цитата(hdlstarter @ Jan 21 2009, 15:42) *
А если расмотреть другие ваши варианты, предложенные вами.
Это как я понимаю, вместо одного DDR2 на гигабайт, использовать два DDR2 по 512 мегабайт???
Да, можно и так, только логика конечно усложнится, вам придется исходящий поток данных раскидывать по двум контроллерам. Если же на один контроллер две микросхемы повесить, то в случае, когда несколько подряд записей попадают по адресам в одну микросхему все равно будет тормозить.

Цитата(hdlstarter @ Jan 21 2009, 15:42) *
А вот про это можно поподробнее. Принцип подключения и работы? Где про это можно почитать? Посмотреть пример проекта?
Используя внутреннюю память FPGA строится схема, которая накапливает данные, которые надо писать во внешнюю динамическую память, группируя их по адресам. То есть если адреса записи следуют например как 1-5-4-3-0-2-7-6, то эти данные записываются сначала в кэш, а затем в нормальном порядке пакетом записыватся в DDR2. Делается на основе CAM (content-adressable memory, в coregen есть). Однако, если адреса записи произвольно раскиданы по всей памяти, а не сгруппированы хотя бы по строкам, кэш не поможет.
Go to the top of the page
 
+Quote Post
hdlstarter
сообщение Jan 21 2009, 13:57
Сообщение #11


Участник
*

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



Цитата(DmitryR @ Jan 21 2009, 17:27) *
Нет, это правда. Однако обратите внимание, что приведенная вами микросхема DDR2 имеет емкость 1 гигабит, а не гигабайт.
Просто в описании микросхемы написано: "Density: 1Gb, Depth: 128Mb, width: x8 ", не ужели гигабит? я просто думал что гигабит, это 1Gbit. Если это действительно гигабит не посоветуете где можно найти микруху на гигабайт?
Цитата(DmitryR @ Jan 21 2009, 17:27) *
Используя внутреннюю память FPGA строится схема, которая накапливает данные, которые надо писать во внешнюю динамическую память, группируя их по адресам. То есть если адреса записи следуют например как 1-5-4-3-0-2-7-6, то эти данные записываются сначала в кэш, а затем в нормальном порядке пакетом записыватся в DDR2. Делается на основе CAM (content-adressable memory, в coregen есть). Однако, если адреса записи произвольно раскиданы по всей памяти, а не сгруппированы хотя бы по строкам, кэш не поможет.
О, спасибо за идею, у меня как раз адресса будут идти примерно так: 0, 500, 1000, 1500, 1, 501, 1001, 1501 и т.д.
Цитата(DmitryR)
Это сомнительно, так как пиковая производительность памяти равна 5.3 гигабода (333*8*2)
Если не тяжело обьясните как вы получили данное число? И что это число означает? Скорость памяти, если данные будут писатся подряд? А то что-то я защитался. Вообще какова у данной микросхемы будет скорость записи если адреса будут идти последовательно. Извините за глупые вопросы, просто в этом деле абсолютный новичек, охота разобратся.

Сообщение отредактировал hdlstarter - Jan 21 2009, 14:54
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jan 21 2009, 14:47
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(hdlstarter @ Jan 21 2009, 16:57) *
Просто в описании микросхемы написано: "Density: 1Gb, Depth: 128Mb, width: x8 ", не ужели гигабит? я просто думал что гигабит, это 1Gbit. Если это действительно гигабит не посоветуете где можно найти микруху на гигабайт?
Гигабайт будет 1 GB. Тем не менее там разъяснено дополнительно: Depth: 128Mb, width: x8. Если надо гигабайт - ставьте уже лучше UDIMM, микросхемы бывают максимум по 4 Gb.

Цитата(hdlstarter @ Jan 21 2009, 16:57) *
О, спасибо за идею, у меня как раз адресса будут идти примерно так: 0, 500, 1000, 1500, 1, 501, 1001, 1501 и т.д.
Ну это уже будет не совсем кэш, а просто буферные регистры: 4 восьмиразрядных слова по адресам 0-3 будут писаться как одно слово в тридцатидвухразрядный UDIMM.

Цитата(hdlstarter @ Jan 21 2009, 16:57) *
Если не тяжело обьясните как вы получили данное число? И что это число означает? Скорость памяти, если данные будут писатся подряд? А то что-то я защитался. Извините за глупые вопросы, просто в этом деле абсолютный новичек, охота разобратся.
Я же написал, как я его получил: умножил скорость памяти в 333 мегагерца на 8 разрядов и еще на 2, так как данные передаются дважды за такт. И эта скорость не будет достигнута, даже если писать подряд, так как если даже расчитывать, что контроллер команды с данными полностью перекроет то есть еще рефреш.
Go to the top of the page
 
+Quote Post
hdlstarter
сообщение Jan 21 2009, 15:38
Сообщение #13


Участник
*

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



Цитата(DmitryR @ Jan 21 2009, 17:47) *
Гигабайт будет 1 GB. Тем не менее там разъяснено дополнительно: Depth: 128Mb, width: x8. Если надо гигабайт - ставьте уже лучше UDIMM, микросхемы бывают максимум по 4 Gb.
Для UDIMM к примеру MT16HTF12864A, скорость обмена будет: 333*64*2=42624, это если по-порядку и без рефреша. И даже если не по порядку, то скорость как вы говорили упадет примерно в 10 раз, то это будет 4,2 гигабайта в секунду. Правильно я пощитал или нет?


И ещё вопрос, что означает параметр: Data Rate: 533 MT/s ???
Go to the top of the page
 
+Quote Post
hdlstarter
сообщение Jan 21 2009, 19:53
Сообщение #14


Участник
*

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



В общем по поводу "Data Rate", это я конечно по неопытности глупый вопрос задал. Я разобрался.

Но поможете вы мне разобраться например с микросхемой MT16HTF12864A. Я тут по даташиту все параметры пересчитал, мне кажется эта микросхема будет успевать записывать один гигабайт за секунду, даже записывая данные по произвольным случайным адрессам (не по порядку). Если я прав то подтвердите, если же нет, то обьясните почему не прав smile.gif Заранее всем спасибо за помощь.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jan 22 2009, 07:31
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(hdlstarter @ Jan 21 2009, 22:53) *
Но поможете вы мне разобраться например с микросхемой MT16HTF12864A. Я тут по даташиту все параметры пересчитал, мне кажется эта микросхема будет успевать записывать один гигабайт за секунду, даже записывая данные по произвольным случайным адрессам (не по порядку). Если я прав то подтвердите, если же нет, то обьясните почему не прав smile.gif Заранее всем спасибо за помощь.

Нет, вы не правы, так как опять перепутали биты с байтами. 333(Мгц)*64(_бита_)*2=42 гигаБИТ в секунду. Вам же надо 1 гигаБАЙТ в секунду, то есть 8 гигаБИТ в секунду. Разница всего впятеро, вряд ли успеете с произвольным доступом. А писать вы будете с точки зрения DIMM полностью вразброс, так как группировка адресов пойдет на формирование параллельного слова: у вас же данные по 8 бит я так понял, то есть для одной операции записи в 64 бита вам надо собрать в параллель адреса с 0 по 7.
В итоге дискуссия показывает, что вы себе для старта выбрали нереально сложную задачу, если конечно вы не сможете оптимизировать адресацию так, чтобы можно было писать последовательно.
Go to the top of the page
 
+Quote Post

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

 


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


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