title: How to share register and bit field definitions between a device driver and the FPGA it controls
body: <p>Are there any good, existing software tools available to assist in generating C header files with appropriate #defines for register offsets as well as bit definitions from VHDL?  If any such tools do exist, what restrictions to they place on the VHDL and how are things that should be exported designated?</p>
  
  <p>So far, I've found these tools but they aren't exactly what I'm looking for:</p>
  
  <ul>
  <li><a href="http://www.veripool.org/wiki/vregs" rel="noreferrer">Vregs</a> by Veripool</li>
  <li><a href="http://www.productive-eda.com/SpectaReg" rel="noreferrer">SpectraReg</a> by PDTi</li>
  <li><a href="http://www.duolog.com/products/bitwise-register-management" rel="noreferrer">Bitwise</a> by Duolog</li>
  </ul>
  
  <p>Based upon these tools I am also interested if the proper workflow is to generate both the C and the VHDL rather than trying to go directly from VHDL (perhaps with extra tags in the comments) to C.</p>