My understanding is that the NoC shell, instantiated inside the RFNoC block, takes in the raw CHDR bus for the control and data planes and provides a more user friendly data interface for your user logic to interface with. The NoC shell is autogenerated by RFNoC Modtool and shouldn’t need any editing.
Here (the default case) the NoC shell provides the AXI-Stream Payload Context simple data interface as the client interface. This client interface is what the user logic interacts with. The framework interface is the lower-level interface that runs between NoC blocks and you shouldn’t have to worry about this interface. Similarly, the control bus comes out of the NoC shell as a Control Port defined in 2.3.2.2 of the RFNoC Specification. Section 2.3.3..3 defines the AXI-Stream Payload Context format: the payload stream is used to deliver the actual data samples while the context stream delivers the header, (optional) timestamp and (optional) user metadata. Hope this helps, Rylee From: sp h <[email protected]> Date: Monday, January 3, 2022 at 4:37 AM To: [email protected] <[email protected]> Subject: [USRP-users] Can any guide me in rfnoc blocks? Hi, I am studying RFNOC blocks for USRP, the file that I am reading is in the below link... https://files.ettus.com/app_notes/RFNoC_Specification.pdf I know Verilog language, so another part I am studying RFNOC blocks Verilog Code. However knowing Verilog and RFNoC_Specification is not enough, because I think I am faced with a Verilog framework for kintex7. So I had some questions yet. Verilog code for an RFNOC block has two main files for example: for gain example, we have two files: noc_shell_gain.v rfnoc_block_gain.v my question is about noc_shell_gain.v file. there is a section defining the input module... anyone can guide me on whats do this section(Client Interface)? what's the difference between this section and the Framework Interface section? what's the difference between context and payload streams? thanks in advance //--------------------- // Framework Interface //--------------------- // RFNoC Framework Clocks input wire rfnoc_chdr_clk, input wire rfnoc_ctrl_clk, // NoC Shell Generated Resets output wire rfnoc_chdr_rst, output wire rfnoc_ctrl_rst, // RFNoC Backend Interface input wire [511:0] rfnoc_core_config, output wire [511:0] rfnoc_core_status, // AXIS-CHDR Input Ports (from framework) input wire [(1)*CHDR_W-1:0] s_rfnoc_chdr_tdata, input wire [(1)-1:0] s_rfnoc_chdr_tlast, input wire [(1)-1:0] s_rfnoc_chdr_tvalid, output wire [(1)-1:0] s_rfnoc_chdr_tready, // AXIS-CHDR Output Ports (to framework) output wire [(1)*CHDR_W-1:0] m_rfnoc_chdr_tdata, output wire [(1)-1:0] m_rfnoc_chdr_tlast, output wire [(1)-1:0] m_rfnoc_chdr_tvalid, input wire [(1)-1:0] m_rfnoc_chdr_tready, // AXIS-Ctrl Control Input Port (from framework) input wire [31:0] s_rfnoc_ctrl_tdata, input wire s_rfnoc_ctrl_tlast, input wire s_rfnoc_ctrl_tvalid, output wire s_rfnoc_ctrl_tready, // AXIS-Ctrl Control Output Port (to framework) output wire [31:0] m_rfnoc_ctrl_tdata, output wire m_rfnoc_ctrl_tlast, output wire m_rfnoc_ctrl_tvalid, input wire m_rfnoc_ctrl_tready, //--------------------- // Client Interface //--------------------- // CtrlPort Clock and Reset output wire ctrlport_clk, output wire ctrlport_rst, // CtrlPort Master output wire m_ctrlport_req_wr, output wire m_ctrlport_req_rd, output wire [19:0] m_ctrlport_req_addr, output wire [31:0] m_ctrlport_req_data, input wire m_ctrlport_resp_ack, input wire [31:0] m_ctrlport_resp_data, // AXI-Stream Payload Context Clock and Reset output wire axis_data_clk, output wire axis_data_rst, // Payload Stream to User Logic: in output wire [32*1-1:0] m_in_payload_tdata, output wire [1-1:0] m_in_payload_tkeep, output wire m_in_payload_tlast, output wire m_in_payload_tvalid, input wire m_in_payload_tready, // Context Stream to User Logic: in output wire [CHDR_W-1:0] m_in_context_tdata, output wire [3:0] m_in_context_tuser, output wire m_in_context_tlast, output wire m_in_context_tvalid, input wire m_in_context_tready, // Payload Stream from User Logic: out input wire [32*1-1:0] s_out_payload_tdata, input wire [0:0] s_out_payload_tkeep, input wire s_out_payload_tlast, input wire s_out_payload_tvalid, output wire s_out_payload_tready, // Context Stream from User Logic: out input wire [CHDR_W-1:0] s_out_context_tdata, input wire [3:0] s_out_context_tuser, input wire s_out_context_tlast, input wire s_out_context_tvalid, output wire s_out_context_tready
_______________________________________________ USRP-users mailing list -- [email protected] To unsubscribe send an email to [email protected]
