Restricción de una pantalla de 7 segmentos en VHDL

2

En este momento, solo estoy tratando de configurar una pantalla de segmento de un solo dígito 7, y estoy bastante atascado.

Todos los recursos que puedo encontrar utilizan un vector lógico de 7 bits y simplemente se detienen allí. Así que entiendo cómo funciona, el vector lógico se enciende (o en mi caso, ya que el Nexys 3 aparentemente los apaga en lógica alta y con lógica baja) con la posición en el vector correspondiente a un segmento específico.

Lo que no entiendo es cómo restringir este vector de 7 bits a la serie de pines. Sé lo básico de cómo funcionan las restricciones (solo pondría "LED" en el archivo de restricciones en la línea NET en la UCF y esto lo encendería cuando LED = 1 en el código) pero no sé cómo ir haciendo eso

    
pregunta user9892

2 respuestas

2

Una restricción de ejemplo sería

inst "led0" LOC=A1;

Tienes que bloquear cada uno de los 7 bits por separado.

p.s. Esto es específico del vendedor. No es parte de VHDL.

Más detalles sobre los archivos UCF: enlace

    
respondido por el Brian Carlton
2

Necesitas asignar cada pin del vector individualmente. Para hacerlo, comience con un archivo UCF de muestra, tal vez generado automáticamente por las herramientas del editor de restricciones, para obtener la sintaxis correcta.

Mirando un archivo UCF de muestra que tengo en esta computadora, las restricciones para un puerto vectorial

   GPIO_Led : OUT std_logic_vector (3 DOWNTO 0);

parece:

NET  "GPIO_Led<0>"           LOC="H18";
NET  "GPIO_Led<1>"           LOC="L18";
NET  "GPIO_Led<2>"           LOC="G15";
NET  "GPIO_Led<3>"           LOC="G16";
    
respondido por el Brian Drummond

Lea otras preguntas en las etiquetas