Como faço para projetar meus próprios processadores baseados em ARM?

37

Tenho várias perguntas sobre como projetar minha própria CPU baseada em ARM?

  • Como se inicia com uma licença ARM e termina com um pacote pronto para ser soldado em uma placa?
  • O que eu recebo do ARM (tenho certeza de que eles têm várias opções de licença para distribuir - licença de arquitetura (estilo Qualcomm Snapdragon) e licença principal (estilo TI OMAP))?
  • De que ferramentas eu preciso para prosseguir quando tiver 'esse algo' da ARM?
  • O que eu envio para a fábrica?
  • Acredito que apenas alguns fundadores estão licenciados para gravar um núcleo ARM em uma pastilha de silício. Estou certo?
  • Como estudante, posso me dar ao luxo de fazer isso em um FPGA? Como obtenho experiência prática para algo assim?
Lorde Loh.
fonte
9
A resposta óbvia é conversar com a ARM.
Olin Lathrop
3
Dê uma olhada no opencores.com - existem vários núcleos de processador em vários estados de integridade e funcionalidade. No que diz respeito à obtenção da fonte principal do ARM, como diz o @OlinLathrop, fale com o ARM.
akohlsmith
6
Eu não entendo os votos negativos, esta pode ser uma pergunta ingênua, mas definitivamente IMO legítima.
Jon L
2
O problema é que sua pergunta é específica para um fluxo de trabalho que você não seguirá. Os fluxos de trabalho que você pode seguir - usando um design original ou disponível gratuitamente em um HDL para segmentar um FPGA - são tão diferentes quanto a especulação.
Chris Stratton
2
O núcleo do Cortex-M1 parece ser executado em qualquer FPGA com capacidade adequada. Os principais fornecedores de FPGA têm a licença IP e a entregam ao projetista como qualquer outro soft core. Presumo que não de graça, mas provavelmente existem programas disponíveis especificamente para uso acadêmico.
RBerteig

Respostas:

68

Aqui está como as empresas fazem isso:

  1. Levante cerca de US $ 10 milhões.
  2. Negocie com o ARM para obter uma licença. Provavelmente, isso custará pelo menos US $ 1 milhão.
  3. Obtenha os arquivos de design do ARM. Provavelmente estará em alguma forma de VHDL, Verilog ou uma netlist "criptografada".
  4. Crie seu próprio chip usando uma combinação de sua própria lógica (para os periféricos) e o que a ARM lhe deu. Essa etapa provavelmente exigirá algum software CAD caro e uma pequena equipe de especialistas. Espere gastar pelo menos US $ 5 milhões e vários anos.
  5. Obtenha as máscaras feitas para o próprio chip. Se você usar qualquer processo moderno de semicondutores, isso custará cerca de US $ 1 milhão.
  6. Faça o chip em si. O preço varia, mas deve ser inferior a US $ 0,5 milhão.
  7. Depure o chip que você criou, corrija os bugs e volte para a Etapa 5 até ter algo que possa vender.

Aqui está como você faz isso:

  1. Faça um curso de arquitetura de computador de nível superior em sua universidade local.
  2. Faça mais cursos de lógica digital e tudo o mais.
  3. Projete uma CPU do zero em VHDL ou Verilog.
  4. Projete outra CPU a partir do zero.
  5. Veja o conjunto de instruções ARM e crie uma CPU compatível.
  6. Faça sua CPU compatível com ARM funcionar em um FPGA.
  7. Não distribua seu código-fonte VHDL / Verilog, a menos que queira ser processado.
  8. Use sua experiência no BRAÇO para escrever uma boa dissertação para o seu doutorado.
  9. Use seu doutorado para conseguir um emprego na ARM, na TI ou em quem quer que seja. Em seguida, repita o processo usando as 7 etapas anteriores sobre como uma empresa faz isso.

Ok, essa lista é um pouco irônica, mas é basicamente correta. A questão é que nem se preocupe em lidar com a ARM diretamente, porque é provável que você não tenha dinheiro. E não faça nada que o processe pela ARM também.


fonte
11
+1. Excelente resposta. O que eu ia dizer, mas melhor.
Rocketmagnet
11
Qualquer bom curso incluiria a estrutura básica de diferentes tipos de CPU e como todos eles funcionam. Os tópicos devem cobrir microcódigo, decodificação de instrução, ALU de, acesso à memória, cache, registros, canalização, hazzards dados, prefetch de instrução, etc.
3
Existe alguma razão para que o conjunto de instruções do ARM, por si só, seja mais patenteável do que qualquer uma das outras CPUs das quais os clones são abundantes? Certamente, há alguns recursos de arquitetura que são patenteados, mas se o objetivo de alguém é projetar uma CPU que funcione com os compiladores existentes, a própria instrução configuraria um problema?
Supercat 03/08
11
@supercat Normalmente, as próprias instruções não têm muita patente, a menos que incorporem algumas coisas arquitetônicas. O MIPS fez isso com suas CPUs, onde patenteou algumas instruções que carregavam / armazenavam palavras que não estão alinhadas, além de algumas coisas para alternar dinamicamente entre big e little endian. Isso foi contestado em tribunal quando o MIPS processou um fabricante de clones do MIPS e o MIPS venceu (em torno de 2000). Mas a maioria das patentes é sobre questões de arquitetura. Você não pode fazer uma CPU compatível com os compiladores existentes sem copiar, infelizmente, a arquitetura e o conjunto de instruções.
11
@LordLoh você pode encontrar essas perguntas úteis: electronics.stackexchange.com/questions/28686/... electronics.stackexchange.com/a/7051/638
W5VO
32

O ARM possui um programa University DesignStart . Como estudante, você pode acessar apenas material básico do Cortex-M0. Mas se você estiver realmente interessado, envolva seu corpo docente e poderá ter muito mais material de design (código FPGA da Verilog, IP de avaliação, simulações, etc.)

Embedded.kyle
fonte
4
Obrigado :-) Vou tentar pedir ao meu consultor para solicitar alguns deles.
Senhor Loh.
WFIW, esta resposta está desatualizada, tanto o Cortex-M0 quanto o Cortex-M3 estão disponíveis e algumas partes do produto estão abertas a não-estudantes / instituições.
Sean Houlihane
3

O ARM Cortex-M1 (provavelmente o mais simples dos processadores ARM) é o primeiro processador ARM projetado especificamente para ser implementado como um processador flexível em FPGAs. É otimizado para os seguintes tipos de FPGA :

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

A própria ARM está fabricando um Kit de desenvolvimento Cortex-M1 para o Altera Cyclone III, embora seja um pouco caro por US $ 625 da DigiKey . Você obtém todo o ARM Cortex-M1 IP e possui uma licença para desenvolver (além de uma concessão de royalties gratuita para 1000 placas para aqueles que estão entrando em produção, muito legal).

Pode haver algumas opções para obter o PI por si só (talvez eles tenham um programa acadêmico, alguém tenha mencionado um programa universitário, mas isso foi para o M0). Então você pode comprar uma placa de desenvolvimento separadamente.

Aqui estão mais algumas informações sobre o ARM Cortex-M1 na Altera .

Aqui estão algumas informações sobre como colocar um ARM Cortex-M1 em um Actel FPGA.

Enquanto isso, há algum interesse em outras versões do ARM Cortex no FPGA; Aqui está um artigo de alguém que implementou um ARM Cortex-M0 em um Xilinx FPGA.

tcrosley
fonte
Se você deseja alterar o design, tente criar uma máquina de 32 bits "adequada". Atualmente, o ARM lê instruções de 32 bits, 8 bits por vez, significando que o PC aumenta em 4 para cada busca de instrução.
Alan Campbell
1

Agora você pode obter acesso ao processador Cortex-M3 (e um subsistema AHB / APB extensível) através do programa DesignStart da ARM.

A opção Eval fornece um destino FPGA (a simulação é suportada, com RTL ofuscada do núcleo, tudo o mais no Verilog). Atualmente, ele tem como alvo o ARM MPS2 + FPGA, com suporte para mbed.

A versão Pro (disponível apenas para empresas / universidades que podem assinar uma licença) permite a fabricação e inclui o núcleo do processador no Verilog (isso abrange o Cortex-M0 e o Cortex-M3).

Sean Houlihane
fonte