OK! Writing a round robin, is so simple. Then we have only the trouble of making it weighted? OK?
But, how many queues you have? I think this is a very important factor.
Finally, I think writing this can be very simple, just to use some counters, for counting the number of times, we serve a special quque. A small block memory should be enough for holding the counter values.
OK?