Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!seismo!lll-lcc!lll-tis!ptsfa!cogent!mark
From: mark@cogent.UUCP (Captain Neptune)
Newsgroups: sci.electronics,rec.music.synth
Subject: DCO's revisited - an inquiry into hardware implementation
Message-ID: <235@cogent.UUCP>
Date: Mon, 6-Jul-87 00:42:35 EDT
Article-I.D.: cogent.235
Posted: Mon Jul  6 00:42:35 1987
Date-Received: Mon, 6-Jul-87 06:49:12 EDT
Reply-To: mark@cogent.UUCP (Mark Steven Jeghers)
Distribution: world
Organization: Cogent Software Solutions, Stockton, CA
Lines: 56
Keywords: now for the real work...
Xref: mnetor sci.electronics:898 rec.music.synth:1017


I recently posted an article discussing the design of a totally digital
oscillator for use in a musical synthesizer.  It was posted in the
"rec.music.synth" group, I forget what the distribution was.  If anyone
did not receive it and wishes for a copy, email me.  Anyway, in an attempt
to actually work out the hardware implementation, I have run into a problem.

The key part of the DCO is the adder-latch feedback loop.  Theoretically,
as my article described, you can run it at a clock rate of your choosing and
use the number of bits of your choosing, in order to achieve the desired
range and accuracy.  The problem, however, is getting circuitry that will
run fast enough.  Specifically:

The only binary adder that I can locate that is reasonably simple and
readily available is the 7483 IC.  For faster speed, the CMOS version,
the 74HC283, is available (slightly different pinout, but same stuff).
The 74HC283 is plenty fast, BUT it is only 4 bits wide.  To handle a
large number of bits (between 20 and 32), this means cascading a bunch
of them (so their carry-bits can be connected together).  The propogation
delays for the carry bits add up to a large amount.  The bottom line is
this: the adder gets REAL slow due to the required rippling of so many
carry bits.

I see 3 possible solutions, and request feedback on them (or any other ideas):

1. Get a adder that handles more bits.  An 8-bit adder IC would approximately
   double the speed of the overall adder.  An adder that handled more than
   8 bits would be even better.  But where to find one?????

2. Use PALs.  A PAL could be programmed to act as an adder that handles many
   more bits.  An 8-bit adder could be made easily.  Some PALs even have
   latched outputs, so the whole adder-latch loop could be burned into the
   PAL.  The problem: which PAL is most suitable and where to get it
   programmed for less than an arm and a leg.

3. Use a Microprocesser Slice chip (an ALU, that is).  The 7400 series
   has a cruddy 4-bit ALU, which is no better off.  There is a place called
   Cypress Semiconductor (sp?) which makes 16-bit slices.  Two of those
   cascaded would give you a damn-good 32-bit ALU.  The problem:  fitting
   it into a reasonably simple DCO design (probably require microcode to
   run the ALU) and availability (will they sell me less than lots of 1000?)

Well, net?  There you have it.  What do YOU think is a good course of action?

Like I said, email if you want to see the original article.  It may clarify
my questions for you.

Thanks in advance.
-- 
+----------------------------------------------------------------------------+
|     Mark Steven Jeghers: the terrorist smuggling CIA weapons to Libya      |
|                                                                            |
|     {ihnp4,cbosgd,lll-lcc,lll-crg}|{dual,ptsfa}!cogent!mark                |
|                                                                            |
|     Standard Disclaimer:  Contents may have settled during shipment.       |
+----------------------------------------------------------------------------+