Удивительный факт, но многие студенты, успешно прошедшие курс цифровой электроники, остаются в неведении о таком явлении, как метастабильность (либо считают его столь малозначимым, что примерно через 2 дня после экзамена напрочь забывают). Между тем, сбои в работе устройства, вызванные метастабильностью диагностируются крайне трудно. Если вы узнали себя в таком студенте, и если вы хоть как-то связаны с разработками на базе цифровых микросхем — крайне рекомендую к прочтению данный текст. Возможно, что потратив 10 минут сейчас вы сэкономите многие дни, проведенные за отладкой в будущем.
Рубрика «fpga» - 35
IBM PC своими руками — это очень просто
2015-04-03 в 15:36, admin, рубрики: diy или сделай сам, fpga, программирование микроконтроллеров, старое железо, Электроника для начинающихПосле того, как я воплотил свою давнишнюю мечту и все-таки (хотя и с опозданием почти на 30 лет) построил Радио 86РК, некоторое время мне казалось, что на этой части моей истории поставлена вполне достойная точка.
Тем не менее, обнаружилось, что болезнь до конца не вылечена, и она вернулась еще более острым рецидивом. Наверное, сказались как неожиданно успешный опыт постройки 86РК, так и то, что у меня в ходе данного процесса образовалось довольно большое количество весьма притягательно выглядящих инструментов, приборов и деталей, которым очень хотелось найти применение.
В конце концов ломка стала нестерпимой, и мне пришлось снова взяться за паяльник, а также вспомнить некоторые другие навыки из прошлого. Что из этого получилось, можно увидеть вместе с некоторым количеством картинок и очень (повторяю – ОЧЕНЬ) большим количеством букв (и даже не букв, а страниц) дальше…
Читать полностью »
Виды программируемой логики
2015-04-02 в 23:45, admin, рубрики: antifuse, cpld, fpga, hdl, xilinx, Программирование, Электроника для начинающихПривет, Читатели!
Пролистав ленту статей с тегами, относящимся к ПЛИС, FPGA, цифровому дизайну, HDL понял, что их не густо. Будем исправлять это безобразие.
В этом посте я постараюсь доходчиво, коротко и понятно рассказать об архитектурах устройств программируемой логики. Затрону ключевые вопросы технологии их производства.
Поехали!
Читать полностью »
Система пространственного позиционирования для авиации (применяем FPGA)
2015-03-12 в 10:11, admin, рубрики: ads-b, fpga, MLAT, mode-s, авиация, Геоинформационные сервисы, мультилатерация, позиционирование, Электроника для начинающих, метки: FPGA, MLAT, мультилатерацияПролог
В любой статье, посвященной FPGA, в комментариях рано или поздно появляется мысль, дескать «прикольная штука, собрал простой проект, помигал светодиодами, а что с этим сделать полезного — ума не приложу». Кто-то под FPGA создает игры, кто-то портирует стандартные процессоры старых времен, но все это позиционируется в первую очередь в качестве развлечения и освоения технологии. И действительно, технология FPGA в применении «для дома, для семьи» слишком дорога и явно избыточна. Сегодня я постараюсь рассказать о системе, в которой FPGA находит свое гармоничное применение исключительно в мирных и общественно-полезных целях (никаких механизмов для биржевых спекуляций, вуайеризма или убийства себе подобных). Впрочем, как можно будет заметить из дальнейшего рассказа, значительная часть повествования будет уделена предметной области и уровню системного проектирования.
Читать полностью »
Временные ограничения и статический временной анализ FPGA на примере Microsemi SmartTime
2015-03-05 в 7:22, admin, рубрики: actel, fpga, microsemi, smarttime, sta, static timing analysis, timing constraints, Электроника для начинающихЕщё во время обучения в ВУЗе, проектируя различные тестовые безделушки и выполняя лабораторные работы по цифровой схемотехнике, я попадал в ситуации, когда вроде бы корректный несколько раз перепроверенный проект отказывается работать «в железе». В то время, на заре изучения программируемой логики, мне как-то очень редко доводилось добираться до последних пунктов Design Flow, в чем, вероятно, и крылась беда. Если я нечаянным щелчком мыши открывал Timing Analyzer, то после нескольких секунд беглого просмотра становилось скучно, и я возвращался к издевательствам над отладочной платой и сочинял новые безумства на VHDL.
Когда подошло время более-менее адекватных и серьёзных проектов, проблем стало больше, соответственно, я начал интенсивнее использовать гугл и искать ответы на свои вопросы. Тут мне всё чаще стали попадаться такие страшные словосочетания, как “timing analysis” и “design constraints”, когда я почитал и немного вникнул, пришло осознание того, что я упустил что-то очень важное. Сначала я панически боялся этих неведомых констрейнов, и ведь без них успешно работали первые проекты, благо частота там была не больше пары десятков МГц. Но когда речь зашла о более высоких частотах и более сложных проектах, здесь уже не обойтись без тщательного временного анализа и оптимизации.Читать полностью »
Поиск Bing оптимизировали с помощью нейросети на FPGA
2015-02-27 в 11:45, admin, рубрики: Altera, Bing, fpga, microsoft, Железо, облачные сервисы, свёрточная нейросеть, метки: FPGA
В проектировании серверной инфраструктуры для обработки поисковых запросов у каждой компании есть свои ноу-хау. Например, Microsoft в последние годы активно экспериментирует с использованием FPGA (Field-Programmable Gate Array, программируемые пользователем вентильные матрицы).
Читать полностью »
Оптимизированная система команд для микроконтроллеров
2015-02-19 в 15:35, admin, рубрики: fpga, marsohod2, microcontrollers, Verilog, программирование микроконтроллеров, Электроника для начинающихНемногим менее года назад была опубликована статья «Микропроцессор «из гаража»» и, возможно, сейчас наступил неплохой момент чтобы снова напомнить о проекте.
Пожалуй, главная новость это расширение системы команд, названное «Версия 1.1». Её отличие от предыдущей это расширенные возможности адресации. Но обо всём по порядку. Чтобы представить о чём идёт речь, взгляните на карту системы команд (картинка кликабельна):
Как начать разрабатывать железо, используя ПЛИС — пошаговая инструкция
2015-02-13 в 8:56, admin, рубрики: fpga, Verilog, xilinx, образование, платы, Электроника для начинающихКаким образом повысить количество российских инженеров, которые были бы знакомы и с разработкой хардвера, и с разработкой софтвера, и могли бы строить системы, в которых часть функциональности находится в специализированном железе, а часть — в программном обеспечении, с соблюдением баланса между ними?
Для этого вовсе не обязательно выбрасывать несуразные деньги а-ля сделка Сколкова и MIT.
Есть масса дешевых и эффективных мер по апгрейду российской образовательной системы. Одна из них — широко ввести практические классы ПЛИС / ППВМ / FPGA среди старших школьников и студентов. Это то, на чем учатся и инженеры, которые потом разрабатывают микросхемы внутри Apple iPhone в Купертино, Калифорния.
Читать полностью »
Minesweeper на FPGA
2015-02-06 в 12:13, admin, рубрики: fpga, Gamedev, vhdl, xilinx, ПЛИС, программирование микроконтроллеров, метки: FPGA Привет всем!
Прочитав статью «Делаем тетрис под FPGA», я вспомнил, что у меня завалялся похожий проект, который я когда-то использовал для своеобразного предложения «руки и сердца» своей девушке.
А почему бы не сделать нечто подобное самому?
Откопав исходники, возобновил утерянные знания и решил на базе старого проекта на скорую руку написать простую версию игры «Сапёр» на старенькой ПЛИС Spartan3E. Собственно, о реализации игры «Сапёр» на уровне логических вентилей и основных особенностях разработки на FPGA фирмы Xilinx и пойдет речь в данной статье.
Читать полностью »
Не-фон неймановский компьютер на базе комбинаторной логики
2015-02-03 в 21:44, admin, рубрики: fpga, unlambda, архитектура ЭВМ, клеточные автоматы, комбинаторная логика, параллельное программирование, функциональное программирование, Электроника для начинающих, метки: unlambda, архитектура ЭВМ, комбинаторная логика Здравствуйте. В этой статье я расскажу про свой хобби-проект не-фон неймановского компьютера. Архитектура соответствует функциональной парадигме: программа есть дерево применений элементарных функций друг к другу. Железо — однородная статическая сеть примитивных узлов, на которую динамическое дерево программы спроецировано, и по которой программа «ползает» вычисляясь.
Примерно так работает дерево, только здесь для наглядности вычисляются арифметическое выражение, а не комбинаторное; шаг на рисунке — один такт машины.
Сейчас готов ранний прототип, существующий как в виде потактового программного симулятора, так и в виде реализации на ПЛИС.
Читать полностью »