Я работаю с набором процедур обработки речи (написанных на C), предназначенных для компиляции с помощью команды mex в MATLAB. Есть эта C-функция, которую я заинтересован в ускорении с помощью FPGA.
Аппаратное обеспечение принимает указанные входные параметры через входные порты, остальные входные данные как константы, которые должны быть жестко запрограммированы, и передает определенную переменную, находящуюся где-то в C-функции, скажем, foo , выходной порт.
Я заинтересован в отслеживании графов вычислений (не уверен, что это правильный термин для использования) по foo . то есть как foo относится к промежуточным вычисляемым переменным, которые, в свою очередь, в конечном итоге зависят от входных параметров и жестко закодированных констант. Это позволит мне сгладить логику, чтобы ее можно было кодировать с использованием языка описания оборудования, а также удалить ненужную логику, которая не влияет на значение foo . Суть в том, что некоторые промежуточные переменные являются глобальными, поэтому трассировка - это головная боль.
Существует ли автоматизированный инструмент, который анализирует заданный набор заголовков C и исходных файлов и предоставляет средства отслеживания того, как указанная переменная изменяется, с каким-то графом зависимостей всех используемых переменных?