overall implantable medical device system . fig1 shows the general environment of an implantable neuro stimulator ( ins ) medical device 14 in accordance with a preferred embodiment of the present invention . the neurostimulation system generally includes an ins 14 , a lead 12 , a lead extension 20 , an external neuro stimulator ( ens ) 25 , a physician programmer 30 , and a patient programmer 35 . the ins 14 preferably is a implantable pulse generator that will be available from medtronic , inc . with provisions for multiple pulses occurring either simultaneously or with one pulse shifted in time with respect to the other , and having independently varying amplitudes and pulse widths . the ins 14 contains a power source and electronics to send precise , electrical pulses to the spinal cord , brain , or neural tissue to provide the desired treatment therapy . in the embodiment , ins 14 provides electrical stimulation by way of pulses although alternative embodiments may use other forms of stimulation such as continuous electrical stimulation . the lead 12 is a small medical wire with special insulation . the lead 12 includes one or more insulated electrical conductors with a connector on the proximal end and electrical contacts on the distal end . some leads are designed to be inserted into a patient percutaneously , such as the model 3487a pisces - quad ® lead available from medtronic , inc . of minneapolis minn ., and some leads are designed to be surgically implanted , such as the model 3998 specify ® lead also available from medtronic . the lead 12 may also be a paddle having a plurality of electrodes including , for example , a medtronic paddle having model number 3587a . those skilled in the art will appreciate that any variety of leads may be used to practice the present invention . the lead 12 is implanted and positioned to stimulate a specific site in the spinal cord or the brain . alternatively , the lead 12 may be positioned along a peripheral nerve or adjacent neural tissue ganglia like the sympathetic chain or it may be positioned to stimulate muscle tissue . the lead 12 contains one or more electrodes ( small electrical contacts ) through which electrical stimulation is delivered from the ins 14 to the targeted neural tissue . if the spinal cord is to be stimulated , the lead 12 may have electrodes that are epidural , intrathecal or placed into the spinal cord itself . effective spinal cord stimulation may be achieved by any of these lead placements . although the lead connector can be connected directly to the ins 14 , typically the lead connector is connected to a lead extension 20 which can be either temporary for use with an ens 25 or permanent for use with an ins 14 . an example of the lead extension 20 is model 7495 available from medtronic . the ens 25 functions similarly to the ins 14 but is not designed for implantation . the ens 25 is used to test the efficacy of stimulation therapy for the patient before the ins 14 is surgically implanted . an example of an ens 25 is a model 3625 screener available from medtronic . the physician programmer 30 , also known as a console programmer , uses telemetry to communicate with the implanted ins 14 , so a physician can program and manage a patient &# 39 ; s therapy stored in the ins 14 and troubleshoot the patient &# 39 ; s ins system . an example of a physician programmer 30 is a model 7432 console programmer available from medtronic . the patient programmer 35 also uses telemetry to communicate with the ins 14 , so the patient can manage some aspects of her therapy as defined by the physician . an example of a patient programmer 35 is a model 7434 itrel ® 3 ez patient programmer available from medtronic . those skilled in the art will appreciate that any number of external programmers , leads , lead extensions , and inss may be used to practice the present invention . implantation of an implantable neuro stimulator ( ins ) typically begins with implantation of at least one stimulation lead 12 usually while the patient is under a local anesthetic . the lead 12 can either be percutaneously or surgically implanted . once the lead 12 has been implanted and positioned , the lead &# 39 ; s distal end is typically anchored into position to minimize movement of the lead 12 after implantation . the lead &# 39 ; s proximal end can be configured to connect to a lead extension 20 . if a trial screening period is desired , the temporary lead extension 20 can be connected to a percutaneous extension with a proximal end that is external to the body and configured to connect to an external neuro stimulator ( ens ) 25 . during the screening period the ens 25 is programmed with a therapy and the therapy is often modified to optimize the therapy for the patient . once screening has been completed and efficacy has been established or if screening is not desired , the lead &# 39 ; s proximal end or the lead extension proximal end is connected to the ins 14 . the ins 14 is programmed with a therapy and then implanted in the body typically in a subcutaneous pocket at a site selected after considering physician and patient preferences . the ins 14 is implanted subcutaneously in a human body and is typically implanted near the abdomen of the patient . system components and component operation . fig2 shows a block diagram of an exemplary ins 200 . ins 200 generates a programmable electrical stimulation signal . ins 200 comprises a processor 201 with an oscillator 203 , a calendar clock 205 , a memory 207 , a system reset module 209 , a telemetry module 211 , a recharge module 213 , a power source 215 , a power management module 217 , a therapy module 219 , and a therapy measurement module 221 . in non - rechargeable versions of ins 200 , recharge module 213 can be omitted . other versions of ins 200 can include additional modules such as a diagnostics module . all components can be configured on one or more application specific integrated circuits ( asics ) except the power source . also , all components are connected to bi - directional data bus that is non - multiplexed with separate address and data lines except oscillator 203 , calendar clock 205 , and power source 215 . other embodiments may multiplex the address and data lines . processor 201 is synchronous and operates on low power such as a motorola 68hc11 synthesized core operating with a compatible instruction set . oscillator 203 operates at a frequency compatible with processor 201 , associated components , and energy constraints such as in the range from 100 khz to 1 . 0 mhz . calendar clock 205 counts the number of seconds since a fixed date for date / time stamping of events and for therapy control such as circadian rhythm linked therapies . memory 207 includes memory sufficient for operation of the ins such as volatile random access memory ( ram ) for example static ram , nonvolatile read only memory ( rom ), electrically eraseable programmable read only memory ( eeprom ) for example flash eeprom , and register arrays configured on asics . direct memory access ( dma ) is available to selected modules such as telemetry module 211 , so telemetry module 211 can request control of the data bus and write data directly to memory bypassing processor 201 . system reset module 209 controls operation of asics and modules during power - up of ins 200 , so asics and modules registers can be loaded and brought on - line in a stable condition . ins 200 can be configured in a variety of versions by removing modules not necessary for the particular configuration and by adding additional components or modules . primary cell , non - rechargeable versions of ins 200 will not include some or all of the components in the recharge module . all components of ins 200 are contained within or carried on a housing that is hermetically sealed and manufactured from a biocompatible material such as titanium . feedthroughs provide electrical connectivity through the housing while maintaining a hermetic seal , and the feedthroughs can be filtered to reduce incoming noise from sources such as cell phones . [ 0053 ] fig3 illustrates an example of a basic ins operation flowchart 300 . operation begins with when processor 201 receives data from either telemetry 301 or from an internal source 303 in ins 200 . at receiving data step 305 , received date is then stored in a memory location 307 . the data 307 is processed by processor 201 in step 309 to identify the type of data and can include further processing such as validating the integrity of the data . after data 307 is processed , a decision is made whether to take an action in step 311 . if no action is required , ins 201 stands by to receive data . if an action is required , the action will involve one or more of the following modules or components : calendar clock 205 , memory 207 , telemetry 211 , recharge 213 , power management 217 , therapy 219 , and therapy measurement 221 . an example of an action would be to modify a programmed therapy . after the action is taken , a decision is made whether to prepare the action to be communicated in step 313 , known as uplinked , to patient programmer 35 or console programmer 30 through telemetry module 211 . if the action is uplinked , the action is recorded in patient programmer 35 or console programmer 30 . if the action is not uplinked , the action is recorded internally within ins 200 . [ 0054 ] fig4 shows a block diagram of various components that may be found within telemetry module 211 . telemetry module 211 provides bi - directional communications between ins 200 and the programmers . telemetry module 211 comprises a telemetry coil 401 , a receiver 403 , a transmitter 405 , and a telemetry processor 407 . telemetry is conduced at a frequency in the range from about 150 khz to 200 khz using a medical device protocol such as described in u . s . pat . no . 5 , 752 , 977 entitled “ efficient high data rate telemetry format for implanted medical device ” issued on may 19 , 1998 and having named inventors grevious et al .. telemetry coil 401 can be located inside the housing or attached to the outside of the housing , and telemetry coil 401 can also function as the recharge coil if operation of the coil is shared or multiplexed . receiver 403 processes a digital pulse representing the radio frequency ( rf ) modulated signal , knows as a downlink , from a programmer . transmitter 405 generates an rf modulated uplink signal from the digital signal generated by telemetry processor 407 . telemetry processor 407 may be a state machine configured on an asic with the logic necessary to decode telemetry signal during reception , store data into ram , and notify processor 201 that data was received . telemetry processor 407 also provides the logic necessary during transmission to request processor 201 to read data from ram , encode the data for transmission , and notify the process that the data was transmitted . telemetry processor 407 reduces some demands on processor 201 in order to save energy and enable processor 201 to be available for other functions . [ 0055 ] fig5 illustrates an example of a telemetry operation flowchart 500 . to begin telemetry , either the patient or the clinician uses patient programmer 35 or console programmer 30 and places the telemetry head containing telemetry coil 401 near ins 200 or the ens . in step 501 , the rf telemetry signal is received through telemetry coil 401 and includes a wake - up burst that signals telemetry processor 407 to prepare telemetry processor 407 to receive incoming telemetry signals . telemetry processor 407 is configured to receive a particular telemetry protocol that includes the type of telemetry modulation and the transmission rate of the incoming telemetry signal in step 503 . telemetry receiver 403 demodulates the time base signal into digital pulses in step 505 . telemetry processor 407 converts the digital pulses into binary data that is stored into memory . in step 509 , processor 201 will then take whatever action is directed by the received telemetry such as adjusting the therapy . telemetry signal transmission is initiated by processor 201 requesting telemetry processor 407 to transmit data in step 551 . telemetry processor 407 is configured for the desired telemetry protocol that includes the type of modulation and the speed for transmission in step 553 . telemetry processor 407 converts the binary data into a time based digital pulses in step 555 . transmitter 405 modulates the digital signal into an rf signal that is then transmitted through telemetry coil 401 to programmer 30 or 35 in step 559 . [ 0056 ] fig6 shows a block diagram of various components that may be found within recharge module 213 . recharge module 213 provides controlled power to the battery ( contained in power source 215 ) for recharging the battery and provides information to ins 200 about recharging status . recharge module 213 regulates the charging rate of power source 215 according to power source parameters and keeps the temperature rise of ins 200 within acceptable limits so that the temperature rise does not create an unsafe condition for the patient . ins 200 communicates charging status to the patient &# 39 ; s charger ( 213 ), so the patient charges at a level that prevents ins 200 from overheating while charges power source 215 rapidly . recharge module 213 comprises a recharge coil , an alternating current ( ac ) over - voltage protection unit 601 , an ac to dc converter 603 , a recharge regulator 605 , a recharge measurement unit 607 , and a recharge regulator control 609 . recharge module 213 charges the battery by receiving a power transfer signal with a frequency of about 5 . 0 khz to 10 . 0 khz and converting the power transfer signal into a regulated dc power that is used to charge the battery . the recharge coil can be the same coil as telemetry coil 401 if shared or multiplexed or the recharge coil can be a separate coil . ac over - voltage protection unit 601 can be a zener diode that shunts high voltage to ground . ac to dc converter 603 can be a standard rectifier circuit . recharge regulator 605 regulates the voltage received from ac to dc converter 603 to a level appropriate for charging the battery . the recharge regulator control adjusts recharge regulator 605 in response to recharge measurements and a recharge program . the recharge program can vary based upon the type of device , type of battery , and condition of the battery . the recharge measurement block 607 measures current and voltage at regulator 605 . based upon the recharge measurement , the regulation control can increase or decrease the power reaching power source 215 . [ 0057 ] fig7 illustrates an example of recharge module operation flowchart corresponding to recharge module 213 . recharging ins 200 begins in the same manner as telemetry with either the patient or the clinician using patient programmer 35 or console programmer 30 and placing the telemetry head containing the recharge coil near ins 200 or the ens . after the recharge signal is received in step 701 , it is converted to from ac to dc in step 703 . the dc signal is regulated in step 707 . regulator output power is measured in step 707 and then fed back in step 705 in order to assist in controlling the regulator output power to an appropriate power level . power source 215 is charged in step 709 , and the power source charge level is measured in step 711 . the measured power source charge level also is fed back in step 705 , so regulator 605 can control the regulator output to a level that is appropriate for power source 215 . once recharge module 213 fully charges power source 215 , recharge module 213 can be configured to function as a power source for ins 200 while power is still received . [ 0058 ] fig8 shows a block diagram of various components that may be found within power management module 217 , and fig9 illustrates an example of a flowchart of power management module 217 . power management module 217 provides a stable dc power source to ins 200 with voltages sufficient to operate ins 200 such as between about 1 . 5 vdc and 2 . 0 vdc . power management module 217 includes a first dc to dc converter 801 , a second dc to dc converter 803 , and power source measurement component 805 . one or more additional dc to dc converters can be added to the power management module to provide additional voltage values for ins 200 . first dc to dc converter 801 and second dc to dc converter 803 can be operational amplifiers configured for a gain necessary for the desired output voltage . power source measurement component 805 measures the power source and reports this measurement to processor 201 , so processor 201 can determine information about power source 215 . if processor 201 determines that power source 215 is inadequate for normal operation , processor 201 can instruct power management module 217 to initiate a controlled shutdown of ins 200 . ins power source 215 typically provides a voltage sufficient for power management module 217 to supply power to ins 200 such as above 2 . 0 vdc at a current in the range from about 5 . 0 ma to 30 . 0 ma for a time period adequate for the intended therapy . ins power source 215 can be a physical storage source such as a capacitor or super capacitor , or power source 215 can be a chemical storage source such as a battery . the ins battery can be a hermetically sealed rechargeable battery such as a lithium ion ( li +) battery or a non - rechargeable battery such as a lithium thionyl chloride battery . the ens battery can be a non - hermetically sealed rechargeable battery such as nickel cadmium or a non - rechargeable battery such as an alkaline . [ 0060 ] fig1 shows a block diagram of various components that may be found within therapy module 219 . therapy module 219 generates a programmable stimulation signal that is transmitted through one or more leads to electrical contacts implanted in the patient . therapy module 219 comprises a therapy controller ( waveform controller ) 1001 , a generator 1003 , a regulator module 1005 , and an electrical contact switches unit 1007 . therapy controller 1001 can be a state machine having registers and a timer . other embodiments of the invention may utilize other types of processors such as an asic , a microprocessor , a gate array , and discrete circuitry . therapy controller 1001 controls generator 1003 and regulator module 1005 to create a stimulation signal . ( a waveform generator that forms the stimulation signal may comprise generator 1003 and regulator module 1005 .) generator 1003 assembles capacitors that have been charged by power source 215 to generate a wide variety of voltages or currents . regulator module 1005 includes current / voltage regulators that receive a therapy current or voltage from generator 1003 and shape the stimulation signal according to therapy controller 1001 . regulator module 1005 may include any number of devices or software components ( active or passive ) that maintains an output within a range of predetermined parameters such as current , voltage , etc . electrical contact switches unit comprises solid state switches with low impedance such as field effect transistor ( fet ) switches . the electrical contacts are carried on the distal end of a lead and deliver the stimulation signal to the body through an electrode . additional switches can be added to provide a stimulation signal to additional electrical contacts . in the embodiment , therapy module 219 can deliver individual output pulses in the range from 0 . 0 volts to 15 . 0 volts into a range from about 1 . 0 ohm to 10 . 0 k ohms impedance throughout its operating parameter range to any combination of anodes and cathodes of up to eighteen electrical contacts for any given stimulation signal . other embodiments can support a different voltage range , a different impedance range , or a different electrode arrangement . [ 0061 ] fig1 illustrates and example of operation with a flowchart of therapy module 219 . the therapy begins with the therapy controller 1001 configuring the generator 1003 according to the therapy program to provide appropriate voltage to regulator module 1005 in step 1101 . therapy controller 1001 also configures regulator module 1005 to produce the stimulation signal according to the therapy program in step 1103 . therapy controller 1001 also configures electrical contacts unit 1007 to so the stimulation signal is delivered to the electrical contacts specified by the therapy program in step 1105 . the stimulation signal is delivered to the patient through electrodes in step 1107 . after the stimulation signal is delivered to the patient , most therapies include a time delay in step 1109 before the next stimulation signal is delivered . [ 0062 ] fig1 shows a block diagram of various components that may be found within therapy measurement module 221 . therapy measurement module 221 measures one or more therapy parameters at therapy module 219 to determine whether the therapy is appropriate . therapy measurement module 221 includes a therapy voltage measurement component 1201 , a therapy current measurement component 1203 , and a therapy output measurement component 1205 . the therapy voltage measurements and therapy current measurements are taken periodically to perform therapy calculations . the therapy output measurement is a measurement of the delivered therapy that is used for safety and other purposes . [ 0063 ] fig1 illustrates an example of an operation flowchart of therapy measurement module 221 . in step 1301 , the therapy measurement operation begins by processor 201 setting up parameters of the therapy measurement to be taken ( e . g . the specific stimulation signal to measure ) and at which electrical contacts to perform the measurement . before a therapy measurement is taken , a threshold determination is made whether a therapy measurement is needed in step 1303 . for some therapies , a therapy measurement may not be taken . when a therapy measurement is not taken , often a patient physiological measurement will be performed and reported to processor 201 for action or storage in memory in step 1305 . when a therapy measurement is desired , the therapy is delivered in step 1307 and then the therapy measurement is performed in step 1309 . the therapy measurement is reported to processor 201 for action or storage in memory in step 1311 . examples of some actions that might be taken when the therapy measurement is reported include an adjustment to the therapy and a diary entry in memory that can be evaluated by the clinician at a later time . those skilled in the art will appreciate that the above discussion relating to the operation and components of the ins 14 serve as an example and that other embodiments may be utilized and still be considered to be within the scope of the present invention . for example , an ens 25 may be utilized with the present invention . stimulation engine . fig1 shows a stimulation engine system 1400 according to an embodiment of the present invention . stimulation engine 1400 comprises therapy module 219 and therapy measurement block 221 . therapy module 219 comprises generator control module 1003 , waveform controller ( therapy controller ) 1001 , regulators 1401 , 1403 , 1405 , and 1407 , and electrode controller ( electrical contact switches unit ) 1007 . regulators 1401 - 1407 receive an input voltage from a capacitor bank comprising capacitors 1451 - 1465 . in the embodiment , capacitors 1451 - 1465 are associated as capacitor pairs such as described in u . s . pat . no . 5 , 948 , 004 entitled “ implantable stimulation having an efficient output generator ” issued on sep . 7 , 1999 having named inventors weijand et al . capacitors 1451 - 1465 are charged by a battery 1467 during a recharging interval ( during which a capacitor arrangement forms a charge configuration ). if a capacitor pair is charged across battery 1467 in parallel and subsequently discharged across a load in series , the corresponding voltage ( as provided to a regulator ) is double of the voltage of battery 1467 . if a capacitor pair is charged across battery 1467 in series and subsequently discharged across the load in parallel , the corresponding voltage is one half the voltage of battery 1467 . the embodiment may utilize capacitor pairs both with a parallel configuration and with a series configuration in order to obtain a desired voltage level to a regulator . moreover , other embodiments of the invention can utilize other types of capacitor configurations ( e . g . capacitor triplets to obtain one third of the battery voltage and capacitor octets to obtain one eighth of the battery voltage ) in order to achieve a desired level of voltage granularity to a regulator . thus , any fraction of the battery voltage can be obtained by a corresponding capacitor configuration in the embodiment , waveform controller 1001 ( as instructed by processor 201 ) configures the capacitor bank through generator control 1003 in order to provide the required voltage inputs ( corresponding to 1417 - 1423 ) to regulators 1401 - 1407 , respectively ( during which the capacitor arrangement forms a stack configuration ). regulators 1401 - 1407 are instructed to generate stimulation pulses ( as illustrated in fig1 ) at time instances by waveform controller 1001 through control leads 1409 - 1415 , respectively . in the embodiment , a voltage drop across a regulator ( e . g . 1401 - 1407 ) is determined by a digital to analog converter ( dac ) that is associated with the regulator and that is controlled by waveform controller 1001 . in the embodiment , waveform controller 1001 can independently control as many as four regulators ( 1401 - 1407 ) in order to form four independent simulation channels , although other embodiments may support a different number of regulators . each stimulation channel is coupled to electrode controller 1007 through a coupling capacitor ( 1471 - 1477 ). each stimulation channel can be coupled to at least one of sixteen electrodes ( e 0 - e 15 ). once again , variations of the embodiment may support different numbers of electrodes . an electrode may be either an anode or a cathode . therapy measurement block 221 monitors various components of the stimulation engine system 1400 for performance and diagnostic checks . to assist with its monitoring function , therapy measurement block 221 has associated holding capacitors 1491 and 1493 . once again , variations of the embodiment may support different number of holding capacitors . at least one of the holding capacitors may be redundant in case the first capacitor has failed . as one example , therapy measurement block 221 monitors the voltage across a regulator in order to detect whether there is sufficient “ headroom ” ( which is the voltage difference between the regulator &# 39 ; s voltage input and voltage output ). some factors that may alter the “ headroom ” include a change of the voltage of battery 1467 and changing electrical characteristics of surrounding tissues ( for example , caused by a movement in the placement of a lead ). if a regulator does not have sufficient headroom , the regulator may not be able to regulate a stimulation pulse that has a constant amplitude over the duration of the pulse . rather , the amplitude of the stimulation pulse may “ droop .” in the embodiment , therapy measurement block 221 monitors input 1481 and input 1485 to determine the input voltage and the output voltage of regulator 1401 . ( in the embodiment , regulators 1403 , 1405 , and 1407 can be similarly monitored .) typically the voltage drop across regulator should be 0 . 3 volts or greater in order to achieve adequate regulation . for example , if therapy measurement block 221 determines that the voltage drop across regulator 1401 is less than a minimum value , then therapy measurement block 221 may notify processor 201 about regulator 1401 experiencing an out - of - regulator condition . in such a case , processor 201 may instruct generator 1003 to associate another capacitor pair to the voltage input of regulator 1401 in order to increase the input voltage . ( it is assumed that redundant capacitor pairs are available .) also , processor 201 may store the occurrence of the out - of - regulator and report the occurrence over a telemetry channel through telemetry module 211 . the clinician may wish to recharge battery 1467 in such a case . if battery 1467 has been recharged after additional capacitor pairs have been configured to compensate for a previous out - of - regulator condition of regulator 1401 , the voltage drop across a regulator may be greater than what is necessary to maintain adequate regulation . in such a case , therapy measurement block 221 may remove a capacitor pair that is associated with the voltage input of regulator 1401 . in another embodiment of the invention , therapy measurement block 221 monitors the voltage of battery 1467 . if the voltage of battery 1467 is below a threshold value , therapy measurement block 221 reports the low battery condition to processor 201 . consequently , processor 201 may instruct generator 1003 to configure capacitor pairs for the active regulators ( e . g . regulators 1401 , 1403 , 1405 , and 1407 ). ( it is assumed that there are a sufficient number of capacitor pairs .). as discussed below , in yet another embodiment of the invention , therapy measurement block 221 monitors various capacitive elements of the stimulation engine system 1400 for possible failure ( e . g ., holding capacitors 1491 and 1493 and coupling capacitors 1471 - 1477 ). automatic waveform output adjustment . fig1 a shows a logic flow diagram 1500 for detecting an out - of - regulator condition . in step 1501 , therapy measurement block 221 measures the voltage drop across a regulator ( e . g . regulator 1401 ). in step 1503 , therapy measurement block 221 determines whether the voltage drop is less that a threshold value . if not , therapy measurement block monitors another regulator ( e . g . regulator 1403 ) in step 1505 . if so , then therapy measurement block 221 informs ins processor 201 about the out - of - regulator condition in step 1507 . in step 1509 , it is determined if a capacitor pair is available so that the capacitor pair may be added to the associated capacitor configuration . if so , a capacitor pair is added and another regulator is monitored . variations of the embodiment may detect a faulty capacitor of a capacitor pair . for example , if capacitor 1451 ( c 1 ) is shorted , the associated voltage across capacitor 1451 is essentially zero . consequently , the associated input voltage to a regulator is reduced , causing the voltage drop across the regulator to be reduced . with the logic shown in fig1 a , another capacitor pair is configured in order to compensate for capacitor 1451 shorting . moreover , additional logic steps can be included to detect a faulty capacitor and removing the faulty capacitor from service . in a variation of the embodiment , a capacitor pair is removed from the capacitor arrangement and another capacitor pair is added . if the voltage drop across the regulator is consequently within limits , the capacitor pair that was removed from the configuration is assumed to have a faulty capacitor . if a spare capacitor pair is not available , processor 201 may be notified so that programmer 30 or 35 can be alerted over the telemetry channel . in another embodiment , processor 201 may instruct the ins to shutdown in order to deactivate the generation of a stimulation waveform that is not with an acceptable range . the embodiment may be used to detect other failure mechanisms . for example , rather than reconfiguring the capacitor configuration , an original regulator can be replaced with a spare regulator . if a voltage drop across the spare regulator is within an acceptable range , then the original regulator is determined to be faulty . however , if it is determined that the original regulator is not faulty , the capacitor arrangement ( comprising c 1451 - 1465 ) can be tested . in one embodiment , the capacitors of the capacitor arrangement can be charged to a known voltage , such as the measured battery voltage , and the voltages across the capacitors can be measured by therapy measurement block 221 . if a voltage is low across a capacitor , the capacitor may be determined to be faulty . in such a case the capacitor may be replaced with a redundant capacitor . [ 0073 ] fig1 b shows an electrical configuration corresponding to regulators 1401 , 1403 , 1405 , and 1407 . the electrical configuration comprises an amplifier 1553 in which an output 1557 feeds into a negative input and a programmed input voltage 1555 feeds into a positive input of amplifier 1553 . thus , amplifier 1553 is configured as a voltage follower amplifier ( i . e . output 1557 should approximately equal programmed input voltage 1555 if the circuitry is operating properly ). amplifier 1553 receives a power supply voltage from a capacitor arrangement 1551 through a reg top 1559 and a reg bottom 1561 . the embodiment corresponding to fig1 a measures a voltage drop across a regulator ( e . g . 1401 , 1403 , 1405 , or 1407 ). in fig1 b , the voltage drop across the regulator corresponds to a voltage difference between reg top 1559 and output 1557 . moreover , other embodiments of the invention may utilize other electrical measurements in order to determine an out - of - regulator condition . in one embodiment , if output 1557 does not approximately equal programmed input voltage 1555 , therapy measurement block 221 may determine the occurrence of an out - of - regulator condition . in another embodiment , output 1557 ( as measured by therapy measurement block 221 ) is compared with an expected output voltage . in the embodiment , processor 201 is cognizant of the configuration of capacitor arrangement 1551 and the battery voltage . processor 201 may use electrical formulae that correspond to the known configuration in order to determine the expected output voltage . a sufficiently large difference between output 1557 and the expected output voltage is indicative of an out - of - regulator condition . in another embodiment , an out - of - regulator condition is detected when the voltage difference between reg top 1559 and reg bottom 1561 ( corresponding to an input signal to regulator 1401 , 1403 , 1405 , or 1407 ) is less than programmed input voltage 1555 . detection and correction of possible failure of coupling capacitor . in the embodiment , a coupling capacitor ( e . g . 1471 , 1473 , 1475 , and 1477 ) is used to transfer charge to an electrode . the accumulated voltage across the coupling capacitor is a measure of the charge that is transferred to the electrode . moreover , the value of the coupling capacitor determines the maximum charge that can be transferred to the electrode for a given stimulation voltage . however , the coupling capacitor may fail in which the coupling capacitor becomes shorted . in such a case , the coupling capacitor becomes unable to limit excess charge . in order to detect a shorted condition , therapy measurement block 221 monitors the voltage drop across the coupling capacitor ( e . g . capacitor 1471 which corresponds to regulator 1401 ). inputs 1481 and 1483 enable therapy measurement block 221 to monitor the voltage drop across coupling capacitor 1471 . similar inputs are provided for each other coupling capacitor ( 1473 , 1475 , and 1477 ) in circuit . a voltage drop greater than or less than a prescribed range may be indicative of a possible failure in the coupling capacitor 1471 . once the system detects a failed coupling capacitor , it may take any number of corrective actions including , but not limited to , perform a corrective recharge to compensate for the failure , replacing the failed capacitor with another capacitor , notifying the implantable medical device or the physician programmer , and / or shutting down the implantable medical device . fig1 shows a logic flow diagram 1600 of one embodiment for detecting a faulty coupling capacitor and taking corrective action . in step 1601 , therapy measurement block 221 measures the voltage across the coupling capacitor ( e . g . coupling capacitor 1471 ). although a voltage drop measurement across the coupling capacitor is made , any measurement providing charge information would suffice to determine whether the capacitor has failed including , but not limited to , energy information going in and out of the capacitive element , and current information going in and out of the capacitive element . in step 1603 , if it is determined that the voltage drop is less than a predefined threshold , it is assumed that the coupling capacitor has malfunctioned and corrective action should be taken . otherwise , step 1605 is executed and another coupling capacitor is monitored by therapy measurement block 221 . in step 1607 , corrective action is taken by removing from service the coupling capacitor ( e . g . coupling capacitor 1471 ) and its associated regulator ( e . g . 1401 ) and notifying the ins processor 201 . in step 1609 , logic 1600 determines if a spare capacitor / regulator pair can be configured in order to assume the functionality of the faulty capacitor . in either case , the ins processor 201 may be notified . the ins processor 201 may then notify the clinician ( i . e ., the physician programmer 30 ) about the condition through the telemetry channel . if a spare regulator is available , the spare regulator is configured in step 1613 to assume the functionality of the regulator that was removed . ins processor 201 is informed in step 1615 . step 1617 is executed , and another coupling capacitor is monitored . in other embodiments , other forms of corrective action may be taken . for example , the system can provide a charge balance pulse in an amount to compensate for the capacitive element being outside the predefined threshold . the charge balance pulse can be calculated by determining charge going in and going out of the coupling capacitor . for example , if the stimulation pulse is at a constant current , the system can determine the current amount and duration . the charge balance pulse can then be in an amount that zeros out the difference in the charges going in and going out of the coupling capacitor . in another example , the system can just notify the ins processor 201 and physician programmer 30 or it can just simply shut itself down from operation . other embodiments of the invention may monitor the coupling capacitor ( e . g . coupling capacitor 1471 ) in order to detect whether the coupling capacitor becomes open . in such a case , the voltage drop across the coupling capacitor may exceed a predefined threshold . in this case , even the associated regulator / capacitor pair may become ineffective in the treatment of the patient . therapy measurement block 221 may therefore remove the regulator / capacitor pair and configure a spare regulator . in yet other embodiments , therapy measurement block 221 may measure other elements other than capacitive elements including , but not limited to , holding capacitors 1491 and 1493 . in one exemplary embodiment , therapy measurement block 221 measures the voltage of the battery using one of the holding capacitors 1491 or 1493 . after a certain time period ( e . g ., several seconds or several minutes ), therapy measurement block 221 re - measures the voltage of the battery using the same holding capacitor 1491 or 1493 . under proper operation of the holding capacitor 1491 , the two voltage measurements should be roughly the same . if the two voltage measurements vary by more than a predetermined threshold , however , there is likely a failure in the holding capacitor . alternatively , if the original voltage measurement of battery is outside a predefined range , it may be indicative of a failed capacitor . for example , if the original voltage measurement of battery is be less than 2v , then it is likely that the holding capacitor has failed . this is the case since if the battery voltage had reached 2v , the circuitry would have already been shut down for purposes of conserving battery resources . in another alternative , if the holding capacitor is open circuited , the therapy measurement block 221 would have been unable to take the initial battery voltage measurement . once the system determines a possible failure of the holding capacitor , it may then take appropriate action as discussed above ( e . g ., replacing holding capacitor with redundant capacitor , notifying the implantable medical device or physician programmer of capacitor failure , etc .). regulator improvements . fig1 shows a first configuration for a set of regulators comprising regulators 1401 , 1403 , 1405 , and 1407 according to an embodiment of the present invention . the configuration shown in fig1 may be used to generate a pulse width “ a ” pulse ( pwa ) 1923 that is shown in fig1 . other embodiments may support a different number of regulators in order to generate a different numbers of corresponding waveforms . capacitors 1451 , 1453 , 1455 , 1457 , 1459 , 1461 , 1463 , and 1465 have been charged by battery 1467 so that capacitors 1459 and 1461 have a 1 . 5 volt potential and capacitors 1451 , 1453 , 1455 , 1457 , 1463 , and 1465 have a 3 . 0 volt potential . in order to provide a 3 . 0 volt input to regulator 1403 , a 4 . 5 volt input to regulator 1407 , a 7 . 5 volt input to regulator 1405 , and a 13 . 5 volt input to regulator 1401 , a voltage reference 1711 is configured with respect to bplus of battery 1467 . waveform controller 1101 configures the capacitors 1451 - 1465 and the voltage reference through generator control 1003 . the output of regulator 1403 is connected to anode 1703 ; the output of regulator 1407 is connected to anode 1707 ; the output of regulator 1405 is connected to anode 1705 ; the output of regulator 1401 is connected to anode 1701 ; and voltage reference 1711 is connected to cathode 1709 . [ 0081 ] fig1 shows a second configuration for a set of regulators comprising regulators 1401 , 1403 , 1405 , and 1407 according to an embodiment of the present invention . the configuration shown in fig1 may be used to generate a pulse width “ b ” pulse ( pwb ) 1915 that is shown in fig1 . capacitors 1451 - 1465 have the same voltage potential as shown in fig1 . however , waveform controller 1001 configures a voltage reference 1811 to be the negative side of capacitor 1451 so that the input voltage to each regulator ( 1407 , 1403 , 1405 , and 1401 ) has a negative polarity rather than a positive polarity . as in the configuration shown in fig1 , cathode 1709 is connected to the voltage reference . consequently , the voltage outputs of regulators 1407 , 1403 , 1405 , and 1401 have a negative polarity . waveform controller 1001 also configures capacitors 1451 - 1465 so that capacitors 1451 and 1453 are between voltage reference 1811 and the input of regulators 1407 and 1403 , capacitors 1451 , 1453 , 1455 , 1457 are between voltage reference 1811 and the input of regulator 1405 , and capacitors 1451 , 1453 , 1455 , 1457 , 1459 , 1461 , 1463 , and 1465 are between voltage reference 1811 and the input of regulator 1401 . table 1 compares the voltage outputs of regulators 1401 , 1403 , 1405 , and 1407 in fig1 and 18 . with regulators 1401 , 1403 , 1405 , and 1407 having a capability of generating negative voltage , the risk of a charge accumulation that may damage surrounding tissue around stimulated electrodes is reduced . the required amplitude of a stimulation pulse pwa 1923 ( as shown in fig1 ) varies with the type of therapy . with a therapy pulse ( e . g . pwa 1923 ) that is delivered to the tissue , it may be necessary to retract an equal amount of charge from the same tissue after the therapy pulse is completed . this retraction of charge is typically done in the form of a secondary pulse , or recharge pulse , which causes an equal amount of charge to flow in the opposite direction of the original therapy pulse . if the amount of charge in the secondary pulse does not equal the amount of charge in the therapy pulse , charge will accumulate on the electrode surface , and the chemical reactions at the electrode - tissue interface will not remain balanced , which can cause tissue and electrode damage . for example , the accumulated charge may be accompanied by electrolysis , thus causing hydrogen , oxygen and hydroxyl ions to form . as a result , the ph level of the immediate layer of fluid in the proximity of the electrode may deviate from its norm . ph variations may oscillate between ph 4 and ph 10 within a few microns of the electrode . also , charge accumulation may cause dissolution of the electrode ( e . g . platinum ), resulting in lead corrosion and possible damage to tissue that encounters the resulting chemical migration . thus , the reduction of the net charge that accumulates in the region of the treatment reduces the possibility of accompanying tissue damage and electrode damage . as will be discussed in the context of fig1 , pwb pulse 1925 may have a negative polarity ( as supported by the regulator configuration in fig1 ). the negative charge that accumulates in the surrounding tissue during pwb pulse 1925 counterpoises the positive charge that accumulates during pwa pulse 1923 . if the electrical characteristics between a stimulated electrode pair can be modeled as an equivalent circuit having a capacitor , the charge accumulated during pwa interval 1909 may be counterpoised by the charge accumulated during pwb interval 1915 if the product ( amplitude of pwa 1923 )*( interval of pwa 1909 ) approximately equals the product ( amplitude of pwb 1925 )*( interval of pwb 1915 ) when the polarities of pwa pulse 1923 and pwb pulse 1925 are opposite of each other . other embodiments of the invention may generate positive and negative current waveforms by converting a voltage pulse to a current pulse , in which the output from the regulator is driven through a resistance in the regulator . recharge delay and second pulse generation . fig1 shows stimulation waveform 1901 according to an embodiment of the present invention . fig1 shows waveform 1901 spanning a rate period interval 1902 . waveform 1901 may repeat or may change waveform characteristics ( corresponding to changing a waveform parameter ) during a next rate period interval . stimulation waveform 1901 may be programmed in order to customize a therapeutical treatment to the needs of the patient . an initial delay ( delay_ 1 ) interval 1905 commences with a rate trigger event . the rate trigger event occurs at the beginning of each rate period interval . during a pulse width a ( pwa ) setup interval 1907 , capacitors 1451 - 1465 are moved from a charge configuration to a stack configuration . a pulse width pwa interval 1909 commences upon the completion of interval 1907 . during interval 1909 , regulators 1401 - 1407 apply voltage or current outputs to a set of electrodes ( e . g . anodes ) while corresponding electrodes ( e . g . cathodes ) are connected to a stimulation voltage reference . in the embodiment , pwa interval 1909 is programmable from 0 to 655 msec with increments of 10 microseconds , in which an associated timer is a 16 - bit timer . a second delay ( delay_ 2 ) interval 1911 may begin upon the completion of pwa interval 1909 . during interval 1911 , all electrode connections remain open . in the embodiment , second delay interval 1911 is programmable from 0 to 655 msec with increments of 10 microseconds . a pwb setup interval 1913 may begin upon the completion of second delay interval 1911 . during interval 1913 , capacitors 1451 - 1465 are moved from a charge configuration to a stack configuration . a pwb interval 1915 follows interval 1913 . during pwb interval 1915 , regulators 1401 - 1407 apply voltage or current outputs to the set of electrodes ( e . g . anodes ) while corresponding electrodes ( e . g . cathodes ) are connected to a stimulation voltage reference . in the embodiment , pwb interval 1915 is programmable from 0 to 655 with increments of 10 microseconds . while the embodiment configures the stimulation pulse during pwa interval 1909 with a positive polarity and the stimulation pulse during pwb interval 1915 with a negative polarity , other embodiments may reverse the polarities . moreover , other embodiments may configure both pulses during intervals 1909 and 1915 to have the same polarity . a third delay ( delay_ 3 ) interval 1917 begins upon completion of pwb interval 1915 . during interval 1917 , all electrodes connections remain open . in the embodiment , the third delay interval 1917 is programmable from 0 to 655 msec with increments of 10 microseconds . a passive recharge interval 1919 is triggered by the completion third delay interval 1917 . during interval 1919 , electrodes may be connected to a system ground . in the embodiment , waveform controller 1001 ( through passive recharge control 1491 ) passively recharges the connected electrodes in order to provide a charge balance in tissues that are adjacent to the connected electrodes . passive recharging during interval 1919 may function to complete the recharging process that may be associated with pwb interval 1915 . in the embodiment , passive recharge interval 1919 is programmable from 0 to 655 msec with increments of 10 microseconds . a wait interval 1921 follows interval 1919 in order to complete rate period interval 1902 . in the embodiment , the rate period interval is programmable from 0 to 655 msec . in the embodiment , if the sum of the component intervals ( 1905 , 1907 , 1909 , 1911 , 1913 , 1915 , 1917 , 1919 , and 1921 ) exceed the rate period interval , the rate period interval takes precedence over all components intervals in the event of a conflict . for example , all waveform timers are reloaded and a new waveform may commence with the occurrence of rate trigger event . pulses generated during pwa pulse interval 1909 and pwb interval 1915 may be used to stimulate surrounding tissues or may be used to assist in charge balancing . the effects of charge balancing during a pulse may be combined with charge balancing during passive recharge interval 1919 in order to obtain a desired charge balancing . ( recharging may provide charge balancing with active components or with passive components or both .) other embodiments of the invention may initiate rate period interval 1902 with a different interval than delay_ 1 interval 1905 . for example , other embodiments may define the beginning of rate period interval 1902 with passive recharge interval 1919 . moreover , with the embodiment or with other embodiments , any of the delay intervals ( delay_ 1 interval 1905 , delay_ 2 interval 1911 , delay_ 3 interval 1917 , wait interval 1921 ), pulse intervals ( pwa interval 1909 , pwb interval 1915 ), setup intervals ( pwa setup interval 1907 , pwb setup interval 1913 ), or passive recharge interval 1919 may be effectively deleted by setting the corresponding value to approximately zero . also , other embodiments may utilize different time increments other than 10 microseconds . [ 0096 ] fig1 also shows a second waveform 1903 that is formed during the formation of 1901 . ( in the embodiment , regulators 1401 and 1407 may be utilized to form four waveforms .) waveform 1903 is phased with waveform 1901 ( with each waveform having the same rate period interval ). a pwa pulse 1927 ( that is associated with waveform 1903 ) occurs after the completion of pwa pulse 1923 ( that is associated with waveform 1901 ). the clinician may stimulate a set of electrodes with waveform 1901 . the subsequent stimulation of the set of electrodes by waveform 1903 may cause the firing of the neurons that may not be possible only with waveform 1901 or 1903 alone . in the embodiment , waveforms 1901 ( corresponding to regulator 1401 ) and 1903 ( corresponding to regulator 1403 ) may be applied to the same electrode or to two electrodes in close proximity . in the embodiment , if regulators 1401 and 1405 are configured to the same electrode , regulators 1401 and 1405 are configured in series for voltage amplitude waveforms and in parallel for current amplitude waveforms . in the embodiment , the rate period interval of waveforms 1901 and 1903 are the same . however , other embodiments of the invention may utilize different rates periods for different waveforms . [ 0098 ] fig2 shows a state diagram that a finite state machine 2000 utilizes to form the waveforms as shown in fig1 according to an embodiment of the present invention . a finite state machine may be associated with each waveform that is generated by ins 200 . in the embodiment , state machine 2000 is implemented with waveform controller 1001 . waveform controller 1001 , in accordance with state machine 2000 , controls generator 1003 , regulators 1401 - 1407 , passive recharge control 1491 , and electrode control 1007 in order to generate stimulation pulses in accordance with state machine 2000 . moreover , waveform controller 1001 may obtain waveform parameters from processor 201 . the clinician may alter a waveform parameter ( e . g . pwa pulse duration 1909 ) by sending an instruction over the telemetry channel through telemetry unit 211 to processor 201 in order to modify the waveform parameter . in the discussion of fig1 , it is assumed that wave shaping ( as will be discussed in the context of fig2 ) is not activated . in fig2 , a state delay_ 1 2001 corresponds to first delay interval 1905 . a transition 2051 initiates a state pwa setup 2003 upon the expiration of interval 1905 . state 2003 corresponds to pwa setup interval 1913 . if wave shaping is activated , states ws_ 1 2005 , ws_ 2 2007 , and ws_ 3 2009 may be executed . ( however , discussion of states 2005 , 2007 , and 2009 are deferred until the discussion of fig2 .) a delay_ 2 state 2013 may be accessed directly from state delay_ 1 2001 through transition 2050 if pwa pulse is not generated during pwa interval 1909 . assuming that wave shaping is not activated , a state pwa 2011 is executed upon the completion of pwa setup interval 1907 through a transition 2053 . state pwa 2011 corresponds to interval pwa 1909 during which pwa pulse 1923 is generated . upon the completion of interval 1909 , state delay_ 2 2013 is entered through a transition 2073 . state 2013 corresponds to delay_ 2 interval 1911 . if pwb pulse is generated , a pwb setup state 2015 is entered through transition 2077 upon the completion of delay_ 2 interval 1911 . if pwb pulse 1925 is not generated , a delay_ 3 state 2019 is entered through transition 2075 upon the completion of delay_ 2 interval 1911 . state pwb setup 2015 corresponds to pwb setup interval 1913 and state delay_ 3 state 2019 corresponds to delay_ 3 interval 1917 . with the completion of pwb setup interval 1913 , if pwb pulse 1925 is to be generated , a pwb state 2017 is entered through transition 2079 . the pwb state 2017 corresponds to pwb interval 1915 during which the pwb pulse 1925 is generated . upon the completion of pwb interval 1915 , delay_ 3 state 2019 is entered through transition 2081 . upon the completion of delay_ 3 interval 1917 , finite state machine enters a passive recharge ( pr ) state 2021 through transition 2085 or a wait state 2023 through transition 2083 . the pr state 2021 may be circumvented if recharging during pwb 2017 state adequately eliminates a charge accumulation that occurs during pwa state 2003 . the pr state 2001 corresponds to passive charge interval 1919 . upon the completion of passive recharge interval 1919 , state machine 2000 enters wait state 2023 , and remains in state 2023 until the completion of the rate period interval . state machine 2000 consequently repeats the execution of states 2001 - 2023 . other embodiments of the invention may support a different number of stimulation pulses ( e . g . three , four , and so forth ) during rate period interval 1902 . wave shaping . fig2 shows a waveform 2101 in which stimulation pulse pwa 1923 is generated by wave shaping according to an embodiment of the present invention . waveform 2101 , as shown in fig2 , spans a rate period interval 2102 . wave shaping of pwa 1923 corresponds to a state ws_ 1 2005 , a state ws_ 2 2007 , and a state ws_ 3 2009 ( as shown in finite state machine 2000 in fig2 ) and corresponds to a ws_ 1 duration 2109 , a ws_ 2 duration 2111 , and a ws_ 3 duration 2113 in fig2 . durations 2109 , 2111 , and 2113 correspond to phases 1 , 2 , and 3 of pwa pulse 1923 . in the embodiment , pwa pulse 1923 is synthesized in order to adjust the therapeutical effectiveness of pwa pulse 1923 . in the embodiment , without wave shaping , pwa pulse 1923 is essentially a rectangular pulse ( flat - topped ) as illustrated in fig1 . in the embodiment , pwa interval 1909 is subdivided into three phase intervals 2109 , 2111 , and 2113 . during phase intervals 2109 , 2111 , or 2113 , at least one parameter is associated with the stimulation waveform . in the embodiment , a parameter may correspond to characteristics of the stimulation waveform ( e . g . a desired amount of rise during the phase ) or may correspond to an electrode configuration in which the stimulation waveform is applied . in the embodiment , all other time intervals remain the same and all time intervals maintain the same order of succession ( e . g . pwb 1925 follows pwa 1923 ) as in the case without wave shaping . during each of the three phases ( ws_ 1 2150 , ws_ 2 2160 , and ws_ 3 2170 ) of pwa pulse 1923 , the output amplitude may be rising , falling , or constant across a phase . ( other embodiments may utilize a different number of phases . typically , with a greater number of phases , one can achieve a better approximation of a desired waveform . the desired waveform may correspond to any mathematical function , including a ramp , a sinusoidal wave , and so forth .) each of the three phases is defined by a register containing an initial output amplitude , a register containing a final output amplitude , and a register containing a number of clock periods in which the amplitude output remains constant across an incremental step . in the embodiment , a phase duration ( e . g . 2109 , 2111 , and 2113 ) is determined by : the output amplitude changes by one amplitude step after remaining at the previous amplitude for a clock count equal to the value of the clock periods per step as contained in a register . the output amplitude range setting in a register determines a size of an amplitude step . ( in the embodiment , the step size may equal 10 , 50 , or 200 millivolts .) an example of wave shaping illustrates the embodiment as shown in fig2 . the step size is 500 millivolts for phases 2150 and 2160 and 1 volt for phase 2170 . the master waveform generator clock is 10 microseconds . durations 2109 , 2111 , and 2113 are each 400 microseconds . during duration 2109 , the initial amplitude register contains 70 ( 46 16 ) and the final amplitude register contains 40 ( 28 16 ). the clock periods per step is 10 or 100 microseconds ( 10 * 10 microseconds ). during duration 2109 , waveform 2103 starts at 3 . 5 volts and descends 0 . 5 volts every 100 microseconds until the amplitude value is 2 . 0 volts . during duration 2111 , the initial amplitude register contains 0 and the final amplitude register contains 70 ( 46 16 ). the clock periods per step is 10 . during duration 2111 , waveform 2105 starts at 0 volts and ascends 0 . 5 volts every 100 microseconds until the amplitude value is 3 . 5 volts . during duration 2113 , the initial amplitude register contains 30 ( 1e 16 ). the clock periods per step is 20 ( corresponding to 200 microseconds ). during duration 2113 , waveform 2107 starts at 1 . 5 volts and ascends to 2 . 5 volts in one step . finite state machine 2000 ( as shown in fig2 ) supports wave shaping with ws_ 1 state 2005 , ws_ 2 state 2007 , and ws_ 3 state 2009 . with wave shaping enabled , state 2005 , 2007 , or 2009 is entered from pwa setup state 2003 through transitions 2057 , 2055 , and 2059 , respectively . the pwa state is not executed when wave shaping is enabled . in the embodiment , the synthesis associated with any phase ( 2150 , 2160 , 2170 ) may be circumvented . for example , ws_ 1 state 2005 may enter ws_ 2 state 2007 through transition 2061 , may enter ws_ 3 state 2009 through transition 2063 , or may enter delay_ 2 state 2013 through transition 2065 . other embodiments of the invention may support a different number of phases than is utilized in the exemplary embodiment . also , other embodiments may utilize wave shaping for other portions of waveform 2101 ( e . g . a pwb pulse 2129 ). [ 0109 ] fig2 shows a first apparatus that supports wave shaping as shown in fig1 according to an embodiment of the present invention . output voltage v out 2203 corresponds to phase 2150 , 2160 , or 2170 . a digital to analog converter ( dac ) 2201 generates v out 2203 in accordance to a digital input 2209 . input 2209 is obtained from register 2205 . register 2205 receives a digital input 2211 from waveform controller 1001 . input 2211 is stored in register 2205 when clocked by clk_step 2207 , which occurs at a rate of updating phases 2150 , 2160 , or 2170 ( corresponding to a “ step ”). waveform controller 1001 updates digital input 2211 in order to cause v out 2203 to equal a desired value during phases 2150 , 2160 , or 2170 in accordance with an initial output amplitude , a final output amplitude , an amplitude step size , and a step time duration parameters . in a variation of the embodiment , dac 2201 determines a voltage drop across a regulator ( e . g . 1401 , 1403 , 1405 , or 1407 ). the value of the stimulation waveform ( with a voltage amplitude ) is approximately a voltage input to the regulator minus the voltage drop ( as determined by dac 2201 ). consequently , digital input 2211 is determined by subtracting an approximate value of the stimulation waveform from the input voltage to the regulator . [ 0111 ] fig2 shows a second apparatus that supports wave shaping as shown in fig1 according to an embodiment of the present invention . an output v out 2301 corresponds to phases 2150 , 2160 , and 2170 in fig2 . v out 2301 is the output of an analog adder 2303 having inputs 2305 and 2307 . input 2305 is obtained from a gate 2309 in which a step voltage v 1 2311 is gated by a gate control 2313 in accordance with a step time duration . with apparatus 2300 , [ 0112 ] fig2 shows a logic flow diagram 2400 representing a method for supporting wave shaping according to an embodiment of the present invention . step 2401 determines whether wave shaping is activated . if not , process 2400 is exited in step 2403 . in such a case , pwa stimulation pulse 1923 is generated as an essentially flat pulse over time duration 1909 . if wave shaping for an i th phase of the pwa pulse is activated , step 2405 is executed . in step 2405 , an initial output voltage v start , a final output voltage v final , a step size v i , a step duration t 1 and a phase time duration t 1 are determined . in step 2407 , v out is equal to v start . step 2409 determines if the step time duration t 1 has expired . if so , v out is incremented by the step size v 1 in step 2411 . if v out equals the final output voltage v final in step 2413 , the output voltage v out remains constant until the end of the phase duration t 1 in step 2415 . if v out is not equal to the final output voltage v final and the phase time duration t 1 has not expired ( as determined in step 2417 ), step 2409 is repeated in order to update v out for another step time duration t 1 . other embodiments of the invention may support wave shaping of a current amplitude of waveform 2101 . in such cases , a voltage amplitude may be converted into a current amplitude by driving a resistor that is associated with a regulator ( e . g . 1401 , 1403 , 1405 , and 1407 ). simultaneous delivery of a plurality of independent therapy programs . fig2 shows a stimulation arrangement that is associated with an implantable neuro stimulator according with prior art such as that disclosed in u . s . pat . no . 5 , 895 , 416 . lead 2501 comprises a plurality of electrodes including cathode 2503 , cathode 2505 , and anode 2507 . anode 2507 provides a common reference for either a voltage amplitude pulse or a current amplitude pulse through cathodes 2503 and 2505 . waveforms 2511 and 2513 are applied to cathodes 2503 and 2505 , respectively . waveform 2511 differs from waveform 2513 by amplitude scaling ; however , component time durations are the same for waveform 2511 and waveform 2513 . moreover , the waveforms serve to treat the same neurological condition in a specific portion of the body . [ 0116 ] fig2 shows a stimulation electrode arrangement that is associated with ins 200 according to an embodiment of the present invention . ins 200 stimulates leads 2601 and 2603 . lead 2601 comprises electrodes 2605 - 2619 , and lead 2603 comprises electrodes 2621 - 2635 . the basic “ unit ” of therapy is a “ therapy program ” in which amplitude characteristics , pulse width , and electrode configuration are associated with a pulse train for treatment of a specific neurological conduction in a specific portion of the body . multiple therapy programs may therefore be used to either treat distinct neurological conditions or treat the same neurological condition but in distinct areas of the body . the pulse train may comprise a plurality of pulses ( voltage or current amplitude ) that are delivered essentially simultaneously to the electrode configuration . in fig2 , four therapy programs ( program 2637 , program 2639 , program 2641 , and program 2643 ) are configured and activated . in the embodiment , thirty two therapy programs may be defined in which one to four therapy programs may be activated to form a therapy program set . ( other embodiments may support a different number of therapy programs and a different size of the therapy program set .) additional therapy programs ( not directly accessible by the patient ) may be provided for any number of reasons including , for example and without limitation , to treat neurological conditions in distinct parts of the body , to treat distinct neurological conditions , to support sub - threshold measurements , patient notification , and measurement functions . for example , a patient notification program is used to define an output pulse train for patient notification such as some type of patterned stimulation that can be discernable by the patient . the patient notification program may be activated by a low battery ( battery 1467 ) condition . a lead integrity measurement program defines a pulse train to executing lead ( e . g . 2601 and 2603 ) integrity measurements . in fig2 , the therapy program set comprises therapy programs 2637 ( program 1 ), 2639 ( program 2 ), 2641 ( program 3 ), and 2643 ( program 4 ). each therapy program comprises four waveforms c 1 , c 2 , c 3 , and c 4 that are generated by regulators 1401 , 1403 , 1405 , and 1407 , respectively . table 2 illustrates the configuration of the program set as shown in fig2 . stimulation pulses are applied to cathodes 2607 - 2617 of lead 2601 and to cathodes 2623 - 2633 of lead 2603 , while anodes 2605 , 2619 , 2621 , and 2635 serve as common references . with therapy program 2637 ( program 1 ), stimulation pulses 2655 , 2657 , 2651 , and 2653 are applied to cathodes 2611 , 2613 , 2627 , and 2629 , respectively . with therapy program 2639 ( program 2 ), stimulation pulses 2665 , 2667 , 2661 , and 2663 are applied to cathodes 2611 , 2613 , 2627 , and 2629 , respectively . the pulse characteristics of a regulator ( e . g . 1401 , 1403 , 1405 , 1407 ) may vary from one therapy program to another . for example , pulse 2655 and pulse 2665 are generated by regulator 1401 ; however , pulse 2655 and pulse 2665 may have different characteristics in order to obtain a desired therapeutical effect . with therapy program 2641 ( program 3 ), stimulation pulses 2675 , 2677 , 2671 , and 2673 are applied to cathodes 2615 , 2617 , 2631 , and 2633 , respectively . with therapy program 2643 ( program 4 ), stimulation pulses 2685 , 2687 , 2681 , and 2683 are applied to cathodes 2607 , 2609 , 2623 , and 2625 , respectively . thus , embodiments of the independent therapy programs in an implantable medical device are disclosed . one skilled in the art will appreciate that the present invention can be practiced with embodiments other than those disclosed . the disclosed embodiments are presented for purposes of illustration and not limitation , and the present invention is limited only by the claims that follow .
apparatus and method for independently delivering a plurality of therapy programs in an implantable medical device . a therapy controller configures the device to generate independent pulse trains associated with a plurality of therapy programs and dynamically configures the electrodes to deliver the independent pulse trains to the patient . once configured , the implantable medical device delivers the plurality of therapy programs to the patient wherein the therapy programs may overlap in time .