¿Cómo diseño mis propios procesadores basados en ARM?

Tengo varias preguntas sobre cómo diseñaría mi propia CPU basada en ARM?

  • ¿Cómo se empieza con un ¿Licencia ARM y termina con un paquete listo para ser soldado a una placa?
  • ¿Qué obtengo de ARM (estoy seguro de que tienen varias opciones de licencia para distribuir: Licencia de Arquitectura (estilo Qualcomm Snapdragon) y Licencia Core (estilo TI OMAP))?
  • ¿Qué herramientas necesito para continuar una vez que tenga «ese algo» de ARM?
  • ¿Qué le envío a la fábrica?
  • Creo que solo ciertos límites tienen licencia para grabar un núcleo ARM en una oblea de silicio. ¿Estoy en lo cierto?
  • Como estudiante, ¿puedo permitirme hacer esto en una FPGA? ¿Cómo puedo adquirir experiencia práctica para algo como esto?

Comentarios

  • La respuesta obvia es hablar con ARM.
  • Eche un vistazo a opencores.com : hay muchos núcleos de procesador diferentes en varios estados de integridad y funcionalidad. En cuanto a obtener la fuente principal de ARM real … como dice @OlinLathrop … hable con ARM.
  • No ‘ t entiendo los votos negativos, esto es puede ser una pregunta ingenua, pero definitivamente legítima en mi opinión.
  • El problema es que su pregunta es específica de un flujo de trabajo que no podrá seguir. Los flujos de trabajo que puede seguir, utilizando un diseño original o disponible gratuitamente en un HDL para apuntar a un FPGA, son tan diferentes de eso como la especulación es de hecho.
  • El Cortex-M1 core parece estar diseñado para ejecutarse en cualquier FPGA con la capacidad adecuada. Los principales proveedores de FPGA tienen la licencia de IP y se la entregan al diseñador como lo harían con cualquier otro soft core. Supongo que no es gratis, pero es probable que haya programas disponibles específicamente para uso académico.

Responder

Aquí está cómo lo hacen las empresas:

  1. Recaudar alrededor de US $ 10 millones.
  2. Negocie con ARM para obtener una licencia. Esto probablemente costará al menos un millón de dólares.
  3. Obtenga los archivos de diseño de ARM. Probablemente estará en alguna forma de VHDL, Verilog o una lista de red «encriptada».
  4. Diseñe su propio chip usando una combinación de su propia lógica (para los periféricos) y lo que le dio ARM. Es probable que este paso requiera un software CAD costoso y un pequeño equipo de expertos. Espere gastar al menos US $ 5 millones y varios años.
  5. Obtenga las máscaras hechas para el chip en sí. Si utiliza cualquier proceso moderno de semiconductores, esto costará alrededor de 1 millón de dólares.
  6. Haga que el chip se fabrique. El precio varía, pero debe ser inferior a 0,5 millones de dólares.
  7. Depura el chip que creaste, corrige los errores y vuelve al paso 5 hasta que tengas algo que puedas vender.

Así es como USTED lo hace:

  1. Tome un nivel de posgrado curso de arquitectura informática en su universidad local.
  2. Tome más cursos de lógica digital y cualquier otra cosa.
  3. Diseñe una CPU desde cero en VHDL o Verilog.
  4. Diseño otra CPU desde cero.
  5. Mire el conjunto de instrucciones ARM y diseñe una CPU compatible.
  6. Haga que su CPU compatible con ARM funcione en una FPGA.
  7. Don «No distribuyas tu código fuente de VHDL / Verilog a menos que quieras ser demandado.
  8. Usa tu experiencia en ARM para escribir una buena disertación para tu doctorado.
  9. Usa tu doctorado para conseguir un trabajo en ARM, TI o quien sea. Luego, repita el proceso utilizando los 7 pasos anteriores sobre cómo lo hace una empresa.

Ok, esta lista es un poco irónica, peroes básicamente correcto. El punto es que ni siquiera se moleste en tratar directamente con ARM porque lo más probable es que no tenga el dinero. Y tampoco hagas nada que te demande por ARM.

Comentarios

  • +1. Excelente respuesta. Lo que iba a decir , pero mejor.
  • Cualquier buen curso incluiría la estructura básica de diferentes tipos de CPU ‘ sy cómo funcionan todos. Los temas deben cubrir microcódigo, decodificación de instrucciones , ALU ‘ s, acceso a la memoria, caché, registros, canalización, peligros de datos, captación previa de instrucciones, etc.
  • ¿Hay alguna razón por la que el ‘ ¿El conjunto de instrucciones de

, en sí mismo, sería más patentable que cualquiera de las otras CPU de las que abundan los clones? Ciertamente, es probable que haya algunas características arquitectónicas patentadas, pero si una ‘ s objetivo es diseñar una CPU que funcione con compiladores existentes, ¿el conjunto de instrucciones en sí mismo plantearía un problema?

  • @supercat Normalmente, las instrucciones en sí mismas no son muy patentables a menos que incorporen algún archi cosas tecturales. MIPS hizo esto con sus CPU ‘ s, donde patentaron algunas instrucciones que cargarían / almacenarían palabras que no están alineadas con palabras, así como algunas cosas para cambiar dinámicamente entre endian grande y pequeño. .Esto fue impugnado en la corte cuando MIPS demandó a un fabricante de clones de MIPS, y MIPS ganó (alrededor de 2000). Pero la mayoría de las patentes se refieren a cuestiones arquitectónicas. Puede ‘ t hacer una CPU que sea compatible con los compiladores existentes sin copiar tanto la arquitectura como el conjunto de instrucciones, lamentablemente.
  • @LordLoh, estas preguntas pueden resultarle útiles : electronics.stackexchange.com/questions/28686/… electronics.stackexchange.com/a/7051/638
  • Responder

    ARM tiene un Programa de inicio de diseño universitario . Como estudiante, solo puede acceder al material básico de Cortex-M0. Pero si está realmente interesado, involucre a su facultad y luego podrá tener acceso a mucho más material de diseño (código FPGA de Verilog, IP de evaluación, simulaciones, etc.)

    Comentarios

  • Gracias 🙂 Yo ‘ intentaré que mi asesor solicite algunos de estos.
  • WFIW, esta respuesta es ahora desactualizado, tanto Cortex-M0 como Cortex-M3 están disponibles, y algunas partes del producto están abiertas a instituciones / no estudiantes.
  • Respuesta

    Eche un vistazo a este ARM core en OpenCores.

    Comentarios

    Respuesta

    El ARM Cortex-M1 (probablemente el más simple de los procesadores ARM) es el primer procesador ARM diseñado específicamente para implementarse como un procesador suave en FPGA. Está optimizado para siguientes tipos de FPGA :

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

    ARM en sí mismo está haciendo un Kit de desarrollo Cortex-M1 para Altera Cyclone III aunque es un poco caro a 625 dólares de DigiKey . Sin embargo, obtienes toda la IP de ARM Cortex-M1 y una licencia para realizar el desarrollo (más una concesión de regalías gratuita por 1000 placas para las que entran en producción, muy bien).

    Puede haber algunas opciones por conseguir la PI por sí sola (quizás tienen un programa académico, alguien más mencionó un programa universitario, pero eso era para el M0). Entonces podría comprar una placa de desarrollo por separado.

    Aquí hay más información sobre ARM Cortex-M1 en Altera .

    Aquí hay algo de información sobre cómo poner un ARM Cortex-M1 en un FPGA Actel.

    Mientras tanto, hay cierto interés en otros versiones de ARM Cortex en FPGA; aquí hay un documento de alguien que implementó un ARM Cortex-M0 en una FPGA de Xilinx.

    Comentarios

    • Si desea cambiar el diseño, intente hacer un » adecuado » Máquina de 32 bits. Actualmente, ARM lee la instrucción de 32 bits de 8 bits a la vez, lo que significa que la PC se incrementa en 4 por cada búsqueda de instrucción.

    Respuesta

    Ahora puede obtener acceso al procesador Cortex-M3 (y un subsistema AHB / APB extensible) a través del programa DesignStart de ARM.

    La opción Eval proporciona un objetivo FPGA (la simulación es compatible, con RTL ofuscado del núcleo, todo lo demás en Verilog). Esto actualmente está dirigido a ARM MPS2 + FPGA, con soporte mbed.

    La versión Pro (solo disponible para empresas / universidades que pueden firmar una licencia) permite la fabricación e incluye el núcleo del procesador en Verilog (esto cubre tanto Cortex -M0 y Cortex-M3).

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *