Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1
  • 2
  • 3

ТЕМА: Делаем видеоадаптер на ПЛИС со всеми "плюшками"

Делаем видеоадаптер на ПЛИС со всеми "плюшками" 3 года 11 мес. назад #6661

  • xakez
  • xakez аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 11
  • Спасибо получено: 0

Chaosorg пишет: Посмотрел я плату, которая к Вам приехала :) Вроде вот эта www.altera.com/products/boards_and_kits/...ne-v-gx-starter.html
Ну что ж - это следующая ступень в плане потенциальных возможностей относительно Marsahod 3 и тем более 2
Понимание Ваших целей снизилось:( Зачем для такой FPGA "помощник" в лице STM32? Хочется понять, какого типа софт Вы "крутите" на STM32 - это просто "микроконтроллерный" C/C++ без ОС или RTOS или что? Т.е. согласитесь, что одно дело сделать что-то типа технодемо, совместимое только само с собой, а другое дело сделать способную на подмножество OpenGL видеокарту с драйвером под какую-то ось, ну или хотя бы под какую-то библиотеку, вернее какое-то где-то еще используемое API
И еще. Вы планируете один экземпляр устройства или тираж с BGA корпусом?


Плата эта:)
STM нужен сейчас для уменьшения количества кода для разработки сейчас)
На стмке "своя ось", выполняющая сугубо узкие цели - общение с авто и окружающими ее девайсами типа Bluetooth.
Мы планируем мелкосерийное производство. Если интересно - стучитесь скайп - xakkez - в кратце расскажу, ну а если сработаемся - расскажу в подробностях:)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Делаем видеоадаптер на ПЛИС со всеми "плюшками" 3 года 11 мес. назад #6663

xakez пишет:

Chaosorg пишет: Посмотрел я плату, которая к Вам приехала :) Вроде вот эта www.altera.com/products/boards_and_kits/...ne-v-gx-starter.html
Ну что ж - это следующая ступень в плане потенциальных возможностей относительно Marsohod 3 и тем более 2
Понимание Ваших целей снизилось:( Зачем для такой FPGA "помощник" в лице STM32? Хочется понять, какого типа софт Вы "крутите" на STM32 - это просто "микроконтроллерный" C/C++ без ОС или RTOS или что? Т.е. согласитесь, что одно дело сделать что-то типа технодемо, совместимое только само с собой, а другое дело сделать способную на подмножество OpenGL видеокарту с драйвером под какую-то ось, ну или хотя бы под какую-то библиотеку, вернее какое-то где-то еще используемое API
И еще. Вы планируете один экземпляр устройства или тираж с BGA корпусом?


Плата эта:)
STM нужен сейчас для уменьшения количества кода для разработки сейчас)
На стмке "своя ось", выполняющая сугубо узкие цели - общение с авто и окружающими ее девайсами типа Bluetooth.
Мы планируем мелкосерийное производство. Если интересно - стучитесь скайп - xakkez - в кратце расскажу, ну а если сработаемся - расскажу в подробностях:)


Ну... будет с чем постучаться - постучусь :) Конечно, интересно, но ведь не одному мне. Что, кроме рекрутинга, останется от этой темы на этом форуме? Я поэтому именно здесь, а не в привате, попытаюсь еще задать сугубо технические вопросы о проекте:
1. Разве это хорошо - BGA в автомобиле? Ведь перепады температур и вибрации же... Или BGA просто потому, что понравилась отладочная плата "на вырост", а на самом деле проект должен помещаться в FPGA с планарным корпусом и обладателям Марсоход 2/3 это может быть тоже интересно?
2. Вы говорили, что "написали ... свою графическую либу" - API сугубо свое?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Делаем видеоадаптер на ПЛИС со всеми "плюшками" 3 года 11 мес. назад #6664

  • xakez
  • xakez аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 11
  • Спасибо получено: 0

Chaosorg пишет:
Ну... будет с чем постучаться - постучусь :) Конечно, интересно, но ведь не одному мне. Что, кроме рекрутинга, останется от этой темы на этом форуме? Я поэтому именно здесь, а не в привате, попытаюсь еще задать сугубо технические вопросы о проекте:
1. Разве это хорошо - BGA в автомобиле? Ведь перепады температур и вибрации же... Или BGA просто потому, что понравилась отладочная плата "на вырост", а на самом деле проект должен помещаться в FPGA с планарным корпусом и обладателям Марсоход 2/3 это может быть тоже интересно?
2. Вы говорили, что "написали ... свою графическую либу" - API сугубо свое?


1. BGA потому что понравилась плата. По сути, после завершения стадии программирования от платы остается только FPGA и то, скорее всего не этот а FPGA, а тот в который проект влезает. Обвязка, память и т.п. разводятся уже на новой плате.

2. Ну это уже совсем другая история, не связанная с ПЛИСом) Если кратко, то это некий "велосипед", который на вход принимает пачку параметров: x,y, ширина, высота, тип элемента, в зависимости от типа элемента - указатель на структуру с настройками для конкретного элемента. Выделяет память и следит за ее переполнением. Далее есть методы для перерисовки элементов, которые регистрируют области перерисовки. Есть процесс смешивания, который смешивает только измененную часть окна. Ну и процесс, который меняет буффер если нужно раз в 30мс. Наверное да - сугубо свое.

оффтоп: там есть некое подобие событийной модели, правда в XML пока не вложено. А так, из кода можно взять "контрол" и "подписаться" на его OnMouseDown :)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Делаем видеоадаптер на ПЛИС со всеми "плюшками" 3 года 11 мес. назад #6667

  • xakez
  • xakez аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 11
  • Спасибо получено: 0
Новые вводные, научились использовать LPDDR2 - пока что тупо в один такт пишем в нее - в другой читаем - данные корректные.
"исследование" затрудняется достаточно долгой компиляцией)
Используем альтеровский lpddr2 модуль. На вход 50Mhz резонатор. Соответственно модуль верхнего уровня "соединяет провода" как надо, а данные гоняются по шине:
.avl_read_req_0(ddr_req == 2'b01),             //                   .read
.avl_write_req_0(ddr_req  == 2'b10),            //                   .write
.avl_ready_0(avl_ready),  //здесь следим за "завершением" чтения и/или записи
.avl_rdata_0(readData),                //           wire [31:0]         .readdata
.avl_wdata_0(writeData),              //           reg   [31:0]

Ну и код примерно такой:
always @(posedge CLOCK_50_B5B)
begin
	if (avl_ready)
           передаем или получаем
        else
          ddr_req  =2'b00;

Что я упустил?)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Делаем видеоадаптер на ПЛИС со всеми "плюшками" 3 года 11 мес. назад #6670

xakez пишет: Новые вводные, научились использовать LPDDR2 - пока что тупо в один такт пишем в нее - в другой читаем - данные корректные.
"исследование" затрудняется достаточно долгой компиляцией)
Используем альтеровский lpddr2 модуль. На вход 50Mhz резонатор. Соответственно модуль верхнего уровня "соединяет провода" как надо, а данные гоняются по шине:

.avl_read_req_0(ddr_req == 2'b01),             //                   .read
.avl_write_req_0(ddr_req  == 2'b10),            //                   .write
.avl_ready_0(avl_ready),  //здесь следим за "завершением" чтения и/или записи
.avl_rdata_0(readData),                //           wire [31:0]         .readdata
.avl_wdata_0(writeData),              //           reg   [31:0]

Ну и код примерно такой:
always @(posedge CLOCK_50_B5B)
begin
	if (avl_ready)
           передаем или получаем
        else
          ddr_req  =2'b00;

Что я упустил?)


Ну тут не весь же код...

Неготовность модуля может быть вызвана Вашим же запросом на чтение, например. Т.е. Вы подадите ему адрес откуда хотите прочесть, ему понадобится время на извлечение информации и он снимет сигнал готовности, в каком-то такте Вам информацию выставит... Где Ваш код помнит о том, что он хочет сделать - попросить что-то еще или получить ответ на предыдущий вопрос? "Передаем" и "получаем" не обязательно одноактные команды, особенно "получаем"

перечитал Ваше сообщение еще раз - похоже, что вся многотактная последовательность чтения/записи "спрятана" в альтеровском модуле. Тогда проблем не вижу.
P.S.
Вы бы почитали и позаписывали бы все-таки по разным адресам разные данные для теста. Произвольное чтение не может быть в один такт, на сколько мне известно:)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Chaosorg.
  • Страница:
  • 1
  • 2
  • 3
Время создания страницы: 0.190 секунд
Работает на Kunena форум