
`Natural Docs <http://www.naturaldocs.org/>`__ is an open source documentation generator for multiple programming languages.  You document your code in a natural syntax that reads like plain English.

Comments written in Natural Docs will be formatted based on the following syntax:

.. code-block:: SystemVerilog
	:caption: **Bold Font**

	// *This word* should be bolded
	function bit my_function(bit argument);
	endfunction
 
.. code-block:: SystemVerilog
	:caption: **Bullet List**


	// Below is a list
	// + This is the first element
	// + This is the second element
	// This is the continuation of 
	// the second element
	function bit my_function(bit argument);
	endfunction
 

.. code-block:: SystemVerilog
	:caption: **Definition List**

	// Below is a definition list
	// First Item - This is the definition
	// of the first Item
	// Second Item - This is the deinition 
	// of the second item
	function bit my_function(bit argument);
	endfunction
 

.. code-block:: SystemVerilog
	:caption: **Heading**

	// Before
	// 
	// Title of the heading:
	// Content of the heading
	//
	// After
	function bit my_function(bit argument);
	endfunction
 

.. code-block:: SystemVerilog
	:caption: **Image**


	// Below you can see a section of a diagram
	//
	// (see diagram_section.png)
	function bit my_function(bit argument);
	endfunction
	
.. note::

	The path can be either absolute, relative to the current file or relative to additional image locations. To specify additional image locations use ``dvt_documentation_resource_locations_add`` directive.


.. code-block:: SystemVerilog
	:caption: **Italic Font**


	// ~This word~ should be in italic font
	function bit my_function(bit argument);
	endfunction
 

.. code-block:: SystemVerilog
	:caption: **Link**

	// Check this function out <my_other_function>
	function bit my_function(bit argument);
	endfunction

.. note::

	As links you can have: an element name, a file, a valid web URL. If you :kbd:`Ctrl+right click` on a link that contains an object name, it should jump to its declaration.

	The element name must respect the following notations:
    
	* fully qualified names PACKAGE::CLASS.method
	* TYPE_NAME.INNER_TYPE_NAME or just TYPE_NAME, solved relative to the enclosing scope


.. code-block:: SystemVerilog
	:caption: **Start Code**

	// Below is a code section
	// (start code)
	//   int a;
	//   if ( a > 4 )
	//      return 4;
	//   return a;
	// (end)
	function bit my_function(bit argument);
	endfunction
 

.. code-block:: SystemVerilog
	:caption: **Topic Line**

	// Below you can see a topic line
	//
	// Function: my_first_function
	function bit my_function(bit argument);
	endfunction
  

.. code-block:: SystemVerilog
	:caption: **Underline Font**

	// _This word_ should be underlined
	function bit my_function(bit argument);
	endfunction
