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
    29.11.2022 13:06
    +38

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


    1. YuriPanchul Автор
      29.11.2022 13:14
      +8

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

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


      1. hw_store
        29.11.2022 13:23
        +2

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


        1. YuriPanchul Автор
          29.11.2022 13:29
          +19

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


        1. YuriPanchul Автор
          29.11.2022 13:55
          +12

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


          1. RTFM13
            30.11.2022 14:40

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

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


            1. ermakovd
              01.12.2022 12:44

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


              1. RTFM13
                02.12.2022 00:50
                +1

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

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

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


      1. vadimbudnyaev
        29.11.2022 13:27
        +3

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


        1. YuriPanchul Автор
          29.11.2022 13:33
          +7

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


  1. erydit
    29.11.2022 15:13
    +2

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


    1. sim2q
      29.11.2022 15:52
      +12

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


  1. neochapay
    29.11.2022 15:42
    +2

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


    1. Komrus
      29.11.2022 19:38
      +1

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


      1. Antra
        29.11.2022 22:03
        +4

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


  1. Svbakulin
    29.11.2022 16:33
    +4

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

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

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

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


    1. jovany
      29.11.2022 17:02
      +5

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


      1. Quasar_ru
        29.11.2022 17:47
        +6

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


    1. dushinYu
      29.11.2022 17:24
      +2

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


    1. sambios
      29.11.2022 19:58

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


      1. Svbakulin
        30.11.2022 04:21
        +2

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


    1. YuriPanchul Автор
      29.11.2022 20:47
      +5

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

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


      1. Myclass
        29.11.2022 21:39
        +1

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

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


        1. YuriPanchul Автор
          29.11.2022 23:21
          +1

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


          1. poslannikD
            30.11.2022 08:37
            +2

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


  1. curios_pug
    29.11.2022 19:58

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


    1. YuriPanchul Автор
      29.11.2022 20:01
      +1

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


    1. Brak0del
      29.11.2022 20:34
      +1

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


    1. jovany
      30.11.2022 10:42

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


  1. Myclass
    29.11.2022 20:16
    -1

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

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


    1. YuriPanchul Автор
      29.11.2022 20:45
      +3

      А вам не приходила в голову мысль, что это не у меня, а у вас ограниченное мировоззрение? Я ведь про брошурки про продвижение демократии не просто сказал - я ходил в Стенфорд на встречи с Макфолом и проштудировал его книжку "Продвижение демократии за рубежом". И работал с Huawei, то есть узучил разные стороны вопроса.

      См. Макфол для чайников / McFaul for Dummies

      Отчет о встрече с Майклом Макфолом в Стенфорде


    1. YuriPanchul Автор
      29.11.2022 21:08
      +5

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


      1. Myclass
        29.11.2022 21:34
        +4

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

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

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


        1. victor_1212
          29.11.2022 22:38

          Ув. 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

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


          1. YuriPanchul Автор
            29.11.2022 23:16

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


            1. victor_1212
              29.11.2022 23:25

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


        1. YuriPanchul Автор
          29.11.2022 23:06
          +1

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


          1. Myclass
            29.11.2022 23:47
            +1

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

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


            1. YuriPanchul Автор
              30.11.2022 02:29
              +2

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

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

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


              1. VasekV
                30.11.2022 10:58

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

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


                1. YuriPanchul Автор
                  30.11.2022 11:03
                  +1

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


                  1. VasekV
                    30.11.2022 11:37

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


                    1. YuriPanchul Автор
                      30.11.2022 11:44
                      +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-е).


                      1. VasekV
                        30.11.2022 12:17

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


              1. boyarinovigor
                30.11.2022 11:05
                +6

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


                1. Myclass
                  30.11.2022 13:28
                  +2

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

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


                  1. boyarinovigor
                    30.11.2022 13:41
                    +2

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

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

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


                    1. Myclass
                      30.11.2022 13:50

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

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


                    1. Antra
                      30.11.2022 17:55

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


  1. Lerk
    30.11.2022 16:02

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

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

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

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

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

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

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

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


    1. YuriPanchul Автор
      30.11.2022 19:18

      Да, это отличное дополнение, спасибо! Я про 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 - бесплатный фронт-енд с интерфейсом на перле, поэтому я его не могу рекомендовать, перл - затухающий язык.


  1. Armmaster
    30.11.2022 18:08

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

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


    1. YuriPanchul Автор
      30.11.2022 19:28

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

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

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


      1. Armmaster
        30.11.2022 21:49

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

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


        1. YuriPanchul Автор
          30.11.2022 22:44

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


          1. Armmaster
            30.11.2022 22:49

            А, тогда понятно)