[USRP-users] Here is my RFNoC procedure when integrating in a new HLS noc block. Are my two usrp3/lib/hls Makefiles.inc correct?

Swanson, Craig Craig.Swanson at gtri.gatech.edu
Fri Oct 16 16:46:01 EDT 2015


Jonathon,

I have written and created a new noc block called agc2 which will hopefully soon replace the agc2.h file using in the gnuradio flowgraph.

I wrote the code in C, run it through the HLS tool taylored towards the axi standard and there are no errors.  Now I want to add it to the makefile structure that is already there for the addsub block, even though I am not planning on using the addsub in my flowgraph.

To be clear, I do the following procedure:

  1.  In the usrp3/lib/hls directory, create a new directory called agc2_hls
  2.  In this directory, add the agc2_hls.cpp file that was tested and synthesized in the HLS tool.  Also add an agc2_hls.tcl file which contains the "create_clock -period 5 -name default" constraint.
  3.   In the /usrp3/lib/hls/agc2_hls directory, modify the Makefile.inc file to reflect the following addsub and agc2 :#
# Copyright 2015 Ettus Research
#

include $(TOOLS_DIR)/make/viv_hls_ip_builder.mak

# Add C/C++/tcl files
HLS_IP_AGC2_HLS_SRCS = $(addprefix $(HLS_IP_BUILD_DIR)/agc2_hls/, \
agc2_hls.cpp \
agc2_hls.tcl \
)

# Add output files
HLS_IP_AGC2_HLS_OUTS = $(addprefix $(HLS_IP_BUILD_DIR)/agc2_hls/solution/impl/verilog/, \
agc2_hls.v \
)

$(HLS_IP_AGC2_HLS_SRCS) $(HLS_IP_AGC2_HLS_OUTS) : $(HLS_IP_DIR)/AGC2_hls/agc2_hls.cpp $(HLS_IP_DIR)/agc2_hls/agc2_hls.tcl
    $(call BUILD_VIVADO_HLS_IP,agc2_hls,$(PART_ID),$(HLS_IP_AGC2_HLS_SRCS),$(HLS_IP_DIR),$(HLS_IP_BUILD_DIR))
  4.  In the /usrp3/lib/hls directory, modify the Makefile.inc file to contain both the addsub and the agc2:#
# Copyright 2015 Ettus Research
#

#include $(HLS_IP_DIR)/addsub_hls/Makefile.inc
include $(HLS_IP_DIR)/agc2_hls/Makefile.inc

HLS_IP_OUTPUT_SRCS = \
$(HLS_IP_ADDSUB_HLS_OUTS) \
$(HLS_IP_AGC2_HLS_OUTS)

HLS_IP_SRCS = \
$(HLS_IP_ADDSUB_HLS_SRCS) \
$(HLS_IP_AGC2_HLS_SRCS)

HLS_IP_SYNTH_OUTPUTS = \
$(HLS_IP_ADDSUB_HLS_OUTS) \
$(HLS_IP_AGC2_HLS_OUTS)

hls_ip: $(HLS_IP_SYNTH_OUTPUTS)

.PHONY: hls_ip
  5.  Create my own noc_block_agc2.v
  6.  Modify rfnoc_ce_auto_inst_e310.v to instantiate the agc2 block
  7.  From /usrp3/top/e300 run "make E310_RFNOC_HLS"
  8.  If I want to simulate in Modelsim, add the noc_block_agc2.v block to the /usrp3/lib/rfnoc/Makefile.srcs and create an agc2 testbench.

Is there anything else I am missing?


Craig


Craig F. Swanson
Research Engineer II
Information and Communications Laboratory
Communications, Systems, and Spectrum Division
Georgia Tech Research Institute
Room 560
250 14th St NW
Atlanta, GA 30318
Cell: 770.298.9156
http://www.gtri.gatech.edu<https://mail.gtri.gatech.edu/owa/redir.aspx?C=c20925f2f0af4dd29329ddf0701ecfff&URL=http%3a%2f%2fwww.gtri.gatech.edu%2f>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20151016/61606d20/attachment-0002.html>


More information about the USRP-users mailing list