Как Америка любила и бодалась с Huawei — и при чем тут казанский Иннополис +16


10 лет назад в Санта-Клара, Калифорния, неподалеку от Интела и NVidia, стоял кампус Huawei. В нем работали не только китайцы, но и вообще обычная публика Silicon Valley - индусы, американцы, даже русские попадались. Бизнесмены калифорнийских электронных компаний говорили "Huawei - это дверь в Китай" и заключали с ними крупные сделки.

Но американское правительство Huawei невзлюбило. Можно обсусоливать те или иные поводы, но коренная причина понятна - американскому правительству хочется, чтобы Америка сохраняла технологическое преимущество. Ибо если технология коммодифицируется и айфон не будет ничем особенным, то кто будет читать брошурки про продвижение демократии, распостраняемые американскими посольствами в других странах? Над ними будут просто смеяться.

И вот правительство начало Huawei жучить - и от Андроида отлучило, и от других критических технологий. Но на всяких хитрецов найдется гайка с левой резьбой. И вот что Huawei стал делать по этому поводу.

Но начнем по порядку. Вот как выглядел кампус Huawei на пересечении Central Expressway с San Tomas Expressway (Центральное Шоссе и Шоссе Святого Фомы Аквинского) в Санта-Кларе:

Я в эти здания заходил, так как работал с Huawei в совместном проекте от лица MIPS и даже получил за это табличку на стену:

Про сам проект прессе были известны только слухи, хотя с Huawei / HiSilicon работал не только MIPS, но и например IBM Microelectronics. Про IBM я узнал совершенно случайно, наткнувшись на инженера из этого проекта во время отпуска в Юте. Главное СМИ электронной промышленности, Electronic Engineering Times, писало про проект загадочно, в рубрике EE Times Confidential:

Потом настало это:

Но Huawei - не такая компания, чтобы покорно ползти в могилу из-за каких-то госдеповских бюрократов. Они бодро начали импортозамещение, в том числе в области программ для проектировщиков микросхем, и сразу наняли 50 молодых PhD на разработку алгоритмов EDA (Electronic Design Automation - автоматизация проектирования электроники, по русски САПР):

Я вспомнил про случай Huawei / HiSilicon, когда на днях мне прислал емейл Андрей Садовых из казанского Иннополиса и попросил придумать задачку для их хакатона по программам автоматизации проектирования CASE in Tools 2022.

Я уже участвовал в таком хакатоне как задачкодатель в 2020 году и описал задачку по трассировке и размещению логических элементов микросхемы на Хабре (пост до хакатона и после). Вот команда, которая решила мою задачку и получила приз:

Итак, новая задачка. Назовем ее "Подсчет количества D-триггеров в схеме на основе анализа кода на языке описания аппаратуры SystemVerilog (без учета оптимизации)".

Немного картины с высоты птичьего полета.

Разработчика блока микросхемы оценивают не только по отсутствию функциональных багов, но и по PPA - Power-Performance- Area или Энергопотребление-Производительность-Площадь. При этом:

  1. В энергопотреблении выделают статическое (все время) и динамическое (пропорционально переключениям, зависит от конкретного теста);

  2. Производительность разделяют на пропускную способность (сколько транзакций проходит через блок за N тактов) и тактовую частоту (1 / сколько длится такт);

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

Для грубой оценки площади под стандартные ячейки в микросхемах ASIC удобно использовать количество D-триггеров, минимальных элементов состояния / памяти. Это связано с тем, что пропорция ячеек комбинационной логики к количеству D-триггеров во многих типах схем статистически сходна и именно количество D-триггеров является узким местом. В FPGA ситуация несколько другая - там D-триггеров по сравнению с комбинационной логикой много и их не нужно так сильно экономить как в ASIC-ах.

Количество D-триггеров важно еще и потому, что своими переключениями они жрут много электроэнергии.

Короче, на проектировщика блока архитекторы чипа как правило спускают:

  1. Функциональную/архитектурную спецификацию;

  2. Требования к пропускной способности;

  3. Бюджет тактовой частоты;

  4. Бюджет количества D-триггеров;

  5. Общий бюджет площади, включающей площадь блоков статической памяти;

  6. Пожелания понизить энергопотребление по сравнению с предыдущим блоком на столько-то процентов.

Суть задачи

Подсчитать количество комбинационных логических элементов в схеме, описанной на языке SystemVerilog - это однозначно не хакатонная задача - она требует сложной технологии логического синтеза. Но вот количество D-триггеров подсчитать гораздо проще - достаточно найти в коде все так называемые неблокирующие присваивания и суммировать размеры всех переменных, к которым они применяются.

Варианты задачи разной сложности

Разумеется, при этом возникает много трудностей. В зависимости от формулировки задачу подсчета D-триггеров на основе кода можно решить за любое время от 1 часа до 1 года. Перечислим эти трудности (потом мы перечислим их снова, но уже с картинками):

  1. Разработчик / писатель кода на верилоге мог по неаккуратности использовать блокирующие, а не неблокирующие присваивания. Мы не рассматриваем этот вариант - мы будем считать, что писатель кода жестко следовал рекомендуемой методологии проектирования.

  2. Для простейшего варианта хакатона (на час) можно написать простой скрипт на питоне, который будет работать только если все переменные явлются однобитными; для более интересного хакатона (на день) стоит рассматривать многобитовые вектора; для еще более интересного (на пару дней) - многомерные массивы, а для варианта на год - все структуры данных в языке SystemVerilog.

  3. Для целей хакатона вероятно стоит парсировать код, в котором не используются директивы препроцессора (`define), нет параметризации (parameter, localparam) и нет конструкции generate. Хотя если реализация на хакатоне делается на основе существующего open-source парсера верилога (например из Icarus Verilog или из Yosys), то можно попробывать обрабатывать код и со всеми этими конструкциями.

  4. Для простого хакатона наверное стоит подсчитывать D-триггеры только в одном модуле. Для более сложного стоит парсировать и модульную иерархию.

Инструментарий

Мне честно говоря самому интересно, до чего дойдут студенты. Как я уже сказал:

1) Простейший вариант (без иерархии, параметризации и с однобитовыми переменными) можно написать на языке типа питона или джавы за час.

2) Если использовать многобитовые переменные и многомерные массивы, на решение может уйти еще полдня, но того же питона тоже должно хватить. Возможно понадобиться применить регулярные выражения.

3) Модульная иерархия вносит дополнительные сложности. Помимо быстрого кодирования на питоне или джаве (на что может уйти день) стоит рассмотреть вариант освоить чужой парсер верилога на C++ (Icarus Verilog или Yosys) и модифицировать его для этой задачи.

Иллюстрации частных случаев

Теперь то же самое, но с картинками. Первые два модуля вообще не содержат никаких D-триггеров - в них нет ни always-блока по фронту, ни неблокирующих присваиваний ("<="). Только блокирующее внутри "always_comb" ("=") :

Такая схема синтезируется в двух-входовый логический элемент И:

А вот как выглядит код, порождающий D-триггер. В нем есть неблокирующее присваивание ("<=") к переменной "c" которая объявлена как выходной порт и имеет размер 1 бит.

Неблокирующее присваивание находится внутри always-блока по фронту тактового сигнала (хакатонное решение может игнорировать этот факт, обращая внимание только на переменную, к которой применяется неблокирующее присваивание).

Также важно не спутать неблокирующее присваивание с операцией "меньше или равно" которая тоже пишется как "<=".

Этот код соответствует следующей схеме. Квадратик на ней - это D-триггер:

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

Следующее усложнение хакатона - это добавление переменных шириной в несколько бит. В примере ниже результат умножения двух 3-битных чисел "a" и "b" помещается в регистр "c" шириной 6 бит. Регистр - это просто группа из D-триггеров, которая в данном случае состоит из D-триггеров c[5], c[4], c [3], c [2], c[1] и c[0]:

Если усложнить задачу вне рамок хакатона, такой модуль можно параметризовать - либо с помощью препроцессора (слева), либо с помощью ключевого слова "parameter" справа:

Другое важное усложнение, которое стоит сделать во время хакатона - это неупакованные массивы с размерностью справа от идентификатора. Слева пример схемы сдвигового регистра шириной 3 бита и глубиной 5 элементов, который использует 3 * 5 = 15 D-триггеров.

Вот как выглядит схема такого сдвигового регистра, обратите внимание что D-триггеры одного элемента собраны в "книжечки" по 3:

Стандарт SystemVerilog также поддерживает синтаксис "logic [2:0] a [5]" вместо "logic [2:0] a [0:4]". Вне рамок хакатона можно было бы написать программу, которая подсчитывает D-триггеры для сложных типов данных, например структур:

Наконец, было бы хорошо (возможно не на хакатоне, а после него) написать программу, которая бы парсировала иерархию модулей и подсчитывала D-триггеры на всех уровнях. Модули в верилоге как матрешки, за исключением того, что одной и той же матрешки может быть несколько экземпляров - D-триггеры во всех экземплярах нужно суммировать, это не как в софтвере с вызовами функций;

А вот случай использования конструкции generate. Его имхо можно покрыть на хакатоне только если использовать чей-то готовый open-source парсер:

То что выглядит синтаксически как софтверный цикл - на самом деле не цикл, а своего рода макро, порождающее несколько экземпляров модуля m03 (D-триггеры в них нужно суммировать).

В этой схеме при w=3 будет шесть D-триггеров - три из always-блока на верхнем уровне и три из трех экземпляров модуля второго уровня m03.

Я надеюсь, что какая-нибудь команда в Иннополисе не напугается и примет мою задачу. Она, при разумной формулировке, проще, чем может показаться из моей заметки. В худшем случае можно сделать "grep '<=' | sed ... | sort -u | wc -l" - и объявить задачу выполненной (это вполне ответ для формулировки задачи без иерархии и с однобитовыми переменными).

Так что успехов и вперед. Это поможет вам нарастить скиллы в компиляторах, скриптинге и разумеется основах цифрового проектирования - очень ценный рабочий навык в современной международной обстановке.




Комментарии (56):

  1. vadimbudnyaev
    /#24960726 / +38

    Так и не уловил связь между Huawei в США и хакатоном в Иннополисе

    • YuriPanchul
      /#24960760 / +8

      Вы просто пропустили глазами кусок текста. Объясняю: Huawei ограничили доступ к EDA tools от Synopsys и Cadence. В ответ они наняли программистов, чтобы те написали свои EDA tools.

      Аналогично, всей российской экосистеме ограничили доступ к EDA тулам от Synopsys и Cadence. Появляется отличный повод, чтобы научить студентов писать EDA tools, начиная от простых хакатонных примеров.

      • hw_store
        /#24960804 / +2

        То есть правильно ли я понимаю, что в результате этого студенты последние пару курсов поработают над этой EDA, может даже у кого-то это станет темой дипломной работы, и через три-четыре... ну ладно, пять лет - на российском рынке появится EDA-система (хотя бы одна), равновеликая продуктам от Cadence? И ею будут проектироваться процессоры для спутников и датацентров?

        • YuriPanchul
          /#24960842 / +19

          Если вообще ничего не делать, то ничего не будет и через 20 лет. В России есть EDA компании, но их софтвер сейчас слаб, вот с помощью обученных студентов их можно усилить.

        • YuriPanchul
          /#24961008 / +12

          Совсем необязательно ставить вопрос "или Cadence, или ничего". Например малые процессоры микроконтроллерного класса вполне можно проектировать и с помощью open-source тулов типа Open Lane, которые сейчас находятся примерно в таком же состоянии, как Linux в начале 1990-х. Linux вырос в респектабельную нишу, почему бы российким студентам не помочь вырасти Open Lane?

          • RTFM13
            /#24965126

            Для развития оупенсорсного EDA надо чтобы можно было чипы заказывать как печатные платы в каком-нибудь PCBWAY. В принципе, не вижу ничего невозможного. Постоянную загрузку можно обеспечить гибкой ценой от сроков выпуска.

            С другой стороны, оупенсорсного аналога Altium Designer за четверть века с тех пор как платы стало можно заказывать в интернете так и не появилось.

            • ermakovd
              /#24968128

              Опенсорсный KiCad может использоваться вместо Altium Designer в подавляющем большинстве случаев. Да, есть нюансы, но может.

              • RTFM13
                /#24970366 / +1

                Я за оупенсорс и всё такое. При этом не брезгую донатить разрабам того софта который мне пригодился. Но кикад отстаёт от альтиума, по моим ощущениям, лет этак на 25 (с минимальными оговорками).

                Так то герберы и файлы сверловки можно в любом текстовом редакторе набрать. Но есть нюансы, да.

                Примерно такая же пропасть почти со всеми кадами, камами и т.п.

      • vadimbudnyaev
        /#24960818 / +3

        Дело нужное, без вопросов. Huawei разработал за эти годы аналог продуктам от Cadence/Synopsys/Mentor? Или они еще в процессе?

        • YuriPanchul
          /#24960868 / +7

          Huawei в EDA тулах только начали. Но вообще КНР уже смогло импортозаместить FPGA синтез от Synplicity (часть Synopsys). См. https://www.gowinsemi.com/en/support/home/ - оно еще не такое эффективное как от Synopsys, но уже вполне работоспособное

  2. erydit
    /#24961396 / +2

    Казанский Иннополис существует только для распила денег за счет закрытия выигранных грантов и контрактов путем найма других научных институтов в виде подрядчиков за кратно меньшие суммы. Роснано с татарским колоритом.

    • sim2q
      /#24961624 / +12

      Мне кажется в статье Юрия как раз о том, что кто хочет - использует любую возможность а не "лает на караван" или погоду.

  3. neochapay
    /#24961562 / +2

    Казанский Иннополис звучит примернто так же как Московская Электросталь...

    • Komrus
      /#24962592 / +1

      Вопрос из Питера: а что не так с московской Электросталью? :)

      • Antra
        /#24963056 / +4

        Если "Питерский Всеволжск" не смущает, то и с "Московской Электросталью" все в порядке.

  4. Svbakulin
    /#24961852 / +4

    "американскому правительству хочется, чтобы Америка сохраняла технологическое преимуществ"

    Очень однобокий и я бы сказал совершенно неправильный взгляд на вещи. Да, можно поспорить что без хуавея у американских компаний будут преимущества но вообще говоря штаты конкуренцию любят идеологически и называть это первопричиной мягко говоря слишком близоруко.

    С учетом же того где и как используется оборудование, думаю должно быть понятно что иметь в тех местах почти гарантированные бэкдоры вообще говоря не самая хорошая идея. Кто сомневается в возможности их наличия, вот небольшой мыслительный эксперимент. Берем любую китайскую компанию, и правительство которое хочет чтобы она для него что то сделала. Законов нет, правительство никто не контролирует. Если компания отказывается, менеджер который не согласился сотрудничать внезапно исчезает и никогда больше не появляется, что доносится до всех других менеджеров. Процесс повторяется пока кто то не согласится.

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

    • jovany
      /#24961940 / +5

      Американцы убили Джона Ленона, Мартина-Лютера Кинга, даже собственного президента, но люди исчезают в Китае. А можно примеры?

      • Quasar_ru
        /#24962128 / +6

        Сноуден и Ассандж было дело, накидали примеры о шпионаже... Ах да, это были какие-то не те примеры!

    • dushinYu
      /#24962038 / +2

      У Вас "Очень однобокий и я бы сказал совершенно неправильный взгляд на вещи".
      Ну, а про "внезапные исчезновения" - это вообще зашквар! Смените своего осведомителя по этой теме. Может легче станет жить.

    • sambios
      /#24962672

      "штаты конкуренцию любят идеологически" - отлить в граните ????

      • Svbakulin
        /#24963694 / +2

        отливайте. страна построена на конкуренции.

    • YuriPanchul
      /#24962810 / +5

      *** штаты конкуренцию любят идеологически ***

      Единых штатов не существует. Американское общество состоит из правительства, компаний и общественных организаций, цели которых не всегда совпадают и иногда оказываются противоположными.

      • Myclass
        /#24962988 / +1

        Единых штатов не существует. Американское общество состоит из правительства, компаний и общественных организаций, цели которых не всегда совпадают и иногда оказываются противоположными.

        Как одно противоречит другому? Исторически страна до сих пор доказала, что до сих пор была единой и состоятельной. Даже, если состоит из различных социальных групп и различных интересов. Даже прямо-противоположных.

        • YuriPanchul
          /#24963290 / +1

          Я не понимаю. Вы можете меня ткнуть в мою фразу, в которой я критикую именно страну, а не американское правительство? Критиковать правительство - это нормально, это часть жизни в любой стране.

          • poslannikD
            /#24963928 / +2

            Ахахахаха. У нас(РБ) за конструктивную критику можно уехать на пару и больше лет. А желающие честных выборов, до сих пор по зонам, да по тюрьмам ездят.

  5. curios_pug
    /#24962676

    Давным-давно, я работал инженером сетевого оборудования Cisco и потом Huawei. Так вот на первых роутерах от Huawei была очень грубо "скопированная" Cisco IOS. Те китайская компания начала свой путь не с создания своего, а просто с "копирования" чужого.

    • YuriPanchul
      /#24962684 / +1

      К моменту когда я с ними работал, они однозначно проектировали свое, причем довольно амбициозно - сделали сетевой чип с большим количеством небольших многопоточных некогеретных ядер с довольно элегантными идеями.

    • Brak0del
      /#24962774 / +1

      Похоже, Huawei подрос с тех пор: сейчас это ведущий контрибьютор в разработке стандартов 5G, Huawei также держит больше всех (порядка 18%) патентов на 5G. Так что теперь производители смартфонов и прочих вещей платят роялти за пользование наработками Huawei.

    • jovany
      /#24964260

      Там были похожими системы команд, но это не плагиат, стандарт cli придуман 3COM и был общедоступным. Если бы Сisco заподозрило плагиат, то никому мало не показалось бы.

  6. Myclass
    /#24962724 / -1

    Можно обсусоливать те или иные поводы, но коренная причина понятна - американскому правительству хочется, чтобы Америка сохраняла технологическое преимущество. Ибо если технология коммодифицируется и айфон не будет ничем особенным, то кто будет читать брошурки про продвижение демократии, распостраняемые американскими посольствами в других странах? Над ними будут просто смеяться.

    Вот слушаю вас и понимаю, что "девушку можно из деревни вывезти, но не деревню из девушки". Живёте там, работаете там, и все возможности, которыми пользуетесь - следствие именно той системы, которую хотите высмеять... Всё остальное стало после этих слов неинтересно.

    • YuriPanchul
      /#24962884 / +5

      Знаете на что похожа ваша реплика? Вот представьте себе, что какой-нибудь негр из Африки учился и работал в СССР в 1970-е годы, получил дефицитную профессию врача, а потом приехал на родину и начал рассказывать анекдоты про Брежнева. А ему соотечественник "Да как ты смеешь! Врачебное искусство и полет Гагарина - прямое следствие идей Маркса, Ленина и товарища Брежнева!"

      • Myclass
        /#24962966 / +4

         я ходил в Стенфорд на встречи с Макфолом и проштудировал его книжку "Продвижение демократии за рубежом".

        И что? Если я быв. президента Медведева или Соловьёва послушаю, то что - так вся страна думает? Уверен - нет.

        Я вам не судья - но вы используете наративы, которые используют, чтобы обобщённо превратить всё, именно всё в балаган. Ваше право, но я так не смог-бы. Жить в системе, в корне её ненавидеть, в пол-слова над ней надсмехаться, но всё равно продолжать в ней жить. По мне - какая-то двойная мораль. Особенно у человека, который по всему миру наездил не мало. Но. Ваше право. Извините, как-то читая ваши посты складывалось другое мнение.

        • victor_1212
          /#24963158

          Ув. Valeri, то что написано в статье про Huawei Санта-Клара и далее imho впечатления не производит, отношения Huawei с правительствами Канады и US начали ухудшаться за несколько лет до 2011, мне приходилось бывать в те времена в Nortel, Ottawa, по памяти то что знакомые говорили тогда про Huawei больше похоже на промышленный шпионаж (см. также линки), этих людей знаю давно, поэтому доверяю больше, чем в общем детским утверждениям типа "американское правительство Huawei невзлюбило",

          см.

          "Huawei: The Dragon that Caught Nortel off Guard"

          https://natoassociation.ca/why-canada-should-be-wary-of-huawei-lessons-from-nortel/

          "Is it true that Huawei stole tech from Nortel? "

          https://www.quora.com/Is-it-true-that-Huawei-stole-tech-from-Nortel

          "Did a Chinese Hack Kill Canada's Greatest Tech Company?"

          https://www.bloomberg.com/news/features/2020-07-01/did-china-steal-canada-s-edge-in-5g-from-nortel?leadSource=uverify wall

          ps

          тема достаточно известная, по этому предмету линков достаточно

          • YuriPanchul
            /#24963274

            "детские утверждения" - это ad hominem attack. Проект, в котором я работал, не был шпионажем, потому что аналога такого чипа в штатах тогда не было. Это была система на кристалле с большим количеством некогеретных многопоточных ядер для параллельной обработки сетевых пакетов. Все это китайцы сначала легально лицензировали, потом использовали оригинальным способом.

            • victor_1212
              /#24963308

              надеюсь Вы понимаете, что "большое количеством некогеретных многопоточных ядер" в данном случае не причем, заметьте спорить с Вами нет ни малейшего желания, пока Вы пишите про технологию это интересно и заслуживает уважения, когда про политику это прямо противоположное

        • YuriPanchul
          /#24963242 / +1

          Я живу в электронной индустрии и обществе Калифорнии, я не работаю на Госдеп, и насмехаться над Госдепом совершенно нормально. Полстраны в 2003 не поддерживали войну, развязанную правительством США в Ираке. Вы что, считаете, что эти люди якобы "ненавидят свою страну"?

          • Myclass
            /#24963356 / +1

            насмехаться над Госдепом

            конструктивная критика - есть и будет основа демократических обществ. Слепо соглашаться с политическими решениями страны - не есть то, о чём я говорил. Но между строчек использовать пропагандистские нарративы, как сделали вы - не есть то, что комментируете вы сейчас. Я живу в Германии уже почти 30 лет и уже немало раз выходил на всевозможные демонстрации против тех или иных действий правительства или событий в мире. Но никогда не позволю себе смеятся над системой, в которой живу. Тем боллее так публично. Потому что люблю свою страну, в которй живу и хочу, чтобы она была ещё лучше. Извиняюсь, больше не буду ничего комментировать у вас.

            • YuriPanchul
              /#24963574 / +2

              Политические решения принимает не страна, а правительство. Страну я люблю, особенно ту часть в которой живу - Калифорнию. Почему вы приравнивание любовь к стране к невысмеиванию нафталиновых старичков в Вашингтоне, которые по привычке борятся с СССР, в технологиях не разбираются и их не создают? Что за фигня, что они положили санкции на Сколково, которое изначально чуралось военных проектов? Кому мешает поддержка молодежных стартапов там?

              Я между прочим работал и с немецкими бизнесменами, которые вели бизнес в России. Их отношение "я должен подчиняться ограничениям спускаемый государством (в американском случае это Bureau of Industry and Security), но это не означает что я это приветствую".

              Как Многие склонны путать два понятия: «Отечество» и «Ваше превосходительство»Салтыков-Щедрин

              • VasekV
                /#24964344

                На Брайтон-Бич я снимал два раза. И все время меня не оставляла одна мысль: почему не попробовать ассимиляцию? Культурная ассимиляция. Иначе, зачем вы переезжали?»  – задается вопросом он.

                «Я понимаю, когда люди уезжают за чем-то новым, за возможностями. Мол, больше вариантов для работы и т.п. Но ведь о какой работе и возможностях может идти речь, если многие из них и по сей день не знают английского, а прошло уже больше 45 лет, Карл. Более того, некоторые даже не хотят ее учить! «А зачем» – так мне там ответила на этот вопрос та самая женщина. Лучше жить по-прежнему»

                • YuriPanchul
                  /#24964366 / +1

                  Вы считаете, что я не знаю английского? Интересная мысль. У меня жена японка. Как вы думаете, на каком языке я с ней разговариваю?

                  • VasekV
                    /#24964478

                    Речь не об английском. А о "русском человеке". 99,9% русских считают, что окружающий мир должен приспосабливаться к ним ...На Брайтоне люди 45 лет живут и не знают английского !!! Почему ?

                    • YuriPanchul
                      /#24964526 / +1

                      Я не был на Брайтоне, но это наверное круто - жить в Америке 45 лет без английского. Типа как йог или буддистский монах-отшельник.

                      Но я должен сказать, что у нас тут в Калифорнии тоже не Америка.

                      Я часто привожу в пример демографию Купертино - города, в котором Apple проектирует айфоны. Это город, который находится рядом с нашим Саннивел, в нем в школе учились все мои дети. Итого, Купертино: Белых 31%, азиатов 63%:

                      http://en.wikipedia.org/wiki/Cupertino,_California#Demographics

                      The racial makeup of Cupertino was 18,270 (31.3%) White, 344 (0.6%) Black American, 117 (0.2%) American Indian, 36,895 (63.3%) Asian (28.1% Chinese, 22.6% Indian, 4.6% Korean, 3.3% Japanese, 1.3% Vietnamese, 0.9% Filipino, 0.4% Pakistani, 0.1% Thai, 0.1% Bangladeshi), 54 (0.1%) Pacific Islander, 670 (1.1%) from other races, and 1,952 (3.3%) from two or more races. Hispanic or Latino of any race were 2,113 persons (3.6%); 2.4% of Cupertino is Mexican.

                      Внутри компании Apple пропорция примерно такая же - например группа по верификации системы на кристалле для Apple макбуков состояла из нескольких индусов под предводительством румынской женщины средних лет (они были моими заказчиками в 2000-е).

                      • VasekV
                        /#24964632

                        Можно свернуть с тропинки работы, поднять голову и провалится в грязь политики. Там сразу тропинка расходится на 2 : или человеческие ценности или как сказал Верещагин: мне за Державу обидно. В России второе мировозрение – главное кому-то врезать. Остальные страны пытаются жить по первому принципу, но бизнес-есть бизнес. …У меня ВОПРОС : какие у Вас принципы поддержки России (Великая Страна, много талантов на постсоветском пространстве , утереть нос америкосам (это мечта ????каждого русского)… Ранее увлекаясь PIC32 заходил на Ваш блог. Вы увлекаетесь цветами. Догадываюсь кто за ними ухаживает. Любуетесь цветами на японском. Завидую по доброму.

              • boyarinovigor
                /#24964374 / +6

                Юрий, не обращайте внимание на этих прихлебателей системы. Они не способны на разделение понятий Правительство и Отечество. У них сейчас в Германии у власти безвольные соросятские овцы, открыто плюющие на мнение своих избирателей (привет от Бербок), не способные вообще мыслить категориями суверенности государства, но вот таких вот экземпляров всё устраивает. Штаты уже открыто им выкручивают руки, взрывают им их же газопровод, а для них всё "божья роса"... И при всём своём ущербном мышлении они, манерно поправляя оправу очков, продолжают поучать других... Вы, Юрий, человек дела. А когда слова порождает человек дела - эти слова имеют вес, а не звук пустой бочки...

                • Myclass
                  /#24964864 / +2

                  Хотел вам всё сказать, что о вас думаю после ваших слов. Но останусь в рамкам приличия, даже после того, что вы меня как прихлебателя системы обозначили и мне ущербное мышление приписываете. Вы не понимаете ни грамма в полит. системе Германии. Оставайтесь в темах, в которых вы разбираетесь.

                  Я работаю в одном концерне, к этому преподаю в частном университете в Германии - и в ущербном мышлении замечен не был. Ведёте себя невоспитанно, разговариваете как на пьянке, но вас это не волнует. Но ущербность приписываете мне.

                  • boyarinovigor
                    /#24964924 / +2

                    Я лишь констатировал ФАКТЫ, прочитав ваши комментарии.

                    А раз уж вы обратились ко мне со своим советом, о котором я вас не просил, то я позволю себе и вам дать совет:

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

                    • Myclass
                      /#24964956

                      Я лишь констатировал ФАКТЫ ..

                      как смешно слышать такие выражения после того блуда, который был произнесён до этого. С вами я больше не разговариваю.

                    • Antra
                      /#24965782

                      Интересные у вас представления о том что такое ФАКТЫ...

  7. Lerk
    /#24965410

    Для меня очень странно видеть, что Юра не показал еще один очевидный способ посчитать количество регистров - использовать SystemVerilog VPI. VPI это по сути дополнительный низкоуровневый слой абстракции между симулятором и кодом. Симуляторы разных вендоров могут полагаться на VPI в качестве промежуточного уровня, а могут и нет. Для коммерческих - скорее нет, чем да. В общем-то преимущества и недостатки использования VPI следующие:

    + Можно быстро и просто построить иерархический обходчик, который обойдет всё дерево дизайна, как оно скомпилировано. Включая всю параметризацию(за исключением рантайм), дефайны и проч.

    + Этот же обходчик может найти элементы дизайны согласно заданным правилам, и сосчитать их.

    + Работает VPI на С/С++ и бегает по дизайну загруженному в симулятор - скорости значительно выше, чем парсинг сотен текстовых файлов

    - Надо таки прочитать SV LRM, да еще и ту часть где про VPI рассказывается

    - Разные симуляторы могут иметь слегка разные имплементации VPI, так что будет определенный vendor-lock

    - Требуется хорошее понимание как все таки работает цифровой симулятор :)

    На мой взгляд путь с VPI гораздо интереснее, чем строить очередной парсер, когда очень хороший уже существует: https://github.com/chipsalliance/verible

    • YuriPanchul
      /#24966058

      Да, это отличное дополнение, спасибо! Я про VPI в курсе, хотя его не использовал.

      Я косвенно упомянул такую возможность в следующем пассаже:

      Хотя если реализация на хакатоне делается на основе существующего open-source парсера верилога (например из Icarus Verilog или из Yosys), то можно попробывать обрабатывать код и со всеми этими конструкциями

      При этом я не исследовал, в какой степени Icarus Verilog поддерживает VPI. Вы про какие конкретно симуляторы говорите (чтобы они при этом были доступны студентам - то есть Synopsys VCS и Cadence Xcelium мы вычеркиваем сразу)? Может Verilator (тоже не исследовал его уровень поддержки VPI)?

      Вообще я использовал еще 20 лет назад разнообразные интерфейсы к симулятору и фронт-енды, в том числе:

      1) PLI и DPI (они не позволяют обходить дерево, просто интерфейсы, но VPI вырос из PLI насколько я понимаю);

      2) Verific - C++ - ный фронт-енд, продается за большие деньги коммерческим компаниям, то есть студенты его использовать не смогут + Verific наверное не работает в России;

      3) Front-end от Interra Systems Cheetah-SV, которую купила Atrenta, которую купил Synopsys. Я в свое время написал с этим интерфейсом пару десятков тысяч строк кода. Тоже дорогой коммерческий продукт +Synopsys сейчас точно не работает в России;

      4) Внутренний интерфейс VCS (я работал в Synopsys в 2001-2003), тоже очевидно неприменим;

      5) VerilogPerl - бесплатный фронт-енд с интерфейсом на перле, поэтому я его не могу рекомендовать, перл - затухающий язык.

  8. Armmaster
    /#24965838

    В худшем случае можно сделать "grep '<=' | sed ... | sort -u | wc -l"

    А что в данном скрипте подразумевается в "sed ... " ?

    • YuriPanchul
      /#24966086

      Чего-нибудь типа sed 's/^[[:space:]]*\([_a-zA-Z][_a-zA-Z0-9]*\)[[:space:]]*<=/\1/'

      (выражение не проверял, просто сейчас наобум написал)

      То есть чтобы убирал пробелы до идентификатора, операцию '<=' после идентификатора и вычленял сам идентификатор. А также не принимал по ошибке <= внутри if.

      • Armmaster
        /#24966550

        А что делать в случае for ? Это же не будет никак работать, разве нет?

        Мне кажется, простым парсингом с помощью sed тут не прокатит.

        • YuriPanchul
          /#24966684

          Ну я же по-моему написал, что это ответ на тройку с минусом, ну типа утешение, если совсем не смогут что-то нормальное сделать. Он годится только в жёстко ограниченном тепличном случае.