Evgeny_CD, Архитектор (16.08.2011 14:08, просмотров: 543) ответил -pin- на Чтоб от FPGA профит поиметь, низкоуровнево делать надо. Иначе полученное крокодилище плохо заплэйсэндроутится. Посему все эти систем-хрени не очень-то нужны.
Ысче раз. Изначально. Нафига козе боян. Есть задача - разложить задачу на софт и FPGA. Все это раскладывается на подзадачи:
* разложить на блоки. Что даелатся в софте, что в харде, и КАК делается в харде.
* Промоделировать все это, чтобы в некоторых предположениях оценить время выполнения. Берем симулятор с идеальной памятью (т.е. учитывает только такты ядра) и програмную модель RTL логики, которая считает в неких тактах, и смотрим, сколько тактов все это пожрало. Экспертно оцениваем - а то, что мы в RTL накодили - оно вообще с таким тактом в реале работать будет или как?
* делаем тонкую настройку програмной и железной части для достижения нужного баланса
* пишем тестбенч для железной части, чтобы на чем бы она не была написана, мы могли точно понять - оно или не оно
* распараллеливаем разработку софт и харда. Т.е. софтописатели пишут полностью виртуально, с виртуальной моделью железяки. А HDL ваятели могут исходя из модели лабать хоть в схематике - лишь бы успели к некоему сроку успели
* по мере готовности железа и софта сводим все в реале, узнаем много нового и интересного :)
Так вот, если железяку изначально описывать на Verilog|VHDL, то все это дико затянется. Т.е. придумали итерацию, месяц кодинга, проверили на модельках - не оно, снова месяц и т.д. - проект точно не взлетит никогда!
Возможность создания модели:
* быстро
* в виде С/С++ файйла, который можно заставить исполняться где угодно
является ключевой для успеха
Повкуривав SystemC, я осознал, что он не шибко уж ортогонален обычным С++ программерам. И в этом его самая главная особенность! Т.е. осознать нужный стиль мышления на SystemC (приниципиально отличный от обычного программизма) не так уж и сложно. Зато программер останется в рамках одного инструментария С++, ну а хорошее знание С++ весьма полезно по многим причинам, и его логично требовать от членов команды.
Более того, хотя кодить железо на SystemC и обычную прогу на С++ должны разные люди, но в принципе, С++ программер, как я мечтаю, может слегка подрихтовать SystemC, что сократит трафик на тему мелких ошибок и модификаций внутри команды.