I modified the three files described above, changing the CMD_FIFO_SIZE 
parameter in dds_timed.v and axi_tag_time.v, and FIFO_SIZE in ddc.v. In all 
cases I attempted to adjust to 20, but that used too much BRAM and I instead 
tried 10, which successfully built.

I loaded the bitfile onto an x310, and ran the following code snippet to test:

```
    uhd::time_spec_t initial_lat(1.0);
    uhd::time_spec_t cmd_time(0.0);
    // Amount of time to increment on each iteration
    uhd::time_spec_t schedule_increment(0, FREQ_SCHEDULE_WINDOW_TICK, 
CLOCK_RATE);
    uhd::tx_metadata_t md;
    md.has_time_spec = true;
    md.start_of_burst = true;
    md.end_of_burst = true;

    global_usrp_time = usrp->get_time_now();
    // Assume the first packet arrives some time before it is actually sent
    cmd_time = global_usrp_time + initial_lat;

    for (int i = 0; i < queue_size; i++)
    {
        // Transmit
        md.time_spec = cmd_time;
        tx_streamer->send(ppayload, nsamples, md);
        cmd_time += schedule_increment;
        
        // Hop at a scheduled time
        usrp->set_command_time(cmd_time);
        usrp->set_tx_freq(tune_request.getNextTuneRequest());
    }
```

The idea is that I schedule approximately one second in the future a number of 
transmits and hops spaced \~200 us apart. If the USRP has enough timed command 
slots in both the digital resampling chain and the transmit chain, this will 
work fine. 

Running this code with queue_size = 5 against the base x310 image works, but 
produces a bunch of late Ls to stdout when queue_size = 6. My image which I 
built with the above parameter modifications has the same behavior as the base 
image, failing at queue_size = 6.

Is there another FIFO somewhere I need to grow?
_______________________________________________
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