Как я могу сделать свой собственный микроконтроллер? - PullRequest
45 голосов
/ 11 марта 2009

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

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

Ответы [ 9 ]

28 голосов
/ 11 марта 2009

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

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

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

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

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

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

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

13 голосов
/ 11 марта 2009

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

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

7 голосов
/ 11 марта 2009

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

FAQ по PDP-8 упоминает книгу: " Искусство цифрового дизайна, ", второе издание, Франклина Проссера и Дэвида Винкеля (Prentice-Hall, 1987, ISBN 0 -13-046780-4). В нем также упоминаются люди, реализующие его в ПЛИС.

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

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

3 голосов
/ 12 марта 2009

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

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

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

1 голос
/ 18 апреля 2009

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

1 голос
/ 11 марта 2009

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

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

1 голос
/ 11 марта 2009

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

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

0 голосов
/ 11 марта 2009

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

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

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

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

0 голосов
/ 11 марта 2009

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

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=64

...