discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Loops in graphs?


From: Eric Blossom
Subject: Re: [Discuss-gnuradio] Loops in graphs?
Date: Sun, 6 Feb 2005 09:06:55 -0800
User-agent: Mutt/1.5.6i

On Sun, Feb 06, 2005 at 03:57:32PM +0100, Thomas Traber wrote:
> Trying to build a simple phase locked
> loop in python results in the following
> error message:
> 
> "The graph is not an acyclic graph (It's
> got a loop)"
> 
> Does this mean it is not possible to build graphs with loops?

At this point this is true.

> Do I have to do that in C?
> Thinking about the variety of loops found 
> in radios (AFC, AGC, PLL, ..?) I consider
> not beeing able to create loops in
> python as a great disadvantage.

Understood.

> Is there any chance to change this?

If you can come up with a workable strategy, I'm willing to listen.

The basic problem is that as implemented the amount of buffering
between blocks is unspecified.  This has some advantages and
disadvantages.  One advantage is that the run time scheduler gets
to pick the buffer sizes based on its idea of "good".  This allows us
to have each block work on bigger chunks of data at a time and reduces
overhead.  It also allows us to construct blocks that have input to
output rates that vary dynamically at runtime (e.g., variable rate
compressor, etc).  The disadvantage is that you don't know how much
buffering you've got, and as a result you can't implement a "delay"
primitive.  Without "delay" I don't know how to implement a loop.

One option might be to specify that a certain portion of the
graph is statically scheduled.  This could allow the best of both
worlds.

Take a look at these parts of the code...

  flow_graph.py
  basic_flow_graph.py
  scheduler.py
  gr_single_threaded_scheduler.{h,cc}

... and let me know what you come up with.

Thanks for your comments and ideas.

Eric




reply via email to

[Prev in Thread] Current Thread [Next in Thread]