Thanks Wade, then I'll check my clock domain crossings, guess I need a fifo between them.
Kind Regards, Maria El mar., 14 jun. 2022 20:47, Wade Fife <wade.f...@ettus.com> escribió: > Hi Maria, > > In the timing paths, take a look at the source clock and destination > clock. Are they the same clock? If not, then maybe you haven't handled the > clock domain crossings correctly. If you lowered the clock frequency, the > number of failing paths should go down, but if there are clock crossings > being analyzed by the tool then the number can go up. > > The constraint file for the clock generator IP isn't usually needed > because we create all the base clocks and Vivado will automatically infer > the derived clocks generated by the clock wizard IP. You should be able to > look at the clock report to confirm that all the clocks are being > constrained the way you expect. > > Wade > > On Tue, Jun 14, 2022 at 12:27 PM Maria Muñoz <mamuk...@gmail.com> wrote: > >> Hi again Wade, >> >> After making some synthesis with and without the clock wizard ip, I have >> observed that there is higher timing paths for those which use the ip >> rather than the ones which don't. >> I am lowing the clock for the design so I would expect the opposite >> behaviour. Alongside with the verilog files generated in Vivado, there is a >> constraint file for the clocking wizard which I think I should include. >> Do you include this file on the rfnoc framework when using this ip? Where >> should I include this file? >> >> Kind Regards, >> >> Maria >> >> El lun., 6 jun. 2022 21:50, Wade Fife <wade.f...@ettus.com> escribió: >> >>> You're right. It really depends on the IP. Some are very complicated >>> (hundreds of files) and it makes sense to try to use the XCI and let Vivado >>> do the work of figuring out all the dependencies. For the clk_wiz, I think >>> it makes more sense to just reference the .v files generated by Vivado, or >>> just copy/paste the generated code you need and paste it into your design. >>> >>> Wade >>> >>> On Mon, Jun 6, 2022 at 9:40 AM Maria Muñoz <mamuk...@gmail.com> wrote: >>> >>>> Hi all, >>>> >>>> Thanks for your answers. >>>> >>>> Wade, you are correct, I am trying to instance a clock wizard for an >>>> x310 project. In my VHDL/Verilog Makefile.srcs, I have included the >>>> clk_wiz_0.v and clk_wiz_0_clk_wiz.v files as you said and, for now, >>>> synthesis is not complaining, so it seems to work (I guess I do not have to >>>> include the "vh" files that Vivado use, do I?) >>>> I had tried to do this in the past with other IP but there were so many >>>> missing sources... So I will also check the other way you propose to >>>> include the .xci source. >>>> Again many thanks for your answer! >>>> >>>> Kind Regards, >>>> Maria >>>> >>>> El lun, 6 jun 2022 a las 15:45, Wade Fife (<wade.f...@ettus.com>) >>>> escribió: >>>> >>>>> 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