Hi.
Реализуем, в частном порядке, различные c-алгоритмы на FGPA, с учетом
оптимизации по скорости и обьему логики, также по заказу возможна разработка
пайплайна для алгоритмов. Поддерживаются FPGA фирм Altera/Xilinx/Actel.
Входные данные :
- алгоритм в виде исходника на с/c++
- желаемое время исполнения или частота design'а и количество тактов
- приветствуется тест-вектор для алгоритма
Выход :
- EDIF
- VHDL/Verilog
- прошивка с заданным pin-out'ом (только для семейств фирмы Altera)
Ограничения:
- понятное дело не поддерживаются :
- рекурсивные функции
- malloc/free
- указатели типа void
- пока не поддерживаются операции с floating point, т.е. алгоритм, который
таковые использует, необходимо перевести в fixed point
- прошивки и реальная time-and-fit проверка поддерживается пока только для
FPGA семейств фирмы Altera
Замечания:
Данная фишка будет полезна тем кого не жмет место в FPGA, а жмет скорость
реализации проекта.
Для оценки прилагается немного обкоцанный (без оптимизации, без пайплайна и
т.д.) тестовый проект для Альтеры, слеплен в precision и разведен в linux
quartus 5.1 sp2 - ITU-T compliant G.726 16kbit encoder на 240 каналов (8 X
E1 A-law) с входом для начальной установки кажного кодека и выходом
тон-детектора соответственно для каждого канала (2-ой бит enc_val). Состояние
компрессора для каждого из каналов хранится во внутренней памяти FPGA, в
данном примере использован первый циклон - EP1C12. Интерфейс с ф-ией - флаги
типа start/done, пример работы дан в wave-form файле. Также в архиве
присутствует тест-вектор (входной - nrm.a.raw, выходной - rn16fa.i.raw) из
itu стандарта, для проверки. Характеристики данного проекта :
- частота дизайна : 70 MHz
- время готовности ф-ции к работе после глобального сброса : 82 мкс
- число тактов на полную операцию кодирования : 17 (243 нс)
- ресурсы : 6061 Cells (50% от ресурсов камня) / 98560 memory bits (41% от него же)
За остальным пишите в PM.