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

Reply via email to