使用tcl文件分配管脚

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用tcl文件分配管脚相关的知识,希望对你有一定的参考价值。

之前在进行简单的设计的时候,分配管脚比较少,就用的pin planner一个一个输入。现在在做一个大的系统,这样做就太麻烦,在网上搜到了用tcl文件分配管脚的方法。

步骤如下:

首先生成tcl文件,具体做法是project--Generate Tcl Files for project,注意不要勾选include default assignments选项,第一次勾选了之后,提示错误。

技术分享

然后在文件中间按照下面的格式对管脚进行分配即可。

set_location_assignment PIN_N8 -to RESET

生成的Tcl文件如下,#相当于注释的作用:

# Copyright (C) 1991-2013 Altera Corporation
# Your use of Altera Corporations design tools, logic functions 
# and other software and tools, and its AMPP partner logic 
# functions, and any output files from any of the foregoing 
# (including device programming or simulation files), and any 
# associated documentation or information are expressly subject 
# to the terms and conditions of the Altera Program License 
# Subscription Agreement, Altera MegaCore Function License 
# Agreement, or other applicable license agreement, including, 
# without limitation, that your use is for the sole purpose of 
# programming logic devices manufactured by Altera and sold by 
# Altera or its authorized distributors.  Please refer to the 
# applicable agreement for further details.

# Quartus II: Generate Tcl File for Project
# File: DAQ.tcl
# Generated on: Fri Feb 26 15:12:54 2016

# Load Quartus II Tcl Project package
package require ::quartus::project

set need_to_close_project 0
set make_assignments 1

# Check that the right project is open
if {[is_project_open]} {
    if {[string compare $quartus(project) "DAQ"]} {
        puts "Project DAQ is not open"
        set make_assignments 0
    }
} else {
    # Only open if not already open
    if {[project_exists DAQ]} {
        project_open -revision DAQ DAQ
    } else {
        project_new -revision DAQ DAQ
    }
    set need_to_close_project 1
}

# Make assignments
if {$make_assignments} {
    set_global_assignment -name FAMILY "Cyclone IV E"
    set_global_assignment -name DEVICE EP4CE10F17C8
    set_global_assignment -name ORIGINAL_QUARTUS_VERSION 13.0
    set_global_assignment -name PROJECT_CREATION_TIME_DATE "16:14:35  FEBRUARY 23, 2016"
    set_global_assignment -name LAST_QUARTUS_VERSION 13.0
    set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files
    set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
    set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85
    set_global_assignment -name DEVICE_FILTER_PACKAGE FBGA
    set_global_assignment -name DEVICE_FILTER_PIN_COUNT 256
    set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 8
    set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1
    set_global_assignment -name EDA_SIMULATION_TOOL "ModelSim-Altera (Verilog)"
    set_global_assignment -name EDA_OUTPUT_DATA_FORMAT "VERILOG HDL" -section_id eda_simulation
    set_global_assignment -name USE_CONFIGURATION_DEVICE OFF
    set_global_assignment -name CRC_ERROR_OPEN_DRAIN OFF
    set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "3.3-V LVTTL"
    set_global_assignment -name CYCLONEII_RESERVE_NCEO_AFTER_CONFIGURATION "USE AS REGULAR IO"
    set_global_assignment -name RESERVE_DATA0_AFTER_CONFIGURATION "USE AS REGULAR IO"
    set_global_assignment -name RESERVE_DATA1_AFTER_CONFIGURATION "USE AS REGULAR IO"
    set_global_assignment -name RESERVE_FLASH_NCE_AFTER_CONFIGURATION "USE AS REGULAR IO"
    set_global_assignment -name RESERVE_DCLK_AFTER_CONFIGURATION "USE AS REGULAR IO"
    set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -rise
    set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -fall
    set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -rise
    set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -fall
    set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top
    set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top
    set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
    set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW"
    set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)"
    set_global_assignment -name QSYS_FILE Qsys_files/HardCore.qsys
    set_global_assignment -name QIP_FILE PLL.qip
    set_global_assignment -name BDF_FILE DAQ.bdf
    set_global_assignment -name VERILOG_FILE AD_conv.v
    set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
    
    set_location_assignment PIN_N8 -to RESET
    set_location_assignment PIN_E1 -to SYS_CLK

    #SDRAM
    set_location_assignment PIN_A14 -to SdramClk    
    
    set_location_assignment PIN_D5 -to DQ[0]
    set_location_assignment PIN_B5 -to DQ[1]
    set_location_assignment PIN_D6 -to DQ[2]
    set_location_assignment PIN_C6 -to DQ[3]
    set_location_assignment PIN_B6 -to DQ[4]
    set_location_assignment PIN_B7 -to DQ[5]
    set_location_assignment PIN_D8 -to DQ[6]
    set_location_assignment PIN_C8 -to DQ[7]
    set_location_assignment PIN_A9 -to DQ[8]
    set_location_assignment PIN_A8 -to DQ[9]
    set_location_assignment PIN_A7 -to DQ[10]
    set_location_assignment PIN_A6 -to DQ[11]
    set_location_assignment PIN_A5 -to DQ[12]
    set_location_assignment PIN_A4 -to DQ[13]
    set_location_assignment PIN_A3 -to DQ[14]
    set_location_assignment PIN_A2 -to DQ[15]
    
    set_location_assignment PIN_B11 -to ADDR[0]
    set_location_assignment PIN_D12 -to ADDR[1]
    set_location_assignment PIN_B12 -to ADDR[2]
    set_location_assignment PIN_B13 -to ADDR[3]
    set_location_assignment PIN_C16 -to ADDR[4]
    set_location_assignment PIN_B16 -to ADDR[5]
    set_location_assignment PIN_C15 -to ADDR[6]
    set_location_assignment PIN_A15 -to ADDR[7]
    set_location_assignment PIN_B14 -to ADDR[8]
    set_location_assignment PIN_C14 -to ADDR[9]
    set_location_assignment PIN_C11 -to ADDR[10]
    set_location_assignment PIN_A13 -to ADDR[11]
    set_location_assignment PIN_A12 -to ADDR[12]
    
    set_location_assignment PIN_B10 -to BA[0]
    set_location_assignment PIN_D11 -to BA[1]
    
    set_location_assignment PIN_B8 -to DQM[0]
    set_location_assignment PIN_A10 -to DQM[1]
    
    set_location_assignment PIN_A11 -to CKE
    set_location_assignment PIN_D9 -to nCAS
    set_location_assignment PIN_B9 -to nCS
    set_location_assignment PIN_C9 -to nRAS
    set_location_assignment PIN_E9 -to nWE
    
    #FLASH
    
    set_location_assignment PIN_H1 -to DCLK_EPCS       
    set_location_assignment PIN_D2 -to SCE_EPCS
    set_location_assignment PIN_C1 -to SDO_EPCS
    set_location_assignment PIN_H2 -to DATA0_EPCS


    # Close project
    if {$need_to_close_project} {
        project_close
    }
}

然后加载tcl文件,对bdf文件分配管脚,具体操作如下:

tools--Tcl scripts,弹出对话框,选择要加载的tcl文件,点击Run即可。

技术分享

以上是关于使用tcl文件分配管脚的主要内容,如果未能解决你的问题,请参考以下文章

在Quartus中如何使用TCL脚本文件配制管脚

使用Tcl脚本分配FPGA管脚

Xilinx Vivado器件分配管脚:LVDS差分电平信号如何分配管脚?

Xilinx Vivado器件分配管脚:LVDS差分电平信号如何分配管脚?

FPGA在分配管脚的时候,inout 型的两个信号A和B,他们要直接连在一起,在程序中怎么写?

在Quartus使用TCL脚本文件配制管脚 《本人亲测》