Golikov 0 January 23, 2015 Posted January 23, 2015 · Report post Чего то мне говорит что начиная с ддр2, уже не может, но могу и ошибаться... Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 January 23, 2015 Posted January 23, 2015 · Report post Чего то мне говорит что начиная с ддр2, уже не может, но могу и ошибаться... У Альтеры даже для DDR3 можно ставить контроллер на логике. Лучше конечно хардовый, но это от FPGA будет зависеть. При генерации IP-ядра выбирается, какой контроллер будем ставить. Quote Share this post Link to post Share on other sites More sharing options...
Golikov 0 January 23, 2015 Posted January 23, 2015 · Report post смело... Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 January 24, 2015 Posted January 24, 2015 · Report post смело... Думаю, это будет полезно Вам узнать. Тут ещё, но для более старых девайсов и только half rate. Quote Share this post Link to post Share on other sites More sharing options...
serjj1333 0 January 26, 2015 Posted January 26, 2015 · Report post Xilinx MPMC И у Xilinx вроде давно уже есть контроллер памяти на логике, поддержка DDR3 и LPDDR2 в наличие... Про использование хардовых MCB нигде не говорится Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 January 26, 2015 Posted January 26, 2015 · Report post Xilinx MPMC И у Xilinx вроде давно уже есть контроллер памяти на логике, поддержка DDR3 и LPDDR2 в наличие... Про использование хардовых MCB нигде не говорится Это уж точно должно быть интересно и позновательно... Quote Share this post Link to post Share on other sites More sharing options...
Golikov 0 January 26, 2015 Posted January 26, 2015 · Report post В целом конечно я не прав. Все же вопрос частоты. Я как то не подумал что люди могут ставить DDR3 и работать с ним на 60 МГц... (условно все конечно) Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 January 26, 2015 Posted January 26, 2015 · Report post В целом конечно я не прав. :a14: Все же вопрос частоты. Я как то не подумал что люди могут ставить DDR3 и работать с ним на 60 МГц... (условно все конечно) Для FPGA с которой сейчас работаю характеристики DDR3-контроллера на рисунке (или можете просмотреть cv_52006.pdf). Для FPGA Xiinx - поинтересуйтесь пожалуйста сами. Чтобы не получилось ну пипец ваша ... Quote Share this post Link to post Share on other sites More sharing options...
x66 0 January 28, 2015 Posted January 28, 2015 · Report post Вам FIFO надо. Данные поступают в FIFO а оттуда в DDR, через какой либо DMA контроллер. Если данные нужны кому-то еще вы их читаете из ДДР, это приостанавливает DMA контроллер, и данные на время задержек падают в FIFO. Ничего руками разруливать не надо, потому что проц не долбиться в шину постоянно (хотя может НИОС опять по чудному сделан, но надеюсь что нет). Вот и пока проц делает что-то еще, ДМА сам займет шину и успеет положить еще кусочек. Систему надо строить именно на таком принципе. Кстати ДДР контроллер разьве изначально не 2 портовый? Вам надо перейти на следующий уровень абстракции, надо забыть про то какая у вас память, это забота контроллера, вы же не собираетесь еще сами следить за тем вовремя ли он подает ревреши, я надеюсь%)... Так же забота контроллера обеспечивать доступ к памяти по нескольким портам, во всяком случае у ксалинкс контроллер точно несколько портовый с арбитражем, наверяка у вас тоже, если это не так, то надо делать свой контроллер - арбитр, но не лезть к памяти напрямую, это дело контроллера памяти. Обратите внимание что контроллер памяти ДДР - это не что-то собранное из вентилей ПЛИС, а отдельная область, готовый блок, слишком там все по таймингам не просто. ФИФО максимум как я понял на 8 кБайт. Требуется считать 1.2 МБайт памяти. Пока будет задержка на переключения ддр2 плюс чтение из ддр2 фифо будет переполнена. Поэтому придется по кусочкам производить чтение. On-chip memory можно сделать двухпортовым, а DDR2 насколько мне известно работает либо на чтение либо на запись. Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 January 28, 2015 Posted January 28, 2015 · Report post ФИФО максимум как я понял на 8 кБайт. Требуется считать 1.2 МБайт памяти. Пока будет задержка на переключения ддр2 плюс чтение из ддр2 фифо будет переполнена. Поэтому придется по кусочкам производить чтение. On-chip memory можно сделать двухпортовым, а DDR2 насколько мне известно работает либо на чтение либо на запись. Что за данные собираетесь писать, какова скорость потока? Quote Share this post Link to post Share on other sites More sharing options...
x66 0 January 28, 2015 Posted January 28, 2015 · Report post Что за данные собираетесь писать, какова скорость потока? На входе приходят данные с АЦП со скоростью 60 мегаслов в секунду (1 слово = 8 бит). На выходе считываются данные со скоростью 2 мегаслова в секунду. Скорости потоков разные плюс надо не потерять входные данные. Объем выводимых данных 1.2 мегабайта. Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 January 28, 2015 Posted January 28, 2015 · Report post На входе приходят данные с АЦП со скоростью 60 мегаслов в секунду (1 слово = 8 бит). На выходе считываются данные со скоростью 2 мегаслова в секунду. Скорости потоков разные плюс надо не потерять входные данные. Объем выводимых данных 1.2 мегабайта. А поясните, кто такие "вход" и "выход"? 8-бит АЦП с тактовой 60 МГц, а что такое 8-бит на 2МГц? Какое-то тут противоречие - нельзя писать данные 8*60 Mbit/s, а читать со скоростью 8*2 Mbit/s и не переполнить память? Quote Share this post Link to post Share on other sites More sharing options...
x66 0 January 28, 2015 Posted January 28, 2015 · Report post А поясните, кто такие "вход" и "выход"? 8-бит АЦП с тактовой 60 МГц, а что такое 8-бит на 2МГц? Какое-то тут противоречие - нельзя писать данные 8*60 Mbit/s, а читать со скоростью 8*2 Mbit/s и не переполнить память? То что я пытаюсь сделать является маленьким блоком большого устройства. Входом условно назвал АЦП. Выходом назвал приемник (пользователь), т.е. устройство которое предоставляет пользователю наглядные данные (скорее всего экран). Приемник не постоянно считывает данные, а только по запросу (т.е. пришел человек к терминалу и нажал кнопку сказав: а выведи ка мне ты последние 1.2 МБайта данных которые пришли с АЦП). Между АЦП и Приемником нужно создать такой проект чтобы он связал их, т.к. у них разные скорости работы. Проблема возникает в том, что из-за разницы скоростей возникает момент, когда необходимо где то сохранить данные от АЦП во время чтения из ОЗУ этих 1.2 МБайта. На рисунке под плис подразумевается процессор NIOS II и другие устройства которые управляют DDR2 и данными. Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 January 28, 2015 Posted January 28, 2015 · Report post Из Ваших пояснений не понятно, каким образом получается скорость чтения 8*2 Мbit/s, есть только желание получить объём данных в 1,2 МБ? Quote Share this post Link to post Share on other sites More sharing options...
x66 0 January 28, 2015 Posted January 28, 2015 · Report post Из Ваших пояснений не понятно, каким образом получается скорость чтения 8*2 Мbit/s, есть только желание получить объём данных в 1,2 МБ? Чтение производится готовым блоком, что именно там я не знаю, но оно читает со скоростью 2 Мбайта/с и нужно выводить последние 1.2 МБайта данных Quote Share this post Link to post Share on other sites More sharing options...