SFF SDR: Cómo implementar un programa simple en el FPGA

0

Aunque esta es una pregunta muy específica, creo que alguien de este sitio podría dar información interesante.

Estoy usando un SFF SDR de Lyrtech

Estoyintentandogenerarunarchivo.bitutilizandounarchivo.vhdyunarchivo.ucf.

Miprogramaesmuysimpleyenciendeunledyapagalosdemás.

libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;----Uncommentthefollowinglibrarydeclarationifinstantiating----anyXilinxprimitivesinthiscode.--libraryUNISIM;--useUNISIM.VComponents.all;entityoneledisPort(o_FpgaLed0_p:outSTD_LOGIC;o_FpgaLed1_p:outSTD_LOGIC;o_FpgaLed2_p:outSTD_LOGIC;o_FpgaLed3_p:outSTD_LOGIC;o_FpgaLed4_p:outSTD_LOGIC);endoneled;architectureBehavioralofoneledisbegino_FpgaLed0_p<='1';o_FpgaLed1_p<='0';o_FpgaLed2_p<='0';o_FpgaLed3_p<='0';o_FpgaLed4_p<='0';endBehavioral;

Comopuedesver,esunprogramamuysimplesoloparaaprenderausarestetablero.

Mipreguntaes.¿Quéocurre,necesitounarchivomás?Graciasporsuayuda.

Esteesunenlaceparadescargarmiarchivoderestricciones. enlace

Tengo estos mensajes de error:

ERROR:ConstraintSystem:59 - Constraint <NET "i_FpgaClk_p" TNM_NET =
   "i_FpgaClk_p";> [C:/Dropbox/Archivos sobre mi
   PFC/Files_ucf/sdrioring_virtex4ffg668.ucf(29)]: NET "i_FpgaClk_p" not found. 
   Please verify that:
   1. The specified design element actually exists in the original design.
   2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <NET "i_PllMClkg_p" TNM_NET =
   "i_PllMClkg_p";> [C:/Dropbox/Archivos sobre mi
   PFC/Files_ucf/sdrioring_virtex4ffg668.ucf(32)]: NET "i_PllMClkg_p" not found.
ERROR:ConstraintSystem:59 - Constraint <NET "Top_l/ClkOpb_s" TNM =
   "100MhzOpbClk";> [C:/Dropbox/Archivos sobre mi
   PFC/Files_ucf/sdrioring_virtex4ffg668.ucf(49)]: NET "Top_l/ClkOpb_s" not
   found.  Please verify that:
   1. The specified design element actually exists in the original design.
   2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <NET "Top_l/ClkVpss_s" TNM =
   "75MhzVpssClk";> [C:/Dropbox/Archivos sobre mi
   PFC/Files_ucf/sdrioring_virtex4ffg668.ucf(53)]: NET "Top_l/ClkVpss_s" not
   found.  Please verify that:
   1. The specified design element actually exists in the original design.
   2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <Net "i_nLyrio1AbInt_p" IOSTANDARD =
   "LVCMOS33";> [C:/Dropbox/Archivos sobre mi
   PFC/Files_ucf/sdrioring_virtex4ffg668.ucf(63)]: NET "i_nLyrio1AbInt_p" not
   found.  Please verify that:
   1. The specified design element actually exists in the original design.
   2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <Net "i_Lyrio1AbReady_p" IOSTANDARD =
   "LVCMOS33";> [C:/Dropbox/Archivos sobre mi
   PFC/Files_ucf/sdrioring_virtex4ffg668.ucf(64)]: NET "i_Lyrio1AbReady_p" not
   found.  Please verify that:
   1. The specified design element actually exists in the original design.
   2. The specified object is spelled correctly in the constraint source file.
    
pregunta Peterstone

3 respuestas

4

El motivo de todos los errores es que su archivo ucf se refiere a un montón de redes que no existen en su diseño simple. O bien necesitas:

1.) Comente (o elimine) esas referencias del ucf

o

2.) Incluya en su diseño todas las redes y componentes a los que se refiere el ucf (y asegúrese de que no se optimicen en la síntesis).

Sin saber demasiado acerca de su tablero específico, recomendaría el primero. En ese caso su archivo ucf será muy simple. Una línea para cada uno de los 5 puertos led que lo conectan al pin apropiado.

    
respondido por el davidd
3

Actualmente no tienes relojes en tu diseño.

El archivo UCF tiene tres pares de líneas relacionadas con los relojes que están presentes en la pizarra, pero si su código no se refiere a ellos, obtendrá los errores que ve.

Comenta esas líneas y ese bit estará bien. No olvides descomentarlos cuando empieces a usar los relojes (y un LED parpadeante debería ser tu próxima prueba :)

También debes descomentar las líneas de tus LED, de lo contrario, se asignarán a pines aleatorios, ¡lo que probablemente no será muy visible!

Finalmente, cuando tenga un archivo de bits, verifique el archivo .pin que se escribe durante la compilación para asegurarse de que las señales estén en los pines que esperaba, y que no haya omitido ninguno que luego se asigne al azar. Mi secuencia de comandos de compilación tiene una comprobación posterior al PAR del archivo pin que busca la etiqueta que pasa a los pines no restringidos y ERROR si encuentra uno.

(Y verifique que no se hayan enviado otras señales a los pines que no desea. En el pasado, he visto aparecer señales internas en pines externos (sin restricciones), que estaban conectados a dispositivos que actualmente no se utilizan).

    
respondido por el Martin Thompson
3

Puede hacer que estos errores desaparezcan sin comentar los pines no utilizados en el archivo .UCF.

  1. Abra su diseño en Xilinx ISE;
  2. Haga clic con el botón izquierdo en la pestaña Diseño en la vista de implementación;
  3. Haga clic derecho en "Implementar diseño";
  4. Desplázate hacia abajo y selecciona "Propiedades del proceso";
  5. En la categoría "Propiedades de conversión", marque la casilla "Permitir restricciones de LOC no coincidentes";
  6. Haga clic en el botón "Aplicar", seguido del botón "Aceptar".

Esta opción le permite usar un archivo .UCF maestro para una placa FPGA particular (es decir, el archivo de restricción de pines provisto con la placa Lyrtech) sin personalizarlo para cada diseño.

    
respondido por el Robin Coxe

Lea otras preguntas en las etiquetas