Implementaciones legibles y educativas de una CPU en un HDL

35

¿Puede recomendar una implementación legible y educativa de una CPU en VHDL o Verilog? Preferiblemente algo bien documentado.

P.S. Sé que puedo ver opencores , pero estoy especialmente interesada en cosas que la gente realmente ha visto y que han encontrado interesantes.

P.S.2. Lo siento por las etiquetas sucky, pero como nuevo usuario no puedo crear nuevas

    
pregunta Eli Bendersky

7 respuestas

18

Puede disfrutar de una serie de artículos que escribí sobre esto hace mucho tiempo para la revista Circuit Cellar, Construyendo un sistema RISC en un FPGA .

¡Feliz piratería!

    
respondido por el Jan Gray
7

Obtenga este libro, tengo la primera edición. Hace unos años implementé su CPU en un pequeño FPGA Flex 10K10 en una PCB que diseñé, con un par de botones y una pantalla única de 7 segmentos para ingresar datos y mostrar los resultados.

    
respondido por el Leon Heller
7

Mucho depende de cuál es su propósito de estudiar el código? En otras palabras, ¿qué significa para usted interesante ?

Si lo está haciendo para ver cuánta complejidad puede tener una CPU, puede interesarle más estudiar la fuente de OpenSPARC arquitecturas. Tomará mucho tiempo sumergirse, pero obtendrá una apreciación por la vista general de panorama general de un microprocesador complejo.

Entonces, si es para estudiar características específicas de microarquitectura de computadora, querrá ver algunas máquinas RISC sencillas como la AEMB , un pequeño y rápido multihilo procesador RISC de 32 bits (conector descarado).

Entonces, si lo que quieres es aprender buenos estilos y convenciones de codificación, el diseño LEON2 es un buen lugar para aprender un buen estilo de codificación VHDL.

Sin embargo, si su propósito al estudiar un procesador es aprender a diseñar uno mismo, lo mejor sería comenzar con una de las máquinas simples de 8 bits (hay muchos ejemplos de AVR, 8051, PIC en la red). ).

    
respondido por el sybreon
5

Puede intentar examinar algunos diseños de CPU de Forth. Forth es un lenguaje de programación simple cuya especificación e implementación se define por medio de dos pilas de pilas (una para datos y otra para direcciones de retorno).

Varios procesadores pequeños VHDL / Verilog están disponibles gratuitamente:

Puede encontrar más enlaces aquí:

PS. A pesar de que Forth es un lenguaje bastante antiguo y poco conocido, muchas máquinas virtuales modernas basadas en pila (Java, máquinas JavaScript rápidas de JavaScript) tienen un diseño similar de bajo nivel, por lo que aprender sobre él puede ser fructífero.

    
respondido por el jpc
2

PicoBlaze es bueno, sin embargo, no está disponible en VHDL independiente del proveedor.

Algunas otras opciones son:

  • Un clon de Picoblaze en Verilog (deberías poder encontrarlo fácilmente). No estoy seguro de si se mantiene
  • Gumnut es un pequeño y agradable núcleo respaldado por un libro reciente de Ashenden.
  • La pequeña máquina / computadora de registro de Thacker (aproximadamente 200 líneas de Verilog)
  • XSoC / XR16 de Jan Gray (ya mencionado aquí)

Además, si está buscando un compilador para su CPU, es muy probable que obtenga uno para una CPU de 16 bits. Una vez que hubo un compilador de Poderico de un lenguaje similar a C a Picoblaze, pero se ha retirado de la web.

    
respondido por el Nikolaos Kavvadias
1

Puede consultar el procesador Xilinx PicoBlaze . Es un microcontrolador integrado de 8 bits mínimo, y el código fuente debería estar disponible.

    
respondido por el geschema
0

Demasiado tarde, sin embargo, proporciono una pequeña respuesta.

Hay un curso llamado fromNand2Tetris de la Universidad de Jerusalén, este curso también está presente en coursera, construí la computadora que crearon en ese curso. Implementé el lenguaje en esquema para poder verme a mí mismo cómo funciona la computadora con el menor detalle. Y lo logré, el simulador que crearon en Java no puede hacer todo lo que quería ver.

enlace

    
respondido por el alinsoar

Lea otras preguntas en las etiquetas