Цитата(prussta @ Apr 6 2015, 14:28)

Я так понимаю, что без блока на fpga, организующего прием данных с SPI1 не обойтись, потому что если данные идут постоянно, то программа все время "висит" в обработчике прерывания по приему SPI1 и даже не выходит в основной цикл. ( Это я попробовала при помощи Niosа принимать) Хотя не совсем мне понятно почему так, ведь данные идут с частотой 30 Мгц, а процессор работает на 157МГц. Почему он не успевает выходить в основной цикл? В прерывании только считываю пришедшие данные. Неужели так много занимает это времени....хмм...
Уважаемая Леди! При организации цифровой системы для обработки чего либо. У вас имеется рабочий цикл. Во время которого процессор (в вашем случае NIOS) прочитать данные -> обработать данные -> записать обработанные данные. И этот процесс я осмелюсь предположить синхронный.
Вам необходимо расписать задачи процессора на один рабочий цикл (на один дискрет).
Допустим если у вас за цикл 100 секунд (ОЧЕНЬ ОБРАЗНО ГОВОРЯ) процессор успевает выполнить 100 команд , то Вам необходимо распорядиться этим вычислительным ресурсом таким образом, чтобы успеть прочитать SPI, записать SPI, обработать данные и вернуться в основной цикл чтобы выполнить ряд основных задач.
Цитата(prussta @ Apr 6 2015, 14:28)

Почему он не успевает выходить в основной цикл? В прерывании только считываю пришедшие данные. Неужели так много занимает это времени....хмм...
Вы наверняка работаете по прерываниям. И вообще стоит ввести такое понятие как приоритет прерываний. И возможно все встанет на свои места даже если все задачи загрузить на NIOS.
РАЗБЕРИТЕСЬ с собственными задачами на системном уровне. Не лезьте в глубь пока не разобрались на системном уровне.
Цитата(Dmitriyspb @ Apr 6 2015, 14:55)

Уважаемая Леди! При организации цифровой системы для обработки чего либо. У вас имеется рабочий цикл. Во время которого процессор (в вашем случае NIOS) прочитать данные -> обработать данные -> записать обработанные данные. И этот процесс я осмелюсь предположить синхронный.
Вам необходимо расписать задачи процессора на один рабочий цикл (на один дискрет).
Допустим если у вас за цикл 100 секунд (ОЧЕНЬ ОБРАЗНО ГОВОРЯ) процессор успевает выполнить 100 команд , то Вам необходимо распорядиться этим вычислительным ресурсом таким образом, чтобы успеть прочитать SPI, записать SPI, обработать данные и вернуться в основной цикл чтобы выполнить ряд основных задач.
Вы наверняка работаете по прерываниям. И вообще стоит ввести такое понятие как приоритет прерываний. И возможно все встанет на свои места даже если все задачи загрузить на NIOS.
РАЗБЕРИТЕСЬ с собственными задачами на системном уровне. Не лезьте в глубь пока не разобрались на системном уровне.
ИМХО