Pregunta: Necesito diseñar un multiplicador binario 2x2 en Verilog usando solo medios sumadores. Aquí está mi código de medio sumador y código multiplicador: `escala de tiempo 1ns / 1ps ////////////////////////////////////////////////// ///////////////////////////////// // Compañía: // Ingeniero: // // Fecha de creación: 14:05:34 04/05/2016 // Nombre del diseño: //
Necesito diseñar un multiplicador binario 2x2 en Verilog usando solo medios sumadores. Aquí está mi código de medio sumador y código multiplicador:
`escala de tiempo 1ns / 1ps
////////////////////////////////////////////////// /////////////////////////////////
// Compañía:
// Ingeniero:
//
// Fecha de creación: 14:05:34 04/05/2016
// Nombre del diseño:
// Nombre del módulo: Multiplicador
// Nombre del proyecto:
// Dispositivos de destino:
// Versiones de herramientas:
// Descripción:
//
// Dependencias:
//
// Revisión:
// Revisión 0.01 - Archivo creado
// Comentarios adicionales:
//
////////////////////////////////////////////////// /////////////////////////////////
módulo HalfAdder(
entrada X,
entrada Y,
salida S,
salida C
);
asignar S = X^Y;
asignar C = X&Y;
módulo finalmultiplicador del módulo(
entrada [1:0] A,
entrada [1:0] B,
salida [6:0] seg,
salida [3:0] un,
salida dp,
cable [3:0] C
);
cable c1,c2,c3,c4,c5,c6,c7,c8;
//x,y,s,c
asignar un[0]= (A[0]&B[0]);
HalfAdder HA1((A[1]&B[0]),(A[0]&B[1]),an[1],c1);
HalfAdder HA2((A[1]&B[1]),c1,an[2],c2);
asignar un[3] = c2;módulo final
Estoy seriamente confundido. ¿Cómo puedo escribir la función de prueba? No puedo encontrar nada en línea que me ayude en absoluto. Por favor ayuda.
Mi código para el módulo de prueba que no funciona:
`escala de tiempo 1ns / 1ps
////////////////////////////////////////////////// ///////////////////////////////
// Compañía:
// Ingeniero:
//
// Fecha de creación: 15:41:06 04/05/2016
// Nombre del diseño: Multiplicador
// Nombre del módulo: C:/Xilinx/Lab6/test.v
// Nombre del proyecto: Lab6
// Dispositivo de destino:
// Versiones de herramientas:
// Descripción:
//
// Dispositivo de prueba Verilog creado por ISE para el módulo: Multiplicador
//
// Dependencias:
//
// Revisión:
// Revisión 0.01 - Archivo creado
// Comentarios adicionales:
//
////////////////////////////////////////////////// ///////////////////////////////prueba de módulo;
// Entradas
registro [1:0] A;
registro [1:0] B;
reg i;
// Salidas
cable [6:0] seg;
cable [3:0] un;
alambre dp;
cable [3:0] C;// Crear una instancia de la unidad bajo prueba (UUT)
Multiplicador uut (
.AUTOMÓVIL CLUB BRITÁNICO),
.CAMA Y DESAYUNO),
.seg(seg),
.un(un),
.dp(dp),
.C(C)
);comienzo inicial
// Inicializar entradas
Una = 0;
B = 0;// Espere 100 ns para que finalice el reinicio global
#100;
// Añade estímulo aquífin
siempre @ (A,B)
comenzar
// Espere 100 ns para que finalice el reinicio global
para (yo = 0; yo < 16; yo = yo + 1)
comenzar
#10 {A} = yo;
$monitor("tiempo=%d,\t A =%d, \t B =%d,\t operación = %d, \t resultado =%d",$tiempo, A, B, uut.C, an );
A=0;B=0;
#10A=0;B=1;
fin
#150 $parada;
fin
módulo finalSolo obtengo z por cada operación y el resultado no es correcto.
- Esta pregunta aún no se resolvió!¿No es lo que buscas?Envía tu pregunta a un experto en la materia.
Estudia mejor, ¡ahora en español!
Entiende todos los problemas con explicaciones al instante y pasos fáciles de aprender de la mano de expertos reales.