Single Stage II Rfilter

FPGASynth.SingleStageIIRfilter History

Hide minor edits - Show changes to markup

November 26, 2006, at 06:21 PM by 71.108.113.221 -
Changed lines 34-35 from:

The design of the filter math module is combinatorial, so it may be multiplexed for a multivoice polyphonic system. Note that the filter module does not contain any storage elements. These are supplied by the instantiating module. For polyphony, each voice must maintain it's own storage elements for it's timeslice of the filter.

to:

Note that the filter module does not contain any storage elements, thus the filter math module is combinatorial, so it may be multiplexed for a multivoice polyphonic system. These are supplied by the instantiating module. For polyphony, each voice must maintain it's own storage elements for it's timeslice of the filter.

November 25, 2006, at 06:41 PM by 71.108.113.221 -
November 25, 2006, at 01:11 AM by 71.108.113.221 -
Changed lines 32-33 from:

This filter was chosen because of it's ease of implementation and that it's frequency control elements can be calculated on the fly with a simple subtraction. This makes it possible to numerically control without the use of any tables. The frequency control is somewhat linearized by use of a cubic converter, the frequency control number is cubed with it and then applied to the filter's frequency input. The design of the filter math module is combinatorial, so it may be multiplexed for a multivoice polyphonic system. Note that the filter module does not contain any storage elements. These are supplied by the instantiating module. For polyphony, each voice must maintain it's own storage elements for it's timeslice of the filter.

to:

This filter was chosen because of it's ease of implementation and that it's frequency control elements can be calculated on the fly with a simple subtraction. This makes it possible to numerically control without the use of any tables. The frequency control is somewhat linearized by use of a cubic converter, the frequency control number is cubed with it and then applied to the filter's frequency input.

The design of the filter math module is combinatorial, so it may be multiplexed for a multivoice polyphonic system. Note that the filter module does not contain any storage elements. These are supplied by the instantiating module. For polyphony, each voice must maintain it's own storage elements for it's timeslice of the filter.

November 25, 2006, at 01:10 AM by 71.108.113.221 -
Changed lines 32-33 from:

This filter was chosen because of it's ease of implementation and that it's frequency control elements can be calculated on the fly. This makes it possible to numerically control without the use of any tables. The frequency control is somewhat linearized by use of a cubic converter, the frequency control number is cubed with it and then applied to the filter's frequency input. The design of the filter math module is combinatorial, so it may be multiplexed for a multivoice polyphonic system. Note that the filter module does not contain any storage elements. These are supplied by the instantiating module. For polyphony, each voice must maintain it's own storage elements for it's timeslice of the filter.

to:

This filter was chosen because of it's ease of implementation and that it's frequency control elements can be calculated on the fly with a simple subtraction. This makes it possible to numerically control without the use of any tables. The frequency control is somewhat linearized by use of a cubic converter, the frequency control number is cubed with it and then applied to the filter's frequency input. The design of the filter math module is combinatorial, so it may be multiplexed for a multivoice polyphonic system. Note that the filter module does not contain any storage elements. These are supplied by the instantiating module. For polyphony, each voice must maintain it's own storage elements for it's timeslice of the filter.

November 25, 2006, at 01:10 AM by 71.108.113.221 -
Changed lines 32-33 from:

This filter was chosen because of it's ease of implementation and that it's frequency control elements can be calculated on the fly. This makes it possible to numerically control without the use of any tables. The frequency control is somewhat linearized by use of a cubic converter, the frequency control number is cubed with it and then applied to the filter's frequency input. The design of the filter math module is combinatorial, so it may be multiplexed for a multivoice polyphonic syste.

to:

This filter was chosen because of it's ease of implementation and that it's frequency control elements can be calculated on the fly. This makes it possible to numerically control without the use of any tables. The frequency control is somewhat linearized by use of a cubic converter, the frequency control number is cubed with it and then applied to the filter's frequency input. The design of the filter math module is combinatorial, so it may be multiplexed for a multivoice polyphonic system. Note that the filter module does not contain any storage elements. These are supplied by the instantiating module. For polyphony, each voice must maintain it's own storage elements for it's timeslice of the filter.

November 25, 2006, at 01:07 AM by 71.108.113.221 -
Changed lines 32-34 from:

The mp3 file contains a filter sweep, constant freq NCO, sweep LFO is triangle. First, about 2 LFO cycles of square wave NCO then about 2 LFO cycles of sawtooth NCO.

to:

This filter was chosen because of it's ease of implementation and that it's frequency control elements can be calculated on the fly. This makes it possible to numerically control without the use of any tables. The frequency control is somewhat linearized by use of a cubic converter, the frequency control number is cubed with it and then applied to the filter's frequency input. The design of the filter math module is combinatorial, so it may be multiplexed for a multivoice polyphonic syste.

The mp3 file contains a filter sweep, constant freq NCO, sweep LFO is triangle. First, about 2 LFO cycles of square wave NCO then about 2 LFO cycles of sawtooth NCO.

Changed lines 38-40 from:

There are no oscope images because I don't have a good way to capture them. I'll leave the display of the waveforms to those of you who download and try the projects.

to:

There are no oscope images because I don't have a good way to capture them. I'll leave the display of the waveforms to those of you who download and try the projects.

November 25, 2006, at 12:58 AM by 71.108.113.221 -
Added lines 1-2:
November 25, 2006, at 12:11 AM by 71.108.113.221 -
Changed lines 28-29 from:
to:

November 25, 2006, at 12:10 AM by 71.108.113.221 -
Added line 25:
November 25, 2006, at 12:10 AM by 71.108.113.221 -
Changed line 24 from:
  NCO_NCF_Sweep: controls NCO frequency  (switch 2 still does x 4)
to:

NCO_NCF_Sweep: controls NCO frequency (switch 2 still does x 4)

November 25, 2006, at 12:03 AM by 71.108.113.221 -
Added lines 37-43:

Files:

November 24, 2006, at 11:58 PM by 71.108.113.221 -
Changed lines 9-10 from:

switch 0 off: filter input waveform to DAC

to:

switch 0

          off: filter input waveform to DAC
Changed lines 12-13 from:

switch 1 off: square wave

to:

switch 1

          off: square wave
Changed lines 15-16 from:

switch 2 off: NCO freq x 1

to:

switch 2

          off: NCO freq x 1
Changed lines 18-19 from:

switch 3 off: slow twiddle (only for NCO_NCF_Twiddle)

to:

switch 3

          off: slow twiddle (only for NCO_NCF_Twiddle)
November 24, 2006, at 11:57 PM by 71.108.113.221 -
Added lines 1-32:

For Spartan-3E SK

Here are two Verilog projects that use the single stage recursive IIR filter module. NCO_NCF_Sweep is a triangle LFO modulating the NCF with an NCO fixed at one of two switch selectable frequencies. NCO_NCF_Twiddle replaces the LFO with the rotary encoder to allow twiddling the frequency setting of the filter, again with a dual frequency NCO. Switches work as follows:

switch 0 off: filter input waveform to DAC

           on: filter output waveform to DAC

switch 1 off: square wave

           on: sawtooth wave

switch 2 off: NCO freq x 1

           on: NCO freq x 4

switch 3 off: slow twiddle (only for NCO_NCF_Twiddle)

           on: fast twiddle (only for NCO_NCF_Twiddle) 

Rotary Encoder:

  NCO_NCF_Sweep: controls NCO frequency  (switch 2 still does x 4)

NCO_NCF_Twiddle: controls NCF frequency - for you twiddlers out there...

The mp3 file contains a filter sweep, constant freq NCO, sweep LFO is triangle. First, about 2 LFO cycles of square wave NCO then about 2 LFO cycles of sawtooth NCO.

The projects are each in their own zip files: NCO_NCF_Sweep.zip and NCO_NCF_Twiddle.zip

There are no oscope images because I don't have a good way to capture them. I'll leave the display of the waveforms to those of you who download and try the projects.

Output comes from DAC output A on the Start Kit board.