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

 
 
> Передача данных в микроблейз с 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
Ответов
iosifk
сообщение Feb 9 2014, 18:27
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Ar-han @ Feb 9 2014, 20:41) *
Есть spartan-3an starter kit.
Спаял ацп плату, данные 8 bit 50 msps.
Задача - передать данные на комп.

если можно, то напишите, в чем идея, чтобы взять медленный процессор, с малым объемом памяти на борту, без какой либо операционки и на нем что-то городить...
Ведь данные нужно принимать, класть в память и при этом в эту де память принимать и из нее передавать пакеты. И из этой же памяти будет работать процессор... Поставите арбитраж на доступ к памяти и что там останется для процессора?
почему бы не взять микроконтроллер с МАС, чтобы внутри частота была 400-800 Мгц, чтобы памяти было много и для ОС и для пакетов? А АЦП - вешь стандартная и ее все равно куда цеплять...
И как видно, что с ПЛИС Вы не работали...
Так почему? Чья идея?


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Ar-han
сообщение Feb 9 2014, 20:28
Сообщение #3


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

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



Цитата(iosifk @ Feb 9 2014, 22:27) *
если можно, то напишите, в чем идея, чтобы взять медленный процессор, с малым объемом памяти на борту, без какой либо операционки и на нем что-то городить...


Задача - научиться работать ПЛИСом, в том числе и освоить работу с софт-процессорами.
Из микроконтроллеров опыт пока только с 16 битным микрочипом.
Пока что я привязан к этому железу, нет возможности приобрести что-то более оптимальное для этой задачи.
С ПЛИСами учусь работать, изучаю самостоятельно на имеющемся железе.
Микроблейз я только начал осваивать, с DMA режимом еще не работал.
Пытаюсь приладить имеющееся железо под эту задачу. Пока что меня интересуют пакеты по 1000 значений, с заданной частотой дискретезации.
На первом этапе между пакетами готов делать паузу 10-50 msec, ту которую потребуется для передачи пакета на комп.
Сначала обмен сделал через com-порт, данные с ацп запихивал в FIFO. И по заполнению буфера отсылал на комп. Всё работает, но на максимальной скорости 112 кбит.сек передача 1023 значения по 4 байта занимает около 1 сек. это много хочу повысить скорость хотя бы в 10-50 раз.

Решил повысить скорость, и привязался к микроблейзу с эзернет-контроллером.
Может быть формировать udp-пакеты проще без процессора на vhdl уровне, будет ли это быстрее?
В UDP, кажется, не обязательно считать там контрольные суммы.

Я полностью согласен с идеей взять процессор с mac-контроллером, скорее всего к этому и приду,
так как микроблейз съел почти все ресурсы ПЛИСа, я предполагал, что он съест 10-15%.
Выбор на ПЛИС пал, так как предполагаю обработку данных в дальнейшем сделать на нём, и ужать поток через эзернет, но пока готов тренироваться обрабатывать их на строне ПК.

З.Ы. из железа есть еще stm32f4 дискавери, но с ней пока что не успел познакомиться. Может кто подскажет,
какой поток данных можно через нее слать на комп.

Еще вопрос, про USB-полноскоростной, на сколько я понимаю можно добиться 480 мбит в сек.
На спартане стоит такая железка: CY7C68013
EZ-USB FX2™ USB Microcontroller High-speed USB Peripheral Controller .
Что потребуется, чтобы реализовать передачу на комп через неё?

Буду рад советам как на имеющемся железе получить приемлемую скорость передачи пакетов на комп.
хотя бы на порядок превышающую скорость передачи по com-порту.
Пройдя через этот этап, надеюсь появится возможность приобрести более подходящее железо.

С микроблейзом пока научился общаться через gpio. Какие еще есть варианты для передачи в него данных?
В моём случае это пока 1000 байт.
Если можно ткните где почитать об этом.

Спасибо.

Цитата(Golikov A. @ Feb 9 2014, 21:20) *
Самое простое с помощью визард create and import сделать модуль с регистровым доступом, слейв режима, он добавляется в микроблайз на шину,и данные из него просто читаются как из адресного пространства...


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


Цитата(Golikov A. @ Feb 9 2014, 21:20) *
ну и поток 50 МБайт в секунду нереальный....


50 Мбайт пока что и не нужно, сейчас интересуют пакеты по 1000 однобайтных выборок. Передача была реализована через com-порт, 1 пакет в секунду, но хочется повысить скорость передачи пакетов хотя бы на 1-2 порядка.


Цитата(ZASADA @ Feb 9 2014, 23:19) *
50 МБайт в секунду надо без микроблайза делать, чисто аппаратный UDP в ПЛИС.


Еще чуть помучаю микроблейз и попробую. Я решил, что с микроблейзом разобраться будет проще, возможно я ошибся. 50 Мбайт в сек. пока что не требуется. Думаю, что для начала, 50-100 пакетов по 1000 байт в секунду будет достаточно. Важно, чтоб частота выборки внутри пакета соответствовала 50 msps. Спасибо.
Go to the top of the page
 
+Quote Post
aabmail
сообщение Feb 10 2014, 10:03
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056



Цитата(Ar-han @ Feb 10 2014, 00:28) *
микроблейз съел почти все ресурсы ПЛИСа, я предполагал, что он съест 10-15%.
Выбор на ПЛИС пал, так как предполагаю обработку данных в дальнейшем сделать на нём, и ужать поток через эзернет, но пока готов тренироваться обрабатывать их на строне ПК.


В этом случае я бы попытался обойтись без процессора. Есть готовое ядро:

1G eth UDP / IP Stack
Go to the top of the page
 
+Quote Post
Ar-han
сообщение Feb 10 2014, 19:56
Сообщение #5


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

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



Цитата(aabmail @ Feb 10 2014, 14:03) *
В этом случае я бы попытался обойтись без процессора. Есть готовое ядро.


Спасибо, это очень полезно, чуть домучаю микроблейз и попробую разобраться с этим ядром.

Цитата(Golikov A. @ Feb 10 2014, 01:59) *
Микроблайз можно втыкать разными способами, вроде бы самый правильный делать так
Platform Studio - делаете ядро, потом экспортите в SDK, там пишете программу.


Я создаю проект схематик в проекте навигаторе, Add embedded sources. В xps конфигурирую железо микроблейза, подправляю mhs файл. Генерю нэт-лист, закрываю xps. Делаю top-hdl для микроблейза в ise, делаю схем-символ из top-hdl, подцепляю схем-символ к проекту ise.
Синтез, имплементация, генерю программный файл, далее экспорт железа в sdk c бит-стримом...

Вопрос: Корректно ли теперь из этого проекта ISE, в другой проект ISE копировать папку с железом микроблейза, и подцеплять его add embedded source (.xml), если железо микроблейза устраивает, или лучше пересобирать железо всё снова в новом проекте.
А то ошибки стали появляться, ISE ругается, что тактовая частота теперь далеко и не оптимально разведена, предлагает указать в (xxx.ucf) микроблейза для неё параметр "dedicated", предупреждает, что всё может плохо синхронизоваться.

Спасибо.


Цитата(Golikov A. @ Feb 10 2014, 01:59) *
Platform Studio есть такая фигня как Hardware -> Create or Import Perephiral


Благодарствую, попробую на днях поковырять, застрял что-то на ерунде...

Интересно, через сколько тактов после подачи активного уровня на ногу внешнего прерывания, процессор считывает данные с i-порта GPIO?
Можно ли в отладчике SDK увидеть время исполнения команд, типа stopwatch в MPlab микрочипа.

Сообщение отредактировал Ar-han - Feb 10 2014, 19:57
Go to the top of the page
 
+Quote Post



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

 


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


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