The state_reg_rec signal is a VHDL data structure representing the registered return value of a procedure call. Although the signal name ends with '_rec' which alludes to being a VHDL record type, the signal is actually an array of records. Each resource index of state_reg_rec is made up of approximately (20) VHDL record fields. SpeakHDL refers to the state_reg_rec record fields as framework signals which are used as inputs to application modules and represent a single framework resource that has been configured. Amongst other things, the state_reg_rec signal, contains data structures for hardware registers that include a single left and right shifter, a fifo, and a shared control register in addition to an array of counters, edge detectors, and event vectors, which can be indexed. These hardware registers are essentially 'pre-declared signals' that the developer can immediately utilize and that help facilitate productivity.
The state_reg_rec is always the last required parameter of an API call and appears immediately after the next_state_rec parameter. It should be noted that each index of the next_state_rec and state_reg_rec can be placed either on the same clock domain or a separate clock domain by first by making a call to RESOURCE_SELECT and changing the resource clock frequency. Then any API calls made after the RESOURCE_SELECT procedure call will be made on the newly created resource domain and will be registered at that clock frequency.
Records | |
state_reg_rec | |
The next_state_rec and state_reg_rec signals are required paramaters to every procedure call. | |
index | INDEX_INTEGER |
compile time integer index assigned to application module | |
clk | std_logic |
resource clock signal | |
state_reg | STATE_INTEGER |
current state register value (integer) range -1 to 14 | |
counter | COUNT_ARRAY |
array of records COUNT_REC record for counters consiting of .value and .done | |
delay | COUNT_REC |
delay (slower) counter record counter consiting of .value and .done | |
divide | COUNT_REC |
divide (faster) counter record counter consiting of .value and .done | |
shared_register | std_logic_vector ( NUM_CONTROL_BITS- 1 downto 0 ) |
register used to read/write control data | |
FIFO_DATA_VALID | std_logic |
fifo data valid signal | |
fifo_data | std_logic_vector ( NUM_DATAX_BITS- 1 downto 0 ) |
fifo data from fifo buffer (with flow control) | |
FIFO_DATA_READY | std_logic |
fifo data (read) ready signal | |
FIFO_DATA_DONE | std_logic |
fifo data (read) done strobe signal | |
FIFO_WRITE_READY | std_logic |
fifo write ready singal | |
FIFO_WRITE_DONE | std_logic |
fifo write done (usuually a strob) | |
exchange_register | std_logic_vector ( NUM_DATAX_BITS- 1 downto 0 ) |
low latency exchange register(no flow control) alternative to fifo_data | |
shift_left | std_logic_vector ( NUM_DATAX_BITS- 1 downto 0 ) |
left shift register | |
shift_right | std_logic_vector ( NUM_DATAX_BITS- 1 downto 0 ) |
right shift reguster | |
rising_edge | std_logic_vector ( 0 to NUM_RISING_EDGE_DETECTS- 1 ) |
array of rising edge detect 'strobes' | |
falling_edge | std_logic_vector ( 0 to NUM_FALLING_EDGE_DETECTS- 1 ) |
array of falling edge detect 'strobes' | |
event_vector | std_logic_vector ( 0 to NUM_EVENTS- 1 ) |
event vector signal | |
status | std_logic_vector ( 0 to NUM_STATUS_BITS- 1 ) |
status register | |
fifo | FIFO_REC |
fifo record signal showing fifo flags and element counters (primarialy used during debug) | |
EXT | EXT_REC |
exterior control data be passed into the framework (used during tests modes) |