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

 
 
 
Reply to this topicStart new topic
> Приоритеты Мастеров на шине Avalon
misyachniy
сообщение Jul 25 2008, 08:10
Сообщение #1


Знающий
****

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



Проект на Cyclone2
В нем есть VGA контроллер, за пример взял по этой ссылке
http://www.altera.com/support/refdesigns/s...niosii-vga.html
В результате на шине получилось три мастера У процессора по одному для данных и команд и у видеоконтроллера.

Понятно, что мастер VGA должен иметь приоритет выше чем все другие.

В документации нашел, что нужно в SOPC отобразить арбитраж и назначить приоритеты.
Не нашел правда соответствия приоритет прямо пропорционален числу или обратно пропорционален?

Я пробовал оба варианта доступа (приоритеты 1 и 2 для мастера VGA)- но картинка портится все равно.

Процессор выбирает команды из памяти программ и сбивает синхронизацию.
Даже если обрашение идет к области памяти не принадлежащей видео буферу.

В контроллере есть DMA и FIFO на 1024 32битных слова.
Подозреваю, что в реализации VGA пробрался глючек.

Так как после захвата шины DMA должна подкачать в FIFO информацию.

Вопрос номер 1
Приоритет прямо пропорционален числу или обратно пропорционален?

Вопрос номер 2 извечный ;-)
Что делать? В каком направлении направить свои мысли?
Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  vga_controller_classic_0.zip ( 2.33 килобайт ) Кол-во скачиваний: 40
 
Go to the top of the page
 
+Quote Post
Postoroniy_V
сообщение Jul 25 2008, 14:44
Сообщение #2


МедвеД Инженер I
****

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



Цитата(misyachniy @ Jul 25 2008, 17:10) *
Проект на Cyclone2
В нем есть VGA контроллер, за пример взял по этой ссылке
http://www.altera.com/support/refdesigns/s...niosii-vga.html
В результате на шине получилось три мастера У процессора по одному для данных и команд и у видеоконтроллера.

Понятно, что мастер VGA должен иметь приоритет выше чем все другие.

В документации нашел, что нужно в SOPC отобразить арбитраж и назначить приоритеты.
Не нашел правда соответствия приоритет прямо пропорционален числу или обратно пропорционален?

Я пробовал оба варианта доступа (приоритеты 1 и 2 для мастера VGA)- но картинка портится все равно.

Процессор выбирает команды из памяти программ и сбивает синхронизацию.
Даже если обрашение идет к области памяти не принадлежащей видео буферу.

В контроллере есть DMA и FIFO на 1024 32битных слова.
Подозреваю, что в реализации VGA пробрался глючек.

Так как после захвата шины DMA должна подкачать в FIFO информацию.

Вопрос номер 1
Приоритет прямо пропорционален числу или обратно пропорционален?

Вопрос номер 2 извечный ;-)
Что делать? В каком направлении направить свои мысли?

1
Setting Arbitration Parameters in SOPC Builder
You specify the arbitration shares for each master using the connection
panel on the System Contents tab of SOPC Builder.
Это из документации, страно что вы это не нашли, или вы не искали?

2
вга мастер читает за 1 раз сколько слов? может сдрам контроллер тут и портит вам всю картину
имхо читать нужно за раз 1 страницу из сдрама


--------------------
Cogito ergo sum
Go to the top of the page
 
+Quote Post
misyachniy
сообщение Jul 28 2008, 06:09
Сообщение #3


Знающий
****

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



Цитата(Postoroniy_V @ Jul 25 2008, 17:44) *
1
Setting Arbitration Parameters in SOPC Builder
You specify the arbitration shares for each master using the connection
panel on the System Contents tab of SOPC Builder.
Это из документации, страно что вы это не нашли, или вы не искали?

2
вга мастер читает за 1 раз сколько слов? может сдрам контроллер тут и портит вам всю картину
имхо читать нужно за раз 1 страницу из сдрама


1 Я не нашел как соотвествует уровень приоритета числу назначамому для мастера.
Типично чем меньше число, тем выше приоритет.
Явного указания ы документации я не нашел.

Похоже в NIOS также.
Поставил приоритет для VGA "1", для процессора "2".
После инициализации VGA сделал паузу, а затем рестарт контроллера.
Картинка теперь не заворачивается.

В тексте есть такой код начального сброса VGA контроллера.

Код
  assign stop_config_counter = config_counter == 3'b101;
  lpm_counter vga_config_counter
    (
      .aclr (!reset_n),
      .clock (vga_clk),
      .cnt_en (!stop_config_counter),
      .q (config_counter)
    );

  defparam vga_config_counter.LPM_WIDTH = 3;


Возможно не хватает тактов для сброса. Може еще чего.
Работает не буду пока трогать, естьеще много узлов которые нужно реализовать.
Потом вернусь к этому вопросу.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st June 2025 - 12:37
Рейтинг@Mail.ru


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