Конечно, Матлаб не универсальная штука и все промоделировать в нем нельзя. Пока можно сказать, что он хорошо подходит для моделирования алгоритмов DSP, не более. Автоматы состояний мы делаем в Xilinx StateCAD, а затем подключаем к модели через blackbox.
Процессоры там тоже особо не промоделируешь.
Но, кстати, это особо и не нужно.
Например, ессно наш алгоритм DSP получает сигналы не напрямую с аналогового сигнала. В реальности там стоит АЦП, а АЦП надо еще тактировать и управлять. То есть целый драйвер нужен. Но в МАТЛАБЕ от этого можно абстрагироваться, просто подав Simulinkовский сигнал на преобразователь в фиксированную точку и все. Таким образом сигнал становится как-бы внутренним Плисовским сигналом.
А драйвер АЦП давно отлажен и сделан как BSP в виде симулинковского блока в библиотеке. В итоге отлаженный алгоритм подключается к драйверу и генерится битстрим.
Цитата
Каким образом Вы проверяете работоспособность на функциональном уровне? Только по симулинку? Тестбенчи вообще не пишете? Каким образом проверяется работоспособность с учетом всех задержек
К сожалению(или к счастью) с тестбенчами опыта не имел по вышеозначенным причинам, поэтому не совсем понимаю, зачем они нужны.
В случае с System Generator все сводится к следующему. Все клоки Маталаб распределяет сам и дизайн полностью синхронный. Таким образом сигнал от одного регистра до следующего должен дойти за период клока. При моделировании в Симулинке регистровые задержки учитываются и по диаграмме можно увидеть, что данный сигнал задержан на столько то периодов.
Далее есть такая функция - анализатор таймингов, которая комплирует полностью дизайн, пытается впихать его в ПЛИС и если вышеуказанное условие не выполняется - в Симулинке показывается цепь, которая содержит слишком длинную комбинаторную цепочку. В этом случае разработчик должен внести в нее регистры, увеличив задержки. При этом он продолжает моделирование и если надо корректирует дизайн, чтобы сохранялась исходная функция. Если тайминг проходит, то можно прошивать ПЛИС - гарантируется, что в этом случае функциональность ПЛИС будет идентична модели.
ПС Кстати в следуюшем проекте мы начинаем использовать SERDES. Посмотрю, как их можно к Матлабу прикрутить