Login
Back to forumSee the full topicGo to last reply

Posted By

TLC
on 2007-01-07
17:44:56
 Re: SID-supported software ???

Commenting on the SID on FPGA-question: actually, the SID emulation in the DTV sounds surprisingly bad (software emulation, like reSID/SidPlay2 on PC sound far better). Though, I'd suspect the low sampling frequency of the engine and the implemented "1-bit" D/A converters, rather than a buggy or too simplified emulation engine.

The SID is a very special chip. Except for the oscillators and the control logics, everything inside is analog... Remember the SID block diags?... Imagine each SID oscillators as 24-bit counters (they're incremented by the 16-bit frequency value you set for each SID clock cycles, ie. 985Khz), whose upper bits are fed to a digital waveform selector logic, then fed to R/2R ladders... from now on, the sound signal is analog. This analog signal is fed through another, digitally controlled "multiplying" R/2R ladder (the ADSR envelope generator D/A...), then routed either to the filter or directly to the mixer (where the analog signals of the 3 channels + the external signal input are mixed together), then the "master volume" multiplying D/A (another r/2r ladder). All, except for the digital controlling logic, is analog. If that wasn't enough, the really tricky part is the filter. This is a two-stage, resonant multimode filter, implemented right on the NMOS chip... in a manufacturing technology originally designed for digital chips. The "amplifiers" (linearized NMOS inverters) in the filter aren't really linear. Because of that, the filter response is not really predictable; besides the cutoff frequency and resonance settings, the output signal would also be distorted if either of the amplifier stages gets nonlinear (and in return, this would also modify the filter response). This gives the SID a very typical "warm" sound, especially for the 6581.

There's also a little quirk: the older NMOS technology produced chips with high deviation; because of that, you could hardly find two, similarly sounding SIDs... wink With time, Commodore improved and HMOS-2 (in which 8580s were manufactured) happened to introduce less deviation. 8580s sound basically the same. (Well, this should be of no problem for an emulation anyway).

For emulating it in an FPGA... well, most things should work ok. There's no possibility to manipulate analog signals in an FPGA, everything must be done digitally. There would be (as far as I can see) two tricky parts: 1.) the filter, 2.) the D/A conversion. The filter is not (yet) modelled by anyone. reSID / Sidplay2 does a fairly good job at emulating the SID at both the digital and analog level, but emulating the non-linearity of the filter is avoided even here. Emulating the filter (without non-linearity) is a question of the algorithm and the processing power of the FPGA itself. The D/A conversion might be special, as it either needs an extra chip (that FPGA engineers like to avoid if possible =-) ), an r/2r ladder (lots of space + stealing lots of i/o pins that FPGA engineers like to avoid if possible :-D ) or implementing a "1-bit" D/A on-chip. This latter might result in disastrous D/A conversion quality, if not done properly (1-bit D/A converters are tricky and need to operate at very high sampling frequency).

BTW... for a platform like the Plus/4, I guess most of us could live with an emulated SID in an FPGA, which avoids emulating the nonlinearity of the filter. ...The SID isn't native to the Plus/4 anyway.



Back to top


Copyright © Plus/4 World Team, 2001-2024