architecture RTL of CircularMemory is
- component RAM_DP_4096_32 is
+ component RAM_DP_8192_32 is
port (
WrAddress : in std_logic_vector(11 downto 0);
RdAddress : in std_logic_vector(11 downto 0);
WrClock : in std_logic;
WrClockEn : in std_logic;
Q : out std_logic_vector(31 downto 0));
- end component RAM_DP_4096_32;
+ end component RAM_DP_8192_32;
--counters for write/read frequency
signal ticks_counter : unsigned(f_log2(g_clockspeed) - 1 downto 0) := (others => '0');
begin
- RAM_DP_4096_32_1: entity work.RAM_DP_4096_32
+ RAM_DP_4096_32_1: entity work.RAM_DP_8192_32
port map (
WrAddress => WrAddr_mem,
RdAddress => ReAddr_mem,
data_out : out std_logic_vector(g_datawidth - 1 downto 0)
);
end component ReadoutController;
+
+ signal reset_reg : std_logic := '0';
signal readout_mode_i : std_logic_vector(1 downto 0) := "00";
signal readout_writes_aft_trig : std_logic_vector(g_cyc_mem_address_width - 1 downto 0) := (others => '0');
begin
+ reset_proc : process(clk)
+ begin
+ if rising_edge(clk) then
+ reset_reg <= rst;
+ end if;
+ end process reset_proc;
+
start_readout <= start_readout_slow_to_buffer or trb_trigger;
FiFoDataMux_1 : entity work.FiFoDataMux
g_clockspeed => 1e8)
port map (
clk => clk,
- rst => rst,
+ rst => reset_reg,
fifo_empty => fifo_empty,
fifo_full => fifo_full,
fifo_datain => fifo_datain,
Clock => clk,
WrEn => fifo_data_width_wr_i,
RdEn => fifo_data_width_rd_i,
- Reset => rst,
+ Reset => reset_reg,
WCNT => fifo_data_width_cnt_i,
Q => fifo_data_width_dataout_i,
Empty => fifo_data_width_empty_i,
g_datawidthtrb => g_datawidthtrb)
port map (
clk => clk,
- reset => rst,
+ reset => reset_reg,
fifo_empty => fifo_data_width_empty_i,
fifo_wrcnt => fifo_data_width_cnt_i,
fifo_datain => fifo_data_width_dataout_i,
)
port map(
clk => clk,
- rst => rst,
+ rst => reset_reg,
wr_en => fifo_mux_wren,
data_in => fifo_mux_data_out,
rd_en => readout_controller_rd_en,
)
port map(
clk => clk,
- rst => rst,
+ rst => reset_reg,
start => start_readout,
mode => readout_mode_i,
writes_after_trig => readout_writes_aft_trig,
data_read_slow : process (clk) is
begin
if rising_edge(clk) then
- if rst = '1' then
+ if reset_reg = '1' then
slow_readout_fsm <= idle;
slow_read_done <= '0';
slow_read_busy <= '0';
slv_bus_handler : process(clk) is
begin
if rising_edge(clk) then
- if rst = '1' then
+ if reset_reg = '1' then
SLV_DATA_OUT <= (others => '0');
SLV_ACK_OUT <= '0';
SLV_NO_MORE_DATA_OUT <= '0';