Pregunta

Para un proyecto a medio plazo de la universidad, tengo que diseñar un procesador configurable, escribir el código en VHDL y luego sintetizarlo en una placa Spartan 3E FPGA de Digilent. Soy un principiante, ¿me podría indicar información sobre procesadores configurables, algunas ideas relacionadas con el concepto?

¿Fue útil?

Solución

Puede consultar mi responder a una pregunta relacionada . Hicimos casi lo mismo, construyendo una CPU en VHDL para una placa FPGA.

Otros consejos

Esto es solo una maqueta, así que ten en cuenta que lo limpiaré

fetch instruct1,
fetch instruct2, fetch datas1
fetch instruct3, fetch datas2, process datas1
fetch instruct4, fetch datas3, process datas2, store1 datas1
fetch instruct5, fetch datas4, process datas3, store2 datas1
fetch instruct6, fetch datas5, process datas4, store3 datas1
fetch instruct7, fetch datas6, process datas5, store4 datas1
fetch instruct8, fetch datas7, process datas6, store5 datas1

básicamente estos son los componentes principales de un procesador Parte 1 ALU: Unidad de lógica aritmética (aquí es donde drenar sería útil) AN ALU tiene 2 puertos de entrada y un puerto de salida. Los 2 puertos de entrada se operan y el resultado se emite. Para saber qué instrucción debe cumplir la ALU, hay un puerto de control. Básicamente este es el nombre del comando. Entonces, si el puerto de control tiene 4 bits, hay 16 instrucciones posibles.

Parte 2 UNIDAD DE REGISTRO: Este es un conjunto de celdas de memoria (memoria caché). El contenido de esta memoria a menudo se transfiere a los puertos de entrada de la ALU.

Parte3 Unidad de control: Esto es algo así como el maestro de orquesta de la CPU. Su trabajo es 1enviar los datos a la entrada ALU 2 Lea la instrucción que debe ocurrir en los registros de instrucciones, envíe esos códigos a los puertos de control de ALU

Interfaz. Así es como la RAM y otros periféricos se comunican con la CPU

Cada vez que la instrucción produce un resultado, debe almacenarse. Se puede almacenar en la memoria RAM, por lo que una escritura de RAM debe estar lista una vez que el resultado esté listo. Al mismo tiempo, puede producirse una lectura de RAM de las entradas de la siguiente instrucción. Y también al mismo tiempo, la siguiente instrucción siguiente puede obtenerse de la RAM.

La generación de 1 instrucción generalmente requiere más de 1 ciclo de reloj. El procesamiento de una estructura es análogo a la producción industrial. Así se hace el trabajo en cadena.

VLIW La programación que escribimos es lineal, lo que significa que las instrucciones suceden una tras otra. Pero las CPU de hoy (aunque no ARM) tienen múltiples ALU, por lo que se procesan múltiples instrucciones al mismo tiempo.

Por lo tanto, tiene unidades de procesamiento en cadena trabajando múltiples instrucciones al mismo tiempo (canalización) y tienes muchas de esas unidades (superscalar)

Entonces se convierte en una cuestión de qué puede / debe hacer para ajustar su arquitectura de CPU.

Hice un proyecto similar, implementando un procesador con una canalización de 5 etapas en VHDL.

Lo primero es lo primero, debes entender la arquitectura de cómo funcionan los procesadores. Sin comprender qué hace cada canal y qué tipo de señales de control necesita, no tiene ninguna esperanza de escribir una en VHDL.

En segundo lugar, comience a dibujar diagramas de cómo fluirán las instrucciones y los datos a través de su procesador (es decir, a través de cada etapa). ¿Cómo se engancha cada etapa? ¿A dónde van las señales de control? ¿De dónde vienen mis entradas y hacia dónde van mis salidas?

Una vez que tenga un diagrama sólido, la implementación real en VHDL debería ser relativamente sencilla. Puede usar el modelado de comportamiento de VHDL para explicar de manera esencial exactamente lo que ve en el diagrama.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top