¿Puede recomendar una implementación legible y educativa de una CPU en VHDL o Verilog? Preferiblemente algo bien documentado.
PD Sé que puedo mirar opencores
, pero estoy específicamente interesado en cosas que la gente realmente ha mirado y encontrado interesantes.
PS2. Lo siento por las etiquetas apestosas, pero como nuevo usuario no puedo crear nuevas
Puede disfrutar de una serie de artículos que escribí sobre esto hace mucho tiempo para la revista Circuit Cellar, Building a RISC System in an FPGA .
¡Feliz piratería!
Consigue este libro, tengo la primera edición. Hace unos años implementé su CPU en una pequeña FPGA Flex 10K10 en una PCB que diseñé, con un par de botones y una sola pantalla de 7 segmentos para ingresar datos y mostrar los resultados.
Mucho depende de cuál es su propósito de estudiar el código. En otras palabras, ¿qué significa interesante para ti?
Si lo está haciendo para ver cuánta complejidad puede tener una CPU, puede estar más interesado en estudiar el origen de las arquitecturas OpenSPARC . Tomará mucho tiempo sumergirse, pero obtendrá una apreciación de la vista general general de un microprocesador complejo.
Entonces, si se trata de estudiar características específicas de la microarquitectura de la computadora, querrá ver algunas máquinas RISC sencillas como la AEMB , un pequeño y rápido procesador RISC de 32 bits de subprocesos múltiples (enchufe desvergonzado).
Entonces, si lo que desea es aprender buenos estilos y convenciones de codificación, el diseño de 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 usted mismo, su mejor opción sería comenzar con una de las máquinas simples de 8 bits (hay muchos ejemplos de AVR, 8051, PIC en la red).
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 mediante dos pilas (una para datos y otra para direcciones de retorno).
Varios pequeños procesadores VHDL/Verilog están disponibles gratuitamente:
Algunos enlaces más se pueden encontrar aquí:
PD. A pesar de que Forth es un lenguaje bastante antiguo y oscuro, muchas máquinas virtuales modernas basadas en pilas (Java, máquinas virtuales JavaScript rápidas) tienen un diseño de bajo nivel similar, por lo que aprender sobre él puede ser fructífero.
PicoBlaze es bueno, sin embargo, no está disponible en VHDL independiente del proveedor.
Algunas otras opciones son:
Además, si está buscando un compilador para su CPU, lo más probable es que obtenga uno para una CPU de 16 bits. Una vez hubo un compilador de Poderico de un lenguaje similar a C a Picoblaze, pero lo quitaron de la web.
Puede echar un vistazo al procesador Xilinx PicoBlaze . Es un microcontrolador integrado mínimo de 8 bits y el código fuente debería estar disponible.
Demasiado tarde, sin embargo doy una pequeña respuesta.
Hay un curso llamado Nand2Tetris 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 ver yo mismo cómo funciona la computadora con el mínimo detalle. Y lo logré, el simulador que crearon en Java no puede hacer todo lo que yo quería ver.
toby jaffey
connor lobo
brian carlton
Janus Troelsen