реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Последовательные интерфейсы и Avalon, вопросы по созданию и симуляции, переименовано из Q7.2 (SOPC)Не хочет подключать "мое" устрой
misyachniy
сообщение Jul 29 2008, 12:14
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Прицепил к проекту SD по SPI интерфейсу.
Использовал стандартный SPI в поставке Q7.2.
Но он имеет фиксированую частоту.
А карточка в свою очередь требует при инициализации 100..400Кбит.
Соответственно после инициализации приходится работать на низкой скорости, что не приемлемо.

Решил создать свой.
В начале сгенерил verilog файл для SPI Q7.2 с помощью SOPC Builder.
Потом переместил в отдельный каталог.
Переименовал названия портов в соответствии с соглашениями - SOPC импортирует без вопросов.
На закладке Interfaces в Component Editor назначил тактирования и прерывания.
Файл "_hw.tcl" успешно сгенерился и в проект устройство добавилось(SOPC)
В SOPC адрес, уровень прерывания, тактирование успешно присоединяется и генерится система.
Вот часть лога.

Код
Info: vovka_spi_0: Starting generation of variation wrapper.
Info: vovka_spi_0: Analyzing D:\!Vedekon\Video\Quartus\vovka_spi\hdl\vovka_spi.v to ensure matching directions and widths for all ports.
Info: vovka_spi_0: Finished generation of variation wrapper.
Info: SVIDEO: Generating QIP file.


В файле "QIP" прописываются корректные пути(пробелы не использую)

При компиляции полного проекта в Quartus оказывается SOPC сгенерил связи для экземпляра
Код
  vovka_spi_0 the_vovka_spi_0
    (
      .avs_s1_address         (vovka_spi_0_s1_address),
      .avs_s1_chipselect      (vovka_spi_0_s1_chipselect),
      .avs_s1_read            (vovka_spi_0_s1_read),
      .avs_s1_readdata        (vovka_spi_0_s1_readdata),
      .avs_s1_write           (vovka_spi_0_s1_write),
      .avs_s1_writedata       (vovka_spi_0_s1_writedata),
      .coe_MISO               (coe_MISO_to_the_vovka_spi_0),
      .cos_MOSI               (cos_MOSI_from_the_vovka_spi_0),
      .cos_SCLK               (cos_SCLK_from_the_vovka_spi_0),
      .cos_SS_n               (cos_SS_n_from_the_vovka_spi_0),
      .csi_clockreset_clk     (clk),
      .csi_clockreset_reset_n (vovka_spi_0_s1_reset_n),
      .ins_irq0_irq           (vovka_spi_0_s1_irq)
    );


А также указал имя файла для включения

Код
`include "vovka_spi_0.v"


Но сам файл не создал.

Я попробовал вручную подбросить файл(переименовав vovka_spi в vovka_spi_0 ).
Quartus проект собрал.
Проект после заливки не работает.

Не понятно также почему в SOPC Builder/Component Editor при работе в закладке Interfaces по этой закладке серые кубики и точки появляются(артефакты).

Такое впечетление, что этот модуль не дописан. То ли ошибка при инсталяции/распаковке какой нибудь dll произошла.

Сервис пак 3-ий стоит.

Перечитал документацию "SOPC Builder Component Development Walkthrough" и "Component Editor".
Не знаю как решать возникушую проблему?

Не понятно какой еще файл(ы) нужны?
Пробовал подсунуть подкорректированые "_sw.tcl" и соответствующие .h и .c - с наскоку не получилось :-(

Может есть ошибка и в verilog файле, но SOPC должен же корректно генерить систему?

Какую еще документацию почитать?
Go to the top of the page
 
+Quote Post
yura-w
сообщение Jul 30 2008, 07:48
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 305
Регистрация: 22-06-07
Из: Санкт-Петербург
Пользователь №: 28 617



Цитата(misyachniy @ Jul 29 2008, 16:14) *
Не понятно какой еще файл(ы) нужны?

думаю здесь найдете ответ
Go to the top of the page
 
+Quote Post
misyachniy
сообщение Jul 31 2008, 05:38
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Поставил Q8.
Артефакты в редакторе компонента исчезли.
Проект SOPC корректно добавляет, но не работает.
По ходу компиляции в Q8 были выявлен ошибки внесенные мной в проект, которые Q7.2 не замечал.
Очевидно процесс моей корректировки проекта был похож на слона в посудной лавке ;-)
Я с самого начала пересоберу его. Надеюсь заработает.

Какая методика отладки отдельных модулей на шине Avalon?
Може уже ктото перерывал сайт Altera и нашел пошаговый подсказчик для начинающих и пример по отладке?
Go to the top of the page
 
+Quote Post
yura-w
сообщение Jul 31 2008, 08:26
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 305
Регистрация: 22-06-07
Из: Санкт-Петербург
Пользователь №: 28 617



Цитата(misyachniy @ Jul 31 2008, 09:38) *
Какая методика отладки отдельных модулей на шине Avalon?

самый простой путь, когда есть железо:
1. написать компонент, проверить его симулятором
2. в sopc создать "простую" систему и подключить свой компонент, с помошью SignalTap проверить работу (можно посмотреть работу avalon и компонента)
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Jul 31 2008, 08:40
Сообщение #5


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



Цитата(misyachniy @ Jul 31 2008, 09:38) *
Може уже ктото перерывал сайт Altera и нашел пошаговый подсказчик для начинающих и пример по отладке?

Очередное китайское объяснение smile.gif

Вся информация по ниосу лежит там :
http://www.altera.com/literature/lit-nio2.jsp

и там :
http://www.altera.com/literature/lit-sop.jsp

Про отладку можно посмотреть вот это :
AN 351: Simulating Nios II Embedded Processor Designs

и вот это :
AN 446: Debugging Nios II Systems with the SignalTap II Embedded Logic Analyzer
для Сигнал Тапа там есть пример (signal_tap_test software file)


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
misyachniy
сообщение Jul 31 2008, 11:20
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Цитата(Stewart Little @ Jul 31 2008, 11:40) *
Очередное китайское объяснение smile.gif


Китайцам или индийцам легче ;-)
Их много, они могут handbook на 3000 страниц поделить между собой.
Один может модули писать и отлаживать, второй программы писать, третий систему собирать и тестировать.
Не говоря уже об отдельнои тестировщике и электронщике.

Signal tap на сколько я понял нужен, на конечном этапе в собраной системе в железе?
В начале нужно в МоделСиме гонять.

Нашел в закромах 6.1g поставил, присобил к нашим фмнансовым условиям.
При запуске говорит - "не приспоюился"
Выкачал с закромов сервис пак к нему.
Файл образа собрался контрольная сума сошлась. но после монтирования диск не открывается.
Качать с сайта Альтеры или чего делать?
Кроме поправки в генах? ;-)
Go to the top of the page
 
+Quote Post
Волощенко
сообщение Aug 2 2008, 16:48
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377



Если я правильно понял, то Вы внедряете свой Custom peripherals, в данном случае контроллер SD с SPI интерфейсом.
Схожая проблема подымалась мною в http://electronix.ru/forum/index.php?showtopic=46550.
Работал в Q7.2 sp3, где внедрял свой периферийный модуль. Правда, без прерываний, там был полинг сигнала готовности. Все прошло и функционирует на железе. Описанных Вами симптом с артефактами в Q7.2 sp3 не наблюдал.
Посоветовал бы сделать что-то простое на Q7.2 sp3 в части Custom peripherals, а на его основе усложнять.
Литературы, как всегда, много не бывает smile.gif
http://www.altera.com/search?output=xml_no...m%20Peripherals
Go to the top of the page
 
+Quote Post
misyachniy
сообщение Aug 5 2008, 06:23
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Обновил весь комплект ПО до 8.0.
После загрузки проекта в ModelSim не выполнялась загрузка всех файлов проекта(команда "s")
В "одолженом" модуле Видео контроллера ошибки типа:

Код
# ** Error: (vsim-3043) ../vga_controller_classic_0.v(123): Unresolved reference to 'LPM_NUMWORDS' in the_dcfifo.LPM_NUMWORDS.
#         Region: /test_bench/DUT/the_vga_controller_classic_0

Поменял буквы в verilog файле на нижний регистр, все зафурычило. :-)

Захотел выкачать полную документацию на ModelSim.
На сайте ModelSim предлагают SE и PE/LE какой из них более похож на Altera Edition?


Цитата(Волощенко @ Aug 2 2008, 19:48) *
Литературы, как всегда, много не бывает smile.gif


В том то и вопрос, что сложность среды проектирования и количество литературы растет как снежный ком. И ее становится слишком много.

БОльшая часть времени уходит на поиск информации че на ее изучение.
А работа в средах проектирования мне почему-то напоминает шаманство.
Тут галочку поставь, там укажи имя файла и тд.

Вчера ModelSim при перезагрузке проекта выдавал
Код
# Error! LPM_NUMWORDS must be less than or equal to 2**LPM_WIDTHU.
# Error! LPM_NUMWORDS must be less than or equal to 2**LPM_WIDTHU.


Не понятно к какому файлу проекта претензии?
Сегодня другой варнинг - понятно к какому модую вопросы.
Код
#         Region: /test_bench/DUT/the_spi_1
# ** Warning: (vsim-3015) ../vga_controller_classic_0.v(121): [PCDPC] - Port size (1 or 1) does not match connection size (10) for port 'wrusedw'.
#         Region: /test_bench/DUT/the_vga_controller_classic_0/the_dcfifo


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

Но у нас как то принято чтобы электронщик был и "Швец и жнец и на дуде игрец."
В резудьтате "Беда, коль пироги начнет печи сапожник, а сапоги тачать пирожник."
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Aug 5 2008, 07:38
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 misyachniy - сталкивался я с dcfifo, правда ваяю на VHDL.

Внимательно смотреть надо в описание:
Касательно LPM_WIDTHU:
Цитата
LPM_WIDTHU - Width of rdusedw[] and wrusedw[] ports. Recommended value is Recommended value is CEIL(LOG2(LPM_NUMWORDS)). This parameter is available for VHDL only.


И LPM_NUMWORDS многострадальный:
Цитата
LPM_NUMWORDS - ..Number of words stored in memory, which is a power of 2.

А вообсче dcfifo - очень полезная вещь wink.gif

А вот на счёт шаманства и FPGA - позволю не согласится: знаете сколько действий нужно сделать , чтобы поднять вертолёт в воздух ?? - а ведь совсем не шаманство...

Просто это не Visual Studio от мелклсофта или C# - тут законы другие...
Go to the top of the page
 
+Quote Post
misyachniy
сообщение Oct 1 2008, 15:10
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Нашел в интернете модуль I2C для Q7.2.
У меня версия 8.0.
Переименовал выводы для шины авалон создал компонент.
Чтение и запись регистра преддеителя работате в железе хорошо.
Но общение с памятью не корректно.
Получаю NACK при чтении сразу, при записи АСК выставляется на каждый байт(считыватся со статус регистра).

Пересмотрел несколько раз исходники. Перепробовал несколько вариантов обращения к регистрам - не хочет. :-(

AN351 предлагает весь процессор симулировать. Это долго.

Я так понимаю можно к модулю I2C можно прицепить тестбенч и просимулировть чтение запись по шине отдельно от процессора

Я раньше вручную "рисовал" для CPLD диаграмы.

Сейчас хочу научится как положено симулировать verilog файлы спомощью тестбенч .

Встречал ли кто тестбенч для Авалон и Апноту как симулировать?
Go to the top of the page
 
+Quote Post
Omen_13
сообщение Oct 1 2008, 15:46
Сообщение #11


Силовик-затейник
****

Группа: Модераторы
Сообщений: 766
Регистрация: 18-02-07
Из: Столица солнечного Башкортостана
Пользователь №: 25 467



Объединил и переименовал темы
Q7.2 (SOPC)Не хочет подключать "мое" устройство -> Последовательные интерфейсы и Avalon, вопросы по созданию и симуляции
С уважением, модератор


--------------------
"Вперёд на мины, ордена потом!"
"инжинер/разработчик создает нечто, в отличии от многих других профессий. В этом есть сходность с художниками или музыкантами"(с)CodeWarrior1241
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Oct 2 2008, 07:27
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 misyachniy - весь процессор симулить не обязательно. Так сказать нулевое приближение - это смотримс на спецификацию авалона и представляем как будет выглядеть транзакция со стороны шины к девайсу - потом моделируем её - в результате может повылазить много каких гадостей smile.gif Для особо придирчивых можно SignalTap подъюзать чтоб посмотреть как именно оно будет.
Кстати I2C не от SLS ли случайно ?
И пробовали в 7.2 запустить ?
Go to the top of the page
 
+Quote Post
misyachniy
сообщение Oct 2 2008, 08:35
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Цитата(Kuzmi4 @ Oct 2 2008, 10:27) *
2 misyachniy - весь процессор симулить не обязательно. Так сказать нулевое приближение - это смотримс на спецификацию авалона и представляем как будет выглядеть транзакция со стороны шины к девайсу - потом моделируем её - в результате может повылазить много каких гадостей smile.gif Для особо придирчивых можно SignalTap подъюзать чтоб посмотреть как именно оно будет.
Кстати I2C не от SLS ли случайно ?
И пробовали в 7.2 запустить ?


Так я о том же ;-)
Я не умею симулировать в Modelsim. По этому желательна "рыба" с Avalon на Verilog и учебник для чайников.

I2C я выкачал с форума.
http://www.niosforum.com/pages/download.ph...ip&d_id=147

Q7.2 я не ставил.
Все равно нужно научится симулировать.
Можно I2C и на PIO использовать. Но это, по моему, не совсе правильное решение.
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Oct 2 2008, 08:54
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 misyachniy - на счёт Modelsim - там учится пол дня делоФФ то. Один минус - воздействие самому ручками на HDL ваять.
С этой точки зрения симулятор в Quartus`е гораздо удобней - можно ручками задать в файле когда 0 когда 1... Плюс квартус задержки учитывает в железе, что иногда важно..
Касательно того, что вы там скачали - опенкоровский вариант вечно надо дорабатывать. Тут на фтп лежить от SLS - в принципе у них всё чётко работает - если не охото возиться - можете его взять wink.gif
Если охота - тогда надо ковырять опенкоресовский smile.gif
на счёт Q7.2 - тут квартуса нету, дома 7.2 стоит - могу посмотреть, только шкурку аки wrapper на авалон скиньте.
Go to the top of the page
 
+Quote Post
misyachniy
сообщение Oct 9 2008, 08:07
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Вернулся к работе по симуляции.

Как выясниось модуль i2c от SLS передран с opencores.
На мой Q8.0 установился, но захотел обновлятся, но не обновился.
Так в систему не удалось пристроить.
Поменял названия сигналв шины в соответствии с соглашениями Q8.0 - все равно не работает в системе.
Из имеющихся дешифрованых кусков и примеров с opencores собрал систему для моделирования.
Авалон мастер, "мой" модуь и i2c slave.

Самое просое тактирование и сброс заработало.
Часть имен и ы
Когда попытался включить задачу(task) на запись по шине Авалон- не получилось правильно указать ссылку на модуль и его задачу.

По примеру SLS объявил и вызываю так

Код
avalon_master_model #(8, 32) u0 (
    .csi_clockreset_clk(csi_clockreset_clk),
    .csi_clockreset_reset(csi_clockreset_reset),
    ...
    .avs_s1_waitrequest_n(1'b0)  
  );

u0.wb_write(1, PRER_LO, 8'hfa);



Получаю ошибку:
Цитата
near '(': syntax error, unexpected '(', expecting "IDENTIFIER"


То есть неправильное применениие иерархии мени.
Посмотрел документацию на Modelsim примеры в интернете.
В локументации нету дополнительной информации, в примерах вызовы аналогичны.
Поэкспериментировал с именем. добавляя название модуля где описаныи задачи не помогает.

Где почитать об иерархических именах в Modelsim?
А то гугль не гуглится.

Прикладываю всю папку проекта.
Прикрепленные файлы
Прикрепленный файл  vovka_opencores_i2c.zip ( 303.94 килобайт ) Кол-во скачиваний: 34
 
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 7th July 2025 - 04:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01521 секунд с 7
ELECTRONIX ©2004-2016