Shift Register Plugin#
Translation Stage: low level ir to vhdl
This plugin implements a shift register in VHDL.
The shift register is a digital circuit that can store and shift data.
The plugin is parameterized by the width of the data points (WIDTH
) and
the number of data points to make available for reading via the outgoing line d_out
.
entity shift_register is
generic (
DATA_WIDTH: positive; -- size of single data point
NUM_POINTS: positive -- number of data points to write in a single step
);
port (
clk : in std_logic;
d_in : in std_logic_vector(DATA_WIDTH - 1 downto 0);
d_out : out std_logic_vector(DATA_WIDTH*NUM_POINTS - 1 downto 0);
valid_in : in std_logic; -- set to '1' while to write data to the register
rst : in std_logic; -- setting to '1' will reset the internal counter and set valid_out to `0`
valid_out : out std_logic := '0' -- will be '1' when the register is full
);
end entity;