Разработка современных микросхем в зависимости от их сложности стоит от 10 до 150 миллионов долларов. Примерно половина этой суммы приходится на проектирование СБИС и еще 30% на разработку программного обеспечения. Столь сложные проекты требуют четкой организации процесса разработки, эффективного маршрута проектирования.
Особую сложность представляет перевод на язык описания аппаратуры алгоритмов, в основе которых лежат затратные с точки зрения ресурсов математические операции. Эффективный перенос наукоемких математических алгоритмов из непродуктизированных программных моделей или даже из малосерийных программно-аппаратных изделий внутрь экономичной микросхемы предполагает ряд болезненных операций, таких как
- разделение исходного алгоритма на две части: аппаратные акселераторы и программное обеспечение, запускаемое на интегрируемом программном ядре и/или на хост-процессоре.
- моделирование аппаратной и программной части как единого целого
- сложность, если не сказать невозможность отладки аппаратной части после выпуска опытных образцов
Моделирование аппаратной части в современных САПР помимо организационной сложности ведет к колоссальному расходу времени, так как аппаратная реализация микросхемы представляет из себя набор конкурирующих, параллельно запускаемых процессов с ничтожно малым шагом моделирования. Отметим и весьма высокую стоимость современных САПР – от сотен тысяч до миллионов долларов за одну инсталляцию.
Наиболее популярные маршруты проектирования таковы:
- разработка RTL кода на основе текстового и графического описания алгоритмов
- прямой синтез RTL из Матлаб (Matlab Simulink HDL coder (Mathworks), Synphony (Synopsys), …)
- прямой синтез RTL из C (Synfora (Synopsys), CatapultC (Mentor Graphics), …)
- разработка RTL кода на основе так называемой “золотой референсной модели”, написанной на языке C.
В последнем случае можно выделить два принципиально разных подхода:
- перевод программного кода из традиционного C в SystemC
- преобразование исходного кода в RTL-ориентированную форму – промежуточную “золотую референсную модель” на языке C – с последующей ручной конверсией RTL-ориентированных функций в конечный RTL-код
По мнению автора доклада преобразование исходного C-кода в RTL-ориентированную форму в ряде случаев является наиболее эффективным способом конверсии наукоемких алгоритмов в RTL и далее в СБИС. В докладе рассматриваются основные проблемы известных маршрутов проектирования, причины, почему ни один из предлагаемых маршрутов не является оптимальным, даются рекомендации на основе собственного опыта и личной практики. В качестве примера, иллюстрирующего трансформацию сложного программного решения в RTL код, выбран проект “разработка СБИС super host-based GPS/ГЛОНАСС приемника”. Представлена структурная схема baseband processor’a такого приемника, описываются его основные компоненты, показывается последовательность их трансформации из программной модели в чип.
Леонид Пурто
Леонид Пурто – один из ведущих инженеров фирмы Spirit DSP (c 1998г), руководитель проекта. Один из разработчиков прошивки для микросхемы TMS320VC54CST (Texas Instruments). Как рядовой инженер или как руководитель участвовал в десятках проектов по созданию средств проводной и беспроводной связи. В последнее время разрабатывает устройства спутниковой навигации.