Цитата(FLTI @ Jun 27 2011, 14:44)

В чём основные проблемы и трудности?
Удалось ли в проекте Pinto реализовать одновременно capture и playback?
1. Их машинка для работы с памятью была заточена на работу с фифошками, то есть адрес "протянуть" на память было невероятно сложно.
В моём приложении (туча разных буферов для видео и аудио) адрес был необходим как воздух, пришлось вникнуть и всё переписать.
Добавил механизм так называемых "локальных дескрипторов", то есть небольшая табличка для каждого ДМА движка (на запись и на чтение), которая описывает начальный адрес ДМА и размер ДМА в страничках со стороны локальной памяти ДДР.
2. Крайне неэффективно использовалась память для SG таблиц внутри FPGA (3*32 bit на каждую SG страничку, переделал - у меня всего 32 бита на каждую страничку таблички, при этом всё пашет под 64 битными системами). Память BRAM в моём проекте была в большом дефиците (специфика многочисленных переходов из домена в домен и большое число фифошек).
3. Механизм перехода из 32bit * 200MHz в 64bit * 100MHz мне очень не понравился, исключил все DCMки и сделал всё на 32bit 200 МГц. После некоторой оптимизации по скорости всё разводится на ура, все констрейны выполняются.
4. Всю работу с видео выкинул, вставил свои куски (так было нужно для моей задачи).
5. Для улучшения производительности между памятью DDR и DMA движком вставил фифошки (они там в любом случае были необходимы, ибо клоки - разные). Возложил на этот кусок функции кэширования - сильно помогает поднять производительность системы в целом.
6. В дальнейшем перетащил дизайн под архиетктуру Спартана6, но это уже отдельная история.
7. Да, капчур с плейбеком в моём дизайне естественно живут независимо и одновременно. Нельзя сказать что они друг на друга не влияют, так как обращаются они в итоге к одной и той же ДДР памяти. Но если скорости записи и чтения далеки от предельных это влияние минимально.