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

Tenho várias dúvidas sobre como projetaria minha própria CPU baseada em ARM?

  • Como começar com um Licença ARM e acabar com um pacote pronto para ser soldado a uma placa?
  • O que obtenho 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 de núcleo (estilo TI OMAP))?
  • De quais ferramentas preciso continuar depois de obter “aquele algo” do ARM?
  • O que eu envio para a fábrica?
  • Eu acredito que apenas alguns fundadores são licenciados para gravar um núcleo ARM em um wafer de silício. Estou certo?
  • Como estudante, posso me dar ao luxo de fazer isso em um FPGA? Como faço para obter experiência prática em algo assim?

Comentários

  • A resposta óbvia é falar com o ARM.
  • Dê uma olhada em opencores.com – existem vários núcleos de processador em vários estados de completude e funcionalidade. Quanto à obtenção da fonte do núcleo ARM real … como @OlinLathrop diz … fale com o ARM.
  • Não ‘ não entendo os votos negativos, isto é pode ser uma pergunta ingênua, mas definitivamente legítima.
  • O problema é que sua pergunta é específica para um fluxo de trabalho que você não conseguirá seguir. Os fluxos de trabalho que você pode seguir – usando um design original ou disponível gratuitamente em um HDL para direcionar um FPGA – são tão diferentes disso quanto as especulações são de fato.
  • O Cortex-M1 core parece ser feito para rodar em qualquer FPGA com capacidade adequada. Os principais fornecedores de FPGAs têm a licença IP e a entregam ao projetista como fariam com qualquer outro soft core. Presumo que não seja de graça, mas provavelmente existem programas disponíveis especificamente para uso acadêmico.

Resposta

Aqui está como as empresas fazem isso:

  1. Arrecade cerca de US $ 10 milhões.
  2. Negocie com a ARM para obter uma licença. Isso provavelmente custará pelo menos US $ 1 milhão.
  3. Obtenha os arquivos de design do ARM. Provavelmente será em alguma forma de VHDL, Verilog ou uma netlist “criptografada”.
  4. Projete seu próprio chip usando uma combinação de sua própria lógica (para os periféricos) e o que o ARM deu a você. Esta 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 de semicondutor moderno, custará cerca de US $ 1 milhão.
  6. Faça o próprio chip. 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 para vender.

Veja como VOCÊ faz isso:

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

Ok, então esta lista é um pouco irônica, masé basicamente correto. O que quero dizer é que nem se preocupe em lidar diretamente com o ARM porque provavelmente você não tem o dinheiro. E não faça nada que possa levar você a ser processado pela ARM.

Comentários

  • +1. Excelente resposta. O que eu ia dizer , mas melhor.
  • Qualquer bom curso incluiria a estrutura básica de diferentes tipos de CPU ‘ se como todos eles funcionam. Os tópicos devem cobrir microcódigo, decodificação de instrução , ALU ‘ s, acesso à memória, cache, registradores, pipelining, perigos de dados, pré-busca de instrução, etc.
  • Existe alguma razão para que o ARM ‘ s conjunto de instruções, por si só, seria mais patenteável do que qualquer uma das outras CPUs cujos clones abundam? Certamente, pode haver alguns recursos arquitetônicos que são patenteados, mas se houver algum ‘ s objetivo é projetar uma CPU que funcione com compiladores existentes, o próprio conjunto de instruções representaria um problema?
  • @supercat Normalmente as instruções em si não são muito passível de patente, a menos que incorporem algum arquivo coisas estruturais. O MIPS fez isso com seus ‘ s de CPU, onde patenteou algumas instruções que carregam / armazenam palavras que não estão alinhadas com palavras, bem como algumas coisas para alternar dinamicamente entre big e little endian .Isso foi contestado em tribunal quando o MIPS processou um fabricante de clones MIPS, e o MIPS venceu (por volta de 2000). Mas a maioria das patentes é sobre questões arquitetônicas. Você não pode ‘ t fazer uma CPU compatível com os compiladores existentes sem copiar a arquitetura e o conjunto de instruções, infelizmente.
  • @LordLoh você pode achar essas perguntas úteis : electronics.stackexchange.com/questions/28686/… electronics.stackexchange.com/a/7051/638

Resposta

O ARM tem um Programa University DesignStart . Como aluno, você só pode acessar o material básico do Cortex-M0. Mas se você estiver realmente interessado, envolva seu corpo docente e então você pode ter acesso a muito mais material de design (código FPGA Verilog, IP de avaliação, simulações, etc.)

Comentários

  • Obrigado 🙂 Eu ‘ tentarei fazer com que meu conselheiro solicite alguns deles.
  • WFIW, esta resposta é agora desatualizado, Cortex-M0 e Cortex-M3 estão disponíveis e algumas partes do produto estão abertas a não estudantes / instituições.

Resposta

Dê uma olhada neste núcleo ARM no OpenCores.

Comentários

Resposta

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

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

O próprio ARM está criando um Kit de desenvolvimento Cortex-M1 para Altera Cyclone III , embora seja um pouco caro em $ 625 da DigiKey . No entanto, você obtém todo o IP ARM Cortex-M1 e uma licença para fazer o desenvolvimento (além de uma concessão de royalties grátis para 1000 placas para aqueles que vão para a produção, muito legal).

Pode haver algumas opções para conseguir o IP sozinho (talvez eles tenham um programa acadêmico, outra pessoa mencionou um programa universitário, mas isso foi para o M0). Então você poderia comprar uma placa de desenvolvimento separadamente.

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

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

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

Comentários

  • Se você quiser mudar o design, tente fazer um ” adequado ” Máquina de 32 bits. Atualmente, o ARM lê instruções de 32 bits de 8 bits por vez, o que significa que o PC é incrementado em 4 para cada busca de instrução.

Resposta

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

A opção Eval fornece um alvo FPGA (a simulação é suportada, com RTL ofuscado do núcleo, todo o resto em Verilog). Atualmente é direcionado ao ARM MPS2 + FPGA, com suporte a 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 em Verilog (isso cobre ambos Cortex -M0 e Cortex-M3).

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *