
Комментарии 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, дорогого города в котором Стенфорд) полицейские (по крайней мере несколько лет назад) по одному не ходили , он был рекордсменом по убийствам. В Сан-Франциско есть места в котором на асфальте лежат героиновые наркоманы и колятся средь бела дня на глазах у публики и даже полицейских. Окленд - столица афро-американских бунтов, там тоже стремно местами.
И что? Кто-то из краснодипломников все равно уедет.
По вашему лучше ничему не учить, пусть лаптем щи хлебают здесь, с низкой квалификацией?
Мне по работе пришлось писать эмуляцию 74S481. Увлекательное занятие было :) Особенно писать компилятор, чтобы проверить все функции а не только существующую программу.
Кому понадобились bit slice процессоры в 21 веке? Или вы это делали в 1970 годы?
На базе 74S481 построено не мало модулей вот этой штуки AN/TPQ-37, например. Эти радары а так же их производные до сих пор "цветут и пахнут". К сожалению эти процессоры начали выходить из строя. Новых уже давно не выпускают. Одно из решений проблемы - эмуляция на ПЛИС.
Прошу прощения за тупые вопросы, но:
Для чего cnt после сброса задается значение b001?
Ваш модуль не выдаёт наружу, что обновились данные. Или это просто пример?
Чем плох sv? Уже давно quartus и ise поддерживают и очень хорошо кушают system verilog.
Для чего вводятся дополнительные линии 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 - то и работы там по этому фронту хоть отбавляй. ну и дальше по списку - системы космической навигации, системы жизнедеятельности, скафандры, проектирование и испытание совершенно нового оборудования типа того же Старшипа, а не бесконечная эксплуатация королевской семерки. Они сами признавались что любят нанимать кодеров из геймдева - там похоже схожие задачи.
Вторая половина статьи вызвала диссонанс). Она как минимум была неожиданной.
Но это очень логично - если вы хотите над чем-то таким работать, то вам нужно учить его, а не читать научпоп про космос и новости в интернете. А лабы по FPGA поставлены во многих российских вузах так себе. Собственно такие мероприятия как сколковская школа синтеза предназначена для их улучшения до мировых стандартов.
Опрос интересный ;)
Я то думаю откуда мне ваша фамилия знакома... А это ведь вы Радулову в ЖЖ доставали предложениями руки и сердца ?
Да, Наталья вдохновляла меня на творчество. А какой у вас ник в ЖЖ? Вы читали мой рассказик "Радулова встречает тракториста"?
... "И что я делаю в этой дыре", - понеслись мысли Радуловой, - "почему я не в Лондоне, не в Париже, с обходительными, вежливыми иностранцами. Почему в русской провинции такая нехватка достойных мужчин? Мужчин категории A мало, причем они выбирают женщин категории B, мужчины категории B выбирают женщин категории C. А что делать нам, женщинам категории A?" ...
Немного смутило, что в космонавтике используются в том числе ПЛИС - по идее 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).


Как я проходил интервью на проектировщика FPGA для космических кораблей Blue Origin