I did follow that Getting Started guide and produce the text book rfnoc_tutorial OOT module and simulated it without issue.
Then next thing I did was to create a second OOT module and name it nd_fft. So the same generic OOT module with a different name. That too simulated without issue. So now what I wanted to do was to take the stock FFT and place it into my new module. So I took the RTL and the test. I then tried to simulate and the error that came back was that module axi_fft was unresolved. So the top level model did build, but the underlying IP was not in the search path. Based on what you are saying, I kind of expected that the axi_fft should have been in the default search path already. Would you say that was unexpected behavior for the standard OOT module? I will look at your bullets below and provide feedback tonight. I see what you are saying about modifying the .xci. Am I supposed to copy the axi_fft IP to this ejk43/rfnoc-ootexample path to make it local? I am guessing that bullet 2, could be a path back to the original IP so I don’t have to copy it. > On Sep 14, 2018, at 8:20 AM, Jon Pendlum <jon.pend...@gmail.com> wrote: > > Hi Rich, > > The standard Ettus in-tree Vivado IP, which includes the axi_fft, is > automatically included. You do not need to do anything. Have you went through > the RFNoC getting started guide > (https://kb.ettus.com/Getting_Started_with_RFNoC_Development > <https://kb.ettus.com/Getting_Started_with_RFNoC_Development>)? I think that > will help you understand the FPGA build process. The key concept to > understand is that building the FPGA is separate from building your OOT > module. The FPGA build Makefile exists in the Ettus FPGA repo and pulls in > files from that repo. That is why you do not need to include any Ettus > in-tree files, the Makefile will include them automatically. > > When you get to the point of adding your custom IP, you need to do these > things: > 1) Use this IP as a template on how to add your IP: > https://github.com/ejk43/rfnoc-ootexample/blob/master/rfnoc/ip/complex_to_magphase_oot/ > > <https://github.com/ejk43/rfnoc-ootexample/blob/master/rfnoc/ip/complex_to_magphase_oot/>. > It is usually as simple as adding your .xci file and some renaming. > 2) Add your IP to this file: > https://github.com/ejk43/rfnoc-ootexample/blob/master/rfnoc/ip/Makefile.inc > <https://github.com/ejk43/rfnoc-ootexample/blob/master/rfnoc/ip/Makefile.inc> > 3) Make sure you have this line: > https://github.com/ejk43/rfnoc-ootexample/blob/master/rfnoc/Makefile.inc#L6 > <https://github.com/ejk43/rfnoc-ootexample/blob/master/rfnoc/Makefile.inc#L6> > 4) Use uhd_image_build_gui to import your OOT module and build your > bitstream. See the RFNoC getting started guide. > > > Jonathon > > On Fri, Sep 14, 2018 at 10:40 PM Rich Maes via USRP-users > <usrp-users@lists.ettus.com <mailto:usrp-users@lists.ettus.com>> wrote: > So I have looked at the ejk43/rfnoc-ootexample and I have been trying to > apply what I think I am seeing. Truth in advertising, I an FPGA engineer, > and I don’t usually get into Makefiles or CMakeLists.txt very much. > > I think the correct thing to do is to modify the CMakeLists.txt so that when > cmake is run, the the new Makefiles are generated with the correct content. > > All I want to do, I believe right now is pull in the axi_fft IP. My next will > be to follow the advice of one of the respondents and build the IP local to > the OOT module, but I am still not certain how I am suppose to reference it > correctly. Just trying to get a list of what needs to be touched to get the > standard OOT to look an IP directory. > > What I have done is this: > > modify this line to include FFT > set(GR_REQUIRED_COMPONENTS RUNTIME FFT) > > and then later, I included this chunk in my > ~/rfnoc/src/rfnoc-nd_fft/CMakeLists.txt file > > ######################################################################## > # Setup CPack components > ######################################################################## > include(GrPackage) > CPACK_SET(CPACK_COMPONENT_GROUP_FFT_DESCRIPTION "GNU Radio FFT Blocks") > > CPACK_COMPONENT("fft_runtime" > GROUP "FFT" > DISPLAY_NAME "Runtime" > DESCRIPTION "Runtime" > DEPENDS "runtime_runtime" > ) > > CPACK_COMPONENT("fft_devel" > GROUP "FFT" > DISPLAY_NAME "Development" > DESCRIPTION "C++ headers, package config, import libraries" > DEPENDS "runtime_devel" > ) > > CPACK_COMPONENT("fft_python" > GROUP "FFT" > DISPLAY_NAME "Python" > DESCRIPTION "Python modules for runtime; GRC xml files" > DEPENDS "runtime_python;fft_runtime" > ) > > CPACK_COMPONENT("fft_swig" > GROUP "FFT" > DISPLAY_NAME "SWIG" > DESCRIPTION "SWIG development .i files" > DEPENDS "runtime_swig;fft_python;fft_devel" > ) > > ######################################################################## > # Add subdirectories > ######################################################################## > add_subdirectory(include/gnuradio/fft) > add_subdirectory(lib) > if(ENABLE_PYTHON) > add_subdirectory(swig) > add_subdirectory(python/fft) > add_subdirectory(grc) > endif(ENABLE_PYTHON) > add_subdirectory(docs) > > ######################################################################## > # Create Pkg Config File > ######################################################################## > configure_file( > ${CMAKE_CURRENT_SOURCE_DIR}/gnuradio-fft.pc.in > <http://gnuradio-fft.pc.in/> > ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-fft.pc > @ONLY) > > install( > FILES ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-fft.pc > DESTINATION ${GR_LIBRARY_DIR}/pkgconfig > COMPONENT "fft_devel" > ) > > > > I also added this because cmake complained that it could not find > GnuradioConfig.cmake > > install(FILES ../../../../src/gnuradio/GnuradioConfig.cmake > DESTINATION ${CMAKE_MODULES_DIR}/gnu_radio > ) > > > > _______________________________________________ > USRP-users mailing list > USRP-users@lists.ettus.com <mailto:USRP-users@lists.ettus.com> > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com > <http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com>
_______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com