¿Cómo asignar pines físicos de FPGA a los módulos Xilinx ISE Verilog?

2

Recientemente comencé a aprender programación FPGA. Tengo el "Verilog QuickStart book" y descargué Xilinx ISE Webpack v14 y miré varios videos de YouTube. En este momento puedo construir mis circuitos y probarlos con el simulador incorporado, pero no sé cómo asignar los pines físicos del FPGA (los buffers de E / S).

Por ejemplo, supongamos que tenemos un diseño muy simple: solo una compuerta AND (los puertos de módulo incluyen IN1, IN2 y OUT). Es fácil hacer el circuito en el software, pero supongo que quiero asignar el número 7 del PIN de E / S de IC como IN1, el pin 9 como N2 y el pin11 como OUT (todos los puertos de E / S sin VREF). En ninguna parte del software (ni del libro) vi cómo hacer esta tarea. ¿Puede alguien ayudarme en eso, por favor?

Cualquier ayuda apreciada de antemano.

    
pregunta Aug

2 respuestas

5

Xilinx usa (archivo de restricciones del usuario) UCF para enlazar las conexiones físicas de los pines con las señales TOP. Este archivo se agrega a un proyecto Xilinx

el formato se ve como:

NET "CLK_40Mhz" TNM_NET = CLK_40Mhz;
TIMESPEC TS_CLK_40Mhz = PERIOD "CLK_40Mhz" 25 ns;
########################################################
#8+2 LED's for indication
########################################################
NET "FPGA_LED<0>" LOC = B21 | IOSTANDARD = "LVCMOS33";
NET "FPGA_LED<1>" LOC = B22 | IOSTANDARD = "LVCMOS33";
NET "FPGA_LED<2>" LOC = C21 | IOSTANDARD = "LVCMOS33";
NET "FPGA_LED<3>" LOC = C22 | IOSTANDARD = "LVCMOS33";
NET "FPGA_LED<4>" LOC = D21 | IOSTANDARD = "LVCMOS33";
NET "FPGA_LED<5>" LOC = D22 | IOSTANDARD = "LVCMOS33";
NET "FPGA_LED<6>" LOC = E22 | IOSTANDARD = "LVCMOS33";
NET "FPGA_LED<7>" LOC = F21 | IOSTANDARD = "LVCMOS33";
NET "FPGA_LED<8>" LOC = F22 | IOSTANDARD = "LVCMOS33";
NET "FPGA_LED<9>" LOC = G22 | IOSTANDARD = "LVCMOS33";
#######################################################
#6 FET/IGBT gate-drive FET-outputs
#######################################################
NET "FPGA_Gate1" LOC = V22 | IOSTANDARD = "LVCMOS33";
NET "FPGA_Gate2" LOC = W22 | IOSTANDARD = "LVCMOS33";
NET "FPGA_Gate3" LOC = W21 | IOSTANDARD = "LVCMOS33";
NET "FPGA_Gate4" LOC = Y22 | IOSTANDARD = "LVCMOS33";
NET "FPGA_Gate5" LOC = Y21 | IOSTANDARD = "LVCMOS33";
NET "FPGA_Gate6" LOC = AA22 | IOSTANDARD = "LVCMOS33";

NET "CLK_40Mhz" TNM_NET = CLK_40Mhz;
TIMESPEC TS_CLK_40Mhz = PERIOD "CLK_40Mhz" 25 ns;

Esta es una instantánea de uno de mis UCF

    
respondido por el JonRB
1
  1. Verifique que su proyecto esté seleccionado en la ventana de origen
  2. Haga doble clic en el proceso Área del plano / E / Lógica - Publicar síntesis que se encuentra en el Grupo de proceso de restricciones de usuario.

  • Tendrá que esperar un tiempo hasta que se abra un programa llamado Planificar con anticipación .
  • Si no ve una pestaña llamada Paquete a la derecha, vaya a Ventana- > Paquete . Desde allí, debe tener algo como un mapa de los pines de su FPGA seleccionado.
  • En la pestaña "Puertos de E / S" debe tener los puertos de su proyecto y puede arrastrar y soltar esos puertos al pin deseado en el mapa de "Paquete" o puede seleccionar el pin como se muestra a continuación. foto:
  • Espero que haya resuelto el problema. Esto se probó en el dispositivo virtual ISE 14.7 (que se ejecuta en una máquina virtual en Windows 10).

        
    respondido por el Agustin Barrachina

    Lea otras preguntas en las etiquetas