836
Vivado Design Suite Tcl コマンド リファレンス ガイド UG835 (v 2012.3) 2012 年 10 月 16 日

Vivado Design Suite Tcl コマンド リファレンス ガイド … · VivadoDesignSuiteTclコマンドリファレンスガイド UG835(v2012.3)2012年10月16日 2 . 第1章 概要

  • Upload
    lymien

  • View
    267

  • Download
    9

Embed Size (px)

Citation preview

  • Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16

  • Notice of Disclaimer

    The information disclosed to you hereunder (the Materials) is provided solely for the selection and use of Xilinx products.

    To the maximum extent permitted by applicable law: (1) Materials are made available "AS IS" and with all faults, Xilinx

    hereby DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING

    BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY

    PARTICULAR PURPOSE; and (2) Xilinx shall not be liable (whether in contract or tort, including negligence, or under any

    other theory of liability) for any loss or damage of any kind or nature related to, arising under, or in connection with, the

    Materials (including your use of the Materials), including for any direct, indirect, special, incidental, or consequential loss

    or damage (including loss of data, profits, goodwill, or any type of loss or damage suffered as a result of any action brought

    by a third party) even if such damage or loss was reasonably foreseeable or Xilinx had been advised of the possibility of the

    same. Xilinx assumes no obligation to correct any errors contained in the Materials or to notify you of updates to the

    Materials or to product specifications. You may not reproduce, modify, distribute, or publicly display the Materials without

    prior written consent. Certain products are subject to the terms and conditions of the Limited Warranties which can be

    viewed at http://www.xilinx.com/warranty.htm; IP cores may be subject to warranty and support terms contained in a

    license issued to you by Xilinx. Xilinx products are not designed or intended to be fail-safe or for use in any application

    requiring fail-safe performance; you assume sole risk and liability for use of Xilinx products in Critical Applications:

    http://www.xilinx.com/warranty.htm#critapps.

    Copyright 2002-2012 Xilinx Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other

    designated brands included herein are trademarks of Xilinx in the United States and other countries. The PowerPC name

    and logo are registered trademarks of IBM Corp., and used under license. All other trademarks are the property of their

    respective owners.

    (v 2012.3)

    [email protected]

    Vivado Design Suite Tcl UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 2

    http://www.xilinx.com/warranty.htmhttp://www.xilinx.com/warranty.htm#critapps

  • 1

    Vivado Tcl

    Tcl (Tool Command Language) Vivado Tcl

    SDC (Synopsys Design Constraints)

    SDC Synopsis Synplify FPGA

    Tcl

    Tcl

    Tcl

    Vivado Tcl

    : Tcl Tcl Vivado Tcl

    Tcl

    Vivado vivado.log vivado.jou Tcl Tcl

    : vivado.jou_bakup 1 Tcl

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 3

  • Tcl

    Tcl help Tcl

    help : Tcl

    help

    File I/O

    help -category category :

    help -category object

    Tcl

    help pattern :

    help get_*

    get_ Tcl

    help command :

    help get_cells

    get_cells

    help -args command :

    help -args get_cells

    help -syntax command :

    help -syntax get_cells

    Vivado

    Vivado 3

    GUI ()

    Tcl Vivado ( )

    Tcl

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 4

  • Vivado 2 Tcl

    1. installdir/Vivado/version/scripts/init.tcl

    2. userdir/Xilinx/Vivado/init.tcl

    :

    installdir : Vivado Design Suite

    userdir :

    Windows 7 : %APPDATA%/Roaming/Xilinx/Vivado/init.tcl

    Windows XP : %APPDATA%/Xilinx/Vivado/init.tcl

    Linux : $HOME/.Xilinx/Vivado/init.tcl

    init.tcl

    init.tcl

    Vivado

    init.tcl

    init.tcl

    init.tcl Tcl Vivado Tcl init.tcl Tcl

    source path_to_file/file_name.tcl

    Tcl

    Tcl OS Linux (/)

    Vivado Design Suite Tcl

    Tcl

    Tcl 1 GUI Vivado

    (IDE) Tcl [Tools] [Run Tcl Script]

    Tcl

    source file_name

    Tcl Vivado IDE IDE

    OS

    (kill)

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 5

  • Tcl helphelphelp sourcesourcesourcesourcesourcesource

    eval

    Tcl Tcl

    Tcl evalevaleval Tcl

    help -category-category-category 1

    help -category ipflow

    set cat ipflow

    :

    setsetset : Tcl

    catcatcat :

    "ipflow""ipflow""ipflow" :

    Tcl

    eval help -category $cat

    set cat -category ipflow

    eval help $cat

    () ({})

    set runblocksOptDesignOpts { -sweep -retarget -propconst -remap }

    eval opt_design $runblocksOptDesignOpts

    Tcl helphelphelp evalevalevalevalevaleval

    Tcl Tcl

    ( {} )

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 6

  • : [] Tcl () 4

    Vivado

    add_wave {bus[4]}

    Tcl

    add_wave bus(4)

    Verilog : Verilog Verilog Verilog

    (\)

    Tcl

    : Tcl

    VHDL

    my wire Vivado

    add_wave {\my wire }

    :

    Verilog Tcl

    w Vivado

    Vivado

    add_wave {\w }

    w

    add_wave w

    VHDL : VHDL Tcl (\)

    ( \} )Tcl VHDL

    Tcl \my sig\

    add_wave \\my\ sig\\

    : 2

    Vivado Design Suite Tcl

    command [optional_parameters] required_parameters

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 7

  • ( _ ) - - -

    get_

    set_

    report_

    get_cells -help

    get_cells

    Description:

    Get a list of cells in the current design

    Syntax:

    get_cells [-hsc arg ] [-hierarchical] [-regexp] [-nocase] [-filter arg ]

    [-of_objects args ] [-match_style arg ] [-quiet] [ patterns ]

    Returns:

    list of cell objects

    Usage:

    Name Optional Default Description

    ---------------------------------------------

    -hsc yes / Hierarchy separator

    -hierarchical yes Search level-by-level in current instance

    -regexp yes Patterns are full regular expressions

    -nocase yes Perform case-insensitive matching (valid

    only when -regexp specified)

    -filter yes Filter list with expression

    -of_objects yes Get cells of these pins or nets

    -match_style yes sdc Style of pattern matching, valid values are

    ucf, sdc

    -quiet yes Ignore command errors

    patterns yes * Match cell names against patterns

    Categories:

    SDC, XDC, Object

    Tcl Tcl Vivado

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 8

  • OS exec

    OS

    Tcl

    Tcl

    0 1

    Tcl Tcl catch

    catch // Tcl

    Vivado Tcl TCL_OK TCL_ERROR Tcl

    $ERRORINFO

    $ERRORINFO Tcl

    puts $ERRORINFO

    Tcl (procs.tcl)

    (loads) 5

    Line 1: Vivado % source procs.tcl

    Line 2: Vivado% loads

    Line 3: Found 180 driving FFs

    Line 4: Processing pin a_reg_reg[1]/Q...

    Line 5: ERROR: [HD-Tcl 53] Cannot specify -patterns with -of_objects.

    Line 6: Vivado% puts $errorInfo

    Line 7: ERROR: [HD-Tcl 53] Cannot specify -patterns with -of_objects. While executing

    "get_ports -of objects $pin" (procedure "my_report" line 6) invoked from within procs.tcl

    Tcl catch puts $errorInfo Tcl puts $errorInfo

    6 puts $errorInfo7

    Tcl

    Vivado Design Suite Tcl

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 9

  • Vivado Design Suite

    LUTI/O RAMDSP

    I/O FPGA

    1

    DCMPLLMMCM UCF TIMESPEC

    PERIOD

    Tcl get_

    get_object_type pattern

    pattern

    get_cells */inst_1

    inst_1

    get_cells -hierarchical inst_1

    inst_1

    help get_cells

    get_cells -help

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 10

  • get_property property_name object

    lib_cell UniSim

    get_property lib_cell [get_cell inst_1]

    report_propertyreport_propertyreport_property

    report_property [get_cells inst_1]

    bel OLOGICE1.OUTFF string

    class cell string

    iob TRUE string

    is_blackbox 0 bool

    is_fixed 0 bool

    is_partition 0 bool

    is_primitive 1 bool

    is_reconfigurable 0 bool

    is_sequential 1 bool

    lib_cell FD string

    LOC OLOGIC_X1Y27 string

    name error string

    primitive_group FD_LD string

    primitive_subgroup flop string

    site OLOGIC_X1Y27 string

    type FD & LD string

    XSTLIB 1 bool

    UCF HDL

    Tcl set_property

    set_property loc OLOGIC_X1Y27 [get_cell inst_1]

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 11

  • get_*

    FD

    get_cells * -hierarchical -filter lib_cell == FD

    =~

    get_cells * -hierarchical -filter lib_cell =~ FD*

    OR (||) AND (&&)

    get_cells * -hierarchical filter {lib_cell =~ FD* && loc != }

    : " " { } Tcl loc

    Tcl ()

    Tcl foreach_in_collection

    Tcl foreachforeachforeach

    GUI Tcl Tcl get_*get_*get_*

    ...

    1

    ()

    get_cells inst_1

    inst_1

    get_cells * -hierarchical

    XST_VCC XST_GND error readIngressFifo wbDataForInputReg fifoSelect_0 fifoSelect_1 fifoSelect_2 fifoSelect_3 ...

    %set x [get_cells * -hierarchical]

    XST_VCC XST_GND error readIngressFifo wbDataForInputReg fifoSelect_0 fifoSelect_1 fifoSelect_2 fifoSelect_3 ...

    %lindex $x end

    bftClk_BUFGP/bufg

    %llength $x

    4454

    4000 ...

    Tcl

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 12

  • get_*get_*get_* -of-of-of

    get_pins -of [get_cells inst_1]

    get_*get_*get_* -of-of-of

    Tcl

    GUI

    INFOWARNING

    CRITICAL_WARNINGERROR

    INFO

    INFO: [HD-LIB 1] Done reading timing library

    Tcl Tcl

    Tcl

    Tcl Tcl catch

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 13

  • 2

    Tcl ()

    ChipScope

    DRC

    GUI

    IP

    IP

    SDC

    System Generator

    XDC

    XPS

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 14

  • Tcl ()

    ChipScope

    connect_debug_port

    create_debug_core

    create_debug_port

    delete_debug_core

    delete_debug_port

    disconnect_debug_port

    get_debug_cores

    get_debug_ports

    implement_debug_core

    launch_chipscope_analyzer

    read_chipscope_cdc

    report_debug_core

    write_chipscope_cdc

    write_debug_probes

    DRC

    add_drc_checks

    create_drc_check

    create_drc_ruledeck

    create_drc_violation

    delete_drc_check

    delete_drc_ruledeck

    get_drc_checks

    get_drc_ruledecks

    get_drc_vios

    remove_drc_checks

    report_drc

    reset_drc

    reset_drc_check

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 15

  • Tcl ()

    config_webtalk

    infer_diff_pairs

    read_checkpoint

    read_chipscope_cdc

    read_csv

    read_edif

    read_ip

    read_saif

    read_twx

    read_vcd

    read_verilog

    read_vhdl

    read_xdc

    write_bitstream

    write_bmm

    write_checkpoint

    write_chipscope_cdc

    write_csv

    write_debug_probes

    write_edif

    write_ibis

    write_ncd

    write_sdf

    write_verilog

    write_vhdl

    write_xdc

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 16

  • Tcl ()

    add_cells_to_pblock

    create_pblock

    delete_pblock

    delete_rpm

    get_pblocks

    place_cell

    place_pblocks

    remove_cells_from_pblock

    reset_ucf

    resize_pblock

    swap_locs

    unplace_cell

    GUI

    endgroup

    get_selected_objects

    highlight_objects

    mark_objects

    redo

    select_objects

    start_gui

    startgroup

    stop_gui

    undo

    unhighlight_objects

    unmark_objects

    unselect_objects

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 17

  • Tcl ()

    close_hw_target

    connect_hw_server

    current_hw_device

    current_hw_ila

    current_hw_ila_data

    current_hw_server

    current_hw_target

    disconnect_hw_server

    display_hw_ila_data

    get_hw_devices

    get_hw_ila_data

    get_hw_ilas

    get_hw_probes

    get_hw_servers

    get_hw_targets

    open_hw_target

    program_hw_devices

    read_hw_ila_data

    refresh_hw_device

    refresh_hw_server

    refresh_hw_target

    reset_hw_ila

    run_hw_ila

    upload_hw_ila_data

    wait_on_hw_ila

    write_hw_ila_data

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 18

  • Tcl ()

    IP

    convert_ip

    copy_ip

    create_ip

    generate_target

    get_ipdefs

    get_ips

    import_ip

    open_example_project

    read_ip

    reset_target

    update_ip_catalog

    upgrade_ip

    validate_ip

    IP

    assign_bd_address

    connect_bd_intf_net

    connect_bd_net

    copy_bd_objs

    create_bd_addr_seg

    create_bd_cell

    create_bd_design

    create_bd_intf_net

    create_bd_intf_pin

    create_bd_intf_port

    create_bd_net

    create_bd_pin

    create_bd_port

    current_bd_design

    current_bd_instance

    delete_bd_design

    delete_bd_objs

    disconnect_bd_intf_net

    disconnect_bd_net

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 19

  • Tcl ()

    find_bd_objs

    generate_target

    get_bd_addr_segs

    get_bd_addr_spaces

    get_bd_cells

    get_bd_designs

    get_bd_intf_nets

    get_bd_intf_pins

    get_bd_intf_ports

    get_bd_nets

    get_bd_pins

    get_bd_ports

    group_bd_cells

    move_bd_cells

    open_bd_design

    package_bd_design

    regenerate_bd_layout

    save_bd_design

    ungroup_bd_cells

    write_bd_tcl

    connect_net

    create_cell

    create_net

    create_pin

    disconnect_net

    remove_cell

    remove_net

    remove_pin

    rename_ref

    resize_net_bus

    resize_pin_bus

    add_drc_checks

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 20

  • Tcl ()

    create_drc_check

    create_drc_ruledeck

    delete_drc_check

    delete_drc_ruledeck

    filter

    get_bel_pins

    get_bels

    get_boards

    get_cells

    get_clock_regions

    get_clocks

    get_debug_cores

    get_debug_ports

    get_delays

    get_designs

    get_drc_checks

    get_drc_ruledecks

    get_drc_vios

    get_files

    get_filesets

    get_generated_clocks

    get_hw_devices

    get_hw_ila_data

    get_hw_ilas

    get_hw_probes

    get_hw_servers

    get_hw_targets

    get_interfaces

    get_io_standards

    get_iobanks

    get_ipdefs

    get_ips

    get_lib_cells

    get_lib_pins

    get_libs

    get_nets

    get_nodes

    get_package_pins

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 21

  • Tcl ()

    get_parts

    get_path_groups

    get_pblocks

    get_pins

    get_pips

    get_ports

    get_projects

    get_property

    get_runs

    get_selected_objects

    get_site_pins

    get_site_pips

    get_sites

    get_tiles

    get_timing_arcs

    get_timing_paths

    get_wires

    list_property

    list_property_value

    remove_drc_checks

    report_property

    reset_drc_check

    reset_property

    set_property

    create_interface

    create_port

    delete_interface

    make_diff_pair_ports

    place_ports

    remove_port

    resize_port_bus

    set_package_pin_val

    split_diff_pair_ports

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 22

  • Tcl ()

    delete_power_results

    power_opt_design

    read_saif

    read_vcd

    report_power

    report_power_opt

    reset_default_switching_activity

    reset_operating_conditions

    reset_switching_activity

    set_default_switching_activity

    set_operating_conditions

    set_power_opt

    set_switching_activity

    add_files

    archive_project

    close_design

    close_project

    copy_ip

    create_fileset

    create_project

    create_run

    current_fileset

    current_project

    current_run

    delete_fileset

    delete_run

    find_top

    generate_target

    get_boards

    get_files

    get_filesets

    get_ips

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 23

  • Tcl ()

    get_projects

    get_runs

    help

    import_files

    import_ip

    import_synplify

    import_xise

    import_xst

    launch_runs

    list_targets

    make_wrapper

    open_example_project

    open_io_design

    open_project

    open_run

    refresh_design

    reimport_files

    remove_files

    reorder_files

    report_compile_order

    reset_project

    reset_run

    reset_target

    save_design

    save_design_as

    save_project_as

    set_speed_grade

    update_compile_order

    update_design

    update_files

    wait_on_run

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 24

  • Tcl ()

    create_property

    filter

    get_param

    get_property

    list_param

    list_property

    list_property_value

    report_param

    report_property

    reset_param

    reset_property

    set_param

    set_property

    check_timing

    create_drc_violation

    create_slack_histogram

    delete_clock_networks_results

    delete_timing_results

    delete_utilization_results

    get_msg_count

    get_msg_limit

    report_carry_chains

    report_clock_interaction

    report_clock_networks

    report_clock_utilization

    report_clocks

    report_config_timing

    report_control_sets

    report_datasheet

    report_debug_core

    report_default_switching_activity

    report_disable_timing

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 25

  • Tcl ()

    report_drc

    report_environment

    report_high_fanout_nets

    report_io

    report_operating_conditions

    report_param

    report_phys_opt

    report_power

    report_property

    report_pulse_width

    report_route_status

    report_ssn

    report_sso

    report_switching_activity

    report_timing

    report_timing_summary

    report_transformed_primitives

    report_utilization

    reset_drc

    reset_msg_count

    reset_msg_limit

    reset_msg_severity

    reset_ssn

    reset_sso

    reset_timing

    set_msg_limit

    set_msg_severity

    version

    SDC

    all_clocks

    all_fanin

    all_fanout

    all_inputs

    all_outputs

    all_registers

    create_clock

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 26

  • Tcl ()

    create_generated_clock

    current_design

    current_instance

    get_cells

    get_clocks

    get_hierarchy_separator

    get_nets

    get_pins

    get_ports

    get_timing_arcs

    get_timing_paths

    group_path

    report_operating_conditions

    reset_operating_conditions

    set_case_analysis

    set_clock_groups

    set_clock_latency

    set_clock_sense

    set_clock_uncertainty

    set_data_check

    set_disable_timing

    set_false_path

    set_hierarchy_separator

    set_input_delay

    set_load

    set_logic_dc

    set_logic_one

    set_logic_unconnected

    set_logic_zero

    set_max_delay

    set_max_time_borrow

    set_min_delay

    set_multicycle_path

    set_operating_conditions

    set_output_delay

    set_propagated_clock

    set_units

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 27

  • Tcl ()

    add_bp

    add_condition

    add_files

    add_force

    checkpoint_vcd

    close_saif

    close_sim

    close_vcd

    compile_simlib

    create_fileset

    current_scope

    current_sim

    current_time

    data2mem

    delete_fileset

    describe

    flush_vcd

    get_objects

    get_scopes

    get_value

    import_files

    launch_modelsim

    launch_xsim

    limit_vcd

    log_saif

    log_vcd

    log_wave

    ltrace

    open_saif

    open_vcd

    open_wave_database

    ptrace

    read_saif

    read_vcd

    remove_bps

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 28

  • Tcl ()

    remove_conditions

    remove_files

    remove_forces

    report_bps

    report_conditions

    report_objects

    report_scopes

    report_simlib_info

    report_values

    reset_simulation

    restart

    run

    set_value

    start_vcd

    step

    stop

    stop_vcd

    write_sdf

    write_verilog

    write_vhdl

    xsim

    System Generator

    create_sysgen

    make_wrapper

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 29

  • Tcl ()

    check_timing

    config_timing_analysis

    config_timing_corners

    delete_timing_results

    get_timing_arcs

    get_timing_paths

    report_config_timing

    report_disable_timing

    report_timing

    report_timing_summary

    reset_timing

    set_delay_model

    set_disable_timing

    update_timing

    launch_chipscope_analyzer

    launch_impact

    launch_modelsim

    launch_sdk

    launch_xsim

    link_design

    list_features

    load_features

    opt_design

    phys_opt_design

    place_design

    route_design

    synth_design

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 30

  • Tcl ()

    add_wave

    add_wave_divider

    add_wave_group

    add_wave_marker

    add_wave_virtual_bus

    close_wave_config

    create_wave_config

    current_wave_config

    get_wave_configs

    open_wave_config

    save_wave_config

    XDC

    add_cells_to_pblock

    all_clocks

    all_cpus

    all_dsps

    all_fanin

    all_fanout

    all_ffs

    all_hsios

    all_inputs

    all_latches

    all_outputs

    all_rams

    all_registers

    create_clock

    create_generated_clock

    create_pblock

    current_design

    current_instance

    delete_pblock

    filter

    get_cells

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 31

  • Tcl ()

    get_clocks

    get_generated_clocks

    get_hierarchy_separator

    get_iobanks

    get_nets

    get_package_pins

    get_path_groups

    get_pblocks

    get_pins

    get_ports

    get_sites

    get_timing_arcs

    group_path

    remove_cells_from_pblock

    resize_pblock

    set_case_analysis

    set_clock_groups

    set_clock_latency

    set_clock_sense

    set_clock_uncertainty

    set_data_check

    set_default_switching_activity

    set_disable_timing

    set_external_delay

    set_false_path

    set_hierarchy_separator

    set_input_delay

    set_input_jitter

    set_load

    set_logic_dc

    set_logic_one

    set_logic_unconnected

    set_logic_zero

    set_max_delay

    set_max_time_borrow

    set_min_delay

    set_multicycle_path

    set_operating_conditions

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 32

  • Tcl ()

    set_output_delay

    set_package_pin_val

    set_power_opt

    set_propagated_clock

    set_property

    set_switching_activity

    set_system_jitter

    set_units

    XPS

    create_xps

    export_hardware

    generate_target

    get_boards

    launch_sdk

    list_targets

    make_wrapper

    reset_target

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 33

  • 3

    Tcl () SDC Tcl

    add_bp

    (file_name) (line_number)

    add_bp [-quiet] [-verbose] file_name line_number

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    file_name

    line_number

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 34

  • Tcl ()

    add_cells_to_pblock

    Pblock

    add_cells_to_pblock [-add_primitives] [-clear_locs] [-quiet] [-verbose] pblock[cells ...]

    [-add_primitives-add_primitives-add_primitives] Pblock

    [-clear_locs-clear_locs-clear_locs]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    pblock Pblock

    [cells]

    XDC

    Pblock Pblock place_pblocksplace_pblocksplace_pblocks

    Pblock FPGA Pblock resize_pblocksresize_pblocksresize_pblocks

    Pblock

    Pblock remove_cells_from_pblockremove_cells_from_pblockremove_cells_from_pblock

    -add_primitives-add_primitives-add_primitives : Pblock

    Pblock

    -clear_locs-clear_locs-clear_locs :

    Pblock LOC

    Pblock

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 35

  • Tcl ()

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    pblock : Pblock

    cells : Pblock 1

    pb_cpuEngine Pblock cpuEngine

    create_pblock pb_cpuEngine

    add_cells_to_pblock pb_cpuEngine [get_cells cpuEngine] -add_primitives -clear_locs

    get_pblocks

    place_pblocks

    remove_cells_from_pblock

    resize_pblock

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 36

  • Tcl ()

    add_condition

    add_condition [-name arg] [-radix arg] [-quiet][-verbose] condition_expression commands

    [-name-name-name] ()

    [-radix-radix-radix] defaultdecbinocthexunsignedascii

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    condition_expression

    commands

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 37

  • Tcl ()

    add_drc_checks

    DRC

    add_drc_checks [-of_objects args] [-regexp] [-nocase] [-filter arg]-ruledeck arg [-quiet] [-verbose] [patterns]

    DRC

    [-of_objects-of_objects-of_objects] DRC DRC

    [-regexp-regexp-regexp]

    [-nocase-nocase-nocase] /(-regexp )

    [-filter-filter-filter]

    -ruledeck-ruledeck-ruledeck DRC

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    [patterns] DRC *

    DRC

    DRC

    I/O FPGA

    report_drcreport_drcreport_drc

    create_drc_ruledeckcreate_drc_ruledeckcreate_drc_ruledeck

    get_drc_ruledecksget_drc_ruledecksget_drc_ruledecks report_drc

    create_drc_checkcreate_drc_checkcreate_drc_check

    get_drc_ruledecksget_drc_ruledecksget_drc_ruledecks

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 38

  • Tcl ()

    remove_drc_checksremove_drc_checksremove_drc_checks

    -of_objects-of_objects-of_objects arg : DRC

    -regexp-regexp-regexp () :

    -filter-filter-filter

    Tcl .*

    http://www.tcl.tk/man/tcl8.4/TclCmd/re_syntax.htm

    : Tcl regexpregexpregexp Tcl

    http://www.tcl.tk/man/tcl8.4/TclCmd/regexp.htm

    -nocase-nocase-nocase () : /-regexp-regexp-regexp

    -filter-filter-filter args () :

    report_propertyreport_propertyreport_property list_propertylist_propertylist_property

    (==) (!=) (=~) (!~)

    = AND (&&) OR (||)

    clk

    get_ports * -filter {DIRECTION == IN && NAME !~ "*clk"}

    -ruledeck-ruledeck-ruledeck arg :

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    patterns : (*)

    : { } 1

    project_rules

    add_drc_checks -ruledeck project_rules {*DCI* *BUF*}

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 39

  • Tcl ()

    placer+ placer_checks

    placer+

    create_drc_ruledecks placer+

    add_drc_checks -of_objects [get_drc_ruledecks placer_checks] -ruledeck placer+

    add_drc-checks -ruledeck placer+ *IO*

    add_drc_checks -filter {SEVERITY == Warning} -ruledeck warn_only

    create_drc_check

    create_drc_ruledeck

    get_drc_checks

    get_drc_ruledecks

    list_property

    remove_drc_checks

    report_drc

    report_property

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 40

  • Tcl ()

    add_files

    add_files [-fileset arg] [-norecurse] [-scan_for_includes] [-quiet] [-verbose][files ...]

    [-fileset-fileset-fileset]

    [-norecurse-norecurse-norecurse]

    [-scan_for_includes-scan_for_includes-scan_for_includes] RTL

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    [files] -scan_for_includes

    1 1

    :

    read_xxxread_xxxread_xxx

    Vivado Design Suite : (UG892)

    import_filesimport_filesimport_files

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 41

  • Tcl ()

    -fileset-fileset-fileset name () :

    -norecurse-norecurse-norecurse () :

    -scan_for_includes-scan_for_includes-scan_for_includes () : Verilog includeincludeinclude

    includeincludeinclude

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    files : 1

    :

    rtl.v

    add_files rtl.v

    rtl.v

    top.ucftop.ucftop.ucf constrs_1constrs_1constrs_1 project_1

    add_files -fileset constrs_1 -quiet c:/Design/top.ucf c:/Design/project_1

    -quiet-quiet-quiet

    -norecurse-norecurse-norecurse project_1project_1project_1

    IP

    add_files -norecurse C:/Data/ip/c_addsub_v11_0_0.xci

    : IP import_ipimport_ipimport_ip

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 42

  • Tcl ()

    add_files C:/Data/dvi_tpg_demo_ORG/system.xmp

    : Xilinx Platform Studio (XPS) create_xpscreate_xpscreate_xps

    System Generator DSP

    add_files C:/Data/model1.mdl

    : System Generator DSP create_sysgencreate_sysgencreate_sysgen

    create_sysgen

    create_xps

    import_files

    import_ip

    read_ip

    read_verilog

    read_vhdl

    read_xdc

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 43

  • Tcl ()

    add_force

    force

    add_force [-radix arg] [-repeat_every arg] [-cancel_after arg] [-quiet][-verbose] hdl_object values ...

    force

    [-radix-radix-radix] defaultdecbinocthexunsignedascii

    [-repeat_every-repeat_every-repeat_every]

    [-cancel_after-cancel_after-cancel_after]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    hdl_object force

    values force {value [ time_offset] }

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 44

  • Tcl ()

    add_wave

    add_wave [-into args] [-at_wave args] [-after_wave args] [-before_wave args][-reverse] [-radix arg] [-color arg] [-name arg] [-recursive] [-r] [-regexp][-nocase] [-quiet] [-verbose] items ...

    [-into-into-into] -*_row -*_wave -into -into -*_row -*_wave -into WCFG WCFG WCFG -into

    [-at_wave-at_wave-at_wave] -*_row (waveObj) waveObj

    [-after_wave-after_wave-after_wave] -*_row (waveObj) waveObj

    [-before_wave-before_wave-before_wave] -*_row (waveObj) waveObj

    [-reverse-reverse-reverse] IS_REVERSED true

    [-radix-radix-radix] defaultdecbinocthexunsignedascii

    [-color-color-color]

    [-name-name-name] DISPLAY_NAME

    [-recursive-recursive-recursive]

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 45

  • Tcl ()

    [-r-r-r]

    [-regexp-regexp-regexp]

    [-nocase-nocase-nocase] / (-regexp )

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    items 1

    1

    : HDL () itemitemitem Vivado [Objects]

    -into-into-into wcfgGroupVbusObj () : wcfgGroupVbusObj WCFG WCFG

    WCFG

    -into-into-into

    -at_wave-at_wave-at_wave waveObj () : waveObj

    -after_wave-after_wave-after_wave waveObj () : waveObj

    -before_wave-before_wave-before_wave waveObj () : waveObj

    -reverse-reverse-reverse () : IS_REVERSEDIS_REVERSEDIS_REVERSED truetruetrue

    -radix-radix-radix arg () : defaultdefaultdefaultdecdecdecbinbinbinoctoctocthexhexhexunsignedunsignedunsignedasciiasciiascii

    -color-color-color arg () : 6 RGB (RRGGBB)

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 46

  • Tcl ()

    -name-name-name arg () : DISPLAY_NAMEDISPLAY_NAMEDISPLAY_NAME

    -recursive-recursive-recursive ||| -r-r-r () : items

    -regexp-regexp-regexp () : items Tcl .*

    http://www.tcl.tk/man/tcl8.4/TclCmd/re_syntax.htm

    : Tcl regexp Tcl

    http://www.tcl.tk/man/tcl8.4/TclCmd/regexp.htm

    -nocase-nocase-nocase () : /-regexp-regexp-regexp

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    items : HDL

    clk

    add_wave clkclk

    rsb_design_testbench dout_tvalid

    add_wave dout_tvalid/rsb_design_testbench/dout_tvalid

    add_wave_divider

    add_wave_group

    add_wave_marker

    add_wave_virtual_bus

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 47

  • Tcl ()

    add_wave_divider

    add_wave_divider [-into args] [-at_wave args] [-after_wave args][-before_wave args] [-color arg] [-quiet] [-verbose] [name]

    [-into-into-into] -*_row -*_wave -into -into -*_row -*_wave -into wcfgGroupVbusObj WCFG WCFG WCFG -into

    [-at_wave-at_wave-at_wave] -*_row (waveObj) waveObj

    [-after_wave-after_wave-after_wave] -*_row (waveObj) waveObj

    [-before_wave-before_wave-before_wave] -*_row (waveObj) waveObj

    [-color-color-color] default

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    [name] new_divider

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 48

  • Tcl ()

    :

    -into-into-into wcfgGroupVbusObj () : wcfgGroupVbusObj WCFG WCFG

    WCFG -into-into-into

    -at_wave-at_wave-at_wave waveObj () : waveObj

    -after_wave-after_wave-after_wave waveObj () : waveObj

    -before_wave-before_wave-before_wave waveObj () : waveObj

    -color-color-color arg () : 6 RGB (RRGGBB)

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    name () : new_divider

    CLK Div1

    add_wave_divider -after_wave CLK Div1

    add_wave

    add_wave_group

    add_wave_marker

    add_wave_virtual_bus

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 49

  • Tcl ()

    add_wave_group

    add_wave_group [-into args] [-at_wave args] [-after_wave args][-before_wave args] [-quiet] [-verbose] [name]

    [-into-into-into] -*_row -*_wave -into -into -*_row -*_wave -into wcfgGroupVbusObj WCFG WCFG WCFG -into

    [-at_wave-at_wave-at_wave] -*_row (waveObj) waveObj

    [-after_wave-after_wave-after_wave] -*_row (waveObj) waveObj

    [-before_wave-before_wave-before_wave] -*_row (waveObj) waveObj

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    [name] new_group

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 50

  • Tcl ()

    :

    -into-into-into wcfgGroupVbusObj () : wcfgGroupVbusObj WCFG WCFG

    WCFG

    -into-into-into

    -at_wave-at_wave-at_wave waveObj () : waveObj

    -after_wave-after_wave-after_wave waveObj () : waveObj

    -before_wave-before_wave-before_wave waveObj () : waveObj

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    name () : new_group

    clk

    add_wave_group clkgroup10

    add_wave

    add_wave_divider

    add_wave_marker

    add_wave_virtual_bus

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 51

  • Tcl ()

    add_wave_marker

    add_wave_marker [-into arg] [-name arg] [-quiet] [-verbose] [time] [unit]

    [-into-into-into]

    [-name-name-name]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    [time] 0

    [unit]

    :

    -into-into-into wcfg : -into-into-into

    -name-name-name arg () : new_divider

    time : 0

    unit : sssmsmsmsusususnsnsns pspsps

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 52

  • Tcl ()

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    500ns

    add_wave_marker 500 ns

    add_wave

    add_wave_divider

    add_wave_group

    add_wave_virtual_bus

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 53

  • Tcl ()

    add_wave_virtual_bus

    add_wave_virtual_bus [-into args] [-at_wave args] [-after_wave args][-before_wave args] [-reverse] [-radix arg] [-color arg] [-quiet] [-verbose][name]

    [-into-into-into] -*_row -*_wave -into -into -*_row -*_wave -into wcfgGroupVbusObj WCFG WCFG WCFG -into

    [-at_wave-at_wave-at_wave] -*_row (waveObj) waveObj

    [-after_wave-after_wave-after_wave] -*_row (waveObj) waveObj

    [-before_wave-before_wave-before_wave] -*_row (waveObj) waveObj

    [-reverse-reverse-reverse] IS_REVERSED true

    [-radix-radix-radix] defaultdecbinocthexunsignedascii

    [-color-color-color] default

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    [name]

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 54

  • Tcl ()

    vb###

    : namenamename

    -into-into-into wcfgGroupVbusObj : wcfgGroupVbusObj WCFG WCFG

    WCFG -into-into-into

    -at_wave-at_wave-at_wave waveObj : waveObj

    -after_wave-after_wave-after_wave waveObj : waveObj

    -before_wave-before_wave-before_wave waveObj : waveObj

    -reverse-reverse-reverse () : IS_REVERSEDIS_REVERSEDIS_REVERSED truetruetrue

    -radix-radix-radix arg () : defaultdefaultdefault

    decdecdecbinbinbinoctoctocthexhexhexunsignedunsignedunsignedasciiasciiascii

    -color-color-color arg () : 6 RGB (RRGGBB)

    -name-name-name customName : DISPLAY_NAMEDISPLAY_NAMEDISPLAY_NAME

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    dout_tvaliddout_tvaliddout_tvalid

    add_wave_virtual_bus dout_tvalidvbus200

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 55

  • Tcl ()

    add_wave_divider

    add_wave_group

    add_wave_marker

    add_wave

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 56

  • Tcl ()

    all_clocks

    all_clocks [-quiet] [-verbose]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    SDCXDC

    get_clocksget_clocksget_clocks

    create_clockcreate_clockcreate_clock create_generated_clockcreate_generated_clockcreate_generated_clock

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    CPU

    % all_clocks

    cpuClk wbClk usbClk phy_clk_pad_0_i phy_clk_pad_1_i fftClk

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 57

  • Tcl ()

    set_propagated_clockset_propagated_clockset_propagated_clock (all_clocksall_clocksall_clocks)

    % set_propagated_clock [all_clocks]

    create_clock

    create_generated_clock

    get_clocks

    set_propagated_clock

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 58

  • Tcl ()

    all_cpus

    CPU

    all_cpus [-quiet] [-verbose]

    CPU

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    XDC

    CPU CPU

    : CPU

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    CPU

    all_cpus

    set_false_path -from [all_cpus] -to [all_registers]

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 59

  • Tcl ()

    all_dsps

    all_hsios

    all_registers

    set_false_path

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 60

  • Tcl ()

    all_dsps

    DSP

    all_dsps [-quiet] [-verbose]

    DSP

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    XDC

    DSP

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    DSP

    all_dsps

    set_false_path -from [all_dsps] -to [all_registers]

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 61

  • Tcl ()

    all_cpus

    all_hsios

    all_registers

    set_false_path

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 62

  • Tcl ()

    all_fanin

    all_fanin [-startpoints_only] [-flat] [-only_cells] [-levels arg][-pin_levels arg] [-trace_arcs arg] [-quiet] [-verbose] to

    [-startpoints_only-startpoints_only-startpoints_only]

    [-flat-flat-flat]

    [-only_cells-only_cells-only_cells]

    [-levels-levels-levels] 0 0

    [-pin_levels-pin_levels-pin_levels] 0 0

    [-trace_arcs-trace_arcs-trace_arcs] timingenabledall

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    to

    SDCXDC

    -startpoints_only-startpoints_only-startpoints_only () :

    -flat-flat-flat () :

    -only_cells-only_cells-only_cells () :

    -levels-levels-levels value () : 0

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 63

  • Tcl ()

    -pin_levels-pin_levels-pin_levels value () : 0

    -trace_arcs-trace_arcs-trace_arcs value : timingenabledall

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    to () :

    DAT

    all_fanin DAT

    MMCM sysClk

    all_fanin -to [get_pins fftEngine/control_reg_reg[17]/C] -startpoints_only \

    -flat sysClk

    all_fanout

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 64

  • Tcl ()

    all_fanout

    all_fanout [-endpoints_only] [-flat] [-only_cells] [-levels arg][-pin_levels arg] [-trace_arcs arg] [-quiet] [-verbose] from

    [-endpoints_only-endpoints_only-endpoints_only]

    [-flat-flat-flat]

    [-only_cells-only_cells-only_cells]

    [-levels-levels-levels] 0 0

    [-pin_levels-pin_levels-pin_levels] 0 0

    [-trace_arcs-trace_arcs-trace_arcs] timingenabledall

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    from

    SDCXDC

    -endpoints_only-endpoints_only-endpoints_only () :

    -flat-flat-flat () :

    -only_cells-only_cells-only_cells () :

    -levels-levels-levels value () : 0

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 65

  • Tcl ()

    -pin_levels-pin_levels-pin_levels value () : 0

    -trace_arcs-trace_arcs-trace_arcs value : timingenabledall

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    from () :

    DAT

    all_fanout DAT

    all_fanin

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 66

  • Tcl ()

    all_ffs

    all_ffs [-quiet] [-verbose]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    XDC

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    report_property [lindex [all_ffs] 2 ]

    all_registers

    report_property

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 67

  • Tcl ()

    all_hsios

    HSIO

    all_hsios [-quiet] [-verbose]

    HSIO

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    XDC

    I/O (HSIO) HSIO

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    HSIO

    all_hsios

    set_false_path -from [all_hsios] -to [all_registers]

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 68

  • Tcl ()

    all_cpus

    all_dsps

    all_registers

    set_false_path

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 69

  • Tcl ()

    all_inputs

    all_inputs [-quiet] [-verbose]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    SDCXDC

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    all_inputs

    set_input_delay 5 -clock REFCLK [all_inputs]

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 70

  • Tcl ()

    all_outputs

    set_input_delay

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 71

  • Tcl ()

    all_latches

    all_latches [-quiet] [-verbose]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    XDC

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    all_latches

    set_false_path -from [all_mults] -to [all_latches]

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 72

  • Tcl ()

    all_ffs

    all_registers

    set_false_path

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 73

  • Tcl ()

    all_outputs

    all_outputs [-quiet] [-verbose]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    SDCXDC

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    all_outputs

    set_output_delay 5 -clock REFCLK [all_outputs]

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 74

  • Tcl ()

    all_inputs

    set_output_delay

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 75

  • Tcl ()

    all_rams

    RAM

    all_rams [-quiet] [-verbose]

    RAM

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    XDC

    RAM RAM

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    RAM

    all_rams

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 76

  • Tcl ()

    all_cpus

    all_dsps

    all_hsios

    all_registers

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 77

  • Tcl ()

    all_registers

    all_registers [-clock args] [-rise_clock args] [-fall_clock args] [-cells][-data_pins] [-clock_pins] [-async_pins] [-output_pins] [-level_sensitive][-edge_triggered] [-no_hierarchy] [-quiet] [-verbose]

    [-clock-clock-clock]

    [-rise_clock-rise_clock-rise_clock]

    [-fall_clock-fall_clock-fall_clock]

    [-cells-cells-cells] ()

    [-data_pins-data_pins-data_pins]

    [-clock_pins-clock_pins-clock_pins]

    [-async_pins-async_pins-async_pins] /

    [-output_pins-output_pins-output_pins]

    [-level_sensitive-level_sensitive-level_sensitive]

    [-edge_triggered-edge_triggered-edge_triggered]

    [-no_hierarchy-no_hierarchy-no_hierarchy]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    SDCXDC

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 78

  • Tcl ()

    -cells-cells-cells () :

    -clock-clock-clock args () :

    -rise_clock-rise_clock-rise_clock args () :

    -fall_clock-fall_clock-fall_clock args () :

    : -clock-clock-clock-rise_clock-rise_clock-rise_clock -fall_clock-fall_clock-fall_clock

    -level_sensitive-level_sensitive-level_sensitive () :

    -edge_triggered-edge_triggered-edge_triggered () :

    -data_pins-data_pins-data_pins () :

    -clock_pins-clock_pins-clock_pins () :

    -async_pins-async_pins-async_pins () :

    -output_pins-output_pins-output_pins () :

    : -*_pins-*_pins-*_pins 1 -data_pins-data_pins-data_pins-clock_pins-clock_pins-clock_pins-async_pins-async_pins-async_pins-output_pins-output_pins-output_pins

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    all_registers -fall_clock [all_clocks]

    set_min_delay 2.0 -to [all_registers -clock CCLK -data_pins]

    all_clocks

    set_msg_limit

    set_min_delay

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 79

  • Tcl ()

    archive_project

    archive_project [-force] [-exclude_run_results] [-quiet] [-verbose] [file]

    True

    [-force-force-force]

    [-exclude_run_results-exclude_run_results-exclude_run_results] run

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    [file]

    run ZIP

    -force-force-force () : ZIP ZIP -force-force-force

    -exclude_run_results-exclude_run_results-exclude_run_results : run

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 80

  • Tcl ()

    file () : archive_projectarchive_projectarchive_project ZIP file ZIP

    archive_project

    : project_name.zip

    project_3 proj3.zip

    current_project project_3

    archive_project -force -exclude_run_results proj3.zip

    : -force-force-force proj3.zip -exclude_run_results-exclude_run_results-exclude_run_results run run

    run

    current_project

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 81

  • Tcl ()

    assign_bd_address

    IP

    assign_bd_address [-target_address_space arg] [-quiet] [-verbose][objects ...]

    ""

    [-target_address_space-target_address_space-target_address_space]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    [objects]

    IP

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 82

  • Tcl ()

    check_timing

    check_timing [-file arg] [-name arg] [-override_defaults args][-include args] [-exclude args] [-quiet] [-verbose]

    [-file-file-file]

    [-name-name-name] GUI

    [-override_defaults-override_defaults-override_defaults]

    [-include-include-include]

    [-exclude-exclude-exclude]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    report_timingreport_timingreport_timing

    check_timingcheck_timingcheck_timing

    -verbose-verbose-verbose

    : Tcl STD GUI

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 83

  • Tcl ()

    generated_clocksgenerated_clocksgenerated_clocks :

    2

    loopsloopsloops :

    multiple_clockmultiple_clockmultiple_clock :

    set_case_analysisset_case_analysisset_case_analysis 1

    no_clockno_clockno_clock :

    no_input_delayno_input_delayno_input_delay : set_input_delayset_input_delayset_input_delay

    no_output_delayno_output_delayno_output_delay :

    set_output_delayset_output_delayset_output_delay

    partial_input_delaypartial_input_delaypartial_input_delay :

    set_input_delayset_input_delayset_input_delay -max-max-max set_input_delayset_input_delayset_input_delay -min-min-min

    set_input_delayset_input_delayset_input_delay -min-min-min -max-max-max

    :

    partial_output_delaypartial_output_delaypartial_output_delay :

    set_output_delayset_output_delayset_output_delay -max-max-max set_output_delayset_output_delayset_output_delay -min-min-min

    set_output_delayset_output_delayset_output_delay -min-min-min -max-max-max

    :

    unconstrained_endpointsunconstrained_endpointsunconstrained_endpoints :

    create_clockcreate_clockcreate_clock

    set_output_delayset_output_delayset_output_delay set_max_delayset_max_delayset_max_delay

    unexpandable_clocksunexpandable_clocksunexpandable_clocks : 1

    1000

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 84

  • Tcl ()

    -file-file-file arg () : Tcl

    :

    -name-name-name arg () : GUI [Timing]

    -override_defaults-override_defaults-override_defaults {args} () :

    -include-include-include args () :

    -exclude-exclude-exclude args () : check_timingcheck_timingcheck_timing

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    check_timingcheck_timingcheck_timing

    check_timing -exclude {loops generated_clocks}

    multiple_clocks -verbose-verbose-verbose

    get_clocksget_clocksget_clocks

    check_timing -verbose -override_defaults {multiple_clock}

    Checking multiple_clock.

    There are 2 register/latch pins with multiple clocks.

    procEngine/mode_du/set_reg[0]/C

    provEngine/mode_du/set_reg[1]/C

    get_clocks -of_objects [get_pin procEngine/mode_du/set_reg[0]/C]

    sysClk coreClk

    create_clock

    get_clocks

    report_timing

    set_case_analysis

    set_input_delay

    set_max_delay

    set_output_delay

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 85

  • Tcl ()

    checkpoint_vcd

    $dumpall Verilog

    checkpoint_vcd [-quiet] [-verbose]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    HDL VCD (Value Change Dump)

    Tcl Verilog $dumpall$dumpall$dumpall

    VCD HDL ASCII VCD

    VCD

    VCD Verilog IEEE (IEEE Std 1364-2005)

    checkpoint_vcdcheckpoint_vcdcheckpoint_vcd open_vcdopen_vcdopen_vcd log_vcdlog_vcdlog_vcd

    checkpoint_vcdcheckpoint_vcdcheckpoint_vcd

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    VCDObject : VCD VCDObject VCD

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 86

  • Tcl ()

    HDL VCD

    checkpoint_vcd foo.vcd

    flush_vcd

    log_vcd

    open_vcd

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 87

  • Tcl ()

    close_design

    close_design [-quiet] [-verbose]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    close_designclose_designclose_design save_designsave_designsave_design save_design_assave_design_assave_design_as

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    close_design

    : close_designclose_designclose_design current_designcurrent_designcurrent_design

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 88

  • Tcl ()

    current_design rtl_1

    close_design

    rtl_1rtl_1rtl_1 close_designclose_designclose_design

    current_design

    save_design

    save_design_as

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 89

  • Tcl ()

    close_hw_target

    close_hw_target [-quiet] [-verbose] [hw_target]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    [hw_target]

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 90

  • Tcl ()

    close_project

    close_project [-delete] [-quiet] [-verbose]

    [-delete-delete-delete]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    -delete-delete-delete :

    :

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    close_project

    close_projectclose_projectclose_project current_projectcurrent_projectcurrent_project

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 91

  • Tcl ()

    project_1

    current_project project_1

    close_project -delete

    : -delete-delete-delete

    current_project

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 92

  • Tcl ()

    close_saif

    close_saif [-quiet] [-verbose]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 93

  • Tcl ()

    close_sim

    close_sim [-quiet] [-verbose]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    Vivado

    :

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    close_sim

    current_sim

    launch_xsim

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 94

  • Tcl ()

    close_vcd

    VCD

    close_vcd [-quiet] [-verbose]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    VCD (Value Change Dump)

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    VCDObject () : VCD VCDObject VCD

    VCD

    close_vcd

    open_vcd

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 95

  • Tcl ()

    close_wave_config

    close_wave_config [-force] [-quiet] [-verbose] [wcfgobj]

    [-force-force-force]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    [wcfgobj] NULL

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 96

  • Tcl ()

    compile_simlib

    compile_simlib [-cfg_file] [-directory arg] [-exclude_sublib][-exclude_superseded] [-family arg] [-force] [-language arg] [-library arg][-precompiled_directory arg] [-simulator arg] [-simulator_exec_path arg][-source_library_path arg] [-32bit] [-quiet] [-verbose]

    [-cfg_file-cfg_file-cfg_file] compile_simlib.cfg

    [-directory-directory-directory] .

    [-exclude_sublib-exclude_sublib-exclude_sublib] EDK .pao (EDK )

    [-exclude_superseded-exclude_superseded-exclude_superseded] EDK (EDK )

    [-family-family-family] all

    [-force-force-force]

    [-language-language-language] all

    [-library-library-library] all

    [-precompiled_directory-precompiled_directory-precompiled_directory] compile_simlib

    [-simulator-simulator-simulator]

    [-simulator_exec_path-simulator_exec_path-simulator_exec_path]

    [-source_library_path-source_library_path-source_library_path] XILINX_PLANAHEAD (Vivado ) XILINX_EDK(EDK )

    [-32bit-32bit-32bit] 32

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 97

  • Tcl ()

    HDL Vivado ISim

    compile_simlibcompile_simlibcompile_simlib

    -cfg_file-cfg_file-cfg_file () : compxlib.cfg

    -directory-directory-directory arg () :

    :

    -exclude_sublib-exclude_sublib-exclude_sublib () : EDK .pao EDK

    (UG111)

    -exclude_superseded-exclude_superseded-exclude_superseded () : EDK

    EDK

    (UG111)

    -family-family-family arg () :

    virtex7 (Virtex-7)

    virtex7l (Virtex-7 )

    kintex7 (Kintex-7)

    kintex7l (Kintex-7 )

    artix7 (Artix-7)

    artix7l (Atix-7 )

    zynq (Zynq-7000 EPP)

    -force-force-force () :

    -language-language-language [[[ verilogverilogverilog ||| vhdlvhdlvhdl ||| allallall ]]] () :

    -simulator-simulator-simulator

    Verilog VHDL

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 98

  • Tcl ()

    -library-library-library arg () :

    all

    unisim

    simprim

    xilinxcorelib

    edk

    -lib

    .. -library unisim -library simprim ..

    : EDK (-lib edk)EDK UNISIM SIMPRIM

    ISE

    -precompiled_directory-precompiled_directory-precompiled_directory arg () :

    -simulator-simulator-simulator arg () :

    modelsim

    questasim

    ies (Linux )

    vcs_mx (Linux )

    -simulator_exec_path-simulator_exec_path-simulator_exec_path arg () : $PATH %PATH% $PATH

    %PATH%

    -source_library_path-source_library_path-source_library_path arg () : ($XILINX$XILINX_PLANAHEAD $XILINX_EDK)

    :

    -32bit-32bit-32bit () : 64 32

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    Virtex-7 ModelSim (VHDL) UNISIM

    SIMPRIM

    compile_simlib -simulator modelsim -family virtex7 -library unisim \

    -library simprim -language vhdl

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 99

  • Tcl ()

    launch_modelsim

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 100

  • Tcl ()

    config_timing_analysis

    config_timing_analysis [-disable_paths_between_unrelated_ucf_clocks arg][-enable_input_delay_default_clock arg] [-enable_preset_clear_arcs arg][-quiet] [-verbose]

    [-disable_paths_between-disable_paths_between-disable_paths_between _unrelated_ucf_clocks_unrelated_ucf_clocks_unrelated_ucf_clocks] UCF truefalse SDC

    [-enable_input_delay_default-enable_input_delay_default-enable_input_delay_default _clock_clock_clock] SDC truefalse UCF

    [-enable_preset_clear_arcs-enable_preset_clear_arcs-enable_preset_clear_arcs] truefalse

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    :

    -disable_paths_between_unrelated_ucf_clocks-disable_paths_between_unrelated_ucf_clocks-disable_paths_between_unrelated_ucf_clocks [[[ truetruetrue ||| falsefalsefalse ]]] () : UCF

    true false

    false

    : UCF

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 101

  • Tcl ()

    -enable_input_delay_default_clock-enable_input_delay_default_clock-enable_input_delay_default_clock [[[ truetruetrue ||| falsefalsefalse ]]] () :

    true false false

    : SDC

    -enable_preset_clear_arcs-enable_preset_clear_arcs-enable_preset_clear_arcs [[[ truetruetrue ||| falsefalsefalse ]]] () :

    true false false

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    UCF

    config_timing_analysis -disable_paths_between_unrelated_ucf_clocks true

    config_timing_corners

    report_timing

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 102

  • Tcl ()

    config_timing_corners

    /

    config_timing_corners [-corner arg] [-delay_type arg] [-setup] [-hold][-quiet] [-verbose]

    [-corner-corner-corner] SlowFast

    [-delay_type-delay_type-delay_type] nonemaxminmin_max

    [-setup-setup-setup] (-delay_type max )

    [-hold-hold-hold] (-delay_type min )

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    /

    :

    -corner-corner-corner [[[ SlowSlowSlow ||| FastFastFast ]]] () : Slow

    Fast

    : /

    -delay_type-delay_type-delay_type value () : maxmin min_max

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 103

  • Tcl ()

    -setup-setup-setup () : -delay_type-delay_type-delay_type maxmaxmax

    -hold-hold-hold () : -delay_type-delay_type-delay_type minminmin

    : -setup-setup-setup -hold-hold-hold -delay_type-delay_type-delay_type min_maxmin_maxmin_max

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    config_timing_corners -corner Slow -setup -hold

    config_timing_corners -corner Slow -delay_type min_max

    :

    config_timing_corners -corner Fast -delay_type min

    config_timing_analysis

    report_timing

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 104

  • Tcl ()

    config_webtalk

    IP WebTalk /

    config_webtalk [-info] [-user arg] [-install arg] [-quiet] [-verbose]

    [-info-info-info] WebTalk

    [-user-user-user] WebTalk / on off

    [-install-install-install] WebTalk / on off off -user WebTalk

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    WebTalk FPGA

    IP

    WebTalk

    IP WebTalk /

    WebPACK WebTalk

    WebTalk WebPACK

    WebPACK

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 105

  • Tcl ()

    : WebPACK WebPACK WebPACK 34746

    -info : WebTalk WebTalk

    WebTalk

    -user arg : WebTalk

    -install arg : WebTalk

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    WebTalk

    config_webtalk -info

    INFO: [Coretcl-120] Webtalk has been disabled by the current user.

    INFO: [Coretcl-123] Webtalk has been enabled for the current installation.

    INFO: [Coretcl-110] This combination of user/install settings means that WebTalk is currently disabled.

    WebTalk

    config_webtalk -user on

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 106

  • Tcl ()

    connect_bd_intf_net

    connect_bd_intf_net [-intf_net arg] [-quiet] [-verbose] object1 object2

    0

    [-intf_net-intf_net-intf_net] 1

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    object1

    object2

    IP

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 107

  • Tcl ()

    connect_bd_net

    connect_bd_net [-net arg] [-quiet] [-verbose] objects ...

    0

    [-net-net-net] 1

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    objects

    IP

    (bd)

    get_bd_portsget_bd_portsget_bd_ports get_bd_pinsget_bd_pinsget_bd_pins

    -net-net-net arg () : 1

    :

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    objects :

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 108

  • Tcl ()

    connect_bd_net [get_bd_ports /clk] [get_bd_pins /mycell/mysubcell/clk]

    : /clk /mycell/mysubcell/clk -net-net-net

    get_bd_pins

    get_bd_ports

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 109

  • Tcl ()

    connect_debug_port

    connect_debug_port [-channel_start_index arg] [-quiet][-verbose] port nets ...

    [-channel_start_index-channel_start_index-channel_start_index]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    port

    nets

    ChipScope

    ChipScope

    create_debug_port

    set_propertyset_propertyset_property port_widthport_widthport_width

    disconnect_debug_portdisconnect_debug_portdisconnect_debug_port

    ChipScope

    CORE Generator implement_debug_coreimplement_debug_coreimplement_debug_core

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 110

  • Tcl ()

    -channel_start_index-channel_start_index-channel_start_index arg : 0

    :

    port : core_name/port_name

    nets :

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    myCore TRIG port_width

    3 ( 2)

    create_debug_port myCore TRIG

    set_property port_width 8 [get_debug_ports myCore/TRIG0]

    connect_debug_port myCore/TRIG0 [get_nets [list m0_ack_o m0_cyc_i m0_err_o \

    m0_rty_o m0_stb_i m0_we_i ]] -channel_start_index 2

    :

    create_debug_port

    disconnect_debug_port

    get_debug_ports

    get_nets

    implement_debug_core

    set_property

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 111

  • Tcl ()

    connect_hw_server

    connect_hw_server [-host arg] [-port arg] [-password arg] [-launch arg][-quiet] [-verbose]

    [-host-host-host] localhost

    [-port-port-port] 50001

    [-password-password-password]

    [-launch-launch-launch] No

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 112

  • Tcl ()

    connect_net

    connect_net [-hier] [-basename arg] -net arg -objects args [-quiet] [-verbose]

    [-hier-hier-hier] (-basename )

    [-basename-basename-basename] / (-hier ) (-net )

    -net-net-net

    -objects-objects-objects

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    1

    write_checkpointwrite_checkpointwrite_checkpoint

    write_*write_*write_* VerilogVHDL

    EDIF

    : RTL

    -net-net-net arg :

    : create_netcreate_netcreate_net -bus_from-bus_from-bus_from -bus_to-bus_to-bus_to

    connect_netconnect_netconnect_net

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 113

  • Tcl ()

    -objects-objects-objects args : 1

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    myDMA myEnable

    create_port -direction IN enableIncreate_pin -direction IN myDMA/encreate_net myEnableconnect_net -net myEnable -objects {enableIn myDMA/en}

    32 loop 1

    create_port -from 0 -to 31 -direction IN dataINcreate_pin -bus_from 0 -bus_to 31 -direction IN myDMA/datacreate_net -bus_from 0 -bus_to 31 dataBusfor {set x 0} {$x

  • Tcl ()

    convert_ip

    IP IP

    convert_ip [-quiet] [-verbose] objects ...

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    objects IP

    IP

    IP Vivado IP

    IP IP

    Vivado IP

    IP IP IP blk_mem_gen

    v7.1 IP

    :

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    objects : IP 1

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 115

  • Tcl ()

    IP

    convert_ip [get_ips]

    : IP

    create_ip

    import_ip

    upgrade_ip

    validate_ip

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 116

  • Tcl ()

    copy_bd_objs

    copy_bd_objs [-prefix arg] [-to_design arg] [-quiet] [-verbose][parent_cell] objects ...

    0 ""

    [-prefix-prefix-prefix]

    [-to_design-to_design-to_design]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    [parent_cell]

    objects

    IP

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 117

  • Tcl ()

    copy_ip

    IP

    copy_ip -name arg [-quiet] [-verbose] objects ...

    IP

    -name-name-name IP

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    objects IP

    IP

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 118

  • Tcl ()

    create_bd_addr_seg

    create_bd_addr_seg -range arg -offset arg [-quiet] [-verbose][parent_addr_space ] [slave_segment ] name

    ""

    -range-range-range

    -offset-offset-offset

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    [parent_addr_space]

    [slave_segment]

    name

    IP

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 119

  • Tcl ()

    create_bd_cell

    create_bd_cell [-vlnv arg] [-type arg] [-quiet] [-verbose] name

    ""

    [-vlnv-vlnv-vlnv] VLNV

    [-type-type-type] IP

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    name

    IP

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 120

  • Tcl ()

    create_bd_design

    create_bd_design [-quiet] [-verbose] name

    ""

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    name

    IP

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 121

  • Tcl ()

    create_bd_intf_net

    create_bd_intf_net [-quiet] [-verbose] name

    ""

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    name intf_net

    IP

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 122

  • Tcl ()

    create_bd_intf_pin

    create_bd_intf_pin -vlnv arg -mode arg [-quiet] [-verbose] name

    ""

    -vlnv-vlnv-vlnv VLNV

    -mode-mode-mode

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    name

    IP

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 123

  • Tcl ()

    create_bd_intf_port

    create_bd_intf_port -vlnv arg -mode arg [-quiet] [-verbose] name

    ""

    -vlnv-vlnv-vlnv VLNV

    -mode-mode-mode

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    name

    IP

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 124

  • Tcl ()

    create_bd_net

    create_bd_net [-quiet] [-verbose] name

    ""

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    name

    IP

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 125

  • Tcl ()

    create_bd_pin

    create_bd_pin [-from arg] [-to arg] -dir arg [-type arg] [-intf arg] [-quiet][-verbose] name

    ""

    [-from-from-from]

    [-to-to-to]

    -dir-dir-dir

    [-type-type-type]

    [-intf-intf-intf]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    name

    IP

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 126

  • Tcl ()

    create_bd_port

    create_bd_port [-from arg] [-to arg] -dir arg [-type arg] [-intf arg][-quiet] [-verbose] name

    ""

    [-from-from-from]

    [-to-to-to]

    -dir-dir-dir

    [-type-type-type]

    [-intf-intf-intf]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    name

    IP

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 127

  • Tcl ()

    create_cell

    create_cell -reference arg [-black_box] [-quiet] [-verbose] cells ...

    -reference-reference-reference

    [-black_box-black_box-black_box]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    cells

    write_checkpointwrite_checkpointwrite_checkpoint

    write_*write_*write_* VerilogVHDL

    EDIF

    : RTL

    -reference-reference-reference arg :

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 128

  • Tcl ()

    -black_box-black_box-black_box () :

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    cells :

    get_hierarchy_separatorget_hierarchy_separatorget_hierarchy_separator

    or1200_cpu 3

    create_cell -reference or1200_cpu myCell1 myCell2 myCell3

    set_hierarchy_separator |create_cell -reference dmaBlock -black_box usbEngine0|myDMA

    : -black_box-black_box-black_box -reference-reference-reference

    remove_cell

    set_hierarchy_separator

    write_checkpoint

    write_edif

    write_verilog

    write_vhdl

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 129

  • Tcl ()

    create_clock

    create_clock -period arg [-name arg] [-waveform args] [-add] [-quiet][-verbose] [objects]

    -period-period-period 0

    [-name-name-name]

    [-waveform-waveform-waveform]

    [-add-add-add]

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    [objects]

    SDCXDC

    ()

    create_generated_clockcreate_generated_clockcreate_generated_clock

    :

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 130

  • Tcl ()

    -period-period-period arg : 0 10.0

    : set_unitsset_unitsset_units (ns)

    -name-name-name arg () : (objects) objects -name-name-name

    -waveform-waveform-waveform arg1 arg2 ... () : 1

    2

    : 0

    1/2

    -add-add-add () :

    -name-name-name

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    objects : -add-add-add

    objects

    :

    bftClk

    create_clock -name bftClk -period 5.000 [get_ports bftClk]

    : get_portsget_portsget_ports

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 131

  • Tcl ()

    all_clocks

    create_generated_clock

    get_clocks

    set_input_delay

    set_output_delay

    set_propagated_clock

    set_units

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 132

  • Tcl ()

    create_debug_core

    ChipScope

    create_debug_core [-quiet] [-verbose] name type

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    name

    type

    ChipScope

    ChipScope

    :

    CLK (TRIG) CLK

    1

    create_debug_port

    connect_debug_port

    name : ChipScope

    type : ChipScope chipscope_ila_v1 ILA

    ChipScope Pro

    (UG029)

    : ILA 1 ILA ICON

    1 ICON

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 133

  • Tcl ()

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    ChipScope

    open_netlist_design -name netlist_1

    create_debug_core myCore chipscope_ila_v1

    : chipscope_ila_v1

    myCore

    report_property [create_debug_core myCore chipscope_ila_v1]

    set_propertyset_propertyset_property

    set_property enable_storage_qualification false [get_debug_cores myCore]

    connect_debug_port

    create_debug_port

    delete_debug_core

    get_debug_cores

    implement_debug_core

    read_chipscope_cdc

    report_debug_core

    report_property

    set_property

    write_chipscope_cdc

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 134

  • Tcl ()

    create_debug_port

    ChipScope

    create_debug_port [-quiet] [-verbose] name type

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    name

    type

    ChipScope

    ChipScope

    create_debug_core CLK (TRIG)

    DATA (TRIG_OUT) TRIG

    1 1 TRIG DATA

    set_propertyset_propertyset_property port_widthport_widthport_width ()

    : CLK TRIG_OUT 1

    connect_debug_portconnect_debug_portconnect_debug_port disconnect_debug_portdisconnect_debug_portdisconnect_debug_port

    name : ChipScope create_debug_portread_chipscope_cdc

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 135

  • Tcl ()

    type : CLKDATATRIG TRIG_OUT ChipScope Pro

    (UG029)

    : ILA CLKDATATRIG_OUT 1

    (TRIG)

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    ChipScope DATA

    create_debug_core myCore chipscope_ila_v1

    create_debug_port myCore DATA

    myCore 8

    create_debug_port myCore TRIG

    set_property PORT_WIDTH 8 [get_debug_ports myCore/TRIG0]

    connect_debug_port -channel_start_index 1 myCore/TRIG0 {m1_cyc_i \

    m1_ack_o m1_err_o m1_rty_o}

    : core_name/port_name

    connect_debug_port

    create_debug_core

    disconnect_debug_port

    read_chipscope_cdc

    set_property

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 136

  • Tcl ()

    create_drc_check

    DRC

    create_drc_check [-category arg] -name arg [-desc arg] [-msg arg][-rule_body arg] [-quiet] [-verbose]

    [-category-category-category] DRC User Defined

    -name-name-name DRC PREFIX-id (PREFIX 4 6 id ) id

    [-desc-desc-desc] DRC User rule - default description

    [-msg-msg-msg] DRC %MSG_STRING%NETLIST_ELEMENT%SITE_GROUP%CLOCK_REGION%BANK

    [-rule_body-rule_body-rule_body] Tcl Tcl

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    DRC

    report_drcreport_drcreport_drc DRC (drc_check)

    report_drcreport_drcreport_drc Tcl

    Tcl

    create_drc_violationcreate_drc_violationcreate_drc_violation

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 137

  • Tcl ()

    Tcl Tcl Tcl

    report_drcreport_drcreport_drc sourcesourcesource

    Tcl create_drc_violationcreate_drc_violationcreate_drc_violation

    create_drc_checkcreate_drc_checkcreate_drc_check -rule_body-rule_body-rule_body Tcl

    DRC

    create_drc_ruledeckcreate_drc_ruledeckcreate_drc_ruledeck add_drc_checksadd_drc_checksadd_drc_checks

    report_drcreport_drcreport_drc

    drc_check drc_check

    delete_drc_check

    -category-category-category arg () : User Defined GUI DRC

    -name-name-name arg : -rule_body-rule_body-rule_body Tcl create_drc_violationcreate_drc_violationcreate_drc_violation DRC

    4 6

    ID (ABCD-1ABCD-23 )

    -desc-desc-desc arg () : User Rule GUI DRC DRC

    -msg-msg-msg arg () :

    report_drcreport_drcreport_drc

    %MSG_STRING (%STR) : create_drc_violationcreate_drc_violationcreate_drc_violation -msg-msg-msg

    : create_drc_checkcreate_drc_checkcreate_drc_check -msg-msg-msg %STR

    create_drc_violation -rule_body-rule_body-rule_body DRC

    %NETLIST_ELEMENT (%ELG) :

    %SITE_GROUP (%SIG) :

    %CLOCK_REGION (%CRG) :

    %BANK (%PBG) : I/O

    -rule_body-rule_body-rule_body arg () : Tcl Tcl -rule_body-rule_body-rule_body Tcl report_drcreport_drcreport_drc

    sourcesourcesource

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 138

  • Tcl ()

    Tcl create_drc_violation

    DRC -msg-msg-msg

    -quiet-quiet-quiet () :

    TCL_OK

    -verbose-verbose-verbose () :

    : set_msg_limitset_msg_limitset_msg_limit

    RAMW-1

    dataWidthCheck

    create_drc_check -name {RAMW-1} -category {RAMB} \

    -desc {Data Width Check} -rule_body dataWidthCheck

    Tcl dataWidthCheckdataWidthCheckdataWidthCheck RAMW-1

    -rule_body-rule_body-rule_body Tcl report_drc

    sourcesourcesource

    # This is a simplistic check -- report BRAM cells with WRITE_WIDTH_B wider than 36.proc dataWidthCheck {} {

    # list to hold violationsset vios {}# iterate through the objects to be checkedforeach bram [get_cells -hier -filter {PRIMITIVE_SUBGROUP == bram}] {

    set bwidth [get_property WRITE_WIDTH_B $bram]if { $bwidth > 36} {

    # define the message to report when violations are foundset msg "On cell %ELG, WRITE_WIDTH_B is $bwidth"set vio [ create_drc_violation -name {RAMW-1} -msg $msg $bram ]lappend vios $vio

    }}if {[llength $vios] > 0} {

    return -code error $vios} else {

    return {}}

    }create_drc_check -name {RAMW-1} \

    -category {RAMB Checks} \-desc {Data Width Check} \-rule_body dataWidthCheck

    : Tcl report_drcreport_drcreport_drc create_drc_checkcreate_drc_checkcreate_drc_check Tcl dataWidthCheckdataWidthCheckdataWidthCheck RAMW-1

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 139

  • Tcl ()

    add_drc_checks

    create_drc_ruledeck

    create_drc_violation

    delete_drc_check

    get_drc_checks

    get_drc_vios

    report_drc

    Vivado Design Suite Tcl

    UG835 (v 2012.3) 2012 10 16 http://japan.xilinx.com 140

  • Tcl ()

    create_drc_ruledeck

    1 DRC

    create_drc_ruledeck [-quiet] [-verbose] ruledecks ...

    DRC

    [-quiet-quiet-quiet]

    [-verbose-verbose-verbose]

    ruledecks

    DRC

    report_drc 1

    D