Mercurial > pygar
view common/Mixer.bsv @ 9:a66d70a89c85 pygar svn.10
[svn r10] added week 3 progress report. Please tell me what you think!
author | rlm |
---|---|
date | Fri, 23 Apr 2010 06:08:21 -0400 |
parents | cdad17407328 |
children |
line wrap: on
line source
1 import FIFOF::*;2 import FIFO::*;5 interface Mixer;6 method Action feed(Sample samp, VoiceId id); // feed in a sample to a specific FIFOF7 method Action stream(); // Outputs muxed data.8 endinterface11 method vectorFull?(Vector#(FIFOF#(Sample)) vect)13 (reduce .notEmpty vect)15 endmethod19 module mkMixer(Mixer);21 FIFO output = mkFIFO();24 // make vector of fifos, length = MAX_VOICES25 fifo_vect Vector#(FIFOF#(Sample)) = mkVector(`MAX_VOICES);28 for $i(1 .. `MAX_VOICES)29 begin30 fifo_vect[$i] = mkFIFOF();31 end33 rule(vectorFull?(fifo_vect))35 Sample out = (/ (reduce + fifo_vector) (log `MAX_VOICES))36 output.enq(out);38 endrule41 endmodule