¿Me 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 visto y encontrado interesantes.
PS2 Perdón por las etiquetas sucky, pero como usuario nuevo no puedo crear otras nuevas
Respuestas:
Puede disfrutar de una serie de artículos que escribí hace mucho tiempo para la revista Circuit Cellar, Construyendo un sistema RISC en un FPGA .
¡Feliz pirateo!
fuente
Consigue 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 sola pantalla de 7 segmentos para ingresar datos y mostrar los resultados.
fuente
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 . Se necesitará mucho tiempo para bucear en pero usted recibirá un reconocimiento por el conjunto panorama vista de un microprocesador complejo.
Luego, si se trata de estudiar características específicas de microarquitectura de la computadora, querrá ver algunas máquinas RISC sencillas como AEMB , un pequeño y rápido procesador RISC de 32 bits con múltiples subprocesos (conector descarado).
Entonces, si lo que quiere 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 usted mismo, su mejor opción sería comenzar con una de las máquinas simples de 8 bits (hay muchos ejemplos AVR, 8051, PIC en la red).
fuente
Puede intentar examinar algunos diseños de CPU Forth. Forth es un lenguaje de programación simple cuya especificación e implementación se define mediante dos pilas de 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 pila (Java, máquinas virtuales rápidas de JavaScript) tienen un diseño similar de bajo nivel, por lo que aprender sobre esto puede ser fructífero.
fuente
PicoBlaze es agradable, sin embargo, no está disponible en VHDL independiente del proveedor.
Algunas otras opciones son:
Además, si está buscando un compilador para su CPU, es muy probable que obtenga uno para una CPU de 16 bits. Una vez hubo un compilador de Poderico de un lenguaje tipo C a Picoblaze, pero se ha eliminado de la web.
fuente
Puede echar un vistazo al procesador Xilinx PicoBlaze . Es un microcontrolador integrado mínimo de 8 bits, y el código fuente debe estar disponible.
fuente
Demasiado tarde, sin embargo, proporciono una pequeña respuesta.
Hay un curso llamado de 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 el esquema para poder verme cómo funciona la computadora en el menor detalle. Y tuve éxito, el simulador que crearon en Java no puede hacer todo lo que quería ver.
https://github.com/alinsoar/little-computer
fuente