title: How to specify and make use of header files for verilog language while using exuberant ctags with emacs
body: <p>I have recently started using exuberant ctags and emacs for verilog &amp; system verilog coding and code browsing. I currently generate the tags using the command</p>
  
  <pre><code>ctags -e -R --tag-relative=yes --langmap=verilog:.v.vh.sv.svh 
  </code></pre>
  
  <p>My code contains a lot of `define macros which are all specified in certain header files with extension ".vh" &amp; ".svh". For e.g. a header file named <strong>foo.vh</strong> has the following code</p>
  
  <pre><code>`define WIDTH_ADDRESS 32;
  </code></pre>
  
  <p>and a file <strong>top.v</strong> invokes the macro as follows</p>
  
  <pre><code>input [`WIDTH_ADDRESS - 1 : 0] InAddress;
  </code></pre>
  
  <p>While browsing the <strong>top.v</strong> file using emacs, is there any way by which I can jump directly to to the macro definition in the <strong>foo.vh</strong> file?</p>
  
  <p>I have been using <code>M-x tags-search &lt;RET&gt; WIDTH_ADDRESS &lt;RET&gt;</code> for sometime now but it jumps to quite a few other instances of `WIDTH_ADDRESS in other files before reaching the foo.vh file.</p>
  
  <p>After some research I did see an option to specify header files using <code>-h</code> option with ctags during tags generation. However I could not get it to work and I guess there was some syntactical error from my part.</p>
  
  <p>First of all are there any notable benefits of specifying a header file using <code>-h</code> option? If so, what is the correct syntax to specify header files? Also can I specify emacs to look into these header files first (files with extension ".vh" &amp;".svh")  before parsing other files (with extension ".v" &amp; ".sv")</p>