Circuitos Digitales - Ayuda URGENTE!!

 
Vista:

Ayuda URGENTE!!

Publicado por Elizbeth Lopez (1 intervención) el 19/11/2009 10:39:42
Hola!

Si el tema no va aqui agradeceria que lo movieran.

Me han encargado un proyecto de un semaforo digital que debo entregar en 36 hrs, ya tengo el codigo, pero me muestra un error, si pudieran ayudarme a solucionarlo les agradeceria muchisimo!

Aqui el codigo:

[code]module trafico
title 'modulo controlador de un semaforo de cruce con prioridad a la calle con mas trafico'
reloj, reset, sensor1, sensor2 PIN;
rojo1, ambar1, verde1 PIN istype 'com';
rojo2, ambar2, verde2 PIN istype 'com';
estado0, estado1, estado2 PIN istype 'reg';
tiempo4..tiempo0 PIN istype 'reg';
estado = [estado2, estado1, estado0];
est0 = 0; est1 = 1; est2 = 2;
est3 = 3; est4 = 4; est5 = 5;
est6 = 6; est7 = 7;
semaforo1 = [rojo1,ambar1,verde1]; semaforo2 = [rojo2,ambar2,verde2];
sensores = [sensor1, sensor2]; tiempo = [tiempo4..tiempo0];
equations
estado.clk = reloj;
estado.ar = reset;
tiempo.clk = reloj;
state_diagram estado
state est0: semaforo1=[0,1,0];
semaforo2=[1,0,0];
tiempo.ar=1;
if (sensor1 & !sensor2) then est1;
else if (!sensor1 & sensor2) then est2;
else est3;
state est1: semaforo1=[1,0,0];
semaforo2=[0,0,1];
tiempo := tiempo + 1;
if tiempo == 10 then est4 else est1;
state est2: semaforo1=[1,0,0];
semaforo2=[0,0,1];
tiempo := tiempo + 1;
if tiempo == 30 then est4 else est2;
state est3: semaforo1=[1,0,0];
semaforo2=[0,0,1];
tiempo := tiempo + 1;
semaforo2==[0,0,1];
semaforo2==[0,0,0];
semaforo2==[0,0,1];
semaforo2==[0,0,0];
if tiempo == 20 then est4 else est3;
state est4: semaforo1=[1,0,0];
semaforo2=[0,1,0];
tiempo.ar=1;
if (sensor1 & !sensor2) then est5;
else if (!sensor1 & sensor2) then est6;
else est7;
state est5: semaforo1=[0,0,1];
semaforo2=[1,0,0];
tiempo := tiempo + 1;
if tiempo == 30 then est0 else est5;
state est6: semaforo1=[0,0,1];
semaforo2=[1,0,0];
tiempo := tiempo + 1;
if tiempo == 10 then est0 else est6;
state est7: semaforo1=[0,0,1];
semaforo2=[1,0,0];
tiempo := tiempo + 1;
if tiempo == 20 then est0 else est7;
tiempo := tiempo + 1;
semaforo1==[0,0,1];
semaforo1==[0,0,0];
semaforo1==[0,0,1];
semaforo1==[0,0,0];
end trafico[/code]

el error:

[code]ispEXPERT Auto-Make Log File
----------------------------
Updating: Fit Design
Starting: 'C:\ispTOOLS\ispsys\bin\blifopt.exe sem.bl2 -red bypin choose -sweep -collapse all -pterms 8 -err automake.err'
BLIFOPT Open-ABEL Optimizer
Copyright(C), 1992-1998, Lattice Semiconductor Corporation. All rights reserved
Portions Copyright(C), 1993-1998, Data I/O Corporation
Portions Copyright(C), 1997-1998, MINC Washington Corporation
Portions Copyright(C), Alan Phillips, Lancaster University Computer Centre 1992-1998
U.C. Berkeley, SIS Ver. 1.0, modified by Data I/O Corp.
Reading Open-ABEL 2 file sem.bl2...
Performing 'bypin choose' optimization...
Writing Open-ABEL 2 (BLIF) file sem.bl3...
BLIFOPT complete - 0 errors, 0 warnings. Time: 1 seconds
Done: completed successfully.
Starting: 'C:\ispTOOLS\ispsys\bin\diofft.exe sem.bl3 -pla -o sem.tt2 -dev p22v10 -define N -err automake.err'
DIOFFT Flip-Flop Transformation program
Copyright(C), 1992-1998, Lattice Semiconductor Corporation. All rights reserved
Portions Copyright(C), 1993-1998, Data I/O Corporation
Portions Copyright(C), 1997-1998, MINC Washington Corporation
Portions Copyright(C), Alan Phillips, Lancaster University Computer Centre 1992-1998
Input file: sem.bl3.
Output file: sem.tt2.
Cross reference file: sem.xrf.
........................
Shortening signal names...
Writing signal name cross reference file sem.xrf...
DIOFFT complete. - Time 1 seconds
Done: completed successfully.
Starting: 'C:\ispTOOLS\ispsys\bin\fit.exe sem.tt2 -dev p22v10 -str -err automake.err'
FIT Generic Device Fitter
Copyright(C), 1992-1998, Lattice Semiconductor Corporation. All rights reserved
Portions Copyright(C), 1993-1998, Data I/O Corporation
Portions Copyright(C), 1997-1998, MINC Washington Corporation
Portions Copyright(C), Alan Phillips, Lancaster University Computer Centre 1992-1998
Input file: 'sem.tt2'
Device 'p22v10'
Note 4042: Unable to assign rojo2, need more pins
like pin 23.
Note 4042: Unable to assign verde1, need more pins
like pin 23.
Note 4042: Unable to assign ambar1, need more pins
like pin 23.
Note 4042: Unable to assign rojo1, need more pins
like pin 23.
Note 4042: Unable to assign rojo2, need more pins
like pin 22.
Note 4042: Unable to assign verde1, need more pins
like pin 22.
Note 4042: Unable to assign ambar1, need more pins
like pin 22.
Note 4042: Unable to assign rojo1, need more pins
like pin 22.
Note 4042: Unable to assign rojo2, need more pins
like pin 21.
Note 4042: Unable to assign verde1, need more pins
like pin 21.
Note 4042: Unable to assign ambar1, need more pins
like pin 21.
Note 4042: Unable to assign rojo1, need more pins
like pin 21.
Note 4042: Unable to assign rojo2, need more pins
like pin 20.
Note 4042: Unable to assign verde1, need more pins
like pin 20.
Note 4042: Unable to assign ambar1, need more pins
like pin 20.
Note 4042: Unable to assign rojo1, need more pins
like pin 20.
Note 4042: Unable to assign rojo2, need more pins
like pin 19.
Note 4042: Unable to assign verde1, need more pins
like pin 19.
Note 4042: Unable to assign ambar1, need more pins
like pin 19.
Note 4042: Unable to assign rojo1, need more pins
like pin 19.
Design does NOT fit
FIT complete. Time: 1 second.
Done: failed with exit code: 0001.[/code]

Gracias de antemano!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Solución de error de ajuste en diseño VHDL para un semáforo digital

Publicado por Alejandro (117 intervenciones) el 28/08/2023 19:57:18
El error que estás enfrentando indica que el diseño no cabe en el dispositivo que has especificado (`p22v10`). Esto se debe a que estás tratando de asignar más pines de los que el dispositivo puede acomodar.

Aquí hay algunas cosas que puedes considerar para solucionar este problema:

1. Selecciona un dispositivo adecuado: Verifica que estés utilizando el dispositivo correcto para tu diseño. Asegúrate de que el dispositivo tenga suficientes pines disponibles para acomodar todas las señales que estás utilizando en tu diseño.

2. Optimiza el uso de pines: Revisa si hay alguna manera de optimizar el uso de pines en tu diseño. Por ejemplo, puedes agrupar señales que comparten funciones similares en el mismo pin para reducir la cantidad de pines utilizados.

3. Reduce la complejidad del diseño: Si el diseño es demasiado grande para el dispositivo seleccionado, considera simplificarlo. Puedes reducir el número de señales, estados o componentes para hacer que el diseño sea más manejable y quepa en el dispositivo.

4. Cambia a un dispositivo con más pines: Si no puedes reducir el tamaño del diseño lo suficiente para que quepa en el dispositivo actual, considera cambiar a un dispositivo con más pines disponibles que pueda acomodar tu diseño completo.

5. Revisa las asignaciones de pines: Asegúrate de que las asignaciones de pines en tu diseño sean coherentes y correctas. Si hay algún error en las asignaciones, podría estar causando problemas en la colocación de las señales en el dispositivo.

6. Consultar documentación y tutoriales: Consulta la documentación de tus herramientas y busca tutoriales o guías en línea sobre cómo solucionar problemas de ajuste (`fit`) en tus herramientas específicas.

Recuerda que el ajuste de un diseño en VHDL puede ser un proceso desafiante, especialmente cuando se trata de adaptar el diseño a las limitaciones de un dispositivo específico. Puede requerir ajustes en el código, en las asignaciones de pines y en la estrategia de optimización. Si sigues teniendo problemas, podría ser útil buscar asesoramiento específico de expertos en tu entorno académico o en comunidades en línea especializadas en VHDL y FPGA.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar