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

 
 
> Передача данных в микроблейз с VHDL уровня.
Ar-han
сообщение Feb 9 2014, 16:41
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 91
Регистрация: 12-09-11
Пользователь №: 67 135



Всех приветствую!

Есть spartan-3an starter kit.
Спаял ацп плату, данные 8 bit 50 msps.
Задача - передать данные на комп.
После игр с com-портом, остановился на UDP пакетах.

Вопрос 1: как лучше передавать данные процессору с vhdl уровня. Пока что интересуют пакеты по 1000 байт.
Данные собираются на частоте 50 мгц. пакетами по 1000 точек.
Для начала готов терять часть пакетов.
Пока пробую через GPIO. Подвел к контроллеру прерывания ногу и вывел её на vhdl уровень.
Можно данные по 4 байта складывать в GPIO, но всё равно, кажется не будет успевать.

Вопрос 2: Сколько тактов нужно процессору для обработки прерывания и дописывания в строку переменной из порта GPIO?

Вопрос 3: Почему столько ресурсов скушал только microblaze c переферией?
Это нормально?

OS Platform - standalone
UDP пакеты через Lwip

Microblaze + ethernetlite ip.
Процессор на частоте 62.5 mhz.
16 kb local memory
2kB + 2kb cache data, instr DDR2 SDRAM

fpga xc3s700an

Number of Slice Flip Flops 4,337 ___ 36%
Number of 4 input LUTs 5,218 ___ 44%
Number of occupied Slices 4,259 ___ 72%
Total Number of 4 input LUTs 5,358 ___ 45%
Number of MULT18X18SIOs 3 ___ 15%
Number of RAMB16BWEs 17 ___ 85%

Всем спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Feb 10 2014, 20:22
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



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

Выбирая между скопировать старое, или еще раз сделать новое, в отношении ксалинкса, я выбирают сделать новое. 2 Дня бился с багой, оказалось что как-то не так при повторном экспорте сделались библиотеки, и все что я менял в заголовках и прочее, не имело никаких действий, так как бралось из кривых библиотек. Так что при пересборке ядра, лучше вообще новый железный проект сделать, а потом еще почистить, а потом только старые проекты запихивать, и их почистить... криво там все работает...

100% результат если вы все сделали с 1 раза, вот так и ходите, ни шагу назад.

про прерывание ничего не скажу. Функция штатной обработки и разбора из библиотеки, которая определяет откуда взялось прерывание и вызывает его калбак настолько объемная, что там дикое количество тактов. Потом мне показалось что и чтение данных с порта не за 1 такт происходит.

Время выполнения я мерил при помощи таймера, запускал с частотой проца, и считывал до и после операций, или следил за ним из отладчика. Или просто считал число тактов в отладчике, но как померить прерывание таким образом хрен знает.

Можно его самому через GPIO сгенерить, записав время таймера до вывода данных, а потом повторно уже в прерывании проверить значение таймера, после считывания и все узнаете.
Go to the top of the page
 
+Quote Post



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

 


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


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