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

Вот что я собрал, чтобы помочь понять разницу

public interface ICovariant<out T> { }
public interface IContravariant<in T> { }

public class Covariant<T> : ICovariant<T> { }
public class Contravariant<T> : IContravariant<T> { }

public class Fruit { }
public class Apple : Fruit { }

public class TheInsAndOuts
{
    public void Covariance()
    {
        ICovariant<Fruit> fruit = new Covariant<Fruit>();
        ICovariant<Apple> apple = new Covariant<Apple>();

        Covariant(fruit);
        Covariant(apple); //apple is being upcasted to fruit, without the out keyword this will not compile
    }

    public void Contravariance()
    {
        IContravariant<Fruit> fruit = new Contravariant<Fruit>();
        IContravariant<Apple> apple = new Contravariant<Apple>();

        Contravariant(fruit); //fruit is being downcasted to apple, without the in keyword this will not compile
        Contravariant(apple);
    }

    public void Covariant(ICovariant<Fruit> fruit) { }

    public void Contravariant(IContravariant<Apple> apple) { }
}

tldr

ICovariant<Fruit> apple = new Covariant<Apple>(); //because it's covariant
IContravariant<Apple> fruit = new Contravariant<Fruit>(); //because it's contravariant
45
задан Johan 15 April 2009 в 05:41
поделиться

9 ответов

Посмотрите здесь для хорошей книги Wiki. У меня была некоторая курсовая работа, которую я записал, когда я учил Электронного Инженера, но я не мог найти его вокруг. Когда я преподавал, большинство студентов было радо использовать схематические инструменты получения в пакете Основы Xilinx. Они перешли на ISE и WebPACK теперь. Можно загрузить WebPack бесплатно, который полезен, и он имеет схематическое получение и моделирование в нем.

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

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

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

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

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

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

28
ответ дан Adam Hawes 15 April 2009 в 16:41
поделиться
  • 1
    Я попробовал этот код, была ошибка компиляции, что-то о методе деструктора... – dividebyzero 23 June 2013 в 06:19

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

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

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

3
ответ дан Marcelo MD 15 April 2009 в 16:41
поделиться

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

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

13
ответ дан Jeffrey Hantin 15 April 2009 в 16:41
поделиться

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

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

1
ответ дан samoz 15 April 2009 в 16:41
поделиться
  • 1
    4 года назад. i' ve ответил этому. все ненавистники массово разосланы на " Вниз vote" кнопка. это было-9 или хуже. но теперь it' s-2. они забирали их или что? как это произошло? – risyasin 24 June 2013 в 01:10

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

PDP-8 FAQ упоминает книгу: " Искусство Цифрового Дизайна, " второй выпуск, Franklin Prosser и David Winkel (Prentice-Hall, 1987, ISBN 0-13-046780-4). Это также упоминает людей, реализующих его в FPGA.

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

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

7
ответ дан ConcernedOfTunbridgeWells 15 April 2009 в 16:41
поделиться

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

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

Вам нужно мягкое ядро для помещения в fpga.

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

0
ответ дан Johan 15 April 2009 в 16:41
поделиться
  • 1
    Я думаю часть Вашего списка, немного устаревшего теперь:/ – risyasin 14 March 2013 в 03:56

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

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

1
ответ дан MarkusQ 15 April 2009 в 16:41
поделиться
  • 1
    Независимый от платформы, но иногда зависимый браузера:) – Canavar 2 July 2009 в 18:19

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

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

-4
ответ дан NotDan 15 April 2009 в 16:41
поделиться
  • 1
    " Cheaper" isn' t обязательно верный также: если Вы создаете веб-приложение, которое должно сделать, чтобы достойный пользователь испытал, и совместимо со всеми главными браузерами и мобильно, то требуется большая тонкая настройка для разбираний в нем. Это действительно более дешево, чем создание приложения для osx/ios/win/linux, но создание веб-приложения пользователи ожидает, что он будет работать гладко на их определенном предпочтительном браузере. Ограниченный объем OS настольных приложений легче объяснить. – faester 24 July 2013 в 17:42

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

1
ответ дан 26 November 2019 в 21:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: