Código verilog de un sumador pipeline

K

kumar_eee

Guest
¿Cómo implementar una arquitectura de canalización utilizando codificación verilog? ...

 
Lleve a su lógica combinatoria, y los bancos de inserción de registros entre ella.

 
Espero que haya sido este sencillo, pero no es tan simple, de todos modos en el nivel más simple de canalización que tendrá que duplicar la lógica a veces, otros sistemas que debe hacer un diseño para la sistólica, para almacenar la latencia y el espacio ..no es una tarea sencilla, pero puede comenzar por la idea de moneychaser.

 
usted puede agregar las fuerzas de facto en cada etapa n sincronizar todos ellos en los bordes de salida del CLK .. de esta manera sus datos de viaje de cada thro 'fase.

 
Creo que el problema no es tan fácil.

Para el n-a nivel de sistema de tuberías en el caso de salto condicional que necesita para eliminar la cola de pipline, proporcionar demora (n-1) ciclos adicionales y la tubería de carga n cola de instrucciones sobre la ubicación saltó.

En el caso de que desee añadir BTC (Branch Traget Cache) para eliminar la unidad adicional (n-1) después de cada ejecución de los ciclos de saltos condicionales, es necesario para describir la unidad BTC adicionales y la lógica de interfaz con otras etapas de tramitación.

En algunas etapas caso de transición son el tiempo y el resultado depende de lo que es necesario el modelo de todas las relaciones complejas.

Etapas Pipline son muy complicadas para el modelado de software y exacta simultion.Algunos simuladores de uso muy simplificado modelo de ejecución para acelerar el proceso de simulación.

Si desea exactamente modelo de etapas de línea que usted puede esperar mucho trabajo duro.

 
usted puede agregar las fuerzas de facto en cada etapa n sincronizar todos ellos en los bordes de salida del CLK .. de esta manera sus datos de viaje de cada thro 'etapa

 
¿Puede alguien sugerir cualquier libro de esta aplicación

 
»1ns calendario / 1JRV
////////////////////////////////////////////////// //////////////////////////////
/ / Empresa:
/ / Ingeniero:
/ /
/ / Crear Fecha: 14:31:04 09/28/06
/ / Nombre del Diseño:
/ / Nombre del módulo: SLT16
/ / Nombre del proyecto:
/ / Dispositivo de destino:
/ / Versiones de la herramienta:
/ / Descripción:
/ /
/ / Dependencias:
/ /
/ / Versión:
/ / Revisión 0.01 - archivo creado
/ / Comentarios adicionales:
/ /
////////////////////////////////////////////////// //////////////////////////////
SLT módulo (y, x0, x1);

input [7:0] x0, x1;
salida reg [7:0] y;

siempre @ (x0 o x1)
empezar
if (x1 <x0)
y = 8'b1;
algo más
y = 8'b0;
finalendmodule
»1ns calendario / 1JRV
////////////////////////////////////////////////// //////////////////////////////
/ / Empresa:
/ / Ingeniero:
/ /
/ / Crear Fecha: 23:02:45 10/02/06
/ / Nombre del Diseño:
/ / Nombre del módulo: Registro
/ / Nombre del proyecto:
/ / Dispositivo de destino:
/ / Versiones de la herramienta:
/ / Descripción:
/ /
/ / Dependencias:
/ /
/ / Versión:
/ / Revisión 0.01 - archivo creado
/ / Comentarios adicionales:
/ /
////////////////////////////////////////////////// //////////////////////////////
Módulo de Registro (de, en, de carga, reloj, reset);

salida reg [7:0] out;
input [7:0] en;
de carga de entrada, reloj, reset;

siempre @ (reloj posedge o restablecer posedge)
if (reset)
out = 8'b0000_0001;
algo más
if (carga)
a = a;

endmodule
»1ns calendario / 1JRV
////////////////////////////////////////////////// //////////////////////////////
/ / Empresa:
/ / Ingeniero:
/ /
/ / Crear Fecha: 23:12:34 10/02/06
/ / Nombre del Diseño:
/ / Nombre del módulo: PC
/ / Nombre del proyecto:
/ / Dispositivo de destino:
/ / Versiones de la herramienta:
/ / Descripción:
/ /
/ / Dependencias:
/ /
/ / Versión:
/ / Revisión 0.01 - archivo creado
/ / Comentarios adicionales:
/ /
////////////////////////////////////////////////// //////////////////////////////
ProgCounter módulo (fuera, reloj, reset);

salida reg [7:0] out;
de entrada de reloj, reset;

siempre @ (reiniciado posedge o reloj posedge)
if (reset)
a <= 8'b0000_0000;
algo más
a <= a 1;endmodule
»1ns calendario / 1JRV
////////////////////////////////////////////////// //////////////////////////////
/ / Empresa:
/ / Ingeniero:
/ /
/ / Crear Fecha: 23:12:34 10/02/06
/ / Nombre del Diseño:
/ / Nombre del módulo: PC
/ / Nombre del proyecto:
/ / Dispositivo de destino:
/ / Versiones de la herramienta:
/ / Descripción:
/ /
/ / Dependencias:
/ /
/ / Versión:
/ / Revisión 0.01 - archivo creado
/ / Comentarios adicionales:
/ /
////////////////////////////////////////////////// //////////////////////////////
ProgCounter módulo (fuera, reloj, reset);

salida reg [7:0] out;
de entrada de reloj, reset;

siempre @ (reiniciado posedge o reloj posedge)
if (reset)
a <= 8'b0000_0000;
algo más
a <= a 1;endmodule
»1ns calendario / 1JRV
////////////////////////////////////////////////// //////////////////////////////
/ / Empresa:
/ / Ingeniero:
/ /
/ / Crear Fecha: 23:12:34 10/02/06
/ / Nombre del Diseño:
/ / Nombre del módulo: PC
/ / Nombre del proyecto:
/ / Dispositivo de destino:
/ / Versiones de la herramienta:
/ / Descripción:
/ /
/ / Dependencias:
/ /
/ / Versión:
/ / Revisión 0.01 - archivo creado
/ / Comentarios adicionales:
/ /
////////////////////////////////////////////////// //////////////////////////////
ProgCounter módulo (fuera, reloj, reset);

salida reg [7:0] out;
de entrada de reloj, reset;

siempre @ (reiniciado posedge o reloj posedge)
if (reset)
a <= 8'b0000_0000;
algo más
a <= a 1;endmodule
»1ns calendario / 1JRV
////////////////////////////////////////////////// //////////////////////////////
/ / Empresa:
/ / Ingeniero:
/ /
/ / Crear Fecha: 23:12:34 10/02/06
/ / Nombre del Diseño:
/ / Nombre del módulo: PC
/ / Nombre del proyecto:
/ / Dispositivo de destino:
/ / Versiones de la herramienta:
/ / Descripción:
/ /
/ / Dependencias:
/ /
/ / Versión:
/ / Revisión 0.01 - archivo creado
/ / Comentarios adicionales:
/ /
////////////////////////////////////////////////// //////////////////////////////
ProgCounter módulo (fuera, reloj, reset);

salida reg [7:0] out;
de entrada de reloj, reset;

siempre @ (reiniciado posedge o reloj posedge)
if (reset)
a <= 8'b0000_0000;
algo más
a <= a 1;endmodule
i la próxima vez que le dará todo el código

 

Welcome to EDABoard.com

Sponsor

Back
Top