Veryl Standard Library
Asynchronous FIFO
Asynchronous FIFO based on gray-code pointer.
Generic parameter S
is a module name of synchrinozer.
WIDTH |
u32 |
Data width
|
TYPE |
type |
Data type
|
STAGES |
u32 |
Stages of synchronizer
|
DEPTH |
u32 |
Depth of FIFO
|
THRESHOLD |
u32 |
Threshold for almost full signal
|
USE_OUT_DATA_RESET |
bit |
Whether output data is reset
|
INITIAL_OUT_DATA |
TYPE |
Reset value of output data
|
MERGE_RESET |
bit |
Whether both reset are merged
|
RESET_SYNC_STAGES |
u32 |
Stages of reset synchronizer
|
is_clk |
input |
's |
clock |
src clock
|
is_rst |
input |
's |
reset |
src reset
|
os_almost_full |
output |
's |
logic |
FIFO is almost full
|
os_full |
output |
's |
logic |
FIFO is full
|
is_push |
input |
's |
logic |
push to FIFO
|
is_data |
input |
's |
TYPE |
push data
|
id_clk |
input |
'd |
clock |
dst clock
|
id_rst |
input |
'd |
reset |
dst reset
|
od_empty |
output |
'd |
logic |
FIFO is empty
|
id_pop |
input |
'd |
logic |
pop from FIFO
|
od_data |
output |
'd |
TYPE |
pop data
|
Asynchronous handshake
Asynchronous data transmitter based on handshake protocol.
Generic parameter S
is a module name of synchrinoizer.
WIDTH |
u32 |
Data width
|
TYPE |
type |
Data type
|
STAGES |
u32 |
Stages of synchrinoizer
|
INITIALIZE_DATA_OUT |
bit |
Whether output data is reset
|
INITIAL_DATA_OUT |
bit<$bits(TYPE)> |
Reset value of output data
|
MERGE_RESET |
bit |
Whether both reset are merged
|
RESET_SYNC_STAGES |
u32 |
Stages of reset synchronizer
|
is_clk |
input |
's |
clock |
src clock
|
is_rst |
input |
's |
reset |
src reset
|
is_valid |
input |
's |
logic |
src data is valid
|
os_ready |
output |
's |
logic |
src data is acceptable
|
is_data |
input |
's |
TYPE |
src data
|
id_clk |
input |
'd |
clock |
dst clock
|
id_rst |
input |
'd |
reset |
dst reset
|
od_valid |
output |
'd |
logic |
dst data is valid
|
id_ready |
input |
'd |
logic |
dst data is acceptable
|
od_data |
output |
'd |
TYPE |
dst data
|
A binary decoder.
Converts a bit vector from a binary encoding to
a bit vector with a unary encoding.
BIN_WIDTH |
u32 |
Width of the input binary vector
|
i_en |
input |
logic |
Enable Signal. Dynamic power is minimzed when not enabled.
|
i_bin |
input |
logic |
Binary encoded input.
|
o_unary |
output |
logic |
Unary encoded output.
|
A binary encoder.
Transforms a unary encoded value into a binary encoding.
UNARY_WIDTH |
u32 |
Width of the input unary vector
|
i_en |
input |
logic |
Enable Signal. Dynamic power is minimzed when not enabled.
|
i_unary |
input |
logic |
Unary encoded input.
|
o_bin |
output |
logic |
Binary encoded output.
|
Value counter
WIDTH |
u32 |
Counter width
|
MAX_COUNT |
bit |
Max value of counter
|
MIN_COUNT |
bit |
Min value of counter
|
INITIAL_COUNT |
bit |
Initial value of counter
|
WRAP_AROUND |
bit |
Whether counter is wrap around
|
i_clk |
input |
clock |
Clock
|
i_rst |
input |
reset |
Reset
|
i_clear |
input |
logic |
Clear counter
|
i_set |
input |
logic |
Set counter to a value
|
i_set_value |
input |
COUNT |
Value used by i_set
|
i_up |
input |
logic |
Count up
|
i_down |
input |
logic |
Count down
|
o_count |
output |
COUNT |
Count value
|
o_count_next |
output |
COUNT |
Count value for the next clock cycle
|
o_wrap_around |
output |
logic |
Indicator for wrap around
|
i_data |
input |
logic |
|
o_ones |
output |
logic |
|
Delay input by configured cycle
DELAY |
u32 |
Clock cycle of delay
|
WIDTH |
u32 |
Input/output data width
|
TYPE |
type |
Input/output data type
|
i_clk |
input |
clock |
Clock
|
i_rst |
input |
reset |
Reset
|
i_d |
input |
TYPE |
Input
|
o_d |
output |
TYPE |
Output
|
Edge detector
WIDTH |
u32 |
Data width
|
INITIAL_VALUE |
bit |
Initial value of internal FF
|
i_clk |
input |
clock |
Clock
|
i_rst |
input |
reset |
Reset
|
i_clear |
input |
logic |
Clear
|
i_data |
input |
logic |
Data
|
o_edge |
output |
logic |
Both edges
|
o_posedge |
output |
logic |
Positive edge
|
o_negedge |
output |
logic |
Negative edge
|
WIDTH |
u32 |
|
TYPE |
type |
|
DEPTH |
u32 |
|
THRESHOLD |
u32 |
|
FLAG_FF_OUT |
bit |
|
DATA_FF_OUT |
bit |
|
RESET_RAM |
bit |
|
RESET_DATA_FF |
bit |
|
CLEAR_DATA |
bit |
|
PUSH_ON_CLEAR |
bit |
|
MATCH_COUNT_WIDTH |
u32 |
|
i_clk |
input |
clock |
|
i_rst |
input |
reset |
|
i_clear |
input |
logic |
|
o_empty |
output |
logic |
|
o_almost_full |
output |
logic |
|
o_full |
output |
logic |
|
o_word_count |
output |
COUNTER |
|
i_push |
input |
logic |
|
i_data |
input |
TYPE |
|
i_pop |
input |
logic |
|
o_data |
output |
TYPE |
|
Value counter using Gray Encoding
WIDTH |
u32 |
Counter width
|
MAX_COUNT |
bit |
Max value of counter (in binary)
|
MIN_COUNT |
bit |
Min value of counter (in binary)
|
INITIAL_COUNT |
bit |
Initial value of counter (in binary)
|
WRAP_AROUND |
bit |
Whether counter is wrap around
|
i_clk |
input |
clock |
Clock
|
i_rst |
input |
reset |
Reset
|
i_clear |
input |
logic |
Clear counter
|
i_set |
input |
logic |
Set counter to a value
|
i_set_value |
input |
COUNT |
Value used by i_set
|
i_up |
input |
logic |
Count up
|
i_down |
input |
logic |
Count down
|
o_count |
output |
COUNT |
Count value
|
o_count_next |
output |
COUNT |
Count value for the next clock cycle
|
o_wrap_around |
output |
logic |
Indicator for wrap around
|
Converts a Gray encoded bit vector to a binary encoded bit-vector
- Space Complexity: O(WIDTH log WIDTH)
- Time Complexity: O(log WIDTH)
WIDTH |
u32 |
Input and output bit vector width
|
i_gray |
input |
logic |
Input Gray encoded Bit Vector
|
o_bin |
output |
logic |
Output binary encoded Bit Vector such that
o_bin[k] = ^o_bin[WIDTH-1:k]
|
Converts a binary encoded bit vector to a Gray encoded bit-vector
- Space Complexity: O(WIDTH)
- Time Complexity: O(1)
WIDTH |
u32 |
Input and output bit vector width
|
i_bin |
input |
logic |
Input Binary encoded Bit Vector
|
o_gray |
output |
logic |
Output Gray encoded Bit Vector
|
SIZE |
u32 |
Size of the LFSR in bits
|
TAPVEC |
TAPVEC_T |
Bit-vector representing the taps of the LFSR.
Default values provided for `SIZE` in range [2, 64]
|
i_clk |
input |
clock |
Clock
|
i_en |
input |
logic |
Enable - LFSR shifts only when enabled. Active high.
|
i_set |
input |
logic |
Flag to set value of LFSR. Active High.
|
i_setval |
input |
logic |
Value which LFSR is set to when `i_set` is set.
|
o_val |
output |
logic |
LFSR value.
|
i_data |
input |
logic |
|
o_onehot |
output |
logic |
1'b1 iff i_data contains exactly one set bit
|
o_zero |
output |
logic |
1'b1 iff i_data is zero
|
WORD_SIZE |
u32 |
|
ADDRESS_WIDTH |
u32 |
|
DATA_WIDTH |
u32 |
|
DATA_TYPE |
type |
|
BUFFER_OUT |
bit |
|
USE_RESET |
bit |
|
INITIAL_VALUE |
DATA_TYPE |
|
i_clk |
input |
clock |
|
i_rst |
input |
reset |
|
i_clr |
input |
logic |
|
i_mea |
input |
logic |
|
i_wea |
input |
logic |
|
i_adra |
input |
logic |
|
i_da |
input |
DATA_TYPE |
|
i_meb |
input |
logic |
|
i_adrb |
input |
logic |
|
o_qb |
output |
DATA_TYPE |
|
i_clk |
input |
clock |
|
i_rst |
input |
reset |
|
i_d |
input |
logic |
|
o_d |
output |
logic |
|