Цитата
Этот DMA компонент так и работает - читает во внутренний буфер 1 такт, потом записывает -2 такт.
Давным давно отлаживал систему с DMA и лично видел, что запись была по каждому фронту. Правда это было очень давно.
В DMA есть FIFO поэтому она должна (а точнее я хочу, чтобы DMA так делала) читать несколько циклов и потом записывать несколько циклов. Конечно если чтение и запись идут в одну и туже память то без разделения по времени ни чего не получится, а вот если чтение идёт из переферийного устройства, а запись в память, то казалось бы нет необходимости разделения по времени и запись может идти по каждому такту. Надо поэкспериментировать, но у меня остаётся надежда заставить DMA работать по каждому такту.
Цитата
У DMA read и write на разных шинах?
Не совсем понял вопрос. DMA read и DMA write это отдельные мастеры и соответственно разные шины. Они оба подключены к контроллеру DDR памяти и некоторым другим компонентам в системе, а к моему компоненту получения данных от АЦП подключен только DMA read.
Цитата
1.SG-DMA
Всегда недолюбливал SG DMA. Надо наверное с ним хорошенько разобраться.
SG DMA содержит четыре мастера, т.е. два дополнительных мастера для дискрипторов. Если всё это подключить к контроллеру DDR памяти то минимум к нему будет подключено шесть мастеров и плюс мои собственные. Мне почему-то кажется что это очень плохо для производительности и для разводки по кристалу. Видимо шины для дискрипторов лучше подключать к внутренней памяти ПЛИС.
Но как же мне передать большой объём данных ведь в дискрипторе поле для длинны передачи всего 16 бит, т.е. 65536 байт? Увеличивать количество дескрипторов? Так до какой степени, в ПЛИС же память не слишком большая?
Цитата
2. перенос DMA и FIFO в клоковый домен памяти.
Уже сделано.