Показаны сообщения с ярлыком сапр. Показать все сообщения
Показаны сообщения с ярлыком сапр. Показать все сообщения

16 окт. 2009 г.

Doxygen для SystemC 2.2.0

Часто при изучении новой библиотеки нужно посмотреть иерархию классов или список методов конкретного класса. Прыгать из файла в файл по ссылкам “Show Declaration” в Визуал Студии не всегда удобно. Есть утилита Doxygen, которая разбирает проекты, написанные на разных языках, и генерирует гипертекстовый сайт. На этом сайте можно просмотреть список всех классов, иерархию в UML-виде, список методов с описанием.

В курсе “Компьютерные технологии в автоматизированном проектировании” мы изучаем SystemC и такая документация была бы очень полезна. В интернете нашел несколько опубликованных сайтов с документацией, но с неактуальными версиями. Поэтому, решил сгенерировать и опубликовать самостоятельно: http://kiu.kture.kharkov.ua/systemc/html

К сожалению, реализация библиотеки SystemC с официального сайта не имеет встроенной документации в формате Doxygen, поэтому описания методов и классов не доступны.

25 сент. 2009 г.

Рост использования С++-синтеза

Шон МакКлауд, директор из Ментор Графики, сообщает, что к концу 2009 года количество фирм, использующих С++-синтез для производства, превысит 33 %. В 2008 году этот показатель составил около 14 %. Статистика была собрана в результате анонимного опроса 800 инженеров. Опрос спонсировался Ментор Графикой.

Три причины, по которым инженеры выбирают С++-синтез, это: а) проще верифицировать (68 % опрошенных); б) быстрее получается RTL (64 %); в) нужно меньше людей, что в условиях кризиса очень актуально.

А вот интересная статистика по объему рынка продуктов высокоуровневого синтеза и связанных с ними сервисов. Эти цифры собраны аналитиком Гарри Смитом и опубликованы в июльском номере журнала “IEEE Design and Test of Computers”.

cppsynthesismarket

Диаграмма очень интересная. Смит сообщает, что в 90-х годах у пользователей появился интерес к высокоуровневому синтезу, но инструменты были далеки от того, чтобы быть пригодными на производстве. Из-за этого доверие к ним было утрачено. В последние же годы наблюдается повторный расцвет программ высокоуровневого синтеза нового поколения. Знаю, что многие скептически относятся к С++ и SystemC как к языкам описания систем. Посмотрим спустя несколько лет, как будет на самом деле.

А ещё знакомые подсказывают, что все эти цифры — маркетинговый булщит, чтобы завлекать пользователей, типа “смотри, уже половина купила С++-синтез, так давай покупай и ты”!

19 сент. 2009 г.

Вебинар по заявкам

Вебинар Ментор Графикса по системному уровню проектирования, о котором шла речь три дня назад, появился в открытом доступе по заявке. Кому интересна тема С++-каким-то-магическим-образом-в-RTL — приглашаю к просмотру. Студентам специальности “компьютерная инженерия” смотреть обязательно. Такое у нас редко где услышишь.

Вебинар по заявке “Проектирование аппаратуры на С++”

15 сент. 2009 г.

Был на вебинаре Ментор Графики

Сегодня прошел вебинар (веб + семинар) фирмы Mentor Graphics на тему «Hardware Designs Reuse Using C++ and High Level Synthesis». Лекция в тезисах:
  • поддерживается синтез ANSI C++ в RTL;
  • повышение производительности инженеров в 10—20 раз, а также сокращение времени на верификацию;
  • качество синтеза эквивалентно ручному;
  • доступны различные параметризируемые типы данных, которые хорошо синтезируются в аппаратуру;
  • объектно-ориентированная архитектура устройства, например, можно делать устройства с одним интерфейсом, но с разной реализацией;
  • можно посмотреть результаты планирования выполнения микроопераций на диаграмме Ганта: временные задержки, распределение по тактам.
В целом, ничего нового с весны не услышал. В конце была возможность задать вопросы лектору пальцем по клавиатуре, а ответ послушать ухом из динамика. Спросил следующие вопросы и получил конкретные ответы.
Вопрос: как обстоит дело с поддержкой SystemC?
Ответ*: наши пользователи в основном используют чистый С++, потому что они программисты и совсем не знают SystemC.

Вопрос: как происходит совместный программно-аппаратный синтез?
Ответ: никак. На данный момент это всего-лишь инструмент для C++ в RTL синтеза и всё.

Вопрос: необходимо ли использование каких-то С++ расширений или директив?
Ответ: нет, не нужно. Наши С++ модели можно легко скормить любому компилятору и вы получите те же самые результаты моделирования. Директивы могут быть использованы в случаях, когда необходимо указать параллелизм в цикле и т. п.

* здесь и далее вольный пересказ
Есть возможность посмотреть более подробные демонстрации на сайте Ментор Графики.

Продолжаем работу над нашим транслятором. Среди ближайших задач: встраивание функций, оптимизация выражений. 

14 сент. 2009 г.

Патент на высокоуровневый синтез

На прошлой неделе готовил лекцию о языке SystemC и наткнулся на статью Stephen A. Edwards, «The Challenges of Synthesizing Hardware from C-Like Languages», о различных С-подобных языках, применяющихся для описания аппаратуры. Среди различных языков и инструментов была ссылка на американский патент № 6 226 776 о синтезе С в железо, который сейчас якобы принадлежит фирме Synopsys. Автор статьи описывает патент, как «претендующий на широкую поддержку языка ANSI C»: упоминается поддержка указателей, рекурсии, динамического распределения памяти.

Я заинтересовался этим патентом. Около 85 страниц из всех 108-и — это примеры на С и соответствующие им результаты синтеза на Верилоге. Ещё 14 страниц — это словесное описание всех примеров. И последние четыре страницы посвящены описанию формулы изобретения. Модели в основном представлены в виде цифровых автоматов, намного реже — data-flow модели. Как такового метода преобразования С в цифровой автомат там не было. Я обратил внимание на один пример, в котором из одной функции вызывались две другие.

int sum1 (int n)
{
    int i, sum = 0;
    for (i = 0; i < n; i++)
        sum += i;
    return sum;
}

int sum2 (int array[], int size)
{
    int i, sum = 0;
    for (i = 0; i < size; i++)
        sum += array[i];
    return sum;
}

int f1()
{
    int i;
    int array[10];
    int size = sizeof(array)/sizeof(*array);
    for (i = 0; i < size; i++)
        array[i] = i * 2;
    return sum1(size) + sum2(array, size);
}

* This source code was highlighted with Source Code Highlighter.

Перед тем, как читать дальше, подумайте: сколько состояний автомата нужно, чтобы выполнить этот алгоритм? Мне тоже сначала показалось, что должно быть немного. Но в предложенном варианте синтеза для выполнения этого алгоритма нужно 16 состояний автомата. Так как мой компилятор С++ в VHDL ещё не способен откомпилировать такой код, то решил нарисовать граф-схему алгоритма вручную.

Все функции уже встроены, и предполагается, что инициализация переменных происходит по сигналу reset. Таким образом, в этом автомате получается всего лишь семь состояний (см. Баранов С. И. Синтез цифровых автоматов).

Вот не могу понять: у них там в 2001 году не знали то, что у нас было известно ещё в 1974?

28 июн. 2009 г.

Завел статью про Алдек на Википедии

На мой взгляд русскоязычная Википедия страдает от недостатка статей в области САПР микроэлектроники. Например, нет статей о таких гигантах, как Cadence, Synopsys, Mentor Graphics. Только что сделал небольшой перевод статьи из англоязычной Википедии про Алдек. Приглашаю к просмотру: Aldec. По хорошему надо сделать ещё статьи про Active-HDL и Riviera.

Первый раз про фирму Алдек я услышал на первом курсе. После второго курса поехал на летнюю практику к ним в Катовицы. Там я впервые понял, что такое тестирование программного обеспечения, как это круто быть инженером SQA, а также приобрел навыки, которые по сей день актуальны. Благо, местные знающие люди подсказали, помогли и научили. Рабочие дни дополнялись многочисленными этнографическими экспедициями по окрестностям: Гливицы, Краков. Для меня было открытием, что концлагерь Освенцим находится в каком-то десятке километров от Катовиц.

Фирма Алдек многому научила и многое дала не только мне, но и моим друзьям. В разных офисах в Харькове, Катовицах и Хендерсоне работают мои близкие знакомые, выпускники нашего университета. Поэтому, наполнение русской Википедии начнем именно с этой EDA-фирмы.

На фотографии ниже показан офис фирмы в Жерновце, совсем рядом с Балтийским морем. Живописное место — на ближайшие километры никто не живет, лес, гидроаккумулирующая станция и недостроенная атомная электростанция. Там очень уютно.

21 июн. 2009 г.

Проектирование на системном уровне (доклад)

Во вторник (23.06.09) состоится мой доклад по проектированию на системном уровне. Будет представлен обзор современного состояния, некоторые результаты по моей диссертации, а также различные идеи.

В программе:

  1. Ретроспектива средств автоматизации проектирования (с 1950-х).
  2. Современные подходы к проектированию.
  3. SystemC как язык проектирования систем.
  4. Использование виртуальных прототипов.
  5. Программно-аппаратные системы.
  6. Исследование пространства проектных решений.
  7. Синтез С++.

Дата: 23 июня 2009 (вторник).
Время: 18:00—19:00+.
Место: 318 ауд. ХНУРЭ.
Добавить в календарь:

Вход свободный.

Доклад будет интересен студентам специальностей «Специализированные компьютерные системы», «Компьютерные системы и сети», «Системное программирование». В ходе доклада будут рассмотрены основы, поэтому первокурсники могут приходить смело.

Темы

2012 (2) амазон (1) анпакинг (1) артемий лебедев (4) атн (1) аудио (1) аэропорт (1) безопасность (3) бизнес (1) билайн (1) блог (2) будущее (2) видео (11) википедия (5) вымысел (16) гагарин (1) герман (1) гитхаб (1) гугл (3) дед мороз (1) декабрь (1) демотиватор (2) дети (2) дизайн (13) диссертация (2) документация (1) друзья (5) евпатория (1) евро-2012 (1) жадность (1) заяц (1) идея (1) имейл (1) инстаграм (1) интервью (5) интересное (20) интерфейс (13) история (7) как_выжить (4) календарь (1) капитализм (1) картина (1) кмб (6) книга (6) коллекция (4) компилятор (2) конкурс (5) космос (1) лаборатория (1) либералы (1) лингво (1) лузер (6) макаренко (2) макдональдс (2) математика (1) медиапорт (1) ментор (1) металлика (1) металлист (2) метро (7) микрософт (6) миргород (1) москва (2) музыка (3) наркомания (1) новости (17) образование (3) оптимизация (5) основы (14) открытки (3) ошибка (11) памятник (1) патриотизм (3) плагиат (1) плата (1) погода (3) поиск (1) политика (2) полтава (2) праздник (1) программирование (15) прошлое (2) путешествия (8) рейтинг (1) рендер (1) рисунок (2) русские (1) русский язык (1) сайт (4) санкт-петербург (1) сапр (7) сеть (1) си++ (1) синтез (1) системси (1) скриншот (40) социализм (1) соцопрос (3) спектрум (2) спорт (2) срач (2) статистика (1) такси (1) тбб (3) твитер (9) тимошенко (1) украина (5) униан (1) фан (30) фокус (1) фото (39) фотошоп (1) фурсенко (1) футбол (2) хабр (1) харьков (21) хнурэ (19) хобби (4) цитата (2) чехия (1) школа (1) эпл (1) эхостар (1) юмор (1) яндекс (1) clang (2) doxygen (1) english (3) ios (1) llvm (1) msdn (1) outlook (1) PHP (1) stackoverflow (1)

Поиск

Читатели