1f5f44050SHiroo HAYASHI.. _ctags_lang-verilog(7): 2f5f44050SHiroo HAYASHI 3f5f44050SHiroo HAYASHI====================================================================== 4f5f44050SHiroo HAYASHIctags-lang-verilog 5f5f44050SHiroo HAYASHI====================================================================== 6112f4791SHiroo HAYASHI-------------------------------------------------------------------- 7112f4791SHiroo HAYASHIThe man page about SystemVerilog/Verilog parser for Universal Ctags 8112f4791SHiroo HAYASHI-------------------------------------------------------------------- 9f5f44050SHiroo HAYASHI 10f5f44050SHiroo HAYASHI:Version: @VERSION@ 11dccba5efSHiroo HAYASHI:Manual group: Universal Ctags 12f5f44050SHiroo HAYASHI:Manual section: 7 13f5f44050SHiroo HAYASHI 14f5f44050SHiroo HAYASHISYNOPSIS 15f5f44050SHiroo HAYASHI-------- 16f5f44050SHiroo HAYASHI| **@CTAGS_NAME_EXECUTABLE@** ... [--kinds-systemverilog=+Q] [--fields-SystemVerilog=+{parameter}] ... 17112f4791SHiroo HAYASHI| **@CTAGS_NAME_EXECUTABLE@** ... [--fields-Verilog=+{parameter}] ... 18f5f44050SHiroo HAYASHI 19f5f44050SHiroo HAYASHI +---------------+---------------+-------------------+ 20f5f44050SHiroo HAYASHI | Language | Language ID | File Mapping | 21f5f44050SHiroo HAYASHI +===============+===============+===================+ 22f5f44050SHiroo HAYASHI | SystemVerilog | SystemVerilog | .sv, .svh, svi | 23f5f44050SHiroo HAYASHI +---------------+---------------+-------------------+ 24112f4791SHiroo HAYASHI | Verilog | Verilog | .v | 25112f4791SHiroo HAYASHI +---------------+---------------+-------------------+ 26f5f44050SHiroo HAYASHI 27f5f44050SHiroo HAYASHIDESCRIPTION 28f5f44050SHiroo HAYASHI----------- 29112f4791SHiroo HAYASHIThis man page describes about the SystemVerilog/Verilog parser for Universal Ctags. 30112f4791SHiroo HAYASHISystemVerilog parser supports IEEE Std 1800-2017 keywords. 31112f4791SHiroo HAYASHIVerilog parser supports IEEE Std 1364-2005 keywords. 32f5f44050SHiroo HAYASHI 33112f4791SHiroo HAYASHISupported Kinds 34112f4791SHiroo HAYASHI~~~~~~~~~~~~~~~ 35112f4791SHiroo HAYASHI 36112f4791SHiroo HAYASHI.. code-block:: console 37112f4791SHiroo HAYASHI 38112f4791SHiroo HAYASHI $ ctags --list-kinds-full=SystemVerilog 39112f4791SHiroo HAYASHI #LETTER NAME ENABLED REFONLY NROLES MASTER DESCRIPTION 40112f4791SHiroo HAYASHI A assert yes no 0 NONE assertions (assert, assume, cover, restrict) 41112f4791SHiroo HAYASHI C class yes no 0 NONE classes 42112f4791SHiroo HAYASHI E enum yes no 0 NONE enumerators 43112f4791SHiroo HAYASHI H checker yes no 0 NONE checkers 44112f4791SHiroo HAYASHI I interface yes no 0 NONE interfaces 45112f4791SHiroo HAYASHI K package yes no 0 NONE packages 46112f4791SHiroo HAYASHI L clocking yes no 0 NONE clocking 47112f4791SHiroo HAYASHI M modport yes no 0 NONE modports 48112f4791SHiroo HAYASHI N nettype yes no 0 NONE nettype declarations 49112f4791SHiroo HAYASHI O constraint yes no 0 NONE constraints 50112f4791SHiroo HAYASHI P program yes no 0 NONE programs 51112f4791SHiroo HAYASHI Q prototype no no 0 NONE prototypes (extern, pure) 52112f4791SHiroo HAYASHI R property yes no 0 NONE properties 53112f4791SHiroo HAYASHI S struct yes no 0 NONE structs and unions 54112f4791SHiroo HAYASHI T typedef yes no 0 NONE type declarations 55112f4791SHiroo HAYASHI V covergroup yes no 0 NONE covergroups 56112f4791SHiroo HAYASHI b block yes no 0 NONE blocks (begin, fork) 57112f4791SHiroo HAYASHI c constant yes no 0 NONE constants (define, parameter, specparam, enum values) 58112f4791SHiroo HAYASHI e event yes no 0 NONE events 59112f4791SHiroo HAYASHI f function yes no 0 NONE functions 60112f4791SHiroo HAYASHI i instance yes no 0 NONE instances of module or interface 61112f4791SHiroo HAYASHI l ifclass yes no 0 NONE interface class 62112f4791SHiroo HAYASHI m module yes no 0 NONE modules 63112f4791SHiroo HAYASHI n net yes no 0 NONE net data types 64112f4791SHiroo HAYASHI p port yes no 0 NONE ports 65112f4791SHiroo HAYASHI q sequence yes no 0 NONE sequences 66112f4791SHiroo HAYASHI r register yes no 0 NONE variable data types 67112f4791SHiroo HAYASHI t task yes no 0 NONE tasks 68112f4791SHiroo HAYASHI w member yes no 0 NONE struct and union members 69112f4791SHiroo HAYASHI 70112f4791SHiroo HAYASHINote that ``prototype`` (``Q``) is disabled by default. 71112f4791SHiroo HAYASHI 72112f4791SHiroo HAYASHI.. code-block:: console 73112f4791SHiroo HAYASHI 74112f4791SHiroo HAYASHI $ ctags --list-kinds-full=Verilog 75112f4791SHiroo HAYASHI #LETTER NAME ENABLED REFONLY NROLES MASTER DESCRIPTION 76112f4791SHiroo HAYASHI b block yes no 0 NONE blocks (begin, fork) 77112f4791SHiroo HAYASHI c constant yes no 0 NONE constants (define, parameter, specparam) 78112f4791SHiroo HAYASHI e event yes no 0 NONE events 79112f4791SHiroo HAYASHI f function yes no 0 NONE functions 80112f4791SHiroo HAYASHI i instance yes no 0 NONE instances of module 81112f4791SHiroo HAYASHI m module yes no 0 NONE modules 82112f4791SHiroo HAYASHI n net yes no 0 NONE net data types 83112f4791SHiroo HAYASHI p port yes no 0 NONE ports 84112f4791SHiroo HAYASHI r register yes no 0 NONE variable data types 85112f4791SHiroo HAYASHI t task yes no 0 NONE tasks 86112f4791SHiroo HAYASHI 87112f4791SHiroo HAYASHISupported Language Specific Fields 88112f4791SHiroo HAYASHI~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89112f4791SHiroo HAYASHI 90112f4791SHiroo HAYASHI.. code-block:: console 91112f4791SHiroo HAYASHI 92112f4791SHiroo HAYASHI $ ctags --list-fields=Verilog 93112f4791SHiroo HAYASHI #LETTER NAME ENABLED LANGUAGE JSTYPE FIXED DESCRIPTION 94112f4791SHiroo HAYASHI - parameter no Verilog --b no parameter whose value can be overridden. 95112f4791SHiroo HAYASHI $ ctags --list-fields=SystemVerilog 96112f4791SHiroo HAYASHI #LETTER NAME ENABLED LANGUAGE JSTYPE FIXED DESCRIPTION 97112f4791SHiroo HAYASHI - parameter no SystemVerilog --b no parameter whose value can be overridden. 98f5f44050SHiroo HAYASHI 99f5f44050SHiroo HAYASHI``parameter`` field 100112f4791SHiroo HAYASHI.................... 101f5f44050SHiroo HAYASHI 102112f4791SHiroo HAYASHIIf the field ``parameter`` is enabled, a field ``parameter:`` is added on a parameter whose 103f5f44050SHiroo HAYASHIvalue can be overridden on an instantiated module, interface, or program. 104112f4791SHiroo HAYASHIThis is useful for a editor plugin or extension to enable auto-instantiation of modules with 105f5f44050SHiroo HAYASHIparameters which can be overridden. 106f5f44050SHiroo HAYASHI 107f5f44050SHiroo HAYASHI.. code-block:: console 108f5f44050SHiroo HAYASHI 109f5f44050SHiroo HAYASHI $ ctags ... --fields-Verilog=+{parameter} ... 110f5f44050SHiroo HAYASHI $ ctags ... --fields-SystemVerilog=+{parameter} ... 111f5f44050SHiroo HAYASHI 112112f4791SHiroo HAYASHIOn the following source code fields ``parameter:`` are added on 113112f4791SHiroo HAYASHIparameters ``P*``, not on ones ``L*``. Note that ``L4`` and ``L6`` is declared by 114112f4791SHiroo HAYASHI``parameter`` statement, but fields ``parameter:`` are not added, 115f5f44050SHiroo HAYASHIbecause they cannot be overridden. 116f5f44050SHiroo HAYASHI 117f5f44050SHiroo HAYASHI"input.sv" 118f5f44050SHiroo HAYASHI 119f5f44050SHiroo HAYASHI.. code-block:: systemverilog 120f5f44050SHiroo HAYASHI 121f5f44050SHiroo HAYASHI // compilation unit scope 122f5f44050SHiroo HAYASHI parameter L1 = "synonym for the localparam"; 123f5f44050SHiroo HAYASHI 124f5f44050SHiroo HAYASHI module with_parameter_port_list #( 125f5f44050SHiroo HAYASHI P1, 126f5f44050SHiroo HAYASHI localparam L2 = P1+1, 127f5f44050SHiroo HAYASHI parameter P2) 128f5f44050SHiroo HAYASHI ( /*port list...*/ ); 129f5f44050SHiroo HAYASHI parameter L3 = "synonym for the localparam"; 130f5f44050SHiroo HAYASHI localparam L4 = "localparam"; 131f5f44050SHiroo HAYASHI // ... 132f5f44050SHiroo HAYASHI endmodule 133f5f44050SHiroo HAYASHI 134f5f44050SHiroo HAYASHI module with_empty_parameter_port_list #() 135f5f44050SHiroo HAYASHI ( /*port list...*/ ); 136f5f44050SHiroo HAYASHI parameter L5 = "synonym for the localparam"; 137f5f44050SHiroo HAYASHI localparam L6 = "localparam"; 138f5f44050SHiroo HAYASHI // ... 139f5f44050SHiroo HAYASHI endmodule 140f5f44050SHiroo HAYASHI 141f5f44050SHiroo HAYASHI module no_parameter_port_list 142f5f44050SHiroo HAYASHI ( /*port list...*/ ); 143f5f44050SHiroo HAYASHI parameter P3 = "parameter"; 144f5f44050SHiroo HAYASHI localparam L7 = "localparam"; 145f5f44050SHiroo HAYASHI // ... 146f5f44050SHiroo HAYASHI endmodule 147f5f44050SHiroo HAYASHI 148112f4791SHiroo HAYASHI.. code-block:: console 149f5f44050SHiroo HAYASHI 150112f4791SHiroo HAYASHI $ ctags -uo - --fields-SystemVerilog=+{parameter} input.sv 151b9d4dee7SMasatake YAMATO L1 input.sv /^parameter L1 = "synonym for the localparam";$/;" c parameter: 152b9d4dee7SMasatake YAMATO with_parameter_port_list input.sv /^module with_parameter_port_list #($/;" m 153b9d4dee7SMasatake YAMATO P1 input.sv /^ P1,$/;" c module:with_parameter_port_list parameter: 154b9d4dee7SMasatake YAMATO L2 input.sv /^ localparam L2 = P1+1,$/;" c module:with_parameter_port_list 155b9d4dee7SMasatake YAMATO P2 input.sv /^ parameter P2)$/;" c module:with_parameter_port_list parameter: 156b9d4dee7SMasatake YAMATO L3 input.sv /^ parameter L3 = "synonym for the localparam";$/;" c module:with_parameter_port_list 157b9d4dee7SMasatake YAMATO L4 input.sv /^ localparam L4 = "localparam";$/;" c module:with_parameter_port_list 158b9d4dee7SMasatake YAMATO with_empty_parameter_port_list input.sv /^module with_empty_parameter_port_list #()$/;" m 159b9d4dee7SMasatake YAMATO L5 input.sv /^ parameter L5 = "synonym for the localparam";$/;" c module:with_empty_parameter_port_list 160b9d4dee7SMasatake YAMATO L6 input.sv /^ localparam L6 = "localparam";$/;" c module:with_empty_parameter_port_list 161b9d4dee7SMasatake YAMATO no_parameter_port_list input.sv /^module no_parameter_port_list$/;" m 162b9d4dee7SMasatake YAMATO P3 input.sv /^ parameter P3 = "parameter";$/;" c module:no_parameter_port_list parameter: 163b9d4dee7SMasatake YAMATO L7 input.sv /^ localparam L7 = "localparam";$/;" c module:no_parameter_port_list 164f5f44050SHiroo HAYASHI 165112f4791SHiroo HAYASHITIPS 166112f4791SHiroo HAYASHI~~~~ 167112f4791SHiroo HAYASHI 168112f4791SHiroo HAYASHIIf you want to map files ``*.v`` to SystemVerilog, add 169112f4791SHiroo HAYASHI``--langmap=SystemVerilog:.v`` option. 170112f4791SHiroo HAYASHI 171112f4791SHiroo HAYASHIKNOWN ISSUES 172f5f44050SHiroo HAYASHI--------------------------------------------------------------------- 173f5f44050SHiroo HAYASHI 174112f4791SHiroo HAYASHISee https://github.com/universal-ctags/ctags/issues/2674 for more information. 175f5f44050SHiroo HAYASHI 176f5f44050SHiroo HAYASHISEE ALSO 177f5f44050SHiroo HAYASHI-------- 178112f4791SHiroo HAYASHI 179112f4791SHiroo HAYASHI- ctags(1) 180112f4791SHiroo HAYASHI- ctags-client-tools(7) 181112f4791SHiroo HAYASHI- Language Reference Manuals (LRM) 182*5cf55d34SHiroo HAYASHI - IEEE Standard for SystemVerilog — Unified Hardware Design, Specification, and 183112f4791SHiroo HAYASHI Verification Language, IEEE Std 1800-2017, 184112f4791SHiroo HAYASHI https://ieeexplore.ieee.org/document/8299595 185112f4791SHiroo HAYASHI - IEEE Standard for Verilog Hardware Description Language, IEEE Std 1364-2005, 186112f4791SHiroo HAYASHI https://ieeexplore.ieee.org/document/1620780 187