Specador automatically collects comments during compilation and includes them in the generated documentation.
By default, comments written above or inline a declared element, such as ports, modules or classes will be collected.
-- Instantiates chip-specific :abbr:`DDR (Double Data Rate)` input and output-- registers.---- Both data ``DataOut_high/low`` as well as ``OutputEnable`` are sampled with-- the ``rising_edge(Clock)`` from the on-chip logic. ``DataOut_high`` is brought-- out with this rising edge. ``DataOut_low`` is brought out with the falling-- edge.---- ``OutputEnable`` (Tri-State) is high-active. It is automatically inverted if-- necessary. Output is disabled after power-up.---- Both data ``DataIn_high/low`` are synchronously outputted to the on-chip logic-- with the rising edge of ``Clock``. ``DataIn_high`` is the value at the ``Pad``-- sampled with the same rising edge. ``DataIn_low`` is the value sampled with-- the falling edge directly before this rising edge. Thus sampling starts with-- the falling edge of the clock as depicted in the following waveform.---- @WAVEDROM_START---- { signal: [-- ['DataOut',-- {name: 'ClockOut', wave: 'LH.L.H.L.H.L.H.L.H.L.H.'},-- {name: 'ClockOutEnable', wave: '0..1...................'},-- {name: 'OutputEnable', wave: '0.......1.......0......'},-- {name: 'DataOut_low', wave: 'x.......2...4...x......', data: ['4', '6'], node: '........k...m...o..'},-- {name: 'DataOut_high', wave: 'x.......3...5...x......', data: ['5', '7'], node: '........l...n...p..'}-- ],-- {},-- {name: 'Pad', wave: 'x2.3.4.5.z...2.3.4.5.z.', data: ['0', '1', '2', '3', '4', '5', '6', '7'], node: '.a.b.c.d.....e.f.g.h.'},-- {},-- ['DataIn',-- {name: 'ClockIn', wave: 'L.H.L.H.L.H.L.H.L.H.L.H'},-- {name: 'ClockInEnable', wave: '01.......0.............'},-- {name: 'DataIn_low', wave: 'x.....2...4...z...2...4', data: ['0', '2', '4'], node: '......u...w.......y..'},-- {name: 'DataIn_high', wave: 'x.....3...5...z...3...5', data: ['1', '3', '5'], node: '......v...x.......z..'}-- ]-- ],-- edge: ['a~>u', 'b~>v', 'c~>w', 'd~>x', 'k~>e', 'l~>f', 'm~>g', 'n~>h', 'e~>y', 'f~>z'],-- foot: {-- text: ['tspan',-- ['tspan', {'font-weight': 'bold'}, 'PoC.io.ddrio.inout'],-- ' -- DDR Data Input/Output sampled from pad.'-- ]-- }-- }---- @WAVEDROM_END---- ``Pad`` must be connected to a PAD because FPGAs only have these registers in-- IOBs.entityddrio_inoutisgeneric(BITS:positive);port(ClockOut:instd_logic;ClockOutEnable:instd_logic;OutputEnable:instd_logic;DataOut_high:instd_logic_vector(BITS-1downto0);DataOut_low:instd_logic_vector(BITS-1downto0);ClockIn:instd_logic;ClockInEnable:instd_logic;DataIn_high:outstd_logic_vector(BITS-1downto0);DataIn_low:outstd_logic_vector(BITS-1downto0);Pad:inoutstd_logic_vector(BITS-1downto0));endentity;
Comments directives
There are a couple of compile directives the user can pass through using -cmd, in order to configure the collection of comments:
Extract comment if located at no more than specified number of empty lines above element declaration. Default: 1.
+dvt_extract_comment_bcd+<true/false>
Extract /** begin comment delimiter comments. Default: true.
+dvt_extract_comment_header+<true/false>
Extract file header comments and associate them with the first element in file (module, entity etc.). Default: false.
+dvt_extract_comment_inline+<true/false>
Extract comments inline with elements. Default: true.
+dvt_extract_comment_ml+<true/false>
Extract /* multi line comments. Default: true.
+dvt_extract_comment_sl+<true/false>
Extract // single line comments. Default: true.
Comments formatting
reStructuredText (recommended)
reStructuredText(rST) is the default plaintext markup language used by Sphinx. rST syntax was designed to be a simple, unobtrusive markup language.
The format uses simple symbols like underlining to denote structure, making it readable without needing to learn complex codes.
It emphasizes clear organization of your descriptions through elements like headings, lists, and quotes.
For a complete breakdown of the reStructuredText syntax Specador recognizes, please refer to the reStructuredText documentation.
Markdown (recommended)
Markdown is one of the world’s most popular markup languages that can be used to add formatting elements to plaintext text documents.
Markdown uses symbols like asterisks and dashes to create formatting like headings and bold text. This makes it quicker to write than complex HTML code.
It prioritizes readability by utilizing plain text and clear symbols to ensure the code remains easy to understand.
Natural Docs (deprecated)
Natural Docs is an open source documentation generator for multiple programming languages. You document your code in a natural syntax that reads like plain English.
JavaDoc (deprecated)
Javadoc syntax relies on specific tags to guide how information is displayed in the generated documentation.
These tags can offer insights into your code’s functionality, can facilitate documentation organization, and can enable linking to other elements.
For API Hyperlinks you can use the following syntax:
<LABEL:ELEMENT_NAME>
In this case ELEMENT_NAME must respect the following notation: Package_Name::Class_Name.Method_Name for an absolute path or TYPE_NAME.INNER_TYPE_NAME or just TYPE_NAME for relative paths.
@see<ahref="https://eda.amiq.com">DVTEclipse</a>
Note
For API Hyperlinks you can use the following syntax:
@seeELEMENT_NAME
{@linkELEMENT_NAMELABEL}
In this case ELEMENT_NAME must respect the following notation: Package_Name::Class_Name.Method_Name for an absolute path or TYPE_NAME.INNER_TYPE_NAME or just TYPE_NAME for relative paths.
Comments
Specador automatically collects comments during compilation and includes them in the generated documentation.
By default, comments written above or inline a declared element, such as ports, modules or classes will be collected.
Comments directives
There are a couple of compile directives the user can pass through using
-cmd
, in order to configure the collection of comments:Directive
Note
+dvt_extract_comment_above+<true/false>
Extract comments above elements. Default: true.
+dvt_extract_comment_above_max_empty_lines+<number_of_lines>
Extract comment if located at no more than specified number of empty lines above element declaration. Default: 1.
+dvt_extract_comment_bcd+<true/false>
Extract /** begin comment delimiter comments. Default: true.
+dvt_extract_comment_header+<true/false>
Extract file header comments and associate them with the first element in file (module, entity etc.). Default: false.
+dvt_extract_comment_inline+<true/false>
Extract comments inline with elements. Default: true.
+dvt_extract_comment_ml+<true/false>
Extract /* multi line comments. Default: true.
+dvt_extract_comment_sl+<true/false>
Extract // single line comments. Default: true.
Comments formatting
reStructuredText(rST) is the default plaintext markup language used by Sphinx. rST syntax was designed to be a simple, unobtrusive markup language.
The format uses simple symbols like underlining to denote structure, making it readable without needing to learn complex codes. It emphasizes clear organization of your descriptions through elements like headings, lists, and quotes.
For a complete breakdown of the reStructuredText syntax Specador recognizes, please refer to the reStructuredText documentation.
Markdown is one of the world’s most popular markup languages that can be used to add formatting elements to plaintext text documents.
Markdown uses symbols like asterisks and dashes to create formatting like headings and bold text. This makes it quicker to write than complex HTML code.
It prioritizes readability by utilizing plain text and clear symbols to ensure the code remains easy to understand.
Natural Docs is an open source documentation generator for multiple programming languages. You document your code in a natural syntax that reads like plain English.
Javadoc syntax relies on specific tags to guide how information is displayed in the generated documentation.
These tags can offer insights into your code’s functionality, can facilitate documentation organization, and can enable linking to other elements.
bold text
italic text
Bullet one.
Bullet two.
Bullet three.
Item 1.
Item 2.
Item 3.
description of item 1.
description of item 2.
DVT Eclipse
Note
For API Hyperlinks you can use the following syntax:
In this case ELEMENT_NAME must respect the following notation: Package_Name::Class_Name.Method_Name for an absolute path or TYPE_NAME.INNER_TYPE_NAME or just TYPE_NAME for relative paths.
Note
For API Hyperlinks you can use the following syntax:
In this case ELEMENT_NAME must respect the following notation: Package_Name::Class_Name.Method_Name for an absolute path or TYPE_NAME.INNER_TYPE_NAME or just TYPE_NAME for relative paths.
Headings
A simple code block example.
Not supported.
A simple table example with two columns and three rows:
Header 1
Header 2
Row 1 Col1
Row 1 Col2
Row 2 Col1
Row 2 Col2
Not supported.