Hi all, What is the recommended way of supplying run-time configurable parameters to HLS custom logic in an RFNoC block?
I tried modifying the gain example OOT block by adding a HLS option for the user logic: if (IP_OPTION == "HLS") begin: gen_hls gain_hls gain_hls_i ( .ap_clk (axis_data_clk), .ap_rst_n (~axis_data_rst), .in_r_TDATA (m_in_payload_tdata), .in_r_TVALID (m_in_payload_tvalid), .in_r_TREADY (m_in_payload_tready), .in_r_TLAST (m_in_payload_tlast), .gain_TDATA (reg_gain), // (reg_gain) Real gain, {16'd0, reg_gain} .gain_TLAST (m_in_payload_tlast), .gain_TVALID (m_in_payload_tvalid), .gain_TREADY (), .out_r_TDATA (mult_tdata), .out_r_TVALID (mult_tvalid), .out_r_TREADY (mult_tready), .out_r_TLAST (mult_tlast) So, similar to the HDL_IP option, reg_gain is input as tdata to an AXI stream input with a name "gain". Tlast and tvalid come from the master payload stream. In the HLS source I have an extra input port for the gain parameters: void gain_hls( hls::stream<axis_cplx>& in, hls::stream<axis_gain>& gain, hls::stream<axis_cplx_32>& out) ... Data type for gain is an AXI stream for short ints. However, testbed simulation times out when various gain values are tried. If I completely comment out the gain input stream, testbed works fine, and fails due to wrong output values (with gain being hard-coded as a constant). I am puzzled about what could be wrong, since the definition for the HDL_IP option is defined similarly and works without problems. BR, Kalle Hanhijärvi
_______________________________________________ USRP-users mailing list -- usrp-users@lists.ettus.com To unsubscribe send an email to usrp-users-le...@lists.ettus.com