Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

EDIT: Colin Mackenzie имеет хороший учебник о дизайне uC и некоторых платах FPGA, а также о других вещах.

Ответ 2

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

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

Ответ 3

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

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

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

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

Ответ 4

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

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

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

Ответ 5

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

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

Ответ 6

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

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

Ответ 7

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

Ответ 8

Вам нужна большая fpga для небольшого mcu.

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

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

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