Preguntas del examen Ise
En primer lugar, la FPGA en sí no admite operaciones de multiplicación y división exponenciales que no sean 2, por lo que las operaciones de multiplicación y división en el algoritmo Necesito llamar al núcleo de multiplicación y división, y la llamada central está en No se puede expresar aquí. Debe generar un núcleo IP en quaters o ISE y luego llamarlo.
En segundo lugar, el período de la señal estándar es incierto, por lo que es imposible determinar cuándo el resultado está fuera de rango;
No sé qué profesor idiota te dio esto. pregunta de prueba. Simplemente desafía los límites de FPGA y específicamente hace preguntas en áreas en las que FPGA no es bueno.
Puedes usarlo primero. Si eliges la mejor respuesta, puedes hacerme cualquier pregunta. Normalmente lo visito de vez en cuando.
`Escala de tiempo 1 nanosegundo/1 nanosegundo
//////////////////////////// /////////////////////////////////////////////////// //// //////
//Compañía:
//Ingeniero: Scare Rice Plane
//
//Fecha de creación: 09:30:31 29/06/2010
//Nombre del diseño:
//Nombre del módulo: Frecuencia
// Nombre del proyecto:
//Dispositivo de destino:
//Versión de la herramienta:
//Descripción:
//
//Dependencias:
//
//Revisión:
//Revisión 0.01 - Archivo creado
/ /Comentarios adicionales:
//
////////////////////////////// /// //////////////////////////////////////////////// /////// //
Frecuencia del módulo (clk, En, zhamen, Entrada, LED4, LED1, LED2, LED3, LED5, baja, alta
);
Input clk//Entrada de reloj, que es la llamada señal estándar.
Entrada En;
Entrada Kuimen; //Entrada de puerta
Entrada de entrada; //Entrada de datos de prueba
Salida LED4 // Cinco LEDs como salidas.
LED de salida 1;
LED de salida2
LED de salida3
LED de salida5
Nivel bajo de salida <; /p>
Nivel alto de salida;
cable de cable
cable En
Puerta de cable;
Entrada cableada; p>
reg zhamen _ En//Umbral real habilitado
reg[10:0]Nx;//Datos
reg[11:0]Ns ; cuenta
reg[7:0]led 1;
reg[7:0]led 2;
reg[7:0] led 3;
reg[7:0]led 4;
reg[7:0]led 5;
reg bandera;
reg[ 10:0] resultado;
reg nivel bajo; //Indica que la salida del LED es inferior o superior al rango de prueba. Aquí, debido a que la configuración del valor umbral está relacionada con la frecuencia de clk, debe configurarlo usted mismo.
reg alto;
siempre@(posedgeclock)
iniciar
if(En==1)
Iniciar
if(zhamen==1)
Iniciar
if(input==1)
Zha men _ En = 1;
Fin
if(zhamen==0)
Inicio
if(input==1)
Inicio
Zha men _ En = 0;
Fin
Fin
if(zhamen_En==1)
p>Inicio
Ns = Ns+1;
bandera = 1
Fin
Fin
Otro
Inicio
led 5 = 0;
led 1 = 0
led 2 = 0; p>
led 3 = 0;
led 4 = 0;
Zha men _ En = 0;
bandera = 0; >
p>
Fin
Fin
Siempre @(entrada planteada)
Inicio
if(zhamen_En= =1)
Nx = Nx+1;
Fin
Siempre @(reloj puesto)
Inicio
if( Zha men _ En = = 0 &&flag==1)
Inicio
flag = 0;
Resultado=(Nx/Ns )* Fs//Esto es sólo un ejemplo. Aquí debe llamar al núcleo de división y al núcleo de multiplicación, simplemente ingréselos directamente después de llamar.
Case(result%10)//Aquí también se llama al núcleo de división para generar el resto y el resultado, lo mismo ocurre a continuación.
4' b 0000: led 1 = 8 ' b 11111101
4 ' b 0001: led 1 = 8 ' b 01100001
4 ' b; 0010: led 1 = 8' b 110110111;
4' b 0011: led 1 = 8' b 11110011;
4' b 0100: led 1 = 8' b 011001111;
4' b 0101: led 1 = 8 ' b 101101111
4 ' b 0110: led 1 = 8 ' b 101111111
4 ' b 0111: led 1 = 8' b 11100001;
4' b 1000: led 1 = 8' b 111111111;
4' b 1001: led 1 = 8' b 111111111;
Predeterminado: led 1 = 8 ' b 11111101
Fin de caso
Caso ((resultado%10)%100)/10) p>p>
4' b 0000: led 2 = 8' b 11111100;
4' b 0001: led 2 = 8' b 01100000;
4' b 0010: led 2 = 8' b 11011010;
4' b 0011: led 2 = 8' b 11110010;
4' b 0100: led 2 = 8' b 01100110;
p>
4 ' b 0101: led 2 = 8 ' b 101101110;
4 ' b 0110: led 2 = 8 ' b 101111110;
4' b 0111: led 2 = 8 ' b 11100000
4 ' b 1000: led 2 = 8 ' b 111111110
4 ' b 1001: led 2 = 8 ' b 111101110;
p>
Predeterminado: led 2 = 8 ' b 11111100;
Fin caso
Caso ((resultado% 1000- resultado% 100-resultado%10)/100)
4 ' b 0000: led 3 = 8 ' b 11111100;
4 ' b 0001: led 3 = 8 ' b 01100000 ;
4 ' b 0010 :led 3 = 8 ' b 11011010
4 ' b 0011 : led 3 = 8 ' b 11110010
4 ' b 0100: led 3 = 8 ' b 01100110;
4 ' b 0101: led 3 = 8 ' b 101111110;
4 ' b 0111 :led 3 = 8 ' b 11100000;
4 ' b 1000:led 3 = 8 ' b 111111110;
4 ' b 1001:led 3 = 8 ' b 111101110;
Predeterminado: led 3 = 8 ' b 111111100;
Fin de caso
Caso((resultado% 10000 -resultado% 1000-resultado% 100-resultado%10 )/1000)
<p>4 ' b 0000: led 4 = 8 ' b 11111100;
4 ' b 0001: led 4 = 8 ' b 01100000;
4 ' b 0010: led 4 = 8' b 11011010;
4' b 0011: led 4 = 8' b 11110010;
4' b 0100: led 4 = 8' b 01100110;
4 ' b 0101: led 4 = 8 ' b 101101110;
4 ' b 0110: led 4 = 8 ' b 101111110;
4 ' b 0111: led 4 = 8 ' b 11100000;
4 ' b 1000:led 4 = 8 ' b 111111110;
4 ' b 1001:led 4 = 8 ' b 111101110;
Predeterminado: led 4 = 8' b 11111100;
Fin de caso
Caso ((resultado-resultado% 10000-resultado% 1000-resultado% 100-resultado%10)/ 10000)
4' b 0000: led 5 = 8 ' b 11111100
4 ' b 0001: led 5 = 8 ' b 01100000
4 ' b 0010:led 5 = 8 ' b 11011010;
4 ' b 0011:led 5 = 8 ' b 11110010;
4 ' b 0100:led 5 = 8 ' b 01100110;
4' b 0101: led 5 = 8' b 101101110;
4' b 0110: led 5 = 8' b 101111110
4 ' b 0111: led 5 = 8 ' b 11100000
4 ' b 1000: led 5 = 8 ' b 111111110
4 ' b 1001: led 5 = 8 ' b; 111101110;
Predeterminado: le D5 = 8 ' b 11111100
Fin de caso
Fin
Fin
Módulo terminal