Hi Maria,

Which IP are you trying to include? And is it failing when trying to
simulate or only when building the FPGA? Some IP are easier to include than
others. From your examples, it looked like you were trying to include the
clock wizard. For that IP I usually just copy the MMCM or PLL code that
Vivado generates rather than including the XCI, since the generated code is
mostly just a single primitive, but I think referencing the XCI should also
work.

So this is not the only way to do it, but the example we have for how to
include IP in an OOT block is here:
https://github.com/EttusResearch/uhd/tree/master/host/examples/rfnoc-example/fpga/ip/cmplx_mul

To use this IP example, you need to include these lines in your OOT block's
makefile (which is used for simulation):
https://github.com/EttusResearch/uhd/blob/5333d3d12ffc21229ec4203a9ea1c7f68d82e57f/host/examples/rfnoc-example/fpga/rfnoc_block_gain/Makefile#L28
https://github.com/EttusResearch/uhd/blob/5333d3d12ffc21229ec4203a9ea1c7f68d82e57f/host/examples/rfnoc-example/fpga/rfnoc_block_gain/Makefile#L29

And add it to the Makefile.srcs for your block:
https://github.com/EttusResearch/uhd/blob/5333d3d12ffc21229ec4203a9ea1c7f68d82e57f/host/examples/rfnoc-example/fpga/Makefile.srcs#L15
https://github.com/EttusResearch/uhd/blob/5333d3d12ffc21229ec4203a9ea1c7f68d82e57f/host/examples/rfnoc-example/fpga/Makefile.srcs#L16

Note also how it gets added to LIB_IP_XCI_SRCS. This is already include in
the examles FPGA (X310):
https://github.com/EttusResearch/uhd/blob/5333d3d12ffc21229ec4203a9ea1c7f68d82e57f/fpga/usrp3/top/x300/Makefile.x300.inc#L109

Make sure that line exists for the FPGA you are trying to build. But it
looked like you were building an x300 variant, so it should be there.

Wade


On Mon, Jun 6, 2022 at 3:21 AM sp h <stackprogra...@gmail.com> wrote:

> Ok, I'll take a look. I had a question for creating your custom RFNOC
> block do you use rfnocmodtool creator?
> I think for using an IP core from Xilinx in your
> rfnoc_rfnocblock_blockname.v, you should see a folder in the UHD driver?
> I worked with x300 series RFNOC block, In a folder on this path
> (/home/sp/Documents/uhd-4.2.0.0/fpga/usrp3/lib
> ) exist a folder as name ip..
> IP cores that we need should be defined in the UHD driver folder...
> Your IP list should be added to this folder and changed makefiles
> carefully!!!!
>
> Before you complete your development may be useful this info that we
> follow...
> 1)Do you make the default  UHD FPGA image successfully? Does it work?
> For me, the default UHD FPGA that I make bitstream myself works fine.
>
> 2)But !!! When I want to change RFNOC blocks for example Added an FFT
> block, Radiocores, DDC, and DUC work but
> for FFT and new blocks that I added it does not work.
> It generates OOOOO I described it in the below link
> https://lists.ettus.com/empathy/thread/VJB7A53C6X77JN7DPP3ATASYO4MAH7GH
>
> 3)When I created a custom RFNOC block, Testbench and generate bitstream is
> ok but for working RFNOC block in GNURadio I faced with error section 2.
> Generate OOOOOO in Gnuradio
>
>
> [image: Screenshot from 2022-06-06 12-34-22.png]
>
> For using IP core directly I think you are not familiar with noc_shell and
> RFNOC module structure...
>
> On Sun, Jun 5, 2022 at 10:12 PM Maria Muñoz <mamuk...@gmail.com> wrote:
>
>> Hi,
>>
>> Thanks for the answer.
>> I think that what I'm trying to do should be possible since the addsub
>> example has an option for a hls instance. Maybe I have not explain myself
>> well.
>> I have a top level module which includes several .vhd sources alongside
>> with an ip from xilinx. I can instance this top level entity in the
>> rfnoc_rfnocblock_blockname.v and I can synthesize it if my top_level hasn't
>> include any ip core. But when I have this IP instanced inside my top_level,
>> the makefile chain can't read or regenerate the ip core from the source
>> file (which is an .xci file).
>> What I do not know is how to add the .xci source to the Makefiles so the
>> vivado scripts (which are called when I do "rfnoc_image_builder")
>> synthesize it.
>>
>> Kind Regards,
>> Maria
>>
>>
>> El dom., 5 jun. 2022 18:50, sp h <stackprogra...@gmail.com> escribió:
>>
>>> Hi, You should not expect that integrate or add Xilinx IP core directly
>>> to RFNOC blocks, Even If you be a master in Verilog...
>>> If you see the UHD source code you will realize that UHD is an RFNOC
>>> framework for USRP ...
>>> For working with the RFNOC UHD framework you should know more details:
>>> 1)Please see this link
>>> https://files.ettus.com/app_notes/RFNoC_Specification.pdf
>>> 2)Any RFNOC block has two files, noc_shell_blockname.v  and
>>> rfnoc_block_blockname.v  these two file are very important
>>> the first file is a low-level definition for the RFNOC block and the
>>> second file is the high-level definition for the block. I mention that we
>>> should use IP core in the second file ...
>>> And more details that you should study UHD source code till getting
>>> them...
>>>
>>>
>>> On Fri, Jun 3, 2022 at 6:03 PM Rob Kossler <rkoss...@nd.edu> wrote:
>>>
>>>> Hi Maria,
>>>> I apologize but I am not very experienced with these matters. I am able
>>>> to copy the rfnoc-example folder to an OOT location and build it and I know
>>>> it has both OOT and in-tree IP options.  In the past I have successfully
>>>> run the 'make <testbench>' and also built an image such as "make
>>>> <x300_core>". But, outside of that, I don't really know what I'm doing....
>>>> Rob
>>>>
>>>> On Fri, Jun 3, 2022 at 9:05 AM Maria Muñoz <mamuk...@gmail.com> wrote:
>>>>
>>>>> Hi Rob,
>>>>>
>>>>> I try to put these lines in the makefile.srcs inside my_block/fpga
>>>>> folder as in the rfnoc example:
>>>>>
>>>>> #RFNOC_OOT_SRCS += $(abspath $(addprefix ${RFNOC_EXAMPLE_DIR},
>>>>> #my_other_module.v \
>>>>> #ip/my_ip_core/my_ip_core.xci \
>>>>> #))
>>>>>
>>>>> I add my .xci IP to this folder and give the name of the IP as a
>>>>> rfnoc_oot_src. I can compile the block but when I try to perform synthesis
>>>>> it gives me this error:
>>>>>
>>>>> ERROR: [DRC INBB-3] Black Box Instances: Cell
>>>>> 'x300_core/bus_int_i/rfnoc_sandbox_i/b_3/top_i/my_clk' of type 'clk_wiz_0'
>>>>> has undefined contents and is considered a black box.  The contents of 
>>>>> this
>>>>> cell must be defined for opt_design to complete successfully.
>>>>> ERROR: [Vivado_Tcl 4-78] Error(s) found during DRC. Opt_design not run.
>>>>> ERROR: [Common 17-39] 'opt_design' failed due to earlier errors.
>>>>>
>>>>> So I think I am missing something. I do not see anything else related
>>>>> to IP core. Is there something else I have to do?
>>>>>
>>>>> Kind regards,
>>>>> Maria
>>>>>
>>>>> El mié, 1 jun 2022 a las 17:48, Rob Kossler (<rkoss...@nd.edu>)
>>>>> escribió:
>>>>>
>>>>>> Hi Maria,
>>>>>> The rfnoc-example folder within the UHD tree shows an example of how
>>>>>> to add an out-of-tree IP block. Did you look at this yet?
>>>>>> Rob
>>>>>>
>>>>>> On Wed, Jun 1, 2022 at 5:12 AM Maria Muñoz <mamuk...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi all,
>>>>>>>
>>>>>>> I'm trying to synthesize a design that includes a vivado ip core
>>>>>>> inside.
>>>>>>> Normally, I add my .vhd/.v source files to the Makefile.srcs inside
>>>>>>> my block like this:
>>>>>>>
>>>>>>> RFNOC_OOT_SRCS += $(addprefix $(dir $(abspath $(lastword
>>>>>>> $(MAKEFILE_LIST)))), \
>>>>>>> source1.vhd \
>>>>>>> source2.v \
>>>>>>> source3.v \
>>>>>>> )
>>>>>>>
>>>>>>> But adding the .xci file of my IP core does not work.
>>>>>>>
>>>>>>> What is the process to include this file in the makefile chain to
>>>>>>> compile it?
>>>>>>>
>>>>>>> Kind Regards,
>>>>>>>
>>>>>>> Maria.
>>>>>>> _______________________________________________
>>>>>>> USRP-users mailing list -- usrp-users@lists.ettus.com
>>>>>>> To unsubscribe send an email to usrp-users-le...@lists.ettus.com
>>>>>>>
>>>>>> _______________________________________________
>>>> USRP-users mailing list -- usrp-users@lists.ettus.com
>>>> To unsubscribe send an email to usrp-users-le...@lists.ettus.com
>>>>
>>> _______________________________________________
> USRP-users mailing list -- usrp-users@lists.ettus.com
> To unsubscribe send an email to usrp-users-le...@lists.ettus.com
>
_______________________________________________
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