Jump to content
    

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

Вы переделываете готовый пример?

Сама система SOPC генерируется нормально? Если да, то значит неправильно подключена в основном проекте (не те имена портов написаны) - смотрите внимательнее

Share this post


Link to post
Share on other sites

Вы переделываете готовый пример?

нет, вот эти ваши слова

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

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

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

хочу в железо воплотить, но только error получаюNode instance "the_untitled" instantiates undefined entity "untitled". и предупрежение Warning (10335): Unrecognized synthesis attribute "auto_dissolve" at ser.v(47).

Сама система SOPC генерируется нормально? да, без ошибок

Если да, то значит неправильно подключена в основном проекте (не те имена портов написаны) - точно не те. Сейчас попробую правильные имена поставить.

 

поставил правильные имена, все равно выдает error. :wacko:

Share this post


Link to post
Share on other sites

неправильно подключена в основном проекте (не те имена портов написаны)

вы это говорили про проект который в sopc компилится?

Share this post


Link to post
Share on other sites

нет, после генерации системы файл имя системы.v смотрели? В нем же перечислены порты...

Share this post


Link to post
Share on other sites

нет, после генерации системы файл имя системы.v смотрели? В нем же перечислены порты...

torik

Посмотри, что не так делаю?

Что за component class name? В шестом хендбуке написано, что это специализированное имя. Но как его задавать не нашел.

На 4 рис. мои сигналы оформелны неправильно. У pio сигналы правильно записаны.

post-31308-1200380377_thumb.jpg

post-31308-1200380417_thumb.jpg

post-31308-1200380485_thumb.jpg

post-31308-1200380548_thumb.jpg

Share this post


Link to post
Share on other sites

Да все на первый взгляд верно, хотя class name и name просто совпадают с именем папки в которой он расположен и одинаковы...

 

А покажите код, который добавляете в основной проект для включения в него системы?

Share this post


Link to post
Share on other sites

хотя class name и name просто совпадают с именем папки в которой он расположен и одинаковы

Так должно быть?

Поигрался вчера и сегодня с именами. То что на рисунке показано, имена там такие: nis.sopc ( nis - имя папки), Class name - tor, Display name - reb. Если скомпилить, то в квартусе получаем error Node instance "<name>" instantiates undefined entity "<name>". Если же сделать все три имени одинаковыми, то получаем error Project too complex: hierarchy path is too long в котором вложено еще 100 error-ов Entity "<name>" is instantiated by entity "<name>". Сегодня в интернете нашел 6.1 туториал билдера. Там приводится пример сборки rs232. На странице 5-10 там видно, что все три имени совпадают. Пока пример с хендбука с rs232 не делал, не дошел еще.

В интернете поискал на Node instance "<name>" instantiates undefined entity "<name>". Нашел, что такая ошибка может быть вызвана из-за не подключения пользовательской библиотеки. Подключил, не помогло.

 

А покажите код, который добавляете в основной проект для включения в него системы?

А весь код то состоит в добавлении инпут аутпут выводов.

post-31308-1200396881_thumb.jpg

Share this post


Link to post
Share on other sites

Да вы знаете, судя по вашей схеме данная система имеет только выходы. А входов (write, read, address, data...) нету. Это как раз те самые сигналы мастера, который вы смастерили.

 

Какая конкретно версия квартуса у вас. Если 6.1, то могу попробовать выслать пример...

Share this post


Link to post
Share on other sites

Да вы знаете, судя по вашей схеме данная система имеет только выходы. А входов (write, read, address, data...) нету. Это как раз те самые сигналы мастера, который вы смастерили.

 

Какая конкретно версия квартуса у вас. Если 6.1, то могу попробовать выслать пример...

Тоже обращал внимание на это. Еще в сигналах указываю reset, а в квартусе (на схеме) получаю reset_n. К тому же в хендбуке написано, что сигналы генерируются вот так

module my_multiport_component (

// Signals for Avalon-MM slave port "s1"

avs_s1_clk,

avs_s1_reset_n,

avs_s1_address,

avs_s1_read,

avs_s1_write,

avs_s1_writedata,

avs_s1_readdata,

avs_s1_export_dac_output,

мастер порт генерируется аналогично, только вместо avs пишется аvm.

Если посмотреть риснунок, где приводил мои сигналы (рис 4), то видно что сигналы мастера не по этим правилам сгенерированы.

Quartus II Version Build 151 09/26/2007 SJ естественно фул. Service Pack Installed: None.

 

Вряд ли это связано с версией Квартуса. На SOPCе сделал пример с процессором, памятью и pio. Все сгенерировалось в Sopce, перенеслось в квартус, скомпилил и в ответ получил одно предупреждение, что ядро - тайм лимид. Так что, думаю Sopc работает. Наверно что то не то делаю при компановке мастер-порта. А что не знаю. У меня мастер порт фактически отсутствует в схеме квартуса, а пины слейв порта pio присутствуют.

Share this post


Link to post
Share on other sites

Бррр.... Это что же, вы компонент без HDL кода создаете? Фигасе. И что, он должен автоматически вам все сигналы авалоновские на глобал кинуть? С чего? Пишите HDL и будет хорошо.

Share this post


Link to post
Share on other sites

torik

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

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

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

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

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

Вот этим руководствовался.

А теперь получается

Бррр.... Это что же, вы компонент без HDL кода создаете? Фигасе. И что, он должен автоматически вам все сигналы авалоновские на глобал кинуть? С чего? Пишите HDL и будет хорошо

так осталось дело за малым написать этот код, использую вашу прошлую подсказку.

На форуме неоднократно обсуждалось (где-то рядом должна быть тема про SDRAM контроллер - там этот вопрос поднимался). В простейшем случае ваш мастер просто будет сигналы avalon передавать наружу. Что-то типа

 

input my_address;

output avalon_master_address;

 

assign avalon_master_address=my_address;

 

И так для всех нужных Вам сигналов.

Для меня сейчас VHDL как китайская грамота.

 

извиняюсь не VHDL а Verilog

Share this post


Link to post
Share on other sites

input my_address;

output avalon_master_address;

 

assign avalon_master_address=my_address

 

это надо вот так понимать?

assign address=new_signal_1;

assign waitrequest=new_signal_2;

assign writedata=new_signal_3;

assign write=new_signal_4;

 

но тогда следует заметить что waitrequest не output avalon_master_address а input. :07:

Share this post


Link to post
Share on other sites

Бррр.... Это что же, вы компонент без HDL кода создаете? Фигасе. И что, он должен автоматически вам все сигналы авалоновские на глобал кинуть? С чего? Пишите HDL и будет хорошо.

До версии 6.х включительно было...можно было делать...

а в версиях 7.х наблюдаю туже фигню

пошёл курить мануал :(

Share this post


Link to post
Share on other sites

Е-мое, у меня квартус 6.1 и я создаю мастер без всякого кода HDL, все работает так как я и описывал. Очень удобная вещь для стыковки системы SOPC с внешней логикой, через фифо например...

 

При этом, кстати говоря, мануал я читал уже новый, на 7.1 (ну на сайте альтеры...)

Share this post


Link to post
Share on other sites

torik

Е-мое, у меня квартус 6.1 и я создаю мастер без всякого кода HDL, все работает так как я и описывал. Очень удобная вещь для стыковки системы SOPC с внешней логикой, через фифо например...

выложи тут или пришли мне папку с файлом самодельный мастер -pio слейв. fpga_sun@mail.ru. Только не архивируй его, а то я не смогу прочитать файл.

Вчера начал изучать верилог. Начал делать своего мастера, но получал error Verilog HDL error at Verilog1.v(25): object "address" is not declared. Читал на него таблетку, исправлял, получал другой error. Сам Sopc генерирует *.v файлы в рабочей папке. Вот посмотрел их, и изучил пример создания слейв верилог файла. Тут захотелось посмотреть пример создания мастер велилог файла. Решил обратно попробовать создать dma мастер и какой-нибудь слейв. Взял sgdma мастер и on-chip слейв 32 разряда (все как по умолчанию). Нормально сгенерировалось в sopce. Без errorов предварительно скомпилилось в квартусе, но с предупреждениями (14 сообщений).Все они были связаны с тем, что не сделал пин пленер и с таймквестом. (но в графическом изображении sopc в квартусе есть только два вывода клок и ресет, куда делись другие вывода?) Поскольку все предупреждения были знакомы, решил полностью скомпилировать. В пинпленере установил пины. А вот в тамквест не смог записать констрейны Error: Current module quartus_tan ended unexpectedly. Отключил библиотеку пользователя, еще хуже получилось (100 предупреждений и error в таймквесте). Посмотрел верилог код мастера sgdma. Состоит из многих подмодулей, разобраться сразу сложно, что куда.

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