Finite state machine
Увидел в Си-коде перечисление названий состояний комбинационного автомата с суффиксами:
Конечно были автоматы Мили и Мура, но, кмк, это больше про имплементацию, а не про доктрину/стайлгайд.
Может попадались кому хороший стайл гайды (неважно Си или РТЛ), где бы такие аспекты тоже затрагивались или может даже отдельные публикации по методологии разработки FSM?
PS: учился по методичкам прошлого века и подзатыльникам коллег той же выдержки. так что периодически, лицезрея код из 2022г, не покидает ощущение, что что-то упускаю 🙈
@embedoka
Увидел в Си-коде перечисление названий состояний комбинационного автомата с суффиксами:
_CONNECTINGВроде бы ничего удивительного и
_CONNECTED
_DISCONNECTING
_DISCONNECTED
...
..ING обычно не делается за один такт процессора/ПЛИС и должен быть выделен в отдельное состояние, но что-то подумалось, что ни в институте, ни в последующих трудовых буднях никто не учил писать FSM, всё обычно делалось по самоучению: ну вот есть READ, есть WRITE, добавим еще INIT|RESET, ну там еще в мёртвые состояния не попадаем.Конечно были автоматы Мили и Мура, но, кмк, это больше про имплементацию, а не про доктрину/стайлгайд.
Может попадались кому хороший стайл гайды (неважно Си или РТЛ), где бы такие аспекты тоже затрагивались или может даже отдельные публикации по методологии разработки FSM?
PS: учился по методичкам прошлого века и подзатыльникам коллег той же выдержки. так что периодически, лицезрея код из 2022г, не покидает ощущение, что что-то упускаю 🙈
@embedoka
🤔4👍1🤯1
Clifford Cummings: FSM Design and Synthesis [2019]
▫️ http://www.sunburst-design.com/papers/CummingsSNUG2019SV_FSM1.pdf
77 страниц 😱
▫️ http://www.sunburst-design.com/papers/CummingsSNUG2019SV_FSM1.pdf
77 страниц 😱
🔥5👍1😱1
Инженеры делятся на 2 категории:
1️⃣ хейтеры ардуино/распберри
2️⃣ те, что не "настоящие", а только бейджик "Инженер" в песочнице нашли 😊
Шутки-шутками, но давным-давно для пет-прожектов пытался освоить стм32 "правильным" подходом - ну и конечно забросил это дело, поскольку, работая на уровне регистров, даже просто помигать светодиодиком, когда ты полный нуб - задачка не на одинсеместр вечер. Тупо не хватило сободного времени и фидбека от железа для поддержания мотивации обучения.
Спустя годы, делая вторую итерацию (теперь уже на ESP32) не стал наступать на прежние грабли - буквально за пару вечеров необходимый функционал BLE был написан и отлажен (на основе примера
PS: в общем, я вторая категория: те что с бейджиком 🙈
#золотоэлектроникса
@embedoka
1️⃣ хейтеры ардуино/распберри
2️⃣ те, что не "настоящие", а только бейджик "Инженер" в песочнице нашли 😊
Шутки-шутками, но давным-давно для пет-прожектов пытался освоить стм32 "правильным" подходом - ну и конечно забросил это дело, поскольку, работая на уровне регистров, даже просто помигать светодиодиком, когда ты полный нуб - задачка не на один
Спустя годы, делая вторую итерацию (теперь уже на ESP32) не стал наступать на прежние грабли - буквально за пару вечеров необходимый функционал BLE был написан и отлажен (на основе примера
.ino). Даже перешёл на продвинутый уровень - работа в CLI благодаря такому замечательному проекту как PlatformIO. Доволен как слон 😇PS: в общем, я вторая категория: те что с бейджиком 🙈
#золотоэлектроникса
@embedoka
👍16🔥6👎1😁1🤬1
FPGA & "Arduino"
И очень здорово, что для FPGA сегодня доступны такие инструменты как Litex, Migen & PlatformIO (+ м.б. даже коммерческие HLS с определённой оговоркой ). Для энтузиастов и прочих желающих вкатиться в ПЛИС это прям священный грааль 🔥
Славяноязычныехейтеры блогеры ссылаются на то, мол в библиотеках ардуины полно ошибок (уж не знаю - они же занимаются кодовредительством и инжекцией мифических ошибок или это слухи из разряда "одна бабка сказала", но факт есть факт - миллионы леммингов не могут ошибаться (и продолжать кушать ардуино-кактус)).
Ошибки могут быть где угодно - и в библиотеке HAL, LL, CMSIS и, имхо, тут единственный выход - опенсорс и развитие мощного комьюнити. Ардуино удовлетворяет обоим требованиям. А без библиотек и переиспользования кода сейчас никуда - сложность и степень интеграции микроконтроллерных систем такова, что как на AVR "поморгать светодиодиком" парой строк чистого Си уже не светит , а уж о более сложных вещах и заикаться не стоит 🤷♂️
@embedoka
И очень здорово, что для FPGA сегодня доступны такие инструменты как Litex, Migen & PlatformIO (+ м.б. даже коммерческие HLS с определённой оговоркой ). Для энтузиастов и прочих желающих вкатиться в ПЛИС это прям священный грааль 🔥
Славяноязычные
Ошибки могут быть где угодно - и в библиотеке HAL, LL, CMSIS и, имхо, тут единственный выход - опенсорс и развитие мощного комьюнити. Ардуино удовлетворяет обоим требованиям. А без библиотек и переиспользования кода сейчас никуда - сложность и степень интеграции микроконтроллерных систем такова, что как на AVR "поморгать светодиодиком" парой строк чистого Си уже не светит , а уж о более сложных вещах и заикаться не стоит 🤷♂️
@embedoka
👍9😁1🤔1
Собрался было попробовать разрекламированный GitKraken под линукс, но так и не смог приступить к тест-драйву. Любезно предлагают пользоваться функционалом по цене $60/year 😭
Ну, ок. Решения есть конечно, но прежде чем ударяться во все тяжкие решил посмотреть, а что же есть еще - набрёл на GitHub Desktop, ну думаю круто - уж кто-то знает толк в гите, но оказывается есть только версии по Мас и Win - Майкрософт ну как так-то?! 🤷♂️
UPD: пока нашёл вот такой клиент, доступный во flatpak: https://murmele.github.io/Gittyup/
А что еще есть под линукс с тёмной темой?
Ну, ок. Решения есть конечно, но прежде чем ударяться во все тяжкие решил посмотреть, а что же есть еще - набрёл на GitHub Desktop, ну думаю круто - уж кто-то знает толк в гите, но оказывается есть только версии по Мас и Win - Майкрософт ну как так-то?! 🤷♂️
UPD: пока нашёл вот такой клиент, доступный во flatpak: https://murmele.github.io/Gittyup/
А что еще есть под линукс с тёмной темой?
Гитхаб здорового человека
Заметили как интенсивность работы кореллирует с длиной отпуска (хотя при такой интенсивности кажется впору говорить о рехабе 🤔)?
Заметили как интенсивность работы кореллирует с длиной отпуска (хотя при такой интенсивности кажется впору говорить о рехабе 🤔)?
👍4🔥3
Кстати, все ли в курсе, что существует замечательная сборка опенсорсных тулов для работы с проектами FPGA/ASIC? Довольно крутая задумка для понижения порога входа в тему 👍🏻
▫️Сборки доступны под Линукс (х86, arm, riscv64 🤯), Винду, Мак.
▫️Последняя сборка - сегодня.
PS: По сути, это респин ныне неподдерживаемого проекта Multi-platform nightly builds of open source FPGA tools, но теперь уже с расширением сферы использования и на ASIC.
@embedoka
▫️Сборки доступны под Линукс (х86, arm, riscv64 🤯), Винду, Мак.
▫️Последняя сборка - сегодня.
PS: По сути, это респин ныне неподдерживаемого проекта Multi-platform nightly builds of open source FPGA tools, но теперь уже с расширением сферы использования и на ASIC.
@embedoka
🔥10❤2
Как стать ардуинщиком? Нужно после каждого предложения добавлять "обнови IDE" и "подёргай за проводочки".
Пример: кофе там был плохой, если бы обновили IDE и подёргали за проводки было бы лучше.
@embedoka
Пример: кофе там был плохой, если бы обновили IDE и подёргали за проводки было бы лучше.
@embedoka
👍11🔥5😢1
Forwarded from Konstantin
как стать PCB developer
Нужно после каждого предолжения добавлять конденсаторы по питанию
Например - констрейны FPGA были плохие, надо добавить конденсаторов по питанию
Нужно после каждого предолжения добавлять конденсаторы по питанию
Например - констрейны FPGA были плохие, надо добавить конденсаторов по питанию
🔥31👍3❤1
Forwarded from Максим SpaceCowboy
Получается что бы стать разработчиком ASIC нужно добавлять "если бы верификаторы это протестировали"
Кофе там был плохой - если бы верификаторы его протестировали, было бы лучше.
Кофе там был плохой - если бы верификаторы его протестировали, было бы лучше.
🔥14👍5😁2
Embedded Doka
#пятничное @embedoka
В комментариях был скепсис, что "0 warnings в Vivado" - что-то нереальное. Замечу, что этого всё же можно достичь не вполне законными средствами в случае, если вы понимаете что вы делаете и зачем (т.е. не надо это превращать в самоцель). Писал об этом в блоге еще в далёком 2016г (там же и про способ выключения некоторых DRC-проверок и способ переквалификации типов ворнингов).
Конечно насколько криминал заниматься "очисткой логов" надо рассматривать в каждом конкретном кейсе (grep, sed и раскраску лога как-никак никто не отменял 🤷♂️), замечу лишь то, что подобными практиками не брезгуют инженеры Амазона - примеры можете найти на гитхабе (AWS F1).
PS: Не знаю авторства, но обожаю фразу: Если вы спрашиваете стоит ли вам применять ПЛИС в текущем проекте, то ответ: определённо нет (If you don't know what a FPGA is, then you probably shouldn't use it).
Вот с отключением и переквалификацией примерно тоже самое: если сомнения в том, стоит ли это делать, то ответ: определённо не стоит.
@embedoka
Конечно насколько криминал заниматься "очисткой логов" надо рассматривать в каждом конкретном кейсе (grep, sed и раскраску лога как-никак никто не отменял 🤷♂️), замечу лишь то, что подобными практиками не брезгуют инженеры Амазона - примеры можете найти на гитхабе (AWS F1).
PS: Не знаю авторства, но обожаю фразу: Если вы спрашиваете стоит ли вам применять ПЛИС в текущем проекте, то ответ: определённо нет (If you don't know what a FPGA is, then you probably shouldn't use it).
Вот с отключением и переквалификацией примерно тоже самое: если сомнения в том, стоит ли это делать, то ответ: определённо не стоит.
@embedoka
Журнал Эмбеддед-Инженера
Коллекция советов и подсказок по работе с Xilinx Vivado в командной строке TCL
СоветыNote!: Все команды вводятся в интерпретаторе TCL в интерактивном или пакетном режимах.Включение мультипроцессорностиможно задавать значение от 1 до 8
👍6🔥1🤯1