Jump to content
    

SOPC Builder и его возможности

Всем привет!

Пару-тройку месяцев назад пытался выяснить в общих чертах, что такое SOPC Builder и с чем его едят. Читал соответствующую главу хандбука и статью про шину Авалон на altera.ru. К сожалению дело было заброшено в связи с другими срочными работами. Но сейчас планирую вернуться к вопросу применения этого инструмента.

Обращаясь к специалистам и тем кто просто имел дело с SOPC Builder, хочу спросить следующее:

- возможно ли применение SOPC Builder без использования Nios-процессора?

Т.е. могу ли я создать комбинацию, грубо говоря, из контроллера памяти SDRAM и DMA или даже просто контроллер памяти. Это собственно и сподвигло меня на изучение билдера. Один из важнейших вопросов - применение памяти типа DDR, SDRAM, потому хотелось бы не занимаясь разработкой контроллера, использовать контроллер из SOPC Builder, а потом обращаться по интрефейсу шины Авалон. Практически это будет выглядеть как обращение к набору регистров - линейное адресное пространство и никаких запар с инициализациями и прочим.

 

Если ответ на первый вопрос положительный и даже если нет, хочу перевести для себя эту главу хандбука, посему опять вопрос:

- достаточно ли для освоения SOPC Builder для начала перевести соответсвующую главу хандбука и описание шины авалон с altera.ru?

- интересует ли кого еще такой перевод и не будет ли это бесполезной работой - может он уже переведен?

Share this post


Link to post
Share on other sites

- возможно ли применение SOPC Builder без использования Nios-процессора?

Я не специалист, но, на сколько знаю, да.

 

- достаточно ли для освоения SOPC Builder для начала перевести соответсвующую главу хандбука и описание шины авалон с altera.ru?

Не читал, что именно написано на сайте ЭФО, но, думаю, да. И даже более чем. Хотя, все равно лучше читать исходники с altera.com. Прочитать -достаточно, но вот переводить - излишне. Зачем?

 

- интересует ли кого еще такой перевод и не будет ли это бесполезной работой - может он уже переведен?

Если и интересует, то немногих. Нет, уверен, что не переведен - не нужен, устаревает быстрее, чем переводится.

 

PS:Не возможно серьезно заниматься любой it-деятельностью, не владея техническим английским! Я серьезно.

 

"-А есть русские мануалы на xxxx?

-Есть русские мануалы на английский язык. Полезная вещь!" © bash.org.ru

Share this post


Link to post
Share on other sites

Согласен - английский технический просто необходим. С этим уже стало намнооого меньше проблем чем раньше.

Перевод хотел для того, чтобы лучше все усвоить, потренироваться в аглицком...

 

А вот каким образом применить SOPC Builder без использования Nios-процессора в том варианте как я описал -я не понял...

Share this post


Link to post
Share on other sites

Согласен - английский технический просто необходим. С этим уже стало намнооого меньше проблем чем раньше.

Перевод хотел для того, чтобы лучше все усвоить, потренироваться в аглицком...

 

А вот каким образом применить SOPC Builder без использования Nios-процессора в том варианте как я описал -я не понял...

 

Присоединяюсь... Сам не давно пытался подключить DDR SDRAM без NIOS в проект через SOPC, так ничего и не вышло... :07: Вообщем мучился, потом открыл Megawizard в нем создал и работаю со своим проектом...

Если кто подключал, было бы очень интересно узнать, какие впечатления...

Спасибо

Share this post


Link to post
Share on other sites

В СОПС-билдере для создания системы нужены как минимум 1 мастер и 1 слейв.

Будет ли мастер процессором или PCI-мостом или еще кем-то - неважно.

Кто будет слейвом - DDR контроллер или on-chip memory тоже не важно.

Share this post


Link to post
Share on other sites

Что же лучше использовать в качестве мастера?

Если вы хотите использовать просто корку сдрам в собственных проектах, то мастера надо написать самому. Фактически, прямая трансляция портов шины авалон наружу.

Share this post


Link to post
Share on other sites

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

 

Но почему же тогда нельзя в качестве этого мастера использовать DMA, потому что у него нет сигналов для соединения с внешней логикой?

Share this post


Link to post
Share on other sites

Но почему же тогда нельзя в качестве этого мастера использовать DMA
А вы пробовали?

Т.е. надо создать мастер, который бы не только имел мастер-нитерфейс, но еще и имел дополнително сигналы для связи с внешней пользовательской логикой (вне системного модуля)?
Это самое простое и правильное решение.

Share this post


Link to post
Share on other sites

Например, ставим в SOPC Builder-е DAM и котнроллре SDRAM типа как на рисунке в приложенном файле.

Он не дает сгенерировать систему. Как я понимаю - это потому что control_port_slave не подключен?

 

Что необходимо сделать для его подключения - надо создать компонент с интерфейсом мастер, и стыкующийся с внешней логикой. То же самое без DMA - надо создать компонент с интерфейсом мастер...

 

А может тогда проще взять этот контроллер из визарда, да использовать?

 

Дело то вот в чем - хочется сделать такую вещь, чтобы к FPGA была подключена SDRAM, а запись в нее производить просто как в асинхронную память или набор регистров - адрес 32 (к примеру) бита, данные 8 бит, запись/чтение и все...

_______.doc

Share this post


Link to post
Share on other sites

Например, ставим в SOPC Builder-е DAM и котнроллре SDRAM типа как на рисунке в приложенном файле.

Он не дает сгенерировать систему. Как я понимаю - это потому что control_port_slave не подключен?

 

Что необходимо сделать для его подключения - надо создать компонент с интерфейсом мастер, и стыкующийся с внешней логикой. То же самое без DMA - надо создать компонент с интерфейсом мастер...

 

А может тогда проще взять этот контроллер из визарда, да использовать?

 

Дело то вот в чем - хочется сделать такую вещь, чтобы к FPGA была подключена SDRAM, а запись в нее производить просто как в асинхронную память или набор регистров - адрес 32 (к примеру) бита, данные 8 бит, запись/чтение и все...

использовать как "просто асинхронную память" sdram при помощи данного конроллера не выйдет к сожалению. почитайте даташит на sdram и тогда думаю Вы поймёте почему.

Share this post


Link to post
Share on other sites

Итак, пока результат следующий. Прочитал главу хандбука SOPC Builder - не всей, а только до редактора компонентов включительно.

Решил попробовать простейший эксперимент: создаем свой собственный компонент без HDL файлов; сигналы мастера запись/данные(10 бит), clk, reset, адрес.

Далее добавляем этот компонент в свою систему SOPC Builder, туда же закидываем PIO на 10 бит. Этот PIO автоматом подсоединяется к нашему мастеру, становится только на выход, т.к. нет сигналов чтения...

Все прекрасно компилируется. Вставляем это в наш проект, к выходам PIO подключаем светодиоды. Адрес = 0 (остальные регистры PIO не используем), таковую даем, сигнал записи и данные со счетчика.

Результат - все работает как и ожидалось!!!

 

Такие дела. Теперь возвращаемся к SDRAM памяти... :)))))

Делаем такой же мастер без внутренней логики, только с большим адресным пространством + datavalid. Добавляем SDRAM корку - все стыкуется и генерируется.

 

А дальше, простите, я не успел на работе попробовать - быть непонятки:

- память общим объемомо 16 МБайт, к ней что, можно обращаться как к линейному адресному пространству?

- прочитал (вернее проглядел :)) даташит на SDRAM и не оченьто понял - а как же регистры для настройки??? Они не нужны, получается...

 

Подскажите, пожалуйста, можно ли обращаться к этой памяти SDRAM как к линейному адресному простанству через простой интерфейс, выполненный по соглашениям Авалон, нужно ли делать предварительно какие-то настройки памяти?

Share this post


Link to post
Share on other sites

Если я ничего не путаю, то да, можно. Все необходимые настройки памяти задаются при создании компонента в SOPC.

Share this post


Link to post
Share on other sites

Вот это дела - это же почти халява по сравнению с самостоятельным написанием контроллеров памяти и прочей обвязки... :)

Share this post


Link to post
Share on other sites

сигналы мастера запись/данные(10 бит), clk, reset, адрес.

Еще надо обязательно ввести сигнал waitrequest!

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...