Hi,

No I haven't added noc_block_fir.v file. Am I supposed to add it in
lib/rfnoc folder along with other files such as noc_block_addsub.v? Also is
there any guide on how to write this file?

I didn't get your last line
"and the way it uses to choose if the sources that it is going to use
(either .v or hls) is done by the parameter "USE_HLS". In case you haven't
done this, you may want to add the noc_block*, or maybe modify the
noc_block_fir_filter.v to add the USE_HLS in there."

Currently the noc_block_addsub.v file has USE_HLS = 0. Does this mean it
isn't using the HLS sources?

Just to clarify, I want to add my own custom 'fir' block written in HLS, I
don't want to use the existing noc_block_fir_filter block.

Appreciate your feedback

Thanks,
Vishwesh



On Wed, Dec 7, 2016 at 2:29 AM, Nicolas Cuervo <nicolas.cue...@ettus.com>
wrote:

> HI Vishwesh,
>
> For the first part, yes, please only add noc_block elements into the auto
> inst file.
>
> For the second part, if you add that like into the lib/rfnoc/Makefile.srcs
> you are telling the build system that you added verilog sources with that
> name. Given that you are using HLS for that, that may be the source of that
> error response.
>
> >>>> So I added the line "noc_block_fir.v \" to the
> lib/rfnoc/Makefile.srcs file
>
> Now, it is saying that it can not find the noc_block_fir.v. Just as a
> sanity check: did you add a noc_block_fir.v file? I just ask to be sure, as
> you didn't explicitly say that in your email and that may be the source of
> the issue. The HLS sources will add the core functionality for your block,
> but the noc_block_*.v has functions such as the AXI wrapping and
> interfacing with the crossbar. Going back to the addsub example, you can
> see that it also has a noc_block_addsub.v, and the way it uses to choose if
> the sources that it is going to use (either .v or hls) is done by the
> parameter "USE_HLS". In case you haven't done this, you may want to add the
> noc_block*, or maybe modify the noc_block_fir_filter.v to add the USE_HLS
> in there.
>
> If you indeed have done what I just said, please let us know so that we
> can check what else is going on.
>
> Cheers,
> - N
>
>
>
> On Wed, Dec 7, 2016 at 10:51 AM, Vishwesh Rege <vrege2...@gmail.com>
> wrote:
>
>> Hi,
>>
>> Thanks for the detailed reply.
>>
>> >>>>>>From these I could add noc_block_digital_gain (built successfully)
>> >>>>>>but couldn't add chdr_fifo_large (running make X310_RFNOC_HLS_HG
>> gave an error)
>>
>> >>>>Could you please tell us what error did it throw?
>>
>> I inserted the following code in rfnoc_ce_auto_inst_x310.v file to add
>> chdr_fifo_large:
>>
>>
>>
>>
>>
>>
>> *****************************************************************************************************chdr_fifo_large
>> inst_chdr_fifo_large (    .bus_clk(bus_clk), .bus_rst(bus_rst),
>> .ce_clk(ce_clk), .ce_rst(ce_rst),    .i_tdata(ce_o_tdata[5]),
>> .i_tlast(ce_o_tlast[5]), .i_tvalid(ce_o_tvalid[5]),
>> .i_tready(ce_o_tready[5]),    .o_tdata(ce_i_tdata[5]),
>> .o_tlast(ce_i_tlast[5]), .o_tvalid(ce_i_tvalid[5]),
>> .o_tready(ce_i_tready[5]),    .debug(ce_debug[5]));*
>> ************************************************************
>> ****************************************
>>
>> From your reply I gather that I cannot add chdr_fifo_large block (since
>> only blocks starting with "noc_block_" are allowed) but following is the
>> error I got:
>> ************************************************************
>> ************************************************************
>> ************************************************************
>> ********************
>> INFO: [Synth 8-256] done synthesizing module
>> 'chdr_fifo_large__parameterized0' (170#1) [/home/vrege/rfnoc/src/uhd-fpg
>> a/usrp3_rfnoc/lib/rfnoc/chdr_fifo_large.v:5]
>> ERROR: [Synth 8-448] named port connection 'bus_clk' does not exist for
>> instance 'inst_chdr_fifo_large' of module 'chdr_fifo_large'
>> [/home/vrege/rfnoc/src/uhd-fpga/usrp3_rfnoc/top/x300/rfnoc_
>> ce_auto_inst_x310.v:56]
>> ERROR: [Synth 8-448] named port connection 'bus_rst' does not exist for
>> instance 'inst_chdr_fifo_large' of module 'chdr_fifo_large'
>> [/home/vrege/rfnoc/src/uhd-fpga/usrp3_rfnoc/top/x300/rfnoc_
>> ce_auto_inst_x310.v:56]
>> ERROR: [Synth 8-448] named port connection 'ce_clk' does not exist for
>> instance 'inst_chdr_fifo_large' of module 'chdr_fifo_large'
>> [/home/vrege/rfnoc/src/uhd-fpga/usrp3_rfnoc/top/x300/rfnoc_
>> ce_auto_inst_x310.v:57]
>> ERROR: [Synth 8-448] named port connection 'ce_rst' does not exist for
>> instance 'inst_chdr_fifo_large' of module 'chdr_fifo_large'
>> [/home/vrege/rfnoc/src/uhd-fpga/usrp3_rfnoc/top/x300/rfnoc_
>> ce_auto_inst_x310.v:57]
>> ERROR: [Synth 8-448] named port connection 'debug' does not exist for
>> instance 'inst_chdr_fifo_large' of module 'chdr_fifo_large'
>> [/home/vrege/rfnoc/src/uhd-fpga/usrp3_rfnoc/top/x300/rfnoc_
>> ce_auto_inst_x310.v:60]
>> ...
>> ERROR: [Synth 8-285] failed synthesizing module
>> 'synchronizer_impl__parameterized0' [/home/vrege/rfnoc/src/uhd-fpg
>> a/usrp3_rfnoc/lib/control/synchronizer_impl.v:5]
>> ERROR: [Synth 8-285] failed synthesizing module
>> 'synchronizer__parameterized0' [/home/vrege/rfnoc/src/uhd-fpg
>> a/usrp3_rfnoc/lib/control/synchronizer.v:5]
>> ERROR: [Synth 8-285] failed synthesizing module 'x300_core'
>> [/home/vrege/rfnoc/src/uhd-fpga/usrp3_rfnoc/top/x300/x300_core.v:2]
>> ERROR: [Synth 8-285] failed synthesizing module 'x300'
>> [/home/vrege/rfnoc/src/uhd-fpga/usrp3_rfnoc/top/x300/x300.v:15]
>> ************************************************************
>> ************************************************************
>> ************************************************************
>> ********************
>>
>> >>>>In that directory there is an 'addsub' block written in HLS as an
>> example.
>>
>> I want to actually add a custom 'fir' block that I have written in HLS to
>> the built image.
>> So I created another fir_hls directory in the lib/hls folder using the
>> addsub_hls as an example with my own fir_hls.cpp, .tcl and Makefile.inc
>> I also modified the Makefile.inc in the lib/hls folder correspondingly.
>> Then I added "noc_block_fir" to the rfnoc_ce_auto_inst file.
>> On running make X310_RFNOC_HLS_HG I got the following error:
>> ************************************************************
>> ************************************************************
>> ************************************************************
>> ********************
>> ERROR: [Synth 8-439] module 'noc_block_fir' not found
>> [/home/vrege/rfnoc/src/uhd-fpga/usrp3_rfnoc/top/x300/rfnoc_
>> ce_auto_inst_x310.v:62]
>> ERROR: [Synth 8-285] failed synthesizing module 'x300_core'
>> [/home/vrege/rfnoc/src/uhd-fpga/usrp3_rfnoc/top/x300/x300_core.v:2]
>> ERROR: [Synth 8-285] failed synthesizing module 'x300'
>> [/home/vrege/rfnoc/src/uhd-fpga/usrp3_rfnoc/top/x300/x300.v:15]
>> ************************************************************
>> ************************************************************
>> ************************************************************
>> ********************
>>
>> So I added the line "noc_block_fir.v \" to the lib/rfnoc/Makefile.srcs
>> file
>> But that gave another error:
>> make[1]: *** No rule to make target `/home/vrege/rfnoc/src/uhd-fpg
>> a/usrp3_rfnoc/lib/rfnoc/noc_block_fir.v', needed by `bin'.  Stop.
>>
>> What changes do I need to make in the procedure to add my custom FIR
>> block to the image built by make?
>>
>> Thanks,
>> Vishwesh
>>
>>
>>
>>
>> On Wed, Dec 7, 2016 at 12:16 AM, Nicolas Cuervo <nicolas.cue...@ettus.com
>> > wrote:
>>
>>> Hello Vikesh,
>>>
>>> Please take a look at this section of our "Getting started with RFNoC
>>> Development" guide, specifically the "wiring CE" section [1]. As Marcus
>>> stated, NoC blocks start with "noc_block_", and this is the way to identify
>>> them in the sources.
>>>
>>> On 12/06/2016 10:37 PM, Vishwesh Rege wrote:
>>> >>>>What are the list of blocks that I can add?
>>>
>>> In that page that I just referenced there is a list of the current
>>> noc_blocks provided by Ettus.
>>>
>>> >>>>But what functionality do the other FIFOs provide (when am I
>>> supposed to use them)?
>>> >>>>chdr_fifo_large
>>> >>>>noc_block_axi_dma_fifo
>>> >>>>split_stream_fifo
>>> >>>>ram_to_fifo ... etc.
>>>
>>> Talking about "blocks' in a really general way, you'd only have to take
>>> in consideration the 'noc_block_axi_dma_fifo". The others that you listed
>>> are part of the library because the serve other functions at a lower level
>>> of abstraction to generate the blocks that you are going to use directly in
>>> your application.
>>>
>>> >>>>Using the make.py approach:
>>> >>>>From what I understand make.py only generates an output.v file
>>> right? After running make.py do I have to copy the contents of the output.v
>>> file to >>>>rfnoc_ce_auto_inst_x310.v?
>>>
>>> No. make.py will take the blocks that you provided as parameters, and
>>> with that it will generate your rfnoc_ce_auto_inst file and right after
>>> will kick your bitstream build. The script only needs you to have vivado
>>> installed, but you don't have to copy contents of files. It appears that
>>> you gave the script the "-o output.v" option. This will generate a file
>>> without kicking the build, but this option you'd use as a verification of
>>> the file correctness. If you just skip this option, the
>>> rfnoc_ce_auto_inst_x310.v file will be overwritten directly and your build
>>> will start automatically.
>>>
>>> >>>>From these I could add noc_block_digital_gain (built successfully)
>>> >>>>but couldn't add chdr_fifo_large (running make X310_RFNOC_HLS_HG
>>> gave an error)
>>>
>>> Could you please tell us what error did it throw?
>>>
>>> >>>>Finally what difference does it make if I run "make X310_RFNOC_HG"
>>> versus "make X310_RFNOC_HLS_HG"
>>>
>>> The X310_RFNOC_HLS_HG target uses "High Level Synthesis" to generate the
>>> build. This is a way of generating hardware designs by the means of
>>> software algorithms (i.e. you use C, C++ or SystemC to describe your
>>> hardware, and the build system will translate that into hardware). By
>>> selecting this target you are telling the build system that you wrote some
>>> C/C++/SystemC code, located it at usrp3/lib/hls, and you want it to be part
>>> of your design. In that directory there is an 'addsub' block written in HLS
>>> as an example.
>>>
>>> The X310_RFNOC_HG will synthesize your design using verilog sources.
>>>
>>> Cheers,
>>>
>>> - Nicolas
>>>
>>> [1] https://kb.ettus.com/Getting_Started_with_RFNoC_Development#
>>> Wiring_up_computation_engines_and_building_the_FPGA_image
>>>
>>>
>>>
>>> On Tue, Dec 6, 2016 at 10:45 PM, Marcus Müller <marcus.muel...@ettus.com
>>> > wrote:
>>>
>>>> A NoC block should, as far as I can tell, always start with noc_block_.
>>>>
>>>>
>>>> Best regards,
>>>>
>>>> Marcus
>>>>
>>>> On 12/06/2016 10:37 PM, Vishwesh Rege wrote:
>>>>
>>>> Hi,
>>>>
>>>> What are the list of blocks that I can add?
>>>>
>>>> For example,
>>>> Looking at the list of blocks in usrp3_rfnoc/lib/rfnoc/Makefile.srcs
>>>>
>>>> From these I could add noc_block_digital_gain (built successfully)
>>>> but couldn't add chdr_fifo_large (running make X310_RFNOC_HLS_HG gave
>>>> an error)
>>>>
>>>> How do I know which blocks will work?
>>>>
>>>> For the error I'm getting in GRC "FIFO_0 block missing" I think
>>>> noc_block_axi_fifo_loopback is probably the right one
>>>> But what functionality do the other FIFOs provide (when am I supposed
>>>> to use them)?
>>>> chdr_fifo_large
>>>> noc_block_axi_dma_fifo
>>>> split_stream_fifo
>>>> ram_to_fifo ... etc.
>>>>
>>>> Thanks,
>>>> Vishwesh
>>>>
>>>> --
>>>> To change the blocks, you need to edit rfnoc_ce_auto_inst_x310.v twice:
>>>> You need to change NUM_CE (at the top), and then the actual block list.
>>>>
>>>> For FIFOs, you can go to the bottom and use the generate for loop to add
>>>> more FIFOs.
>>>>
>>>> You can use make.py to autogenerate this file (in
>>>> usrp3/tools/scripts/make.py).
>>>>
>>>> Cheers,
>>>> Martin
>>>>
>>>> On 12/04/2016 05:55 PM, Vishwesh Rege wrote:
>>>> > Hi,
>>>> >
>>>> > I want to add the FIFO block in usrp3_rfnoc/lib/fifo to USRP along
>>>> with
>>>> > the addsub module in usrp3_rfnoc/lib/hls folder.
>>>> >
>>>> > I'm running make X310_RFNOC_HLS_HG from usrp3_rfnoc/top/x300 directory
>>>> > and then flashing the generated image in build/.
>>>> >
>>>> > However, the FIFO isn't included in the image for some reason. Only
>>>> the
>>>> > following RFNoC blocks are actually flashed:
>>>> > | | | * DmaFIFO_0
>>>> > | | | * Radio_0
>>>> > | | | * Radio_1
>>>> > | | | * AddSub_0
>>>> > | | | * FIR_0
>>>> > | | | * FFT_0
>>>> > | | | * Window_0
>>>> > | | | * NullSrcSink_0
>>>> > | | | * SigGen_0
>>>> > | | | * MovingAverage_0
>>>> > | | | * VectorIIR_0
>>>> > | | | * KeepOneInN_0
>>>> > | | | * fosphor_0
>>>> >
>>>> > The Makefile usrp3_rfnoc/top/x300/Makefile.x300.inc already includes
>>>> > FIFO_SRCS in DESIGN_SRCS
>>>> >
>>>> > Do I need to make any changes to include the FIFO?
>>>> >
>>>> > Any help is appreciated.
>>>> >
>>>> >
>>>> >
>>>> >
>>>>
>>>>
>>>> _______________________________________________
>>>> Discuss-gnuradio mailing 
>>>> listDiscuss-gnuradio@gnu.orghttps://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Discuss-gnuradio mailing list
>>>> Discuss-gnuradio@gnu.org
>>>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>>
>>>>
>>>
>>
>>
>> --
>> Vishwesh Rege
>> +1 (858) 729-4157 <(858)%20729-4157> | vr...@ucsd.edu |
>> https://sites.google.com/site/vishweshrege
>>
>
>


-- 
Vishwesh Rege
+1 (858) 729-4157 | vr...@ucsd.edu |
https://sites.google.com/site/vishweshrege
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to