Как я могу сделать свой собственный микроконтроллер?

StackOverflow https://stackoverflow.com/questions/632698

  •  08-07-2019
  •  | 
  •  

Вопрос

Как я могу сделать свой собственный микроконтроллер? Я проделал некоторую работу с использованием микросхем GAL и запрограммировал микросхему для выполнения простых команд, таких как добавление, загрузка, перемещение, xor и вывод, но я хотел бы сделать что-то более похожее на настоящий микроконтроллер.

Как я могу это сделать? Я немного читал о FPGA и CPLD, но не очень, и поэтому искал несколько советов о том, что получить и как начать разрабатывать их.

Это было полезно?

Решение

Найдите здесь хорошую книгу вики. У меня была некоторая курсовая работа, которую я написал, когда я преподавал Electronic Eng, но я не мог ее найти. Когда я преподавал, большинство студентов были рады использовать инструменты для схематического захвата в пакете Xilinx Foundation. Теперь они перешли на ISE и WebPACK. Вы можете скачать WebPack бесплатно, что полезно, и в нем есть схематический захват и симуляция.

Если вы действительно хотите сиять, изучите VHDL или Verilog (VHDL кажется более распространенным в тех местах, где я работал, но это всего лишь небольшая разбросанность мест) и кодируйте дизайн, а не вводите его через GUI.

Если вы вообще НИЧЕГО знаете о дизайне цифровой логики (и некоторых HDL), я рекомендую вам создать функциональный 8-битный микропроцессор, имитирующий VHDL, примерно через 2 дня. Вы не собираетесь создавать что-то невероятно быстрое или невероятно мощное в то время, но это хорошая отправная точка для роста. Если вам необходимо узнать о цифровом дизайне, потратьте пару дней, чтобы узнать, как работают инструменты, и имитировать некоторые базовые логические схемы, прежде чем переходить к дизайну uP.

Начните изучать основы цифровых систем и узнать, как создать двоичный сумматор. Перейдите к созданию ALU для обработки сложения, вычитания и / или xor и т. Д., А затем секвенсора для считывания кодов операций из ОЗУ и передачи их в исполнительный модуль.

Можно придумать дизайн набора инструкций, но я бы порекомендовал начать ДЕЙСТВИТЕЛЬНО просто, пока вы не разберетесь в том, что происходит, затем выбросите его и начните снова с чего-то более сложного.

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

РЕДАКТИРОВАТЬ: Колин Маккензи имеет хорошее руководство по дизайну uC и некоторым платам FPGA, а также немного другие вещи.

Другие советы

Возможно, вы захотите осмотреть OpenCores.org , " подделать " сайт для разработки IP ядра с открытым исходным кодом. Кроме того, подумайте над тем, чтобы подарить себе доску для разработки, например , один из них , с которым можно поиграть.

Большая часть экосистемы инструментов вращается вокруг VHDL , хотя Avalda работает над инструментами для компиляции F # для FPGA.

Однажды я увидел учебник, в котором рассказывалось о создании машины из чипов TTL. У него был тот же набор инструкций, что и у PDP-8, который очень - и я имею в виду очень - простой, поэтому реальную архитектуру машины легко реализовать таким способом.

FAQ по PDP-8 упоминает книгу: " < a href = "https://rads.stackoverflow.com/amzn/click/com/0130467804" rel = "nofollow noreferrer"> Искусство цифрового дизайна, " второе издание, Франклин Проссер и Дэвид Винкель (Prentice-Hall, 1987, ISBN 0-13-046780-4). В нем также упоминаются люди, реализующие его в ПЛИС.

Учитывая чрезвычайную простоту этой архитектуры ЦП и доступность кода PDP-8 или эталонных реализаций, это может быть хорошей отправной точкой для разогрева.

В качестве альтернативы, мой знакомый реализовал большой палец (вырубил ARM) на FPGA как университетский проект, которым руководил один Стив Фербер (известный выпускник Acorn). Учитывая, что это может быть сжато в формат, достаточно маленький для университетского проекта, это также может быть хорошим началом.

Чтобы играть с микропроцессорами с мягким ядром, мне нравится Spartan 3 Starter Board от Digilent только потому, что он имеет 1M статической оперативной памяти. Знаете, работать с SDRAM и DDR RAM труднее.

Светодиоды, переключатели и простой последовательный интерфейс - это плюс для отладки и связи.

Как уже отмечалось, OpenCores.org - это хорошее место для поиска рабочих примеров. Я использовал Plasma uC , чтобы написать несколько статей в университете.

Микроконтроллер может быть таким же простым, как ПЗУ (инструкция * 2 ^ x + (фаза синхронизации) - это адрес, выходы - это управляющие сигналы, и все готово). Или это может быть сложный зверь-гарри с тремя аппаратными средствами поддержки предсказаний и ответвлений.

Можете ли вы рассказать подробнее о своих устремлениях?

После поиска некоторых очень полезных ссылок всеми вами, я наткнулся на этот курс Викиверситета .

Одно из первых предложений: «Вы когда-нибудь думали создать свой собственный микропроцессор?»

Xilinx имеет MicroBlaze и PicoBlaze программный контроллер для своих FPGA. Последнее бесплатно, в то время как, IIRC, Microblaze должен быть оплачен.
Как следует из названия, PicoBlaze - это небольшой процессор, который имеет свои ограничения, но OTOH достаточно компактен, чтобы использовать CPLD . В любом случае, хороший процессор для начала работы.
У Пабло Блейера есть совместимый с PicoBlaze PacoBlaze . PacoBlaze был написан на Verilog (который, как сказал Адам, менее распространен, чем VHDL).

Тебе нужна большая FPGA для маленькой MCU.

Вам нужна fpga с правильными аппаратными блоками, если вам нужны такие вещи, как AD.

Вам нужно мягкое ядро, чтобы поместить его в fpga.

Но как насчет просто поиграться с обычным MCU перед этим проектом, так ты вроде знаешь куда идешь? Как насчет некоторых AVR: от Atmel.

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

http://www.microchip.com/stellent/idcplg?IdcService = SS_GET_PAGE & амп; NodeId = 64

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top