Forum Discussion
Well that helped a whole bunch.
I am now able to read certain coefficients.
However certain offsets will freeze the linux, the bus looks to resolve okay, see pictures.
I have made two edits to the FIR II core.
I redefined the reset_n to be a reset inside the HP_FIR_hw.tcl file.
Changed to :
add_interface_port coeff_reset coeff_in_areset reset Input 1According to the FIR II guide, the reset is a reset and not a reset_n.
I also ran the provided PYTHON script.
I can read the following coefficients for a symmetric 15 tap filter.
0,4,8,12. They show up correctly as instantiated.
Access others freezes the linux system, even though the access appears very similar in SignalTap.
The FIR II instantiates like so:
entity system_fir_compiler_ii_0 is
port (
clk : in STD_LOGIC;
reset_n : in STD_LOGIC;
coeff_in_clk : in STD_LOGIC;
coeff_in_areset : in STD_LOGIC;
coeff_in_address : in STD_LOGIC_VECTOR(4-1 downto 0);
coeff_in_data : in STD_LOGIC_VECTOR(32-1 downto 0);
coeff_in_we : in STD_LOGIC_VECTOR(0 downto 0);
coeff_in_read : in STD_LOGIC;
coeff_out_data : out STD_LOGIC_VECTOR(32-1 downto 0);
coeff_out_valid : out STD_LOGIC_VECTOR(0 downto 0);
ast_sink_data : in STD_LOGIC_VECTOR((0 + 1*24) * 1 + 0 - 1 downto 0);
ast_sink_valid : in STD_LOGIC;
ast_sink_sop : in STD_LOGIC;
ast_sink_eop : in STD_LOGIC;
ast_sink_error : in STD_LOGIC_VECTOR(1 downto 0);
ast_source_data : out STD_LOGIC_VECTOR(24 * 1*1 - 1 downto 0);
ast_source_valid : out STD_LOGIC;
ast_source_sop : out STD_LOGIC;
ast_source_eop : out STD_LOGIC;
ast_source_channel : out STD_LOGIC_VECTOR(log2_ceil_one(4) - 1 downto 0);
ast_source_error : out STD_LOGIC_VECTOR(1 downto 0)
);
end system_fir_compiler_ii_0;I have included a failing read at offset 5 and a successful read at offset 0 in signal tap.
The HPS LW bus is set to 32bit width. Access to other peripherals on the lightweight bus work just fine.
Originally I was using a 16bit coefficient bus. I bumped my coefficients to 17bit in lenght to get a 32 bit bus. I thought that might be a problem, especially since the HPS bus is 32 bit. However certain addresses still freeze linux.
Super odd.
Attached is a not successful read at offset 5.