Especifique las ubicaciones exactas de los pines en FPGA

6

Tengo un FPGA de Altera Cyclone IV, y uso el software Quartus II como compilador.

En el "PinPlanner" es posible especificar grupos de pines (por ejemplo, buses de datos). Para cada grupo, se puede especificar un banco de E / S y un estándar de E / S (por ejemplo, LVDS). Luego, el instalador (lugar y ruta) proporciona "Ubicaciones de instalador" específicas, especificando un pin preciso para cada cable individual.

¿Hay alguna forma de especificar las ubicaciones precisas de los pines antes para que el instalador intente ajustar los pines dentro de cada banco? ¿Se puede hacer esto en el pin lanner?

    
pregunta Randomblue

2 respuestas

5

Hay dos formas de especificar la asignación de PIN: puede usar PinPlanner o set_location_assignment para especificar el PIN junto con set_instance_assignment para especificar el estándar IO.

Le recomiendo que lea la documentación I / O Management de Altera. Pero aquí hay algunos ejemplos:

Estas son asignaciones de ubicación para la interfaz Ethernet RGMII de 1 GbE:

set_location_assignment PIN_D25 -to eth_tx_clk
set_location_assignment PIN_V6 -to eth_rx_clk
set_location_assignment PIN_D17 -to eth_rx_c
set_location_assignment PIN_G20 -to eth_tx_c
set_location_assignment PIN_M20 -to eth_reset_n
set_location_assignment PIN_E21 -to eth_rx_q[0]
set_location_assignment PIN_E24 -to eth_rx_q[1]
set_location_assignment PIN_E22 -to eth_rx_q[2]
set_location_assignment PIN_F24 -to eth_rx_q[3]
set_location_assignment PIN_J20 -to eth_tx_q[0]
set_location_assignment PIN_C25 -to eth_tx_q[1]
set_location_assignment PIN_G22 -to eth_tx_q[2]
set_location_assignment PIN_G21 -to eth_tx_q[3]

set_instance_assignment -name IO_STANDARD "2.5 V" -to eth_rx_c
set_instance_assignment -name IO_STANDARD "2.5 V" -to eth_tx_c
set_instance_assignment -name IO_STANDARD "2.5 V" -to eth_tx_clk
set_instance_assignment -name IO_STANDARD "2.5 V" -to eth_rx_clk
set_instance_assignment -name IO_STANDARD "2.5 V" -to eth_rx_q
set_instance_assignment -name IO_STANDARD "2.5 V" -to eth_reset_n
set_instance_assignment -name IO_STANDARD "2.5 V" -to eth_tx_q

Y aquí hay una entrada de reloj LVDS a FPGA:

set_instance_assignment -name IO_STANDARD LVDS -to in_clk_100
set_location_assignment PIN_AJ19 -to in_clk_100
set_location_assignment PIN_AK19 -to "in_clk_100(n)"

Espero que ayude. ¡Buena suerte!

    
respondido por el user8459
1

No he trabajado con Altera, pero en Xilinx puedes especificar manualmente las asignaciones de pin antes de compilar en el archivo de restricciones (.UCF para Xilinx).

Por lo que puedo decir, puedes hacer lo mismo para Altera en el archivo .QSF de Quartus II usando set_location_assignment .

Vea el ejemplo del archivo .QSF en la página 6 de este Manual de Quartus II .

    
respondido por el embedded.kyle

Lea otras preguntas en las etiquetas