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

 
 
> Последовательные интерфейсы и 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
 
Start new topic
Ответов
Kuzmi4
сообщение Oct 2 2008, 08:54
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 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
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 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
misyachniy
сообщение Oct 10 2008, 11:01
Сообщение #4


Знающий
****

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



Начал симулировать. :-)
Но почему-то не работатет такая конструкция

Код
    // wait for acknowledge from slave
         while(~avs_s1_waitrequest_n)    @(posedge csi_clockreset_clk);


В симуляторе видночто avs_s1_waitrequest_n на положительном фронте posedge csi_clockreset_clk принимает как единичное так и нулевое значение.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- misyachniy   Последовательные интерфейсы и Avalon, вопросы по созданию и симуляции   Jul 29 2008, 12:14
- - yura-w   Цитата(misyachniy @ Jul 29 2008, 16:14) Н...   Jul 30 2008, 07:48
|- - misyachniy   Поставил Q8. Артефакты в редакторе компонента исче...   Jul 31 2008, 05:38
|- - yura-w   Цитата(misyachniy @ Jul 31 2008, 09:38) К...   Jul 31 2008, 08:26
|- - Stewart Little   Цитата(misyachniy @ Jul 31 2008, 09:38) М...   Jul 31 2008, 08:40
|- - misyachniy   Цитата(Stewart Little @ Jul 31 2008, 11:4...   Jul 31 2008, 11:20
|- - Волощенко   Если я правильно понял, то Вы внедряете свой Custo...   Aug 2 2008, 16:48
|- - misyachniy   Обновил весь комплект ПО до 8.0. После загрузки пр...   Aug 5 2008, 06:23
- - Kuzmi4   2 misyachniy - сталкивался я с dcfifo, правда ваяю...   Aug 5 2008, 07:38
- - misyachniy   Нашел в интернете модуль I2C для Q7.2. У меня вер...   Oct 1 2008, 15:10
- - Omen_13   Объединил и переименовал темы Q7.2 (SOPC)Не хочет ...   Oct 1 2008, 15:46
- - Kuzmi4   2 misyachniy - весь процессор симулить не обязател...   Oct 2 2008, 07:27
|- - misyachniy   Цитата(Kuzmi4 @ Oct 2 2008, 10:27) 2 misy...   Oct 2 2008, 08:35
- - Kuzmi4   2 misyachniy - я не сильно хорошо знаю Verilog, но...   Oct 10 2008, 11:13
|- - misyachniy   Цитата(Kuzmi4 @ Oct 10 2008, 14:13) 2 mis...   Oct 10 2008, 11:57
- - Kuzmi4   В качестве задержки на 1 такт могу порекоммендоват...   Oct 10 2008, 12:10
- - misyachniy   Посмотрел I2C от SLS. Передрано с Opecores. Научил...   Oct 27 2008, 08:02


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 05:47
Рейтинг@Mail.ru


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