torik 0 January 14, 2008 Posted January 14, 2008 · Report post Вы переделываете готовый пример? Сама система SOPC генерируется нормально? Если да, то значит неправильно подключена в основном проекте (не те имена портов написаны) - смотрите внимательнее Quote Share this post Link to post Share on other sites More sharing options...
sun_fpga 0 January 14, 2008 Posted January 14, 2008 · Report post Вы переделываете готовый пример? нет, вот эти ваши слова Далее добавляем этот компонент в свою систему 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. Quote Share this post Link to post Share on other sites More sharing options...
sun_fpga 0 January 14, 2008 Posted January 14, 2008 · Report post неправильно подключена в основном проекте (не те имена портов написаны) вы это говорили про проект который в sopc компилится? Quote Share this post Link to post Share on other sites More sharing options...
torik 0 January 14, 2008 Posted January 14, 2008 · Report post нет, после генерации системы файл имя системы.v смотрели? В нем же перечислены порты... Quote Share this post Link to post Share on other sites More sharing options...
sun_fpga 0 January 15, 2008 Posted January 15, 2008 · Report post нет, после генерации системы файл имя системы.v смотрели? В нем же перечислены порты... torik Посмотри, что не так делаю? Что за component class name? В шестом хендбуке написано, что это специализированное имя. Но как его задавать не нашел. На 4 рис. мои сигналы оформелны неправильно. У pio сигналы правильно записаны. Quote Share this post Link to post Share on other sites More sharing options...
torik 0 January 15, 2008 Posted January 15, 2008 · Report post Да все на первый взгляд верно, хотя class name и name просто совпадают с именем папки в которой он расположен и одинаковы... А покажите код, который добавляете в основной проект для включения в него системы? Quote Share this post Link to post Share on other sites More sharing options...
sun_fpga 0 January 15, 2008 Posted January 15, 2008 · Report post хотя 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>". Нашел, что такая ошибка может быть вызвана из-за не подключения пользовательской библиотеки. Подключил, не помогло. А покажите код, который добавляете в основной проект для включения в него системы? А весь код то состоит в добавлении инпут аутпут выводов. Quote Share this post Link to post Share on other sites More sharing options...
torik 0 January 15, 2008 Posted January 15, 2008 · Report post Да вы знаете, судя по вашей схеме данная система имеет только выходы. А входов (write, read, address, data...) нету. Это как раз те самые сигналы мастера, который вы смастерили. Какая конкретно версия квартуса у вас. Если 6.1, то могу попробовать выслать пример... Quote Share this post Link to post Share on other sites More sharing options...
sun_fpga 0 January 15, 2008 Posted January 15, 2008 · Report post Да вы знаете, судя по вашей схеме данная система имеет только выходы. А входов (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 присутствуют. Quote Share this post Link to post Share on other sites More sharing options...
RHnd 0 January 15, 2008 Posted January 15, 2008 · Report post Бррр.... Это что же, вы компонент без HDL кода создаете? Фигасе. И что, он должен автоматически вам все сигналы авалоновские на глобал кинуть? С чего? Пишите HDL и будет хорошо. Quote Share this post Link to post Share on other sites More sharing options...
sun_fpga 0 January 15, 2008 Posted January 15, 2008 · Report post 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 Quote Share this post Link to post Share on other sites More sharing options...
sun_fpga 0 January 15, 2008 Posted January 15, 2008 · Report post 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: Quote Share this post Link to post Share on other sites More sharing options...
Postoroniy_V 0 January 16, 2008 Posted January 16, 2008 · Report post Бррр.... Это что же, вы компонент без HDL кода создаете? Фигасе. И что, он должен автоматически вам все сигналы авалоновские на глобал кинуть? С чего? Пишите HDL и будет хорошо. До версии 6.х включительно было...можно было делать... а в версиях 7.х наблюдаю туже фигню пошёл курить мануал :( Quote Share this post Link to post Share on other sites More sharing options...
torik 0 January 16, 2008 Posted January 16, 2008 · Report post Е-мое, у меня квартус 6.1 и я создаю мастер без всякого кода HDL, все работает так как я и описывал. Очень удобная вещь для стыковки системы SOPC с внешней логикой, через фифо например... При этом, кстати говоря, мануал я читал уже новый, на 7.1 (ну на сайте альтеры...) Quote Share this post Link to post Share on other sites More sharing options...
sun_fpga 0 January 16, 2008 Posted January 16, 2008 · Report post 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. Состоит из многих подмодулей, разобраться сразу сложно, что куда. Quote Share this post Link to post Share on other sites More sharing options...