Skip to content

Commit 1724ddb

Browse files
daniel-s-wchrisbra
authored andcommitted
runtime(sdc): update syntax to SDC-standard 2.1
Looking into the current standard for Synopsis Design Constraints (SDC) from their [Technology Access Program](https://www.synopsys.com/community/interoperability-programs/tap-in.html), one can see that the current state of the sdc-syntax file is very outdated as well as short in coverage of keywords. This commit pursues to add all the missing keywords from the current standard (Rev. 2.1). closes: #15281 Signed-off-by: daniel-s-w <59746710+daniel-s-w@users.noreply.github.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
1 parent c1b3984 commit 1724ddb

1 file changed

Lines changed: 41 additions & 5 deletions

File tree

runtime/syntax/sdc.vim

Lines changed: 41 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
" Vim syntax file
22
" Language: SDC - Synopsys Design Constraints
33
" Maintainer: Maurizio Tranchero - maurizio.tranchero@gmail.com
4-
" Last Change: Thu Mar 25 17:35:16 CET 2009
54
" Credits: based on TCL Vim syntax file
65
" Version: 0.3
6+
" Last Change: Thu Mar 25 17:35:16 CET 2009
7+
" 2024 Jul 17 by Vim Project (update to SDC 2.1)
78

89
" Quit when a syntax file was already loaded
910
if exists("b:current_syntax")
@@ -13,16 +14,48 @@ endif
1314
" Read the TCL syntax to start with
1415
runtime! syntax/tcl.vim
1516

16-
" SDC-specific keywords
17+
" TCL extension related to SDC and available from some vendors
18+
" (not defined in SDC standard!)
1719
syn keyword sdcCollections foreach_in_collection
18-
syn keyword sdcObjectsQuery get_clocks get_ports
1920
syn keyword sdcObjectsInfo get_point_info get_node_info get_path_info
2021
syn keyword sdcObjectsInfo get_timing_paths set_attribute
21-
syn keyword sdcConstraints set_false_path
22+
23+
" SDC rev. 2.1 specific keywords
24+
syn keyword sdcObjectsQuery get_clocks get_ports get_cells
25+
syn keyword sdcObjectsQuery get_pins get_nets all_inputs
26+
syn keyword sdcObjectsQuery all_outputs all_registers all_clocks
27+
syn keyword sdcObjectsQuery get_libs get_lib_cells get_lib_pins
28+
29+
syn keyword sdcConstraints set_false_path set_clock_groups set_sense
30+
syn keyword sdcConstraints set_propagated_clock set_clock_gating_check
31+
syn keyword sdcConstraints set_ideal_latency set_ideal_network
32+
syn keyword sdcConstraints set_ideal_transistion set_max_time_borrow
33+
syn keyword sdcConstraints set_data_check group_path set_max_transition
34+
syn keyword sdcConstraints set_max_fanout set_driving_cell
35+
syn keyword sdcConstraints set_port_fanout_number set_multi_cycle_path
36+
syn keyword sdcConstraints set_disable_timing set_min_pulse_width
37+
2238
syn keyword sdcNonIdealities set_min_delay set_max_delay
2339
syn keyword sdcNonIdealities set_input_delay set_output_delay
2440
syn keyword sdcNonIdealities set_load set_min_capacitance set_max_capacitance
41+
syn keyword sdcNonIdealities set_clock_latency set_clock_transition set_clock_uncertainty
42+
syn keyword sdcNonIdealities set_resistance set_timing_derate set_drive
43+
syn keyword sdcNonIdealities set_input_transition set_fanout_load
44+
2545
syn keyword sdcCreateOperations create_clock create_timing_netlist update_timing_netlist
46+
syn keyword sdcCreateOperations create_generated_clock
47+
48+
syn keyword sdcPowerArea set_max_area create_voltage_area
49+
syn keyword sdcPowerArea set_level_shifter_threshold set_max_dynamic_power
50+
syn keyword sdcPowerArea set_level_shifter_strategy set_max_leakage_power
51+
52+
syn keyword sdcModeConfig set_case_analysis set_logic_dc
53+
syn keyword sdcModeConfig set_logic_zero set_logic_one
54+
55+
syn keyword sdcMiscCommmands sdc_version set_wire_load_selection_group
56+
syn keyword sdcMiscCommmands set_units set_wire_load_mode set_wire_load_model
57+
syn keyword sdcMiscCommmands set_wire_load_min_block_size set_operating_conditions
58+
syn keyword sdcMiscCommmands current_design
2659

2760
" command flags highlighting
2861
syn match sdcFlags "[[:space:]]-[[:alpha:]_]*\>"
@@ -31,9 +64,12 @@ syn match sdcFlags "[[:space:]]-[[:alpha:]_]*\>"
3164
hi def link sdcCollections Repeat
3265
hi def link sdcObjectsInfo Operator
3366
hi def link sdcCreateOperations Operator
34-
hi def link sdcObjectsQuery Operator
67+
hi def link sdcObjectsQuery Function
3568
hi def link sdcConstraints Operator
3669
hi def link sdcNonIdealities Operator
70+
hi def link sdcPowerArea Operator
71+
hi def link sdcModeConfig Operator
72+
hi def link sdcMiscCommmands Operator
3773
hi def link sdcFlags Special
3874

3975
let b:current_syntax = "sdc"

0 commit comments

Comments
 (0)