Very Large Scale Integration CAD — Part II — Layout

This is the summary of the course VLSI CAD Part II: Layout from the University of Illinois at Urbana-Champaign. The author of the course is Rob A. Rutenbar. Here’s the summary of the 1st course in the series. Placement Technology mapping Routing Timing Analysis Technology Mapping — transfroming boolean functions/networks into logic gates. Standard Cell Library — a library which contains «standard cells» — logic gates and small logic elements (XOR, NOR, NAND, flip-flop, adder, etc.) Standard Cell can be Читать дальше …

Very Large Scale Integration CAD — Part I — Logic

This is the summary of another course which I’ve passed on Coursera. Its name is VLSI CAD Part I: Logic. The author of the course is Rob A. Rutenbar from the University of Illinois at Urbana-Champaign. The course talks about combinational logic synthesis: logic functions’ minimization, optimizing logic schemes etc. There’s also the 2nd course talking about placement, routing and timing analysis. Shannon Cofactors Fx Fx’ Positional Cube Notation (PCN) Tautology Unate Recursive Paradigm (URP) Unate Recursive Complement Algorithm Binary Читать дальше …

Про страх

Последнюю неделю все мои мысли заняты тем, что происходит в Беларуси. Каждый день я вижу кадры, где белорусский ОМОН зверски избивает мирных граждан. Задержанные люди, которых отпустили, рассказывают о пытках и избиениях беззащитных людей. Эти видео иногда вызывали у меня чувство дурноты и дрожь. У посольства Республики Беларусь в Москве каждый вечер собираются и белорусы, и русские. Образовался народный мемориал из цветов и свечей, который теперь ежедневно зачищают коммунальщики и полиция. Я думал о том, чтобы прийти к посольству уже Читать дальше …

Шпаргалка по Linux для чайников

Заранее прошу прощения у опытных пользователей Linux, если допустил где-то ляпы… Что взять с чайника? 🙂 В тексте ниже в качестве приглашения (prompt) используется символ доллара. Package Management Разные дистрибутивы Linux включают в себя разные пакетные менеджеры. Например: — Debian — apt-get — RedHat — dnf или yum О том, что такое пакетные менеджеры, читайте статью Linux Package Management. Утилиты вроде apt-get и dnf — более высокоуровневые — они не заставляют пользователя указывать точную версию пакета и они сами устанавливают Читать дальше …

From Nand To Tetris — Как построить компьютер с нуля

В связи с карантином я открыл для себя платформу Coursera и в короткий срок прошел там уже несколько довольно объемистых курса. Один из них From Nand To Tetris (далее буду для краткости называть его N2T) осуществил одну из моих мечт — спроектировать компьютер с нуля (или хотя бы почувствовать как это) — об этом я задумывался, когда читал книжку Эндрю Таненбаума «Архитектура компьютера». Кстати, по моему, идеологически курс N2T близок книжке Таненбаума, но курс, в отличие от книжки — проектно-центрированный, Читать дальше …

Трудовая автобиография

Эта заметка предназначается, потенциальным работодателям — ссылку на нее я разместил в своих резюме. Но может, и широкому читателю будет интересно (т. е. если сюда забредет кто-то из моих студентов). Поехали. В 2010-м году я окончил (с отличием) кафедру Микроэлектроники Московского Инженерно-Физического Института. Будучи студентом-дипломником, я занимался исследованием радиационной стойкости транзисторов, усилителей и прочих аналоговых устройств. Проводил эксперименты, делал расчеты в системе компьютерной алгебры Wolfram Mathematica, писал статьи. Чтобы как-то автоматизировать лабораторные эксперименты, изучал программирование на C/C++ и написал тогда Читать дальше …

Machine Learning

Недавно я прошел 11-недельный курс Machine Learning на платформе Coursera. Курс великолепен. Чтобы помочь себе вспомнить материал через много лет, я решил написать краткий конспект, состоящий преимущественно из ключевых слов, поэтому текст ниже будет понятен, скорее всего, только тем, кто сам прошел этот курс. Supervised learning algorithms Постановка задачи. Есть входные переменные (x), от которых предположительно зависит выходная переменная (y). Есть набор данных, для которых известны конкретные значения (x) и (y). Цель — найти такую функцию, которая максимально точно будет Читать дальше …

Переход с Visual Studio на VS Code

Если вы используете Microsoft Visual Studio в коммерческих целях, то вам нужно покупать лицензию. Фирма, в которой я работаю, такую лицензию имеет. Однако, почему бы не избавиться от необходимости платить, и не перейти на бесплатные средства разработки? Вот и стали мы переходить… Оказалось, что не так это сложно, в конце концов интегрированная среда разработки (ее платная часть) — это лишь графическая оболочка, которая для своей работы пользуется различными бесплатными утилитами командной строки. Графическую Visual Studio часть можно компенсировать бесплатным редактором Читать дальше …

PowerShell, NuGet & Visual Studio postbuild event (продолжение)

В предыдущей заметке я начал рассказ о том, как я переходил к использованию NuGet package manager и как использовал в связи с этим скрипт PowerShell, чтобы копировать сторонние библиотеки из одного места в другое. Удаление недействительных ссылок Проектов в моем решении очень много. Многие из них ссылаются на одну и ту же стороннюю библиотеку. Сторонние библиотеки у меня живут в папке $(SolutionDir)Lib. С переходом на NuGet значительная часть библиотек перебралась в папку $(SolutionDir)packages. При установке пакета в NuGet вы указываете Читать дальше …

PowerShell, NuGet & Visual Studio postbuild event

На работе я много лет работаю над большим-пребольшим проектом на платформе C#/.NET. В проекте используется ряд сторонних библиотек. Но поскольку я — программист-любитель, я не до сих пор использовал для управления ими package-manager, а просто тупо скачивал архивы с нужными библиотеками с оф. сайтов. Но вот, я решил-таки все решение перевести на использование NuGet package-manager, и в процессе столкнулся с рядом проблем, которые решил при помощи скриптов PowerShell, о чем и расскажу в этой заметке. Почему я решил начать использовать Читать дальше …