Как мне спроектировать свои собственные процессоры на базе ARM?

37

У меня есть несколько вопросов о том, как я буду проектировать свой собственный процессор на базе ARM?

  • Как начать с лицензии ARM и получить пакет, готовый для пайки на плату?
  • Что я получу от ARM (я уверен, что у них есть несколько вариантов лицензий для раздачи - лицензия на архитектуру (стиль Qualcomm Snapdragon) и лицензия на ядро ​​(стиль TI OMAP))?
  • Какие инструменты мне нужны, чтобы получить «что-то» от ARM?
  • Что я отправляю на завод?
  • Я считаю, что только некоторые литейные компании имеют лицензию на травление ядра ARM на кремниевой пластине. Я прав?
  • Будучи студентом, могу ли я позволить себе делать это на FPGA? Как мне получить опыт для чего-то подобного?
Лорд лох
источник
9
Очевидный ответ - поговорить с ARM.
Олин Латроп
3
Взгляните на opencores.com - там много разных процессорных ядер в разных состояниях полноты и функциональности. Что касается фактического получения основного ядра ARM ... как говорит @OlinLathrop ... поговорите с ARM.
akohlsmith
6
Я не понимаю отрицательных голосов, это может быть наивный вопрос, но определенно законный ИМО.
Джон Л
2
Проблема в том, что ваш вопрос относится к рабочему процессу, которому вы не сможете следовать. Рабочие процессы, которым вы можете следовать - используя оригинальный или свободно доступный дизайн в HDL для нацеливания на ПЛИС, - так же отличаются от тех, что предполагаются на самом деле.
Крис Страттон
2
Ядро Cortex-M1 , кажется, предназначено для работы в любом соответствующим образом способной FPGA. Основные поставщики ПЛИС имеют IP-лицензию и предоставляют ее разработчику, как и любое другое программное ядро. Я предполагаю, что не бесплатно, но есть программы, доступные специально для академического использования.
RBerteig

Ответы:

68

Вот как компании это делают:

  1. Привлечь около 10 миллионов долларов США.
  2. Вести переговоры с ARM, чтобы получить лицензию. Это, вероятно, будет стоить как минимум 1 миллион долларов США.
  3. Получить файлы дизайна от ARM. Скорее всего, это будет VHDL, Verilog или «зашифрованный» список соединений.
  4. Создайте свой собственный чип, используя смесь вашей собственной логики (для периферийных устройств) и того, что дала вам ARM. Этот шаг, вероятно, потребует дорогостоящего программного обеспечения САПР и небольшой команды экспертов. Ожидайте потратить не менее 5 миллионов долларов США и несколько лет.
  5. Получите маски, сделанные для самого чипа. Если вы используете какой-либо современный полупроводниковый процесс, то это обойдется примерно в 1 миллион долларов США.
  6. Получи сам чип сделанный. Цена варьируется, но должна быть менее 0,5 млн. Долларов США.
  7. Отладьте чип, который вы создали, исправьте ошибки, затем вернитесь к шагу 5, пока у вас не появится что-то, что вы сможете продать.

Вот как ВЫ это делаете:

  1. Пройдите курс по компьютерной архитектуре на уровне магистратуры в вашем местном университете.
  2. Пройдите больше курсов по цифровой логике и прочему.
  3. Разработка процессора с нуля в VHDL или Verilog.
  4. Дизайн другого процессора с нуля.
  5. Посмотрите на набор инструкций ARM и спроектируйте совместимый процессор.
  6. Сделайте так, чтобы ваш ARM-совместимый процессор работал в FPGA.
  7. Не распространяйте свой исходный код VHDL / Verilog, если вы не хотите, чтобы вас судили.
  8. Используйте свой опыт ARM, чтобы написать хорошую диссертацию для вашего доктора философии.
  9. Используйте свою докторскую степень, чтобы получить работу в ARM или TI, или кто-либо еще. Затем повторите процесс, используя предыдущие 7 шагов о том, как компания это делает.

Итак, этот список немного насмешливый, но он в основном правильный. Дело в том, что даже не связывайтесь с ARM напрямую, потому что, скорее всего, у вас нет денег. И не делайте ничего, что возбудит против вас иск ARM.


источник
1
+1. Отличный ответ. То, что я собирался сказать, но лучше.
Ракетный
1
Любой хороший курс будет включать в себя базовую структуру различных типов процессоров и то, как они все работают. Темы должны охватывать микрокод, декодирование команд, ALU, доступ к памяти, кэш, регистры, конвейерную обработку, опасности данных, предварительную выборку инструкций и т. Д.
3
Есть ли какая-либо причина, по которой набор инструкций ARM сам по себе был бы более патентоспособным, чем любой из других процессоров, клонов которых предостаточно? Конечно, есть некоторые архитектурные особенности, которые запатентованы, но если цель состоит в том, чтобы спроектировать процессор, который будет работать с существующими компиляторами, создаст ли сам набор инструкций проблему?
Суперкат
1
@supercat Обычно инструкции сами по себе не являются патентоспособными, если они не включают некоторые архитектурные элементы. MIPS сделали это со своими процессорами, где они запатентовали некоторые инструкции, которые будут загружать / хранить слова, которые не выровнены по словам, а также некоторые вещи для динамического переключения между старшим и младшим порядковым номером. Это было оспорено в суде, когда MIPS подала в суд на производителя клонов MIPS, и MIPS выиграл (примерно в 2000 году). Но большинство патентов касаются архитектурных вопросов. К сожалению, вы не можете создать процессор, совместимый с существующими компиляторами, не копируя архитектуру и набор команд.
1
@LordLoh Вы можете найти эти вопросы полезными: electronics.stackexchange.com/questions/28686/… electronics.stackexchange.com/a/7051/638
W5VO
32

ARM имеет университетскую программу DesignStart . Будучи студентом, вы можете получить доступ только к базовому материалу Cortex-M0. Но если вы действительно заинтересованы, подключите свой факультет, и тогда вы сможете получить доступ к гораздо большему количеству материалов для проектирования (код FPGA Verilog, оценочный IP, симуляции и т. Д.)

embedded.kyle
источник
4
Спасибо :-) Я постараюсь, чтобы мой советник запросил некоторые из них.
Лорд Ло.
WFIW, этот ответ уже устарел, доступны как Cortex-M0, так и Cortex-M3, а некоторые части продукта открыты для студентов / учреждений.
Шон
5

Взгляните на это ядро ARM на OpenCores.

plan9assembler
источник
1
Но имейте в виду : ARM просто допускает такие повторные реализации: eetimes.com/author.asp?section_id=36&doc_id=1287452 , вы будете прекращать или отказываться от судебного процесса. Также рассмотрим открытые арки, такие как RISC-V.
Сиро Сантилли 事件 改造 中心 法轮功 六四 事件
3

ARM Cortex-M1 (вероятно, самый простой из процессоров ARM) - это первый процессор ARM, специально разработанный для реализации в качестве мягкого процессора в ПЛИС. Он оптимизирован для следующих типов FPGA :

Actel (M1 ProASIC3 and M1 Fusion)
Altera (Cyclone-II, Stratix-III)
Xilinx (Spartan-3, Virtex-5)

ARM сама разрабатывает комплект разработки Cortex-M1 для Altera Cyclone III, хотя он стоит немного дороже в $ 625 от DigiKey . Тем не менее, вы получаете все IP ARM Cortex-M1 и лицензию на разработку (плюс бесплатный лицензионный грант на 1000 плат для тех, кто собирается в производство, довольно круто).

Могут быть некоторые варианты для получения IP самостоятельно (возможно, у них есть академическая программа, кто-то еще упомянул университетскую программу, но это было для M0). Тогда вы можете купить плату для разработки отдельно.

Вот еще немного информации о ARM Cortex-M1 на Altera .

Вот некоторая информация о размещении ARM Cortex-M1 на ПЛИС Actel.

Между тем есть некоторый интерес к другим версиям ARM Cortex на FPGA; Вот документ от кого-то, кто внедрил ARM Cortex-M0 на ПЛИС Xilinx.

tcrosley
источник
Если вы хотите изменить дизайн, попробуйте сделать «правильный» 32-битный компьютер. В настоящее время ARM читает 32-битные инструкции по 8 бит за раз, что означает, что ПК увеличивается на 4 для каждой выборки команд.
Алан Кэмпбелл
1

Теперь вы можете получить доступ к процессору Cortex-M3 (и расширяемой подсистеме AHB / APB) через программу ARM DesignStart.

Опция Eval обеспечивает цель FPGA (поддерживается симуляция, с запутанным RTL ядра, все остальное в Verilog). В настоящее время он предназначен для ARM MPS2 + FPGA с поддержкой mbed.

Версия Pro (доступна только для компаний / университетов, которые могут подписать лицензию) позволяет производить и включает в себя процессорное ядро ​​в Verilog (это касается как Cortex-M0, так и Cortex-M3).

Шон Хулихейн
источник