|
|
  |
SOPC Builder и его возможности, Использование без ядра Nios |
|
|
|
Jan 14 2008, 13:45
|
Частый гость
 
Группа: Свой
Сообщений: 139
Регистрация: 12-10-07
Пользователь №: 31 308

|
Цитата Вы переделываете готовый пример? нет, вот эти ваши слова Цитата Далее добавляем этот компонент в свою систему 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.
|
|
|
|
|
Jan 14 2008, 15:39
|
Частый гость
 
Группа: Свой
Сообщений: 139
Регистрация: 12-10-07
Пользователь №: 31 308

|
Цитата неправильно подключена в основном проекте (не те имена портов написаны) вы это говорили про проект который в sopc компилится?
|
|
|
|
|
Jan 15 2008, 07:13
|
Частый гость
 
Группа: Свой
Сообщений: 139
Регистрация: 12-10-07
Пользователь №: 31 308

|
Цитата(torik @ Jan 14 2008, 21:12)  нет, после генерации системы файл имя системы.v смотрели? В нем же перечислены порты... torik Посмотри, что не так делаю? Что за component class name? В шестом хендбуке написано, что это специализированное имя. Но как его задавать не нашел. На 4 рис. мои сигналы оформелны неправильно. У pio сигналы правильно записаны.
Эскизы прикрепленных изображений
|
|
|
|
|
Jan 15 2008, 11:38
|
Частый гость
 
Группа: Свой
Сообщений: 139
Регистрация: 12-10-07
Пользователь №: 31 308

|
Цитата хотя 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>". Нашел, что такая ошибка может быть вызвана из-за не подключения пользовательской библиотеки. Подключил, не помогло. Цитата А покажите код, который добавляете в основной проект для включения в него системы? А весь код то состоит в добавлении инпут аутпут выводов.
Эскизы прикрепленных изображений
|
|
|
|
|
Jan 15 2008, 16:55
|
Частый гость
 
Группа: Свой
Сообщений: 139
Регистрация: 12-10-07
Пользователь №: 31 308

|
Цитата(torik @ Jan 15 2008, 16:44)  Да вы знаете, судя по вашей схеме данная система имеет только выходы. А входов (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 присутствуют.
|
|
|
|
|
Jan 15 2008, 18:29
|
Частый гость
 
Группа: Свой
Сообщений: 139
Регистрация: 12-10-07
Пользователь №: 31 308

|
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
|
|
|
|
|
Jan 15 2008, 23:49
|
Частый гость
 
Группа: Свой
Сообщений: 139
Регистрация: 12-10-07
Пользователь №: 31 308

|
Цитата 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.
|
|
|
|
|
Jan 16 2008, 04:37
|

МедвеД Инженер I
   
Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951

|
Цитата(RHnd @ Jan 16 2008, 02:26)  Бррр.... Это что же, вы компонент без HDL кода создаете? Фигасе. И что, он должен автоматически вам все сигналы авалоновские на глобал кинуть? С чего? Пишите HDL и будет хорошо. До версии 6.х включительно было...можно было делать... а в версиях 7.х наблюдаю туже фигню пошёл курить мануал
--------------------
Cogito ergo sum
|
|
|
|
|
Jan 16 2008, 07:27
|
Частый гость
 
Группа: Свой
Сообщений: 139
Регистрация: 12-10-07
Пользователь №: 31 308

|
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. Состоит из многих подмодулей, разобраться сразу сложно, что куда.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|