What I did was instead of creating an enable flag, I used the PKT_SIZE value I write when I execute a flowgraph to be my enable:
assign enabled = (PKT_SIZE > 0) ? 1'b1 : 1'b0;
assign o_tvalid = enabled;

That should work, right?  If not, how do I know that initialization is done?

I didn't write any C++ code for this block, is there an example for what you want me to do (I haven't done that to a block before)? I can't seem to find any C++ code for the RFNoC:siggen block.


On 07/24/2017 01:57 PM, Jonathon Pendlum wrote:
In the first screenshot you captured your block sending out a command response packet. That is normal.

In the second screenshot, I couldn't see the full value of the header / first word, so I cannot say if it had any issues.

Did you add an explicit enable for your block that turns it on after initialization? It would also be a good idea to add a sr_write to turn off the enable in your block's destructor code too.

On Mon, Jul 24, 2017 at 10:29 AM, Jason Matusiak <ja...@gardettoengineering.com <mailto:ja...@gardettoengineering.com>> wrote:

    One last piece of oddball info I've discovered.

    RFNoC:dataGenerator -> RFNoC:FIFO -> throttle -> QT GUI Time Sink

    1 - If I program the X310 and run it, I get timeouts streaming
    immediately and nothing shows up on the timesink.  If I then stop
    it and run it again, I get some data through, and then the timeout
    stream.  If I run it a third time, I get:
    RuntimeError: EnvironmentError: IOError: Block ctrl
    (CE_00_Port_30) no response packet - AssertionError: bool(buff)
      in uint64_t ctrl_iface_impl::wait_for_ack(bool)
      at /home/jmat/rfnoc/src/uhd/host/lib/rfnoc/ctrl_iface.cpp:197

    2 - If I remove the throttle (leave everything else the same), I
    get different results.  The first time through is the same,
    immediate stream of timeouts.  The second time I run it I get one
    "overrun on chan 0 D", but then the data streams through
    successfully.  If I run it a third time, I get the Block ctrl
    errors again.

    3 - a fresh download of the image and then a uhd_usrp_probe returns a:
    [ERROR] [UHD] Exception caught in safe-call.
      in virtual ctrl_iface_impl::~ctrl_iface_impl()
      at /home/jmat/rfnoc/src/uhd/host/lib/rfnoc/ctrl_iface.cpp:76
    this->peek32(0); -> EnvironmentError: IOError: Block ctrl
    (CE_00_Port_30) packet parse error - EnvironmentError: IOError:
    Expected SID: 02:30>00:00 Received SID: 02:60>00:00

    And then running my flowgraph after getting that error only give
    me the error.

    I cannot for the life of me figure out why removing the throttle
helps, and what is special about running it the second time. Also, why will it "run" on a fresh boot, but when I probe it first
    it gets into a weird state?



    On 07/24/2017 12:32 PM, Jason Matusiak wrote:
    OK, in my original email I said that nothing was coming out of
    o_tdata at the top level, but for some reason I see it working
    now.  That said, I am still not seeing anything come out of the
    block even though the o_tdata seems to be working.

    I attached a screenshot of what the data looks like in the middle
    of running.  I see the data go valid, then it waits on o_tready
    to go high, then data streams out until o_tlast goes high.  That
    all seems legitimate to me, but when I put that output of the
    block through a throttle and then a file sink, there is no data
    (which is probably why I see the timeouts streaming across the
    debug screen).

    Any thoughts?


    On 07/24/2017 08:08 AM, Jason Matusiak wrote:
    OK, attached is a screenshot of what you wanted.  i triggered on
    when o_tvalid when high and monitored o_tdata, o_tlast,
    o_tready, and o_tvalid.  I need to look at a working block, but
    I am surprised to see o_tlast go high so quickly..

    I would love to hear what you think is going on because I am
    stuck on this and have been for a few days.

    On 07/21/2017 04:00 PM, Jonathon Pendlum wrote:
    Yep

    On Fri, Jul 21, 2017 at 11:54 AM, Jason Matusiak
    <ja...@gardettoengineering.com
    <mailto:ja...@gardettoengineering.com>> wrote:

        I need to re-setup my debug messages to check.  To be
        clear, you are talking about the o_tdata (etc) up in my
        upper level noc_block_dataGenerator, right?



        On 07/21/2017 02:52 PM, Jonathon Pendlum wrote:

            Here is what should happen on the axi stream bus to the
            crossbar. You should first see the header on o_tdata
            with o_tvalid asserted. After a few clock cycles,
            depending on how long arbitration takes, you should see
            o_tready assert. Are you seeing that sequence?








_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to