Цитата(prussta @ Mar 31 2015, 10:26)

Так я и так реализую на fpga, использую софтпроцессор NiosII для управления всей подключенной переферией - SPI, FIFO, DMA и т.д. Делаю на Cyclone III. Или я не так понимаю?
Тогда я все верно понял.
Цитата(prussta @ Mar 31 2015, 10:26)

Поясните, пожалуйста
У вас есть допустим 2 FIFO. 1-ая (FIFO1) заполняется процессором в режиме DMA, а вторая с порта SPI1 (FIFO2).
(На этом этапе необходимо разобраться с принципом FIFO и организацией DMA.)
Как известно FIFO позволяет согласовывать различные клоковые домена. В вашем случае можно предположить 3 клоковых домена, а именно 1-ый ПРОЦЕССОРНЫЙ, 2-ой SPI1, 3-ий SPI2.
Т.е. в FIFO1 с удобной скоростью для процессора, в FIFO2 пишется с скоростью прихода данных от SPI1, а SPI2 загружаются данные с удобной для SPI2 скоростью.
________________________________________________________________________________
__________________________________________________________
Мы разобрались как записать в память. Теперь разберемся как из нее вычитать.
Вычитываем из памятей FIFO1, FIFO2 c скоростью SPI2. Но так как мы передаем данные от двух источников (FIFO1, FIFO2) необходимо вычитанные данные миксовать необходимым образом (это из протокола SPI2 видно).
Если микс реализовать на verilog, тогда это будет цикл case.
___________________________________________
уточняйте свой вопрос. Что именно не ясно?
Победа - это когда N раз упал и N+1 раз встал.