Skip to content

How does circbuf_fast work ?

Hugues de Valon edited this page Feb 6, 2017 · 1 revision

A simple FIFO

It is an IP that we retrieve from a TIMA intervenant, which is a simple FIFO to store data waiting for processing.

Ports

entity circbuf_fast is
	generic (
		DATAW : natural := 32;
		DEPTH : natural := 8;
		CNTW  : natural := 16
	);
	port (
		reset         : in  std_logic;
		clk           : in  std_logic;
		fifo_in_data  : in  std_logic_vector(DATAW-1 downto 0);
		fifo_in_rdy   : out std_logic;
		fifo_in_ack   : in  std_logic;
		fifo_in_cnt   : out std_logic_vector(CNTW-1 downto 0);
		fifo_out_data : out std_logic_vector(DATAW-1 downto 0);
		fifo_out_rdy  : out std_logic;
		fifo_out_ack  : in  std_logic;
		fifo_out_cnt  : out std_logic_vector(CNTW-1 downto 0)
	);
end circbuf_fast;
  • reset : to reset fifo
  • clk : clock signal
  • fifo_in_data : data to enter fifo
  • fifo_in_rdy : to indicate that there is space for at least one data
  • fifo_in_ack : input to tell when to save data in fifo
  • fifo_in_cnt : free space in fifo
  • fifo_out_data : data output
  • fifo_out_rdy : to indicate that data is rdy to get out of fifo
  • fifo_out_ack : to signal that data was taken
  • fifo_out_cnt : to indicate how much data is stored in fifo