Pull to refresh

Comments 50

В чем бесстыдность? Я описал опыт и дал рекомендации как его повторить. Если хочется больше технического контента, могу добавить код для реализации интерфейса с каким-нибудь сенсором. Например вот код на верилоге для получения данных по SPI протоколу, это тот же тип задач, который решается для сбора данных на космическом корабле:

https://github.com/DigitalDesignSchool/ce2020labs/blob/master/day_2/common/pmod_mic3_spi_receiver.v

`include "config.vh"

module pmod_mic3_spi_receiver
(
    input             clock,
    input             reset,
    output            cs,
    output            sck,
    input             sdo,
    output reg [15:0] value
);

    reg [ 6:0] cnt;
    reg [15:0] shift;

    always @ (posedge clock or posedge reset)
    begin
        if (reset)
            cnt <= 7'b100;
        else
            cnt <= cnt + 7'b1;
    end

    assign sck = ~ cnt [1];
    assign cs  =   cnt [6];

    wire sample_bit = ( cs == 1'b0 && cnt [1:0] == 2'b11 );
    wire value_done = ( cnt [6:0] == 7'b0 );

    always @ (posedge clock or posedge reset)
    begin
        if (reset)
        begin
            shift <= 16'h0000;
            value <= 16'h0000;
        end
        else if (sample_bit)
        begin
            shift <= (shift << 1) | sdo;
        end
        else if (value_done)
        begin
            value <= shift;
        end
    end

endmodule

Но с точки зрения чисто ПЛИС-оводства вы могли бы ответить на половину вопросов на интервью в Blue Origin, если бы просто прошли Сколковскую Школу Синтеза Цифровых Схем, внимательно выполняя все задачки, а также получили бы у Александра Биленко бесплатную FPGA плату и поупражнялись бы с нею дома.

Это на столько банально что уже даже не смешно

Вы разбираетесь в задачах на собеседованиях по проектированию на уровне регистровых передач используя языки описания аппаратуры? Хотите об этом поговорить?

Знаете, у меня тоже есть мечта. Однажды я хочу взять процессор КР580ВМ80 и реализовать (на плисине например) обвязку, дабы получился современный клон компьютера моего детства "Корвет 8020". Даже уже куплены и плис и память и анализатор. Но к моему огромному сожалению не имею свободного времени. А может и ещё чего. И я искренне завидую людям хорошо разбирающимся в электронике. Вы можете писать восхитительные статьи. Вдохновлять. А вместо этого восхваляете некого Александра Биленко. И давайте, пожалуйста закончим дискуссию.

Я Александра Биленко не восхваляю, он просто организатор ChipEXPO и административный контакт для данного мероприятия. Я так и не понял, в чем ваша претензия. Мероприятие тренирует, причем бесплатно, молодых людей олимпиадного типа и студентов на решение задачек с ПЛИС. Не унылых, типа ностальгии за КР580ИК80, а нормальных, за которые платят зарплату в Blue Origin, Apple, Intel FPGA (есть отделение в Москве и Нижнем Новгороде), Syntacore итд итп.

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

Дык я и говорю - чудо есть в микроархитектуре, но до нее нужно осилить последовательностную логику. А групповые поездки инженерной группы на космические пуски - это наверное как Лас-Вегас - в первую ночь интересно, а потом не очень.

Вы понимаете что только что написали, что потом наши молодые русские студенты, выпускники наших лучших вузов, краснодипломники и краснодипломницы, вместо Роскосома уедут работать в Blue Origin или Apple, способные предложить несравнимые зарплаты и условия работы (не говоря уже про климат Сан-Хосе или штата Вашингтон)? Тем самым вы способствуете перетоку наших лучших мозгов, нашего будущего в США и прочие западные страны, к нашим вероятным противникам и вполне невероятным конкурентам! Кто будет Ангару делать, русскую космическую станцию, базу на луне для добычи гелия-3? Кому вы служите?! ;)

В Blue Origin им прийдется перехать в штат Вашингтон, там все время идет дождь и сыро, с девушками трудно знакомиться. В Купертино / Apple климат получше, но с русскими девушками еще хуже, вот вам демография Купертино:

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.

То есть то, что среди молодых инженеров могут быть девушки вполне традиционной ориентации, и они могут не только русских искать - вы это даже не рассматриваете? Какая дискриминация! Впрочем на вопрос про урон обороноспособности России от таких действий вы так и не ответили. Как гражданин США вы наверно имеете на это причины.

Но на счастье патриотов консульство США в России де факто не работает и даже наидостойнейший кандидат не сможет получить рабочую визу в США. Так что у лучших из лучших все-равно выбор или в роскосмос с зп от 60 тыс. за плюсы (https://hh.ru/vacancy/45189245?from=employer) в Москве или в Финтех, где зарплаты уже очень хорошие, но амбиций по освоению космоса нет.

Если бы я был молодым россиянином, я бы устроился в российскую компанию типа Syntacore интерном:

https://syntacore.com/page/company/careers

Микроархитектурно out-of-order процессорное ядро интереснее, чем glue logic для сбора данных с датчиков в blue origin.

Насчёт зарплат вы имейте в виду, что в Америке более высокие цены на рент и недвижимость. В Silicon Valley рент маленькой квартирки будет вам обходиться в $2500 в месяц (почти 200 тыс рублей). В Кент, Вашингтон где находится Blue Origin, конечно поменьше ($1500-$1800) но там с культурой не очень - Третьяковской Галере и Большого Театра нет.

А детские садики вообще - $1000 в месяц в Вашингтоне и $1800 в месяц в Silicon Valley

В Москве, где основное количество самых аппетитных вакансий для технарей, нормальный рент по отношению к зарплатам не сильно ниже, плюс отмечен неудержимый рост цен на все. ЗП прогерров в финтехе высокие, но вот например в биотехе разочаровывающие. Ну или жить в Ногинске и ездить в один конец по 3 часа по пробкам, как делают некоторые.

Есть конечно в России города сильно дешевле для жизни, местами жилье чуть-ли не даром дают, но там с культурой и культурной публикой не очень - по вечерам могут и театрально полоснуть, если морда слишком интеллигентная.

В Bay Area в дешевых городах тоже опасно. В East Palo Alto (находится через дорогу от Palo Alto, дорогого города в котором Стенфорд) полицейские (по крайней мере несколько лет назад) по одному не ходили , он был рекордсменом по убийствам. В Сан-Франциско есть места в котором на асфальте лежат героиновые наркоманы и колятся средь бела дня на глазах у публики и даже полицейских. Окленд - столица афро-американских бунтов, там тоже стремно местами.

это правильно, и статья нормальная, fyi в новой англии спокойнее и интереснее (местами)

UFO just landed and posted this here

Знаете, рядом со штаб-квартирой SpaceX в Лос-Анжелесе на самом деле много всякой чернухи. Вот я сфоткал как люди живут в палатках под фривеем:

да и серость бывает - вот я снял Лос-Анжелес с поезда:

И что? Кто-то из краснодипломников все равно уедет.

По вашему лучше ничему не учить, пусть лаптем щи хлебают здесь, с низкой квалификацией?

Мне по работе пришлось писать эмуляцию 74S481. Увлекательное занятие было :) Особенно писать компилятор, чтобы проверить все функции а не только существующую программу.

Кому понадобились bit slice процессоры в 21 веке? Или вы это делали в 1970 годы?

На базе 74S481 построено не мало модулей вот этой штуки AN/TPQ-37, например. Эти радары а так же их производные до сих пор "цветут и пахнут". К сожалению эти процессоры начали выходить из строя. Новых уже давно не выпускают. Одно из решений проблемы - эмуляция на ПЛИС.

Да, у меня был похожий опыт в 1991 году - писал симулятор и кросс-среду разработки на PC для транзисторного (!) бортового компьютера Орбита-20/700 который использовался на старых истребителях. Военные консервативны, им не нужно новую модель телефона к каждой выставке в Лас-Вегасе выпускать.

Прошу прощения за тупые вопросы, но:

  1. Для чего cnt после сброса задается значение b001?

  2. Ваш модуль не выдаёт наружу, что обновились данные. Или это просто пример?

  3. Чем плох sv? Уже давно quartus и ise поддерживают и очень хорошо кушают system verilog.

  4. Для чего вводятся дополнительные линии sample_bit и value_done, если комбинаторику, на мой взгляд, информативней сразу в условии написать?

Спасибо.

Это пример, который я писал ещё в 2014 году для датчика освещения ALS, потом просто перенес для микрофона. Тогда quartus не поддерживал SV. Я также делал учебные примеры совместимые с Icarus Verilog, а он SV стал поддерживать только частями в последнее время.

Почему 100 - я уже не помню,, может для красоты демо на waveform при симуляции.

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

4 - чтобы показать смысл условия. Именованные сигналы - форма комментария.

На sv я перешёл ещё на quartus 6, это был 2006...2007 год.

А по поводу именованных сигналов как комментарии - тут понятно, кому как удобно, но мне кажется, сильно загромождает код.

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

Да, магическое число нужно убрать, это факт. Вы говорите про поддержку SV в платной версии или бесплатной? Ведь для этих учебных примеров нужна бесплатная версия.

Что касается SV, а что вы хотите внести в модуль из SV? тип logic? А вы в курсе о разницы семантики в случаях "logic a = b" и "wire a = b"?

Почему я в 2010 году стал использовать тип logic, а потом вернул все взад к reg и wire:

module with_logic;
    logic a;
    logic b = a;
    initial
    begin
        $display ("%m %0d a=%b b=%b", $time, a, b);
        a <= 1;
        $display ("%m %0d a=%b b=%b", $time, a, b);
        #1
        a <= 0;
        $display ("%m %0d a=%b b=%b", $time, a, b);
        #1
        $display ("%m %0d a=%b b=%b", $time, a, b);
        #1
        $finish;
    end
endmodule
module with_reg_and_wire;
    reg  a;
    wire b = a;
    initial
    begin
        $display ("%m %0d a=%b b=%b", $time, a, b);
        a <= 1;
        $display ("%m %0d a=%b b=%b", $time, a, b);
        #1
        a <= 0;
        $display ("%m %0d a=%b b=%b", $time, a, b);
        #1
        $display ("%m %0d a=%b b=%b", $time, a, b);
        #1
        $finish;
    end
endmodule

Chronologic VCS simulator copyright 1991-2016
Compiler version L-2016.06-SP2; Runtime version L-2016.06-SP2;  Nov 13 14:58 2017
with_logic 0 a=x b=x
with_logic 0 a=x b=x
with_logic 1 a=1 b=x
with_logic 2 a=0 b=x
with_reg_and_wire 0 a=x b=x
with_reg_and_wire 0 a=x b=x
with_reg_and_wire 1 a=1 b=1
with_reg_and_wire 2 a=0 b=0
ncverilog: 15.10-s014: (c) Copyright 1995-2016 Cadence Design Systems, Inc.
ncsim: *W,DSEM2009: This SystemVerilog design is simulated as per IEEE 1800-2009 SystemVerilog simulation semantics. Use -disable_sem2009 option for turning off SV 2009 simulation semantics.
with_logic 0 a=x b=x
with_logic 0 a=x b=x
with_logic 1 a=1 b=x
with_logic 2 a=0 b=x
with_reg_and_wire 0 a=x b=x
with_reg_and_wire 0 a=x b=x
with_reg_and_wire 1 a=1 b=1
with_reg_and_wire 2 a=0 b=0

Возможно, в бесплатной не было поддержки, не знаю, т.к. пользовался коммерческой. На сколько помню, отличие коммерческой от бесплатной - не были доступны старшие камни и нельзя было загрузить проект во внешнюю флешку, только sof. Остальное, вроде, было одинаково.

Не logic-ом единым интересен sv.

Но и его нужно уметь готовить) вернее, понимать.

А вы в курсе о разницы семантики в случаях "logic a = b" и "wire a = b"?

:)

Почему я в 2010 году стал использовать тип logic, а потом вернул все взад к reg и wire:

Ну, стандарты не просто так пишут. А читать верю, лень. По себе знаю, тоже по юности проводил много "изысканий", но было просто интересно изучить что-то новое.

Так Вы из-за logic-reg-wire вернулись к verilog?

Я не вернулся к verilog, только к wire, и то местами. Я использую SV, более того, я был при создании SV. Я в 2001-2003 работал в Synopsys в группе VCS и лично знаком со всеми людьми, которые стояли у истоков SystemVerilog - как из Superlog, так и из Vera.

Но когда я делаю примеры для школьников и студентов, я не могу от них ожидать, что папа-мама им дадут пять тысяч долларов на платную версию квартуса.

Поэтому все примеры должны идти с бесплатными версиями Icarus Verilog, ModelSim, Vivado, Quartus.

Квартус включил в бесплатную версию поддержку SV в бесплатной Questa только месяц назад (в версии Lite 21.1 датированной от марта, но фактически вышедшей в октябре). До этого шел ModelSim без SV. Icarus включил элементы sv тоже недавно.

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

Ну а как бы вы переписали пример выше на SV (ну кроме параметризации - она была еще до SV)?

Понятно. Не знал. Думал, что для обучения лицензия включала поддержку sv.

Да и школьникам будет сложновато понимать sv. С другой стороны и verilog не всем даётся)

То, что Вы обучаете школьников и студентов - это большая и очень хорошая работа. Моё уважение.

А модуль spi я когда-то делал с интерфейсами, чтобы удобней было верифицировать (с помощью system), также при отладке сигналы упорядочены, да и при имплементации удобно шины смотреть.

Спасибо за ответы.

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

Подскажите пожалуйста, а как Вы планировали пройти security screening?, если к аэрокосмической промышленности в USA (да и в других странах) допущены только граждане и то, не все. Пройти скрининг без гражданства просто банально невозможно.

(да, возможно Вы проживаете в USA, и у Вас гражданство, тогда все более-менее понятно, правда тогда не очень понятно, при чем тут Сколково.)

Я гражданин США, это был первый вопрос рекрутерши собственно. На самом деле русские есть и в NASA, и даже в DARPA.

Сколково при том, что я уже больше 10 лет участвую в российских образовательных программах. Это типа мое хобби, которое началось после того, как я приехал в Москву в 2011 году вместе с VP Sales MIPS Technologies, походил по вузам и увидел всякие дыры в программах.

Да, хорошо иметь гражданство... Я как-то облизывался на SpaceX, прочитал про секьюрити скрининг и успокоился.

А какую именно позицию вы там хотели?

Хотелось поискать что-то в области "местного" IT. Управление рабочими местами, безопасность рабочих мест. Но, я не смотрел конкретные вакансии - стоило только прочитать, что не-граждан не берут, и даже не стал открывать.

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

У вас однобокое представление о SpaceX - начнем с того, что они - разработчики, производители и операторы самого большого "флота" серверов орбитального базирования. Так как их политика - все что можно делать in house - то и работы там по этому фронту хоть отбавляй. ну и дальше по списку - системы космической навигации, системы жизнедеятельности, скафандры, проектирование и испытание совершенно нового оборудования типа того же Старшипа, а не бесконечная эксплуатация королевской семерки. Они сами признавались что любят нанимать кодеров из геймдева - там похоже схожие задачи.

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

Вторая половина статьи вызвала диссонанс). Она как минимум была неожиданной.

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

Отличная статья, спасибо!

Не слушайте злопыхателей.

Я то думаю откуда мне ваша фамилия знакома... А это ведь вы Радулову в ЖЖ доставали предложениями руки и сердца 😂

Да, Наталья вдохновляла меня на творчество. А какой у вас ник в ЖЖ? Вы читали мой рассказик "Радулова встречает тракториста"?

... "И что я делаю в этой дыре", - понеслись мысли Радуловой, - "почему я не в Лондоне, не в Париже, с обходительными, вежливыми иностранцами. Почему в русской провинции такая нехватка достойных мужчин? Мужчин категории A мало, причем они выбирают женщин категории B, мужчины категории B выбирают женщин категории C. А что делать нам, женщинам категории A?" ...

Вот он - https://panchul.livejournal.com/252700.html

Всем, у кого есть немножко свободного времени, прежде чем плюсовать и минусовать, очень рекомендую коротенький рассказ О Генри «Среди текста» (тыц).
Классика не стареет!

Немного смутило, что в космонавтике используются в том числе ПЛИС - по идее ASIC выиграет у ПЛИС по всем трём параметрам "площадь-потребление-быстродействие", уступив при этом только в стоимости, но вроде как про стоимость в контексте космоса говорить особо не приходится.

Допускаю, что использование ПЛИС положительно сказывается на ремонтопригодности (нельзя заложить всё возможное и невозможное в ASIC, на ПЛИС проще переконфигурировать интерфейсы). Но в любом случае в отношении космоса речь наверняка идёт о каких-то специализированных радиационно-стойких ПЛИС, с которыми обычная публика и не знакома.

Им нужно интегрировать сигналы от десятков тысяч датчиков и делать много glue logic для соответствующего количества микроконтроллеров. FPGA для этого достаточны. Делать для каждого случая ASIC экономически неэффективно даже для безоса, так как начальный платеж для коммерческого ASIC-а - это сотни тысяч долларов минимум (для high-end ,миллионы), и даже для shuttle это десятки тысяч.

Ремонтопригодность, да. И радиационно-устлйчивые варианты, да.

Сейчас бьюсь над переносом функций OpenCV в FPGA, Xilinx VitisHLS, машинное зрение в реальном времени, спрашивать не у кого, школы и курсы не помогут. Работа с железками тяжёлое и неблагодарное занятие. Хотите денег, идите в фронтенд.

Если эта школа заточена на Альтеру(Интел), а они догоняющие, то бесплатная плата не нужна.

Эта школа заточена на будущих проектировщиков ASIC-ов, в частности далее будут занятия по микроархитектуре процессоров, и будет занятие в ASIC flow на тулах Genus и Innovous, с синтезом для ASIC простейшего микропроцессорного ядра, которое до этого будет отлаживаться на FPGA.

То есть FPGA используется как тренажер. Поэтому кто догоняющие по топ-производительности топ-FPGA (Altera и Xilinx) неважно. Главное чтобы плата была дешевле, а синтез работал быстрее (Quartus работает быстрее чем Vivado).

Sign up to leave a comment.

Articles