Jump to content
    

Чего то мне говорит что начиная с ддр2, уже не может, но могу и ошибаться...

У Альтеры даже для DDR3 можно ставить контроллер на логике. Лучше конечно хардовый, но это от FPGA будет зависеть. При генерации IP-ядра выбирается, какой контроллер будем ставить.

Share this post


Link to post
Share on other sites

Xilinx MPMC

И у Xilinx вроде давно уже есть контроллер памяти на логике, поддержка DDR3 и LPDDR2 в наличие... Про использование хардовых MCB нигде не говорится

Share this post


Link to post
Share on other sites

Xilinx MPMC

И у Xilinx вроде давно уже есть контроллер памяти на логике, поддержка DDR3 и LPDDR2 в наличие... Про использование хардовых MCB нигде не говорится

Это уж точно должно быть интересно и позновательно... :biggrin:

Share this post


Link to post
Share on other sites

В целом конечно я не прав. Все же вопрос частоты. Я как то не подумал что люди могут ставить DDR3 и работать с ним на 60 МГц... (условно все конечно)

Share this post


Link to post
Share on other sites

В целом конечно я не прав.

:a14:

 

Все же вопрос частоты. Я как то не подумал что люди могут ставить DDR3 и работать с ним на 60 МГц... (условно все конечно)

Для FPGA с которой сейчас работаю характеристики DDR3-контроллера на рисунке (или можете просмотреть cv_52006.pdf). Для FPGA Xiinx - поинтересуйтесь пожалуйста сами. Чтобы не получилось

ну пипец ваша ...

post-63539-1422267861_thumb.jpg

Share this post


Link to post
Share on other sites

Вам FIFO надо.

 

Данные поступают в FIFO а оттуда в DDR, через какой либо DMA контроллер.

 

Если данные нужны кому-то еще вы их читаете из ДДР, это приостанавливает DMA контроллер, и данные на время задержек падают в FIFO.

 

Ничего руками разруливать не надо, потому что проц не долбиться в шину постоянно (хотя может НИОС опять по чудному сделан, но надеюсь что нет). Вот и пока проц делает что-то еще, ДМА сам займет шину и успеет положить еще кусочек. Систему надо строить именно на таком принципе. Кстати ДДР контроллер разьве изначально не 2 портовый?

 

Вам надо перейти на следующий уровень абстракции, надо забыть про то какая у вас память, это забота контроллера, вы же не собираетесь еще сами следить за тем вовремя ли он подает ревреши, я надеюсь%)... Так же забота контроллера обеспечивать доступ к памяти по нескольким портам, во всяком случае у ксалинкс контроллер точно несколько портовый с арбитражем, наверяка у вас тоже, если это не так, то надо делать свой контроллер - арбитр, но не лезть к памяти напрямую, это дело контроллера памяти.

 

Обратите внимание что контроллер памяти ДДР - это не что-то собранное из вентилей ПЛИС, а отдельная область, готовый блок, слишком там все по таймингам не просто.

 

ФИФО максимум как я понял на 8 кБайт. Требуется считать 1.2 МБайт памяти. Пока будет задержка на переключения ддр2 плюс чтение из ддр2 фифо будет переполнена. Поэтому придется по кусочкам производить чтение. On-chip memory можно сделать двухпортовым, а DDR2 насколько мне известно работает либо на чтение либо на запись.

Share this post


Link to post
Share on other sites

ФИФО максимум как я понял на 8 кБайт. Требуется считать 1.2 МБайт памяти. Пока будет задержка на переключения ддр2 плюс чтение из ддр2 фифо будет переполнена. Поэтому придется по кусочкам производить чтение. On-chip memory можно сделать двухпортовым, а DDR2 насколько мне известно работает либо на чтение либо на запись.

Что за данные собираетесь писать, какова скорость потока?

 

Share this post


Link to post
Share on other sites

Что за данные собираетесь писать, какова скорость потока?

 

На входе приходят данные с АЦП со скоростью 60 мегаслов в секунду (1 слово = 8 бит). На выходе считываются данные со скоростью 2 мегаслова в секунду. Скорости потоков разные плюс надо не потерять входные данные. Объем выводимых данных 1.2 мегабайта.

Share this post


Link to post
Share on other sites

На входе приходят данные с АЦП со скоростью 60 мегаслов в секунду (1 слово = 8 бит). На выходе считываются данные со скоростью 2 мегаслова в секунду. Скорости потоков разные плюс надо не потерять входные данные. Объем выводимых данных 1.2 мегабайта.

А поясните, кто такие "вход" и "выход"? 8-бит АЦП с тактовой 60 МГц, а что такое 8-бит на 2МГц? Какое-то тут противоречие - нельзя писать данные 8*60 Mbit/s, а читать со скоростью 8*2 Mbit/s и не переполнить память?

Share this post


Link to post
Share on other sites

А поясните, кто такие "вход" и "выход"? 8-бит АЦП с тактовой 60 МГц, а что такое 8-бит на 2МГц? Какое-то тут противоречие - нельзя писать данные 8*60 Mbit/s, а читать со скоростью 8*2 Mbit/s и не переполнить память?

 

То что я пытаюсь сделать является маленьким блоком большого устройства. Входом условно назвал АЦП. Выходом назвал приемник (пользователь), т.е. устройство которое предоставляет пользователю наглядные данные (скорее всего экран). Приемник не постоянно считывает данные, а только по запросу (т.е. пришел человек к терминалу и нажал кнопку сказав: а выведи ка мне ты последние 1.2 МБайта данных которые пришли с АЦП). Между АЦП и Приемником нужно создать такой проект чтобы он связал их, т.к. у них разные скорости работы. Проблема возникает в том, что из-за разницы скоростей возникает момент, когда необходимо где то сохранить данные от АЦП во время чтения из ОЗУ этих 1.2 МБайта.

 

На рисунке под плис подразумевается процессор NIOS II и другие устройства которые управляют DDR2 и данными.

 

post-57122-1422431732_thumb.jpg

Share this post


Link to post
Share on other sites

Из Ваших пояснений не понятно, каким образом получается скорость чтения 8*2 Мbit/s, есть только желание получить объём данных в 1,2 МБ?

 

Share this post


Link to post
Share on other sites

Из Ваших пояснений не понятно, каким образом получается скорость чтения 8*2 Мbit/s, есть только желание получить объём данных в 1,2 МБ?

 

Чтение производится готовым блоком, что именно там я не знаю, но оно читает со скоростью 2 Мбайта/с и нужно выводить последние 1.2 МБайта данных

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...