In SpeakHDL every application module is constrained to have an identical VHDL file structure which includes:
As shown below, most of the VHDL code structure that is used for development is specified as a parametrized template file. Most of the parameters values are calculated by the parser when the ok command is given. In addition, the layout of the Application Module .vhd file structure was carefully chosen in order to maximize coding productivity. This means that constructs that are changed most often by the user were selectively placed at the bottom of the file.
When using a text editor with functionality that can automatically scroll to the bottom of the file, we are able to maximize the limited viewing area offered by most computer monitors and have access the most interesting data. In addition, having the bottom of the file most accessible allows for the use of Hotkey Sequence Input.
Parameter | Description | Input |
---|---|---|
MODULE_NAME | VHDL entity | [calculated by parser] from file name |
MODULE_INDEX | VHDL generic index | [calculated by parser] from procedure calls |
SM_INPUT_HIGH | Number of Input -1 utilized by Application Module | [calculated by parser] from config file |
SM_OUTPUT_HIGH | Number of Outputs -1 utilized by Application Module | [calculated by parser] from config file |
SM_IO_HIGH | Number of IO -1 utilized by Application Module | [calculated by parser] from config file |
SM_NSR_HIGH | Number of Resources -1 utilized by Application Module | [calculated by parser] from procedure calls |
USER_PACKAGES | VHDL package | input by user via config file |
COMPONENT_DECLARATIONS | VHDL component declaration | input by user (non-direct, copy and paste declaration) |
DECLARATIONS | VHDL Declarations | [inferred by parser] via user signal assignment and state machine construction |
COMPONENT_INSTANTIATIONS | component instance | [inferred by parser]* |
DIRECT_INSTANTIATIONS | direct instantiation instance | [inferred by parser]* |
SIGNAL_ASSIGNMENTS | WHEN-ELSE statements | input by user |
APPLICATION_STATUS | user status feedback | [output by parser] from parser |
PARALLEL_PROCEDURES | procedures placed outside any state machine | input by user |
SEQUENTIAL_PROCEDURES | procedures placed inside state machine state | input by user |
HOTKEY_SEQUENCE_INPUT | last line of text editor used as input by user | input by user |