vim-polyglot/syntax/xdc.vim
2019-04-23 11:38:41 +02:00

198 lines
12 KiB
VimL

if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'xdc') != -1
finish
endif
" Vim syntax file
" Language: XDC - Xilinx Design Constraints
" Author: Amal Khailtash <amal.khailtash@gmail.com>
" Maintainer: Amal Khailtash <amal.khailtash@gmail.com>
" Last Change: Tue, Oct 09, 2012 7:46:15 PM
" Credits: Based on SDC Vim syntax file
" Version: 1.2
" Revision Comments:
" Amal Khailtash <amal.khailtash@gmail.com> - Tue, Oct 09, 2012 7:46:15 PM
" 1.2 - Added property values and constants
" 1.1 - Cleanup
" 1.0 - Initial revision
" Quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
" Read the TCL syntax to start with
runtime! syntax/tcl.vim
" ----------------------------------------------------------------------------------------------------------------------
" SDC-specific keywords
" ----------------------------------------------------------------------------------------------------------------------
" Operating Conditions
syntax keyword sdcOperatingConditions set_operating_conditions
" System Interface
syntax keyword sdcSystemInterface set_load
" Timing Constraints
syntax keyword sdcTimingConstraints create_clock create_generated_clock group_path
syntax keyword sdcTimingConstraints set_clock_groups set_clock_latency set_clock_sense
syntax keyword sdcTimingConstraints set_clock_uncertainty set_data_check set_disable_timing
syntax keyword sdcTimingConstraints set_input_delay set_max_time_borrow set_output_delay
syntax keyword sdcTimingConstraints set_propagated_clock
" Timing Exceptions
syntax keyword sdcTimingExceptions set_false_path set_max_delay set_min_delay set_multicycle_path
" Logic Assignments
syntax keyword sdcLogicAssignments set_case_analysis set_logic_dc set_logic_one set_logic_zero
" Design Object Access Commands
syntax keyword sdcObjectAccessCommands all_clocks all_fanin all_fanout all_inputs all_outputs
syntax keyword sdcObjectAccessCommands all_registers current_design get_cells get_clocks get_nets
syntax keyword sdcObjectAccessCommands get_pins get_ports get_timing_arcs get_timing_paths
" General Purpose Commands
syntax keyword sdcGeneralPurposeCommands current_instance set_hierarchy_separator set_units
" ----------------------------------------------------------------------------------------------------------------------
" Unsupported SDC Commands
" ----------------------------------------------------------------------------------------------------------------------
" Unsupported
syntax keyword sdcCollection_Unsupported foreach_in_collection
" Wire Load Models
syntax keyword sdcWireLoadModels_Unsupported set_wire_load_min_block_size set_wire_load_mode
syntax keyword sdcWireLoadModels_Unsupported set_wire_load_model set_wire_load_selection_group
" System Interface
syntax keyword sdcSystemInterface_Unsupported set_drive set_driving_cell set_fanout_load
syntax keyword sdcSystemInterface_Unsupported set_input_transition set_port_fanout_number
" Design Rule Constraints
syntax keyword sdcDesignRuleConstraints_Unsupported set_max_capacitance set_min_capacitance set_max_fanout
syntax keyword sdcDesignRuleConstraints_Unsupported set_max_transition
" Timing Constraints
syntax keyword sdcTimingConstraints_Unsupported set_clock_gating_check
syntax keyword sdcTimingConstraints_Unsupported set_clock_transition
syntax keyword sdcTimingConstraints_Unsupported set_ideal_latency set_ideal_network set_ideal_transition
syntax keyword sdcTimingConstraints_Unsupported set_resistance set_timing_derate
" Area Constraints
syntax keyword sdcAreaConstraints_Unsupported set_max_area
" Multivoltage and power optimization constraints
syntax keyword sdcMultivoltagePowerOpt_Unsupported create_voltage_area set_level_shifter_strategy
syntax keyword sdcMultivoltagePowerOpt_Unsupported set_level_shifter_threshold set_max_dynamic_power
syntax keyword sdcMultivoltagePowerOpt_Unsupported set_max_leakage_power
" Altera Unsupported
syntax keyword sdcAltera_Unsupported create_timing_netlist update_timing_netlist
" ----------------------------------------------------------------------------------------------------------------------
" XDC-specific extension keywords
" ----------------------------------------------------------------------------------------------------------------------
" Operating Conditions
syntax keyword xdcOperatingConditions report_operating_conditions reset_operating_conditions
" Timing Constraints
syntax keyword xdcTimingConstraints set_input_jitter set_external_delay set_system_jitter
" Logic Assignments
syntax keyword xdcLogicAssignments set_logic_unconnected
" Design Object Access Commands
syntax keyword xdcObjectAccessCommands all_cpus all_dsps all_ffs all_hsios all_latches all_rams
syntax keyword xdcObjectAccessCommands get_generated_clocks get_iobanks get_package_pins
syntax keyword xdcObjectAccessCommands get_path_groups get_sites filter set_property
" General Purpose Commands
syntax keyword xdcGeneralPurposeCommands get_hierarchy_separator
" Floorplanning Commands
syntax keyword xdcFloorplanCommands add_cells_to_pblock create_pblock delete_pblock get_pblocks
syntax keyword xdcFloorplanCommands remove_cells_from_pblock resize_pblock
" Power-related Commands
syntax keyword xdcPowerCommands set_default_switching_activity set_power_opt
syntax keyword xdcPowerCommands set_switching_activity
" Power-related Commands
syntax keyword xdcPinPlanningCommands set_package_pin_val
" ----------------------------------------------------------------------------------------------------------------------
" Constants
" ----------------------------------------------------------------------------------------------------------------------
syntax keyword xdcConstant NO YES FALSE TRUE DISABLE ENABLE NONE BACKBONE SLOW FAST DONTCARE
syntax keyword xdcConstant NORMAL HIGH IBUF IFD BOTH HALT CONTINUE CORRECT_AND_CONTINUE
syntax keyword xdcConstant CORRECT_AND_HALT PRE_COMPUTED FIRST_READBACK
syntax keyword xdcConstant DIFF_HSTL_I DIFF_HSTL_II DIFF_HSTL_II_18 DIFF_HSTL_II_DCI
syntax keyword xdcConstant DIFF_HSTL_II_DCI_18 DIFF_HSTL_II_T_DCI DIFF_HSTL_II_T_DCI_18
syntax keyword xdcConstant DIFF_HSTL_II__T_DCI DIFF_HSTL_I_18 DIFF_HSTL_I_DCI
syntax keyword xdcConstant DIFF_HSTL_I_DCI_18 DIFF_HSUL_12_DCI DIFF_SSTL12_DCI
syntax keyword xdcConstant DIFF_SSTL12_T_DCI DIFF_SSTL135 DIFF_SSTL135_DCI DIFF_SSTL135_R
syntax keyword xdcConstant DIFF_SSTL135_T_DCI DIFF_SSTL15 DIFF_SSTL15_DCI DIFF_SSTL15_R
syntax keyword xdcConstant DIFF_SSTL15_T_DCI DIFF_SSTL18_I DIFF_SSTL18_II DIFF_SSTL18_II_DCI
syntax keyword xdcConstant DIFF_SSTL18_II_T_DCI DIFF_SSTL18_I_DCI HSLVDCI_15 HSLVDCI_18 HSTL_I
syntax keyword xdcConstant HSTL_II HSTL_II_18 HSTL_II_DCI HSTL_II_DCI_18 HSTL_II_T_DCI
syntax keyword xdcConstant HSTL_II_T_DCI_18 HSTL_I_18 HSTL_I_DCI HSTL_I_DCI_18 HSUL_12_DCI
syntax keyword xdcConstant LVCMOS12 LVCMOS18 LVCMOS25 LVDCI_15 LVDCI_18 LVDCI_DV2_15 LVDS
syntax keyword xdcConstant LVDCI_DV2_18 SSTL12_DCI SSTL12_T_DCI SSTL135 SSTL135_DCI SSTL135_R
syntax keyword xdcConstant SSTL135_T_DCI SSTL15 SSTL15_DCI SSTL15_R SSTL15_T_DCI SSTL18_I
syntax keyword xdcConstant SSTL18_II SSTL18_II_DCI SSTL18_II_T_DCI SSTL18_I_DCI
syntax keyword xdcConstant TUNED_SPLIT UNTUNED_SPLIT_25 UNTUNED_SPLIT_40 UNTUNED_SPLIT_50
syntax keyword xdcConstant UNTUNED_SPLIT_60 UNTINED_SPLIT_75 TUNED UNTUNED_25 UNTUNED_50
syntax keyword xdcConstant UNTUNED_75
" ----------------------------------------------------------------------------------------------------------------------
" Properties
" ----------------------------------------------------------------------------------------------------------------------
syntax keyword xdcProperty ASYNC_REG BEL CLOCK_DEDICATED_ROUTE COMPATIBLE_CONFIG_MODES
syntax keyword xdcProperty DCI_CASCADE DIFF_TERM DONT_TOUCH DRIVE HIODELAY_GROUP HLUTNM IN_TERM
syntax keyword xdcProperty INTERNAL_VREF IOB IODELAY_GROUP IOSTANDARD KEEP_HIERARCHY KEEPER LOC
syntax keyword xdcProperty LUTNM MARK_DEBUG OUT_TERM PACKAGE_PIN POST_CRC POST_CRC_ACTION
syntax keyword xdcProperty POST_CRC_FREQ POST_CRC_INIT_FLAG POST_CRC_SOURCE PROHIBIT PULLDOWN
syntax keyword xdcProperty PULLUP SLEW VCCAUX_IO
" ----------------------------------------------------------------------------------------------------------------------
" Command Flags
" ----------------------------------------------------------------------------------------------------------------------
syntax match xdcFlags "[[:space:]]-[[:alpha:]]*\>"
" ----------------------------------------------------------------------------------------------------------------------
" Define the default highlighting.
" ----------------------------------------------------------------------------------------------------------------------
highligh default link sdcOperatingConditions Operator
highligh default link sdcSystemInterface Operator
highligh default link sdcTimingConstraints Operator
highligh default link sdcTimingExceptions Operator
highligh default link sdcLogicAssignments Operator
highligh default link sdcObjectAccessCommands Operator
highligh default link sdcGeneralPurposeCommands Operator
highligh default link sdcCollection_Unsupported WarningMsg
highligh default link sdcWireLoadModels_Unsupported WarningMsg
highligh default link sdcSystemInterface_Unsupported WarningMsg
highligh default link sdcDesignRuleConstraints_Unsupported WarningMsg
highligh default link sdcTimingConstraints_Unsupported WarningMsg
highligh default link sdcAreaConstraints_Unsupported WarningMsg
highligh default link sdcMultivoltagePowerOpt_Unsupported WarningMsg
highligh default link sdcAltera_Unsupported WarningMsg
highligh default link xdcOperatingConditions Operator
highligh default link xdcTimingConstraints Operator
highligh default link xdcLogicAssignments Operator
highligh default link xdcObjectAccessCommands Operator
highligh default link xdcGeneralPurposeCommands Operator
highligh default link xdcFloorplanCommands Operaror
highligh default link xdcPowerCommands Operaror
highligh default link xdcPinPlanningCommands Operaror
highligh default link xdcConstant Constant
highligh default link xdcProperty Type
highligh default link xdcFlags Special
let b:current_syntax = "xdc"
" vim: fileformat=unix tabstop=2 shiftwidth=2 expandtab