FUNCTION GENERATOR FOR A NUCLEAR MAGNETIC RESONANCE SYSTEM

Abstract: A modular function generator for generating a plurality of analog waveforms for use in an NMR imaging system includes a plurality of waveform synthesizer modules (50) which are interconnected by a main bus (52) to a central controller (56). Each synthesizer is adapted to produce one analog waveform for the NMR imaging system. Each synthesizer module includes a memory (70) and an address sequencer (72) which produces a sequence of addresses which control the retrieval of data from the memory. Each data word of the memory contains several fields. An instruction field and a general data field control the address sequencer so that the sequence of addresses is, in turn, controlled by the memory data. Other fields from the memory define analog and digital outputs produced by the synthesizer module. The fields are generated by program control means which are organised to have data files which define a set of elementary analog waveform segments and subroutines which are controlled by a main program. The execution of each subroutine produces a segment of an analog waveform. The subroutines generate a segment by accessing given data files and concatenating a plurality of elementary segments into a single analog output. Each synthesizer also includes a system clock (180) which has a clock speed-up mode for executing background program steps between adjacent clock pulses of its primary clock signal. The synthesizer modules are interconnected by an interchannel communications bus (66) which allows each synthesizer to signal every other synthesizer whereby the operations of the synthesizers can be synchronized. The contents of the memory of each synthesizer can be modified by the central controller so that the function performed by each synthesizer and the shape of each analog waveform is completely definable.

Description: This invention relates generally to a computerised nuclear magnetic resonance (NMR) imaging system and, more particularly, to a function generator for generating complex analog waveforms used in an NMR imaging system and control signals necessary for its operation. Nuclear magnetic resonance finds applications in numerous fields. The present invention will, however, be introduced by reference to NMR imaging in medicine. NMR imaging is a powerful tool which can reveal the structure and make-up of internal tissue and organs of a body through a non-invasive procedure. The physician is thus provided with information which can be used to identify the nature of the disease that afflicts the internal organ and pinpoint its location. NMR imaging, very broadly, operates as follows. A patient is subjected to the influence of carefully aligned magnetic fields produced by the NMR imaging system. The fields force nuclei within the body to orient themselves along lines of force associated with the magnetic fields. When the fields are removed, the nuclei relax and their relaxation is accompanied by a characteristic electromagnetic radiation which can reveal the molecular composition of a given tissue. The electromag­ netic radiation possesses a spatial distribution and a timing and frequency relationship which can be used for imaging the position, shape and composition of selected internal organs or tissue of the patient. An NMR imaging system, very broadly, includes magnets which surround the patient, radio frequency (RF) coils and power drivers which are used for producing mag­ netic fields in the magnet, a receiver for detecting the patient-emitted electromagnetic radiation and for produc­ ing electrical signals representative thereof, and a pro­ cessor for analyzing the data from the receiver and for generating an image from such data. While the NMR phenomenon has been observed as early as 1946, the ability to create images from the spa­ tial distribution of NMR signals was not demonstrated until the early 1970's. The difficulties associated with constructing an operational NMR imaging system reflect the enormous com­ plexity involved in sensing the rather feeble NMR radia­ tion from a patient and using these feeble signals to construct a discernable image which can be interpreted by the physician. Another difficulty concerns the gener­ ation of complex waveforms for driving the RF coils and power drivers in the magnets to generate precisely con­ trolled and aligned magnetic fields so that the NMR sig­ nals from the patients could be properly interpreted. The present invention is specifically related to a function generator which simplifies the generation of the complex analog waveforms and which provides an in­ creased level of flexibility. With the invention, the scientist or physician can exercise real-time control over the generation of the complex waveforms referred to above. The invention's objective is to provide the func­ tion generator of the present invention at a configura­ tion which reduces its size and cost and increases its flexibility over prior art devices. The principles which determine: the shape and type of magnetic fields required in an NMR imaging sys­ tem; the nature, characteristics and frequencies of the electromagnetic radiation emitted by the patient; and the basic hardware necessary for sensing and analyzing the NMR signals from the patient have been described in the literature. For example, the article entitled "Nuclear Mag­ netic Resonance: Beyond Physical Imaging", by Paul A. Bottomley and published in the February, 1983 issue of IEEE's Spectrum magazine, pages 32-38, describes the basic NMR principles. In Fig. 5, it shows the basic hardware blocks, including a transmitter, receiver, mag­ net, gradient coils and a computer for analyzing the data. The article by Ian L. Pykett entitled "NMR Imaging in Medicine", appearing in the May, 1982 issue of Scien­ tific American, pages 78-88, similarly provides a de­ scription of the basic principles of NMR. The hardware structure of a typical NMR system is further illustrated in an article entitled "Electronics and Instrumentation for NMR Imaging", authored by A.A. Maudsley et al and published in the August, 1984 issue of IEEE transaction on nuclear science, Vol. NS-31, No. 4, pages 990-993. The overall configuration of an MMR imaging system ap­ pears in Fig. 1, and shows the basic interconnection be­ tween the transmitter, receiver, waveform controller, magnet and the computer which invariably appear in sys­ tems of this type. While this article alludes (at the right column of page 990) to the desirability of loading the shape of a waveform from a controller, the flexible, modular and highly compact structure of the waveform gen­ erator in accordance with the function generator of the present invention is not shown. The ability to manipulate, alter and adjust the analog waveforms which drive the RF coils and the gradi­ ent power supply coils is important. These waveforms define the resolution of the obtained image and determine the size, location and angular view of the displayed im­ age. The desirability of having maximum flexiblity in generating this waveform is therefore readily apparent. Yet, in known prior art devices, the complex waveforms are generated by dedicated circuits which are designed to deliver waveforms of predetermined character­ istics. These dedicated circuits are often under the general supervision of a central controller which can determine when the waveforms are produced but cannot dy­ namically control the exact and final shape of these waveforms. While in known prior art devices the central controller or computer is capable of selecting a desired analog waveform from a library of such waveforms, the exact shape, timing and frequency of the waveform is not under computer control. A notable disadvantage of NMR imaging is that the patient's exposure time to the magnetic fields and the ensuing processing period are rather long, i.e. in the order of 1 to 10 minutes. Further, when an image is obtained, it may be evident that the image does not show a desired portion of view of a patient's anatomy. It is thereafter necessary to change the position of the pa­ tient within the magnet and/or select a different config­ uration of RF fields from a fixed set of fields which, in prior art devices, are permanently wired in the dedicated circuits. Hence, prior art NMR devices are inflexible. They restrict the options available to the diagnostician and cannot be easily refurbished to accommodate advances in the art related to the generation of improved or better-defined magnetic fields. Further, hard-wired, fixed, dedicated circuits present the additional disadvantage that hardware repair or modification is difficult and retrofitting to accommodate advances in the understanding of the NMR phenomena is almost impossible. An object of the present invention is to provide an improved function generator for an NMR imaging system. According to the invention there is provided a waveform synthesizer for an NMR imaging system, the synthesizer comprising a memory; an address sequencer for producing a sequence of addresses for the memory; means for entering data into the memory from a source external to the synthesizer; means for sequentially retrieving portions of the data for the memory in accordance with the sequence of addresses, the data retrieved from the memory including an instruction field for controlling the operation of the address sequencer, an analog waveform field for defining at least one analog waveform output and a digital output field for producing a plurality of digital outputs; analog waveform synthesizing means responsive to the analog waveform field for producing the or each analog waveform output; and program means for generating the analog waveform field. To summarise one form of the invention in which a function generator is provided for generating the complex waveforms used in NMR imaging systems, the function generator includes, in a minimum configuration, a single waveform synthesizer including a memory in which are stored data defining the shape of the waveforms and instructions which control the access to the data. An address sequencer, which need not have ALU capability, produces a sequence of addresses for accessing the data from the memory. Each of many data words in the memory are organised in the form of several fields where each field relates to a different category of data. One of these fields is the instruction field. The output from the memory defined by the instruction field is coupled back to the address sequencer and controls the generation of next addresses for the memory. The next address may be a completely new address specified by data from the memory, an increment of the previous address or a jump to a subroutine, for example. Other fields are generated which define at least one analog waveform and many digital outputs and control signals. The term "complex waveform" as used herein refers to a time-varying analog signal. Accordingly, the generator includes analog waveform synthesizer means responsive to one or more of the fields from the memory to generate an analog complex waveform of a timing and magnitude characteristic defined by the data fields. Two features of the generator are first the data entry means which allow the contents of the memory to be dynamically updated or modified from an external source to provide full and dynamic control over the generation of the analog waveform and, second, the program means which provide a unique software data and instruction organisation which simplifies the generation of waveforms and reduces the amount of hardware and software necessary for implementing the waveform synthesizer. The program means includes data files which characterise and define a set of elementary waveform segments. A subroutine structure is used for synthesizing complete waveforms by selectively retrieving data files and by producing, through a concatenation process, complete composite waveforms. Thus, a limited set of elementary segments in the form of, for example, a ramp, one-half of a sinusoid (180°), a non-linear segment or the like, are sufficient for producing any desired waveform which may be used in an NMR imaging system. Further, even presently unknown waveforms can be later defined with an easily generated data file. The invention further includes a novel system clock arrangement having a dual clock frequency. Clock pulses of a first clock, operating at a fixed first frequency, for example 1 megahertz, are used for synchronizing all events associated with the generation of the analog data fields or the other fields provided for the digital outputs or control signals. A second clock of a frequency higher than the first frequency generates a sequence of intermediate clock pulses, preferably 4 or more, which occur during the interval between adjacent clock pulses of the first clock system. The second clock can be controlled so that a given number of intermediate clock pulses appear between adjacent pulses of the first clock. The intermediate pulses are enabled as a group. The group will consist of, for example, 1, 2, 3, etc. adjacent intermediate clock pulses. In another embodiment, the intermediate clock pulses are selectively enablable by data outputted from the memory so that the occurrence or non-occurrence of a given intermediate clock pulse is programmable. Background program operations associated with initialization steps during transistions from generating one waveform segment to another can be performed in background mode without affecting the execution of program steps involving current segment generation. In a preferred embodiment, a pipeline register is provided at the output of the memory. The pipeline register stores outputs from the memory for a duration of one clock period to allow the address sequencer to begin the fetching of a next data word while the previous word is maintained. "Pipelining" speeds up the data processing capability of the system and further ensures that the outputs from the memory are never in an indetermined state. While the disclosure shows the pipeline register as a distinct and separate device from the memory itself, it is to be recognised that advances in memory technology are contemplated where pipeline registers will be included as part of the memory itself. In a more elaborate function generator, a plurality of synthesizers, as described above, are combined, in a modular fashion, to allow simultaneous generation of a plurality of analog waveforms. A common data/address/control bus interconnects the individual synthesizers to a central controller CPU and, optionally, to other computers. The memory of each synthesizer is loadable through the common bus from either the central controller or from the external computer. With this arrangement, any of the synthesizers, each of which is preferably in the form of a printed circuit board, can be used interchangeably to generate any of the waveforms. Modularity, expansion, reprogrammability and logistics are significantly improved thereby. The function generator further includes an interchannel communication bus. The interchannel communication bus allows the individual synthesizers to synchronize their operation, without the intervention of a central controller. In this manner, the waveforms from each synthesizer can be staggered or synchronized to one another. To reduce the hardware and software configuration to a minimum, digital to analog converters, multiplying digital to analog converters, programmable array logic devices (PALs) and other integrated circuits for reducing the complexity of the combinatorial logic circuits, and for allowing such circuits to be readily reconfigured in the future, may be used. Embodiments of the invention will now be described, by way of example, with reference to the accompanying drawings, in which Fig. 1 is a block diagram of a prior art NMR imaging system, Fig. 2 is a block diagram of a preferred form of a function generator for use in the system of Fig. 1 and shows a plurality of synthesizer modules or channels and other peripheral circuits interconnected by a data/address/control bus, Fig. 3 is a block diagram of one of the plurality of synthesizer channels shown in Fig. 2, Fig. 4 shows one form of the interchannel communication bus shown in Fig. 2, Fig. 5 is a block diagram of a prior art address sequencer which may be used as the address sequencer shown in Fig. 3, Fig. 6a is a block diagram for a system clock of Fig. 3, Fig. 6b is a timing diagram which illustrates the operation of the system clock for use in the present invention, Fig. 6c is a block diagram of a digital delay block of Fig. 3, Fig. 7 shows a plurality of analog waveforms which are used in an NMR imaging system, Fig. 8 illustrates the generation of an analog waveform and digital outputs as provided in the present invention, Fig. 9 is a table which lists a partial sequence of data words which are issued for generating the analog waveform shown in Fig. 8, and Fig. 10 is a software flow chart which is presented for explaining the software organisation and approach in the present invention. Referring now to the drawings wherein like num­ erals indicate like elements, there is shown in Fig. 1 an overall block diagram of an NMR imaging system designated generally as 10. The heart of the present invention is the novel NMR function generator 12 which is to be later described and which serves to generate various waveforms and control signals which are used by the remaining sub­ systems of the NMR imaging system 10. A. The Imaging System The NMR imaging system 10 includes a magnet 14 of a size and shape that allows it to surround a patient 16. In the magnet 14 are arranged a plurality of coils (not shown) which are energized by external signals to generate magnetic fields which surround the patient 16. The magnetic fields have a spatial distribution and tim­ ing and frequency relationship which induces the patient's body to emit NMR signals in accordance with the well-known NMR principles as described in the literature. There are ordinarily three coils (not shown) for produc­ ing three-dimensional magnetic fields. The coils are referred to, respectively, as the X, Y and Z coils. The magnet 14 operates in conjunction with a plurality of subsystems. The subsystems interface with the magnet and provide means for generating the signals which drive the magnetic coils and circuits for detecting NMR signals which are emitted from the patient's body. A subsystem 32 for monitoring physiological state of the patient 16 is also provided. These subsystems include a field gradient driver block 18 which buffers and amplifies analog waveforms which drive the coils and which are received from the function generator 12. An RF transmitter subsystem 20 is interfaced to the magnet 14 and provides RF modulation for modulating the magnetic fields to enable the separa­ tion of the NMR signals from other signals which are present in and around the patient 16. The RF transmitter 20 is also controlled by the function generator 12. The receiver 22 includes transducers for sensing the electromagnetic NMR signals which emanate from the patient 16. The receiver 22 demodulates the electromag­ netic signals to provide pure NMR signals in the form of an analog waveform of the general characteristic of, for example, the waveform shown at Fig. 3 of the article "Nuclear Magnetic Resonance: Beyond Physical Imaging" referred to above. The received also includes preampli­ fier circuits (not shown) which amplify the feable NMR signals. The NMR signals are analyzed in accordance with well-known principles to derive from it information which is converted to an image that can be understood and in­ terpreted by a diagnostician. The most powerful analysis tools employ digital processing techniques and, there­ fore, the NMR signals must be converted to digital form. Accordingly, an a/d converter 24 receives the analog NMR signal from the receiver 22 and converts it to a stream of digital words which can be used by a data processing com­ puter 26. To obtain all the information from the NMR signal, the a/d converter 24 must sample the NMR signals at a frequency which is sufficiently high in accordance with the well-known Shannon theorem. Optimum processing also requires that the data words received from the a/d converter 24 should be correlated in time to the genera­ tion of the magnetic fields or indirectly to the analog waveforms which are produced in the function generator 12. The generation of the magnetic fields must be fur­ ther controlled to obtain a timing synchronization be­ tween the magnetic fields and a predetermined physiologi­ cal state of the patient. For example, it may be useful to image the heart during its systolic phase or at any other time during the heart cycle. The physiological monitors 32 produce an output 34 which indicate the phys­ iological state of the patient 16. The overall coordination of events in the imag­ ing system 10 is provided through the function generator 12. The function generator 12 controls the timing of the various signals which drive the field gradient drivers 18 and the transmitter 20 in synchronism with the physiolog­ ical state of the patient 16. It also provides control signals 28 for controlling the sample rate and timing of the a/d converter 24 to ensure that the digital output data 30 from the a/d converter 24 data can be properly analyzed. The process of generating an image with the im­ aging system 10 will now be described. The NMR function generator 12 receives physiological inputs from the phys­ iological monitors 32. At a predefined instant in rela­ tion to the patient's physiological status, a first set of waveforms for driving the field gradient drivers 18 and the transmitter 20 are produced at outputs 36 and 38, respectively. After a known time delay, the patient's body responds by generating the NMR signal 40. When the NMR signals become active, the NMR function generator 12 produces a convert command signal 28 in the form of a sequence of pulses of a sufficiently high frequency. Each of these pulses commands the a/d converter 24 to sample the analog NMR signals to produce a digital data word which corresponds to the magnitude of the NMR signal at a given point in time. The data from the a/d converter 24 is transmit­ ted through outputs 30 to a data processing computer 26. The data is stored on a data storage medium, for example a data storage disk 42, as shown in Fig. 1. When a suf­ ficient quantity of data has been collected, the data is retrieved from the disk 42 and manipulated and analyzed by well-known methods such as fast Fourier Transforms to produce a visible image. Owing to the extremely large numerical calculations which are involved in analysis of this sort, an array processor 44 may be used as a "num­ bers cruncher" for speeding up the analysis or for pro­ viding a real time image of a moving organ such as the human heart. After an image is synthesized, the informa­ tion defining the image is transferred to a display 46 which may include a television or similar display device whereby the image can be perceived by the human eye. The data processing computer 26 communicates with the NMR function generator 12 over a bus 48. The bus 48 allows the data processing computer 26 to gain access to the internal memory of the function generator or to its central controller, as will be described. This enables the computer to analyze different cross-sections within a patient's body in response to operator controls or internally generated commands. The design details of the various subsystems described so far, with the excep­ tion of the NMR function generator, have been described in the literature referred to previously and are well-­ known to persons skilled in the art of NMR imaging. Ad­ ditionally, it should be observed that while the block diagram of Fig. 1 indicates certain well-defined subsys­ tems, various designers may choose to break up the imag­ ing system along subsystem blocks which may encompass more or less than the blocks shown in Fig. 1. The focus of the invention, as previously sta­ ted, is a novel circuit for an NMR function generator 12. The invention also indicates significant advantages of using an NMR function generator 12 in conjunction with the overall imaging system shown of Fig. 1. B. The Function Generator Figs. 2 through 7 illustrate various design features of the NMR function generator 12 shown in Fig. 1. Referring first to Fig. 2, the function generator 12, there illustrated, includes a plurality of synthesizer modules 50 in the form of discreet printed circuit boards which are interconnected by a common data/address/control bus 52. The function generator 12 is designed around the concept of a common bus. The common bus 52 is used for interconnecting a plurality of discreet circuits or mod­ ules such as the modules 50, 54, 56 and 58. Each module comprises identical circuits through which it is interfa­ ced to the common bus 52. A predefined protocol estab­ lishes the order and sequence for data exchange between the modules. The bus interconnect structure provides a design approach which simplifies the task of intercon­ necting a plurality of modules and facilitate the steps of debugging or repairing the hardware. Standard bus interconnect schemes and communica­ tion protocols are available in the industry. Accord­ ingly, to simplify design and increase the serviceabilty of the function generator 12, a standard bus system is used. Analysis has shown that the well-known VME bus is particularly suitable for use with the present inven­ tion. The VME bus structure and protocol is described, for example, in the VME bus specification manual, revi­ sion B August, 1982, published by the MOSTEK division of United Technologies. It is an important aspect of the present inven­ tion that standard off-the-shelf components are used wherever possible to reduce the design cost factor and improve serviceability. Accordingly, the printed circuit boards shown in Fig. 2 are divided into two groups. A first group includes off-the-shelf standard modules which operate with the VME bus and which are available from a variety of suppliers. These include the host interface 58, the central controller CPU 56, and the global memory 54. The synthesizer modules 50 belong to the second group. The function generator 12 is interfaced to the subsystems of the NMR imaging system 10 through the sec­ ond group of modules 50. As seen in Fig. 2, the VME bus can accommodate a plurality of synthesizers 50. The only limitation being the number of slots for inserting pc boards in a cage (not shown) which houses the VME bus 52. For example, as illustrated in Fig. 2, the function gen­ erator accommodates ten synthesizer modules 50. Each of the synthesizers 50 produces one analog output 60, a plurality of digital outputs 62, and can receive control signals in the form of digital inputs 64 as will be described. The synthesizer boards 50 are identical to one another hardwarewise. However, their respective analog and digital outputs are different and depend on the software which is loaded into each module to define the waveshape of the outputs and the function performed by a given synthesizer. The central controller 56 can identify or address a synthesizer module 50 or by its physical location on the bus or by a unique address de­ fined by a set of switches on each synthesizer module 50. The synthesizer modules 50 may signal each other through the interchannel communication bus 66. The in­ terchannel communication bus 66 is not a data transfer bus but rather a signaling bus which allows the synthesi­ zers 50 to indicate their status to other synthesizers. Thus, the various synthesizers 50 may synchronize their operations, as will be described. Fig. 2 can be related to Fig. 1 as follows. The outputs 60 and 62 of the individual synthesizers 50 cor­ respond to the outputs 38 and 36 which control the trans­ mitter 20 and the field gradient drivers 18. The convert command signal 28 which drives the a/d converter 24 is one of the digital outputs 62 of Fig. 2. The digital inputs 64 allow one or more of the synthesizers 50 of Fig. 2 to receive the physiological monitor signals 34 shown in Fig. 1. The function generator interfaces to the data processing computer 26 through the host inter­ face module 58 shown in Fig. 2 and through the external data processing bus 48. The standard modules of the first group include the following modules which are available from several vendors. The modules are available from Motorola, Compu­ ter Products, Inc. or Ironics and are described in Iron­ ics, Inc.'s VME bus productivity Series Specification, published March 15, 1984, Computer Products, Inc.'s En­ gineering Technical Specification for Parallel DMA Inter­ face (Part No. AE021-5260), and in the Motorola Reports November, 1984 issue. For example, the central control­ ler CPU 56 is an IV-1600 system foundation module. The module provides local control over the individual synthe­ sizers and is based on a 68010 microprocessor and a pro­ gram with real time multi-tasking software. The module 56 also includes 256 kilobytes of high-speed dual port RAM as well as 160 kilobytes of PROM. The central con­ troller 56 also includes three programmable counter­ timers which are interrupt driven to provide a time base for NMR applications as well as crystal-controlled clock/calendar function for generating alarm interrupts at preselected times during each day. The global memory 54 is an IV-1611 module which provides expanded memory to the central controller 56. The global memory 54 can accommodate up to 2 megabytes of dynamic RAM. The host interface 58 is the above-noted parallel interface DMA module available from Computer Products, Inc. The function of the host interface 58 is to allow the central processing computer 26 shown in Fig. 1 to interface to the VME bus 52 through the host inter­ face 58. In this manner, the data processing computer 26 has access and can communicate to both the central con­ troller 56 or to any of the other modules which are ac­ cessible through the VME data/address/control bus 52. The actual synthesis of the various waveforms and control of the subsystems of the imaging system is carried out by the synthesizer modules 50. The synthesi­ zer modules 50 operate generally independently of, but are under the general supervision and control of, the central controller 56. Because the synthesizer modules 50 pos­ sess a common structure and organization, the operation and structure of one typical synthesizer module is de­ scribed below. C. The Synthesizer Module The Microprogram Controller Fig. 3 illustrates the hardware configuration of one of the synthesizer modules 50 as shown in Fig. 2. The heart of the synthesizer 50 is a microprogrammable con­ troller 136 designed to generate an analog and a plural­ ity of digital outputs having respective waveforms and timing relationships which are defined in a microprogram memory 70. A microprogrammable controller operates in a computer-like manner but is not a computer in the sense that it cannot be used for general purpose tasks. Rather, it is a firmware designed and constructed for specific, limited purposes. Nevertheless, the selection of a microprogrammable controller for generating actual timing waveforms affords a level of flexibility which cannot be matched by hardwired circuits. The controller 136 includes the address sequen­ cer 72, the data input multiplexer 73, the microprogram memory 70, and the pipeline register 74. The address sequencer 72 is a controller which is able to produce a sequence of outputs in accordance with a limited set of instructions. Advanced Micro Devices' (AMD) AM2910A mi­ croprogram controller, operating in conjunction with a 2923 data input multiplexer 73, is particularly adapted for use as the address sequencer 72 of the present inven­ tion. It includes a data port 76, 12 bit wide, which herein provides addresses for the microprogram memory 70. The microprogram memory 70 includes 4,096 memory locations with 64 bit wide data words. The memory 70 can comprise, for example, 16 2k x 8 2016 dynamic RAMs. The 12 bit address from the address sequencer 72 is communi­ cated to the microprogram memory 70. In response, the memory delivers at its output 78 a data word consisting of 64 bits of data stored at that location. The micro­ program memory data is transmitted to a pipeline register 74. The pipeline register 74 consists of a 64 bit wide register which receives and stores one data word at any given time. The 64 bits which appear at the output side 80 of the pipeline register 74 are divided into several fields as will be described herein. An address sequencer instruction field 82 in­ cludes 4 bits which are fed back to the address sequencer 72. A general purpose data field 84 consisting of 12 bits of data is also provided to the address sequencer 72. The 4 bit instruction field 82 instructs the address sequencer 72 to perform one of 16 functions which control how the next address will be generated. For example, it is possible that the instruction merely commands the ad­ dress sequencer to increment the previous address value. Thus, the address provided to the memory 70 will be an address which will fetch the data word which follows the previous data word. On the other hand, it may be neces­ sary to process the data out of sequence. Then the in­ struction field 82 can direct the address sequencer 72 to output a next address which is defined by the value of the general purpose field 84. Thus, a jump instruction can be implemented. A more detailed description of the jump options available with the microprogram controller 136 will be provided in connection with the description of the address sequencer 72 which appears later herein. Of importance is that with the address sequencer 72, data input MUX 73, memory 70, and pipeline register 74, it is possible to define a path through the micropro­ gram memory and that the path is defined by the data in the memory. With this in mind, the manner of generating waveforms can be now understood. It has been noted above, that the 4 bits of the instruction field together with the 12 bits of the general purpose field are neces­ sary for controlling the addess sequencer 72. It will be shown later that 4 additional bits are used for control­ ling the data input MUX 73. These 20 bits, together, are sufficient for fully defining a path through the micro­ program memory 70. However, the memory 70 and pipeline register 74 are 64 bits wide so that there remain 44 bits at each memory location whose logic state, at any given memory location, can be set to any desired value. These 44 bits are defined at each memory location to have a high or a low logic level so that as the path through the memory 70 is traversed, each of the 44 bits or lines pro­ duces a sequence of ones and zeroes which define a wave­ form. The logic level of these 44 outputs is defined at any instant by the contents of the memory data retrieved at that instant. Since, as will be described, the con­ tents of the memory can be changed, it follows that the actual waveform at any of the 44 available output lines can be easily modified. This can be further understood by reference to Fig. 8. In the upper section of Fig. 8 a digital wave­ form 86 is shown. The abcissa 88 is graduated in numbers which designate an address or a time value. Let us as­ sume that the address sequencer generates a sequence of addresses from 0 to 50 (no jumps). Let it be further assumed that the waveform 86 of Fig. 8 corresponds to the clock enable output 90 shown in Fig. 3 and that the out­ put 90 occupies the 20th bit position of the 64 bits be­ longing to one data word. Then, if the microprogram mem­ ory contains in its 20th bit position between the addres­ ses 0 and 50 a sequence of ones and zeroes as shown, the waveform 86 results. For example, if the sequence is 000000111110000000011111, etc., the clock enable output 90 in Fig. 3 assumes the shape of the waveform 86 shown in Fig. 8. Let it be now assumed that a time period of one microsecond elapses between the outputting of each data word. Then the waveform 86 in Fig. 8 has a low level for a time period of 7 microseconds, followed by a high level for a time period of 5 microseconds and again a low level for a period of 9 microseconds and so on. Thus, the shape of the digital signal is fully definable by a se­ quence of ones and zeroes programmed in the microprogram memory 70. Accordingly, 44 distinct waveforms (64 bits less the 20 bits necessary for controlling the address sequen­ cer) can be easily generated in this manner. Further, it is possible to group several of these outputs to perform specific functions just as the grouping of four lines yields the instruction field 82. Not only is the above configuration powerful in that a mere handful of integrated circuits is capable of generating as many as 44 independently definable timing waveforms, but further this design is significant in that it allows the user to define the actual waveform after the hardward has been built. Another important feature is that the microprogram memory consists of read/write memory chips (RAM). It is possible to completely alter the sequence of addresses and/or the definition of the various outputs during different periods of times, as will be described later herein. The Address Sequencer The address sequencer 72, according to the pres­ ent invention, will now be described in greater detail. A typical address sequencer such as the AM2910A micropro­ gram controller is shown in Fig. 5. The addresses for the microprogram memory 70 are provided from tristate buffer 92 and through the data bus 76 (Figs. 3 and 5). Multiplexer 94 is the source for the addresses which ap­ pear at the data bus 76. The multiplexer 94 can select one of four inputs D, R, F or PC as an address source. The actual address which appears at the output 76 is de­ termined by select line 96 whose logical state is con­ trolled by the instruction PLA 98. Inputs 82 of the in­ struction PLA 98 receive the instruction field 82 shown in Fig. 3. The 4 bit instruction field determines the instruction that is performed within the address sequen­ cer 72. The D, R, F and PC address sources provide four options in generating a next address as follows. The D input of the multiplexer 94 receives the addresses from the data input 84 of the address sequencer 72. The data input 84 corresponds to the general purpose data field 84 shown in Fig. 3. Accordingly, a next address can be set to a value which is stored in the microprogram memory 70 of the synthesizer 50. A second address choice is an address value received from the register counter 102 at inputs R of the multiplexer 94. The register counter 102 can be used for accessing a block of data within memory 70. Namely, a value from the microprogram memory 70 ap­ pearing at the input lines 84 can be stored in the regis­ ter counter. The value in the counter 102 can be decre­ mented respectively through activation of control line 104 supplied by instruction PLA 98 to access a block of data. Another source for addresses is through the in­ put F of the multiplexer 94. This address is received from a stack register 106 which is able to holds 9 data words, each 12 bits wide. The addresses generated by the stack register 106 are designed for executing subroutine jumps or other similar operations. The microprogram counter register 108 provides a fourth source of addres­ ses at input PC of multiplexer 94. The microprogram counter register is coupled to the incrementer 110 which allows the microprogram counter register to provide a naturally increasing sequence of addresses. The micro­ program counter register 108 is used most often as an address source because ordinarily consecutively located memory data is retrieved from the memory. The instruction PLA 98 also receives the inputs and . The instruction PLA 98 is adapted to sense the status of these inputs and provides a capability to perform given functions in accordance wth their logical state. This feature provides synchronization capability and result oriented response in the address sequencer. The AM2910A is described in greater detail in Advanced Micro Services' data specification for the above device. The data specification is dated December, 1983 and may be obtained by ordering part no. 04522A. In a preferred embodiment of the invention, the above-noted input of the instruction PLA 98 is con­ nected to a control bit from the pipeline register 74. The input is connected to an output of the data input multiplexer 73 which has an input for receiving up to 8 input lines 64 and route one of the lines to the address sequencer 72. Which of the input lines 64 is routed to the is determined by 3 bits supplied by the pipeline register 74. The 3 bits for controlling the data input multiplexer 73 and the 1 bit which is connected to the input are shown collectively as the lines 85 in Fig. 3. The is a condition code bit which, when at a low logic level, indicates a "pass" condition. The is an enable line for the input. Some of the inputs to the data input multiplexer 73 are supplied from the counters 116. This provides a means for producing time delays as described below. The address sequencer 72 also provides the op­ tion of generating a constant address at the output 76 over several clock periods. The instruction PLA 98, in response to an appropriate instruction from the micropro­ gram memory 70, can provide this function by operating in conjunction with the zero detect circuit 112 and the reg­ ister counter 102. The zero detect circuit 112 receives as an input the contents of the register counter 102 and provide an output 114 whenever the contents of the regis­ ter counter 102 reach a value of zero. Accordingly, it is possible to load the register counter 102 with a pre­ determined value and successively activate the control line 104 until its contents reach a value of zero. This condition will be detected by the zero detect circuit 112 and communicated to the instruction PLA 98 by means of the output 114 of the zero detector 112. This feature provides the capability of accessing the same memory lo­ cation in the memory 70 and maintaining the logic state of the pipeline register 74 constant over many clock per­ iods. Time delays, as described above, can also be ob­ tained by monitoring, in the address sequencer 72, the input and controlling the data input multiplexer 73 to pass to the line information from the counters 116. The above features significantly increases the power of the microprogram controller and overcomes the following problem. If it is assumed that the address sequencer 72 operates with a clock frequency of 1 mega­ hertz (1 microsecond per clock period) and if the size of the microprogram memory is 4,096 data words, it seems that the address sequencer can access every memory loca­ tion in a time period of 4.096 milliseconds. Although it seems as if the longest definable waveform or digital sequence is limited to 4.096 milliseconds, this is not the case with the present invention. As described above, the address sequencer 72 is able to dwell for a programmable time at any one memory location. Therefore, if, for example, it is necessary to generate the digital waveform 86 shown in Fig. 8, the required number of memory locations for producing the shown waveform can be related more to the number of logic level transitions than to the actual time periods, i.e. the number of clock pulses, which occur during the defin­ able period of the waveform 86. The register counter 102 in combination with the zero detector 112 is an important feature. To enhance this capability, the invention provides for additional interval counters 116 located externally to the address sequencer 72 as shown in Fig. 3. These additional inter­ val counters 116 allow the address sequencer to, simul­ taneously, time several events or increase the total dwell time at a few looping memory locations. The System Clock The rate at which addresses are generated in a microprogram controller is determined by the clock fre­ quency generated by the system clock 180 (Figs. 3 and 6a). The system clock of the present invention employs a unique system clock configuration. A clock source 118 produces a first output 120 having a 1 megahertz fre­ quency and corresponding to the waveform 122 shown in Fig. 6b. A second output 124, designated as fast clock in Fig. 6b, has a clock frequency greater than 1 mega­ hertz and intermediate clock pulses 128 (Fig. 6b) which occur in a time slot between adjacent clock pulses of the first clock output 122. Further, 1, 2 or 3, etc. sequen­ tially occurring intermediate clock pulses 128 can be enabled by the clock enable output 90 provided from the pipeline register 74. The gated intermediate clock pul­ ses are provided from the output of gate 130. OR gate 132 delivers at clock output 134 (see also Fig. 3) the system clock. The intermediate clock pulses 128 in Fig. 6b, are enabled for carrying out background program steps, such as initialization and various data manipulations within the memory 70 when, for example, it is necessary to switch from executing one program sequence to another. Consequently, the address sequencer 72 is capable of op­ eration in two modes. In a first foreground mode, events are generated during occurence of the basic 1 megahertz clock pulses and in a second, background mode, intermedi­ ate clock pulses are enabled to carry out background pro­ gram steps. The interval between adjacent clock pulses must be sufficiently large to allow the following functions to be performed in the interim therebetween. A first delay is generated betore the an address can be produced by the address sequencer 72 and then a finite time elapses until the data can be retrieved from the memory 70. Also, the pipeline register requires the memory data to be present at its inputs at a predefined time before the occurrence of a next clock pulse. The sum of the two delay periods and the "set-up" time of the pipeline register 80 deter­ mines the fastest clock speed at which the microprogram­ mable controller 136 can operate. The microprogrammable controller 136, of the present invention, has been tailored to operate at clock speeds of at least 5.3 megahertz. Therefore, the total delay between adjacent clock pulses of the faster inter­ mediate clock described above need not be greater than 188 nanoseconds and, if a worse case scenario is ignored, the clock can be as fast as 10 megahertz or a clock per­ iod of 100 nanoseconds. The Data Entry Means The contents of the memory 70 can be examined or altered through the VME bus 52 by means of data entry means 242 (Fig. 3). The data entry means 242 include a VME bus in­ terface 244 for buffering the inputs and outputs of the synchronizer 50 from the data/address/control bus 52. Data buffer 246 is connected between the VME interface 244 and the data output port 78 of the memory 70. Ad­ dress buffer 248 is tristatable and provides a second address source for the memory 70. The address from the address buffer 248 and from the address sequencer 72 are connected in parallel. Control logic 250 receives control signals 252 and address information 254 from VME interface 244 and provides control outputs which arbitrate and determine when the memory 70 is under address sequencer 72 control. At other times, the memory 70 is accessible through the bus 52. VME bus compatibility and hardware reduction goals result in a data buffer 246 of 16 parallel bits. In contrast, the memory 70 is organized to have data words of 64 bits. Therefore, each data bit from the data buffer 246 is connected to 4 output bits of the memory 70. To avoid data collisions, the memory 70 is subdivi­ ded into four groups and the control logic 250 is used for generating control lines which enable, through "chip select" control, only one memory group at any given time. The control logic 250 uses programmable array logic (PAL) integrated circuits to reduce hardware and to provide the ability to define or change the characteristics of each output of the control logic after the circuit configura­ tion has been designed or even constructed. PALs are available, for example, from Monolithic Memories Incorporated (MMI). PAL components, such as 18L4, 16R4 and others are used in the control logic 250. The features, function and use of PALs is described in data sheets available from MMI. A PAL is an array of AND gates followed by an array of OR gates. A plurality of inputs, as many as 18, are wired to each of the AND gates. The output of each of the AND gates is prewired, in turn, to all the inputs of the OR gates. A PAL allows the user to open, by means of a programming device, any of the initially defined circuit paths in the PAL. It is possible, therefore, to realize with a PAL exceedingly complex functions which would otherwise require many discreet ICs to obtain similar outputs. For example, in an 18L4 PAL, four distinct out­ puts can be defined in terms of 18 inputs all in one sin­ gle integrated circuit. If the inputs are represented as the letters A, B, C, ... R, any of the four outputs can be a sum of products of the inputs A-R. The only limita­ tion is that the number of gates available in the AND gate array is at least as large as the number of products in the sum of products. PALs are more fully described in the PAL data book which is published and available from NMI. With PALs, the exact shape of a hardwire output can be changed at any time by programming a new PAL de­ vice and substituting the PAL for an existing PAL in the function generator. The PALs of the control logic 250 thus provide the flexibility and the means for producing many control lines for controlling the internal circuits of the syn­ thesizer 50. The Pipeline Register Outputs Having thus described the heart of the synthesi­ zer consisting of the microprogrammable controller 136, various outputs from the pipeline register 74 which gen­ erate the analog and digital outputs will be described next. Referring to Fig. 3, the clock enable output 90 controls the gate 130 (Fig. 6a) and selectively enables intermediate clock pulses. Control output 138 controls the VME bus inter­ rupt logic 140, to be described, and output 142 is a strobe which loads the contents of the general data bus 84 into the interchannel communication buffer 144, also to be described. The group of digital control lines 146 includes control signals for general use within the syn­ thesizer 50. For example, controls for storing data into the interval counters 116 from the general data field 84 or digital control lines for controlling the subsystems such as the transmitter 20, receiver 22 or drivers 18 shown in Fig. 1. Other outputs are the analog data field 148, the DAC strobe 150, the digital delay field 152 and the sample output 154. These outputs will be described below. The interrupt control output 138 is supplied to the VME bus interrupt logic 140. Also received by the interrupt logic 140 are the digital inputs 64. The in­ puts 64 are gated with the control output 138 whereby a given digital input can be enabled onto the bus 52 in order to interrupt the central controller CPU 56. Thus, selected digital inputs can be transferred to the central CPU in accordance with the requirements associated with a given task performed by any of the sequencers 50. The Digitally Delayed Output The convert command output 28 provides a series of pulses to the a/d converter 24 of Fig. 1. Each pulse is a command to sample the NMR signal and provides one digital word indicating the magnitude of the NMR signal at that instant of time. It was previously noted that a timing of the convert command signal 28 with respect to the other events in the imaging system is crucial. Generally, the outputs of the pipeline register 74 are synchronized to the 1 megahertz clock 122 of Fig. 6b. Implicitly, therefore, the timing resolution of the outputs from the pipeline register is limited to 1 micro­ second. This resolution is unsatisfactory for generating the convert command signal 28. The digital delay 156 provides means for delay­ ing the sample output 154 (Figs 3 and 6c) by increments of 62.5 nanoseconds (derived from a 16 megahertz clock 160) and to thus provide more accurate timing control over the generation of the convert command signal 28. A circuit embodiment of the digital delay 156 appears in Fig. 6c. The digital delay 156 includes a serial in/par­ allel out shift register 158 which receives the sample output 154 and the 16 megahertz clock 160. The sample output 154 reappears at the 16 outputs of the shift reg­ ister 158 after a time delay which ranges from 62.5 nano­ seconds to a full 1 microsecond. The outputs from the shift register 158 are received by a 16:1 multiplexer 162 which is responsive to the digital delay field 152 gener­ ated by the pipeline register 74. The field 152 deter­ mines which of the 16 outputs from the shift register 158 will be coupled to the multiplexer output 28. The output of the multiplexer 162 is the convert command output 28 which has been selectively delayed with respect to the clock pulses of the 1 megahertz clock output 122. The convert command output is shown in Fig. 6b where arrows 164 indicate that the convert command pulses have been delayed with respect to the 1 megahertz clock. The Analog Waveform An analog waveform is generated by means of the digital to analog converter (DAC) 168 and by the multi­ plying digital to analog converter (MDAC) 170, for exam­ ple a 7541 MDAC, as follows. The DAC 168 receives digi­ tal data in the form of a plurality of bits which repre­ sent a given value and produces an analog voltage of an equivalent value at its output. The MDAC 170, on the other hand, is a device which receives an analog voltage and scales the analog voltage (attenuates) by a value which is defined by a digital data field received at other inputs of the MDAC 170. To produce an analog output of a continuously varying voltage, or in other words a distinctive wave­ form, the pipeline register 74 continuously produces a varying analog data field 148. This analog data field can be updated as rapidly as once every microsecond to enable emulation of a rapidly changing analog waveform. The DAC, which may be a 5680 12 bit DAC available from Harris Corporation, is capable of producing an analog voltage in response to a 12 bit digital input field. The 5680 DAC has a settling time of approximately 1 microsec­ ond which provides a certain degree of smoothing as the analog voltage transitions from one voltage to another. The two major features of an analog output are its waveform and its magnitude. For example, the analog output 172 of Fig. 8 has smaller voltage swings than the analog output 174. The present invention is organized around the concept that the DAC 168 produces an analog output 176 (Fig. 3) with the correct waveform while the MDAC 170 is employed for scaling or for adjusting the scaling or magnitude of the analog output 60 which is supplied to the various subsystems. Accordingly, the MDAC 170 includes inputs 178 which receive the general data field 84. By means of the DAC/MDAC strobe 150, re­ spective values are loaded into the DAC 168 and into the MDAC 170 which produce an analog output 60 having a pre­ determined waveform and magnitude. It should be noted that the same strobe is used for loading simultaneously the respective fields into the DAC 168 and into the MDAC 170. This arrangement avoids the possibility that the analog voltage 60 is not fully defined at any given time due to sequential loading of the DAC and the MDAC, respectively. Analog waveform 174 shown in Fig. 8 is presented to explain the general concept of analog waveform synthe­ sis. This contrived analog waveform includes several regions. In a first region, the output voltage is con­ stant. In a second region, the voltage begins to in­ crease and has the form of a sinusoid. In a third re­ gion, the analog voltage is again constant although its magnitude is higher than the previous constant value. The last section of the analog waveform consists of a monotonically increasing ramp. To produce analog waveform 174, the microprogram memory 70 through the pipeline register 74 outputs a se­ quence of digital values on its analog waveform field 148 shown in Fig. 3. Please note while in the actual hard­ ware, the analog waveform is defined by 12 bits applied to the DAC 168, for illustration purposes, only 5 bits are used in Fig. 8. The process of generating an analog waveform is a process whereby the analog waveform field 148 is con­ tinuously updated to values which approximate the exact value of the analog waveform 174 shown in Fig. 8. In Fig. 8, the abcissa is graduated in numbers from 0 through 60. These numbers represent either time or se­ quential addresses which are applied to the microprogram memory 70. The ordinate axis is graduated in magnitude values which are marked by the binary numbers from 00000 to 11111 (from 0 to 31 in the decimal system). For the first five points, the analog voltage is at a level of 01000 (8). During that time, the analog waveform field 148 is set to a constant of 01000. Thereafter, the field 148 changes rapidly in an attempt to follow the increas­ ing analog voltage. For example, at time period 5, the magnitude will rise to a binary value of 01010. At time period 7, the value will be 01111, and so on. The sequence of values assigned to the field 148 is illustrated in Fig. 9 for the time duration from 0 to 20. It is seen that as the analog waveform changes rap­ idly, the values from the pipeline register will change often. But when the analog waveform is constant or chan­ ges gradually, the output from the pipeline register re­ mains constant for a corresponding time interval. The staircase shape voltage represents the actual voltage which is produced by the digital to analog converter 168. As shown in Fig. 8 there exist significant differences between the pure analog waveform 182 and the analog wave­ form 174 which is output by the digital to analog conver­ ter 168. In actuality, where 12 bits are available for defining the analog waveform 174 the deviations from the exact shape of the 182 waveform are negligible. Software Organization The present invention is further distinguished by a unique and novel software structure which is em­ ployed for producing an analog waveform. The generation of the analog waveform will be explained by reference to the software chart illustrated flow in Fig. 10. A straightforward and direct software approach for generating analog waveform requires that all val­ ues of the analog waveform at all points in time be stored in a memory and recalled sequentially. For example, in Fig. 8 this would require the storage of a corresponding value for each graduation on the time scale, e.g. 1 through 60. However, such an approach requires a large initial programming investment and is impractical because a large memory capacity must be made available. Instead, the invention employs a software struc­ ture wherein a selected group of analog waveform segments are defined and stored in data files. Special program means in the form of subroutines concatenate the analog segments to produce a final desired analog waveform. For example, let it be assumed that a typical analog output has the shape of the waveform 172 shown in fig. 8. The waveform includes a first section A, followed by ramp section B and the sections C, D, E, F, G and H, as shown. The complete waveform 172 can be reproduced from data files which define the sections B and F alone. The re­ maining sections can be produced through software means by, for example, inverting the polarity of or scaling a waveform segment. Accordingly, the section A is produced by outputting to the digital to analog converter 168, shown in Fig. 3, a constant value for a time period which corresponds to 11 units of the time scale shown in Fig. 8. The generation of a constant voltage does not require a data file and can be generated dynamically by software. To generate the segment B, the program accesses a data file which defines a ramp B. Another data file provides values for producing a sinusoidal segment such as segment F. The voltage values in any data file are stored in absolute value terms. For example, the waveform sec­ tion C in fig. 8 is a negative section of a sine wave and can be generated by accessing a data file which contains the values of a sine wave from 0 to 180° and by inverting the polarity of each value. Similarly, the section E is a negative ramp and can be generated by accessing the data file corresponding to the section B and complement­ ing the data stored therein. Briefly, a data file contains a sequence of val­ ues which define a waveform. If the waveform is a sine wave from 0-180°, for example, then the magnitude of the values will increase to a maximum at 90° and then de­ crease to reach the first value at 180°. Almost any other sinusoidal waveform can be generated from the above data file. To generate a sine wave from 0-360°, the data file is first used as is to produce the 0-180° segment and then the same data file is read again, except that now each value is inverted. To change the frequency of the sine wave, the time between outputting adjacent val­ ues from the data file to the DAC 163 is increased or decreased as necessary. The scaling of the sine wave is controlled by the subroutine which uses the data file. The subroutine outputs scaling values over the lines 148 to the MDAC 170 as shown in Fig. 3. It should be noted that the program can enter the data file at any point thereof, so that by entering at the middle of the above­ noted data file a sine wave of from 90-180° can be gener­ ated. The last capability is particularly powerful in connection with data files which define ramps. In con­ nection with ramp data files, the ability to enter at the middle point provides an inherent capability to produce a ramp of from any first value to any second value because the ramp increases monotonically. If, however, the level of the sine wave must be changed (level shifting), then a separate data file will be required because the address sequencer is not capable of ALU operations. However, this is not significant, because the microprogram memory is reprogrammable from the externally located central CPU 58 so that as many data files as necessary can be generated dynamically. To summarize, the firmware software is distin­ guished by having a small group of data files for defin­ ing elementary analog waveform segments and a larger num­ ber of subroutines. Each subroutine generates a segment independently or by accessing a data file. By executing a sequence of subroutines, a completed waveform is gener­ ated by concatenation. Fig. 10 is a top level flow chart of the soft­ ware. The flow chart will be used to describe the gener­ ation of the segments B and C of fig. 8. The program begins with the initialization block 190. In the ini­ tialization block 190, general housekeeping and mainten­ ance functions are performed including the presetting of constants and the resetting of all the timers in the sys­ tem. Next in the set subroutine entry address block 192, the main program initializes a general location which stores an entry address of a first subroutine 194. The first subroutine is used for controlling the genera­ tion of the segment B shown in Fig. 8. Next, the main program initializes the subroutine 194 in a block 196. The next instruction 198 instructs the program to jump to a first location of the data file A 200. Data file A provides a sequence of values which describe the analog segment B of Fig. 8. At the first location 202, the data file defines a first value for the segment B, for example the binary value 00000. Also at the first location 202 of data file A there is stored a jump to subroutine instruction. The instruction will instruct the address sequencer to output an address value which accesses the first location of subroutine 194. The address of the first subroutine has been previously initialized in the set subroutine entry address block 192. Subroutine 1 also controls the scal­ ing of the waveform. A scaling constant is initialized in the subroutine before execution of the subroutine be­ gins. Then the constant is sent to the MDAC 170 of Fig. 3 (block 206) prior to accessing the first word in the file. The subroutine also determines the next time when the analog waveform must be updated. If updating is not required, the address sequencer may dwell at the same location to save memory unless another output of the syn­ thesizer requires updating. In decisional block 204, the subroutine determines when an end of segment has been reached. For example, if determination is made that the end of segment has not been reached, the subroutine pro­ duces a next address which points to the second entry 208 in data file A. A voltage output corresponding to the next point is then retrieved from data file A. A jump to subroutine instruction then returns control to subroutine 1 which responds by outputting the second value. There­ by, the segment B shown in Fig. 8 is synthesized point by point by means of data file A and subroutine 1. When the last point in the segment B has been outputted, a YES result will issue from the decisional block 204 and the program will fall through to the continue block 210. The data file B of Fig. 10 describes, for exam­ ple, one-half of a sine wave. To generate the segment C of Fig. 8, the main program sets a new subroutine entry address at program block 212. Consequently, a jump to subroutine instruction will generate an address from the address sequencer which accesses the second subroutine 214. Initialize subroutine block 216 is similar to the block 196 but operates on the second subroutine 214. The generation of segment C proceeds in a manner identical to the generation of the previous segment and involves an orderly progression through data file B to retrieve therefrom a sequence of values which define a sinusoid. As part of the initialization of subroutine 2, subroutine 2 is instructed to invert all the value ob­ tained from data file B to generate the negative going sinusoid segment C of fig. 8. When the last point of the sinusoid has been output, the end-of-segment decisional block 218 will provide a YES result and the subroutine will continue to the main program. In summary, the program structure as defined above is capable of obtaining a very modular software structure which significantly reduces the memory require­ ments of the synthesizer 50. The software structure described thus far sim­ plifies software design. For example, for generating a plurality of data files, a specialized program in the form of a macro, which is not part of the final program stored in hardware, is used for generating sequences of points for each data file. To generate a particular waveform shape, the programmer must only specify which data files are required in accordance with the elementary waveform segments that make up the given waveform. A sequence of subroutines, all of the same structure, are generated to access respective data files for generating a composite waveform such as, for example, the waveform 174 of Fig. 8. D. The Interchannel Communication Bus Fig. 7 is a timing diagram showing examples of analog waveforms produced by the function generator in accordance with the present invention. The signals G x , G z , and G y are used driving the gradient power supply drivers 18 of Fig. 1. The waveforms RF and RF imag are used for driving the RF transmitter 20. In operation of the present invention, each of these waveforms is generated by a respective synthesizer module 50 of the function generator 12. Curved arrows 220, 222, for exam­ ple, show a triggering timing relationship between the various waveforms. For example, the arrow 224 indicates that at point 2 when the waveform RF approaches zero, the wave­ form G y must begin the generation of a down curving sinusoidal segment while the waveform G x and G z must be­ gin a generation of a negatively sloping ramp (arrows 220 and 222). Similarly, at time period 3, the waveform G z reaches a value of zero and the arrows 226 and 228 indi­ cate that the waveforms G x and G y , respectively, must begin the generation of the sinusoidal waveforms 230 and 232, respectively. This relationship also holds true for the other curved arrows which appear in Fig. 7. In addition to the interrelated timing between the waveforms G x , G y , G z , RF and RF imag , there exists a predetermined time relationship between the convert com­ mand waveform 234 and other waveforms which control the generation of the magnetic fields in the magnets 14. Because each of the analog waveforms referred to above is generated in different synthesizer modules 50, the synthesizers 50 must synchronize their operation to obtain the desired timing relationship. This is provided by the interchannel communication bus 66 which is shown in Fig. 2 and which has a structure in accordance with a preferred embodiment shown in Fig. 4. Fig. 4 shows three synthesizers 1, 2 and 10. The interchannel communication bus 66 consists of a plur­ ality of lines 236 including at least as many lines as there are synthesizers 50 in the function generator 12. In Fig. 4, six such lines are shown. The individual syn­ thesizers are connected to these lines in a manner so that each synthesizer treats a single but different line as an input line and uses the remaining number of lines as output lines. For example, it can be seen that the synthesizer 1 in fig. 4 is wired to receive interchannel communication bus line 238 as an input line while the remaining interchannel communication bus lines are wired as output lines. Synthesizer 2, on the other hand, uses the next interchannel communication bus line 240 as an input line, while synthesizer 10 uses the last interchan­ nel communication bus line as an input line. Each of the synthesizers monitors its intput line to determine whether the line is active. An active state can be a logic 0 or a logic 1, in accordance with a pre­ determined protocol. Therefore, the synthesizer 1, for example, can be programmed to suspend its operation at a certain point in its program and to begin testing the status of its input line. If its input line is inactive, it will wait until the state of the line changes to an active state. A first step after sensing that its input line was activated will be to deactivate its own line so that the line may thereafter be activated again by the other synthesizers 50. It should be noted that the input 238 of synthesizer 1 represents an output line to the remaining synthesizers 2-10. Therefore, any of the re­ maining synthesizers can activate the input line of the first synthesizer. Similarly, the input line 240 of syn­ thesizer 2 is wired as an output line to the remaining synthesizers, and so on for every one of the remaining synthesizers. In this manner, for example, the synchronization of the waveforms in Fig. 7 can be achieved by having the waveforms G x , G y , G z , RF and RF imag generated, respec­ tively, by five synthesizers to generate, respectively, the waveforms G x , G y , G z RF and RF imag . Synthesizer 4, which would generate for example the waveform RF, would set the input lines of the synthesizers 1-3 to an active state at time period 2 (Fig. 7). Synthesizers 1-3 will not proceed beyond the point 2 until synthesizer 4 has activated their respective input lines. On the other hand, synthesizer 2 will control the activation of the input lines of synthesizer 1 and 3 to synchronize the generation of the sinusoidal waveforms G x and G y between the time marks 3 and 4. The interchannel communication bus lines 236 can be tristate or open collector lines so that more than one synthesizer 50 can activate any of the other synthesi­ zers' input lines. The interchannel communication bus provides a means independent of the main data addressing control bus for synchronizing the operation of the individual synthe­ sizers.

Claims: 1. A waveform synthesizer for an NMR imaging system, characterised by a memory (70); an address sequencer (72) for producing a sequence of addresses (76) for the memory; means (242) for entering data into the memory from a source (26) external to the synthesizer; means (74) for sequentially retrieving portions of the data from the memory in accordance with the sequence of addresses, the data retrieved from the memory including an instruction field for controlling the operation of the address sequencer, an analog waveform field for defining at least one analog waveform output and a digital output field for producing a plurality of digital outputs; analog waveform synthesizing means (168,170) responsive to the analog waveform field for producing the or each analog waveform output; and program means for generating the analog waveform field. 2. A synthesizer according to claim 1, characterised in that the program means includes data field means (200) for defining a set of elementary waveform segments, subroutine means (194) for generating the analog waveform field as a concatenation of at least one of the elementary waveform segments and program control means for controlling the sequence of access to the data file means and the subroutine means. 3. A synthesizer according to claim 1 or claim 2, characterised by system clock means (180) for producing a clock signal which determines the frequency at which the addresses are produced, the system clock means including means (118) for producing a first clock signal (120) having clock pulses of a predetermined frequency, and for producing intermediate clock pulses (124) which can be interposed between adjacent pulses of the clock pulses of the predetermined frequency to increase the rate at which the sequence of addresses is generated. 4. A waveform synthesizer for generating at least one analog waveform and a plurality of digital outputs for an NMR imaging system, characterised by address sequencer means (72) for producing a sequence of addresses; a programmable memory (70) for storing therein digital and control information in the form of data words, each of the data words including a plurality of data fields, the programmable memory being responsive to the addresses to output the data words; a pipeline register (74) coupled to the memory and having a capacity to hold at least one of the data words, the address sequencer means being coupled to the pipeline register to receive therefrom an instruction field which defines an operation to be performed by the address sequencer means and digital output fields which define the state of the digital outputs; means (168,170) for producing the analog waveform, the means being coupled to the pipeline register and being responsive to an analog data field of the pipeline register to produce the analog waveform; and means (242) for receiving data from a source external to the synthesizer and entering the data into the programmable memory, whereby the waveshape of the analog waveform and the digital output may be altered. 5. A synthesizer according to claim 4, characterised by system clock generating means (180) for producing a clock signal which determines the frequency at which the addresses are generated, the system clock means including means (118) for producing a first clock output (120) having clock pulses of a predetermined frequency, the address sequencer means (72) and the pipeline register (74) being coupled to the clock generating means and being synthronized to the clock signal. 6. A synthesizer according to claim 5, characterised in that the system clock generating means (180) further includes means for producing intermediate clock pulses (124) which can be interposed between adjacent clock pulses of the first clock output (120) to increase the total number of pulses of the clock signal. 7. A synthesizer according to claim 6, characterised in that the intermediate clock pulses (124) are enabled for carrying out background program steps within the synthesizer. 8. A synthesizer according to any one of claims 4 to 7, characterised in that the address sequencer means (72) includes means for producing a sequence of increasing addresses or branch addresses, the addresses being developed in accordance with the instruction field from the pipeline register (74). 9. A synthesizer according to any one of claims 4 to 8, characterised by at least one interval timer counter (156) for timing events of the synthesizer for producing time delays. 10. A synthesizer according to any one of claims 4 to 9, characterised by input means for sensing the activation of at least one input signal, and means for synchronizing predefined operations of the synthesizer to the activation of the input signal. 11. A synthesizer according to claim 10, characterised in that the input signal (34) is a signal indicative of a physiological state of a patient. 12. A synthesizer according to any one of claims 4 to 11, characterised in that the programmable memory (70) is a random access memory. 13. A synthesizer according to claim 12, characterised in that each data word is a 64-bit word. 14. A synthesizer according to claim 11 or claim 12, characterised in that the random access memory (70) is responsive to the addresses to produce a respective data word after a delay of between 50 to 100 nanoseconds. 15. A synthesizer according to any one of claims 12 to 14, characterised in that the random access memory includes a data output port (78), the pipeline register (74) having inputs connected to the data output port and a clock input (134) for clocking data present at the data output port into the pipeline register in response to the clock signal. 16. A synthesizer according to claim 13, characterised in that a plurality of the data words include the instruction field, a general data field, a DAC field, a digital outputs field, and a control outputs field. 17. A synthesizer according to claim 16, characterised in that the general data field and the instruction field are coupled to the address sequencer means (72). 18. A synthesizer according to claim 16 or claim 17, characterised in that the control outputs field includes a fast clock enable output (90) for enabling the intermediate clock pulses. 19. A synthesizer according to claim 18, characterised in that the clock generating means produces the intermediate clock pulses having a frequency of at least 5.3 MHZ. 20. A synthesizer according to any one of claims 4 to 19, characterised in that the analog waveform producing means (168,170) includes a digital to analog converter (168) coupled to the pipeline register (74) for producing an intermediate analog output in response to a DAC field from the pipeline register, and a multiplying digital to analog converter (170) for scaling the intermediate analog output and producing the analog waveform. 21. A synthesizer according to claim 20, characterised in that the multiplying digital to analog converter (170) includes means responsive to a data field from the pipeline register (74) for adjusting the scaling level of the multiplying digital to analog converter. 22. A synthesizer according to claim 21, characterised by means for synchronously storing the digital to analog converter field and the data field for the multiplying digital to analog converter (170) in the digital to analog converter (168) and the multiplying digital to analog converter, respectively. 23. A synthesizer according to any one of claims 4 to 22, characterised by program means for synthesizing the analog waveform, the program means including data field means (200) for defining a set of elementary waveform segments, subroutine means (194) for generating the analog waveform by concatenating at least some of the elementary waveform segments, and program control means for controlling the sequence of access to the data field means and the subroutine means. 24. A synthesizer according to claim 23, characterised in that the set of elementary waveform segments includes sinusoidal and ramp segments. 25. A synthesizer ording to any one of claims 4 to 24, characterised in that the means (242) for entering data into the memory (70) includes means (244) for interfacing the synthesizer to a address/data/control bus (52); address and data buffers (248 , 246) selectively coupleable to the memory; and control logic means (250) for producing control outputs for the address sequencer means (72) and for the data entry means to arbitrate access to the programmable memory and to control data entry into the memory. 26. A synthesizer according to claim 25, characterised in that the memory (70) is organised in data words which are larger than the data width of the data buffer (246). 27. A synthesizer according to claim 26, characterised in that the data words of the memory (70) are 64 bits wide and the data buffer (246) is 16 bits wide; and the control logic means (250) for entering data into the memory includes means for selectively enabling a portion of the memory for entering data thereinto. 28. A synthesizer according to any one of claims 25 to 27, characterised in that the control logic means (250) includes programable array logic (PAL) integrated circuits programmable to generate the control outputs whereby modification of the control outputs is effected by PAL substitution instead of circuit interconnection modifications. 29. A synthesizer according to claim 5, characterised in that the digital outputs are synchronized to the clock pulses of the first clock output (120); and in that means (156) is provided for selectively delaying at least one of the digital outputs with respect to the clock output. 30. A synthesizer according to claim 29, characterised in that the predetermined frequency of the first clock output (120) is about 1 MHZ; and the selective delaying means (156) is adapted to delay said at least one digital output by up to 1 µsec in increments of about 62.5 nanoseconds. 31. A synthesizer according to claim 29 or claim 30, characterised in that the delayed digital output is usable for triggering an analog to digital converter. 32. A function generator for an NMR imaging system, characterised by (a) a plurality of independently operable waveform synthesizers (50), each including a memory (70); address sequencer means (72) for producing a sequence of addresses for the memory; program data stored in the memory; means (74) for sequentially retrieving portions of the data from the memory in accordance with the sequence of addresses, the data retrieved from the memory including an instruction field for controlling the operation of the address sequencer means, an analog waveform field for defining at least one analog waveform output, and a digital output field for producing a plurality of digital outputs; analog waveform synthesizing means for producing an analog waveform from the analog waveform field; and program means for generating said analog waveform fields; (b) a central controller (56) connected to the plurality of waveform synthesizers and including means for loading the memory of each of the plurality of synthesizer with the program data; and (c) a data/address/control bus (52) for interconnecting the central controller and the plurality of waveform synthesizers. 33. A function generator according to claim 32, characterised by interchannel communications bus means (66), for interconnecting the plurality of waveform synthesizers (50) in a manner which allows each of the plurality of waveform synthesizers to signal every other one of the plurality of waveform synthesizers whereby the operation of the plurality of waveform synthesizers can be synchronized. 34. A function generator according to claim 32, characterised in that the interchannel communication bus means is in the form of a plurality of lines, each one of the synthesizers (50) being responsive to sense the activation of a given respective one of the lines and each one of the plurality of waveform synthesizers being adapted to activate others than the line it is responsive to, whereby each of the waveform synthesizers can signal any or all of the others of the waveform synthesizers. 35. A function generator according to claim 33 or claim 34, characterised in that each one of the plurality of waveform synthesizers (50) is carried on a respective printed circuit board; and the bus (66) includes a back plane which is adapted to receive the printed circuit boards whereby a modular, configurable and expandable function generator for an NMR imaging system is provided. 36. A function generator according to any one of claims 32 to 35, characterised in that each one of the plurality of waveform synthesizers (50) comprises system clock generating means (180) for producing a clock signal having first clock pulses (120) of a predetermined frequency, and intermediate clock pulses (124) which can be interposed between the first clock pulses of the predetermined frequency to increase the total number of pulses of the clock signal within a given time period. 37. A function generator according to claim 36, characterised in that the intermediate clock pulses (124) are produced for carrying out background program steps within the synthesizer (50). 38. A function generator according to any one of claims 32 to 37, characterised in that each one of the waveform synthesizers (50) further comprises input means for sensing the activation of at least one input signal and means for synchronizing predefined operations of the waveform synthesizer to the activation of the input signal. 39. A function generator according to any one of claims 32 to 38, characterised in that each one of the waveform synthesizers (50) further comprises a pipeline register (74); and the analog waveform synthesizing means include a digital to analog converter (168) coupled to the pipeline register for producing an intermediate analog output in response to a changing digital to analog converter field from the pipeline register, and a multiplying digital to analog converter (170) for scaling the intermediate analog output and producing the analog waveform. 40. A function generator according to any one of claims 32 to 39, characterised in that the program means of each one of the plurality of waveform synthesizers (50) includes data file means (200) for defining a set of elementary waveform segments, subroutine means (194) for generating at least a DAC field by concatenating at least some of the elementary waveform segments, and program control means for controlling the sequence of access to the data file means and the subroutine means. 41. A function generator according to any one of claims 32 to 40, characterised by a host computer interface unit (58) for allowing the function generator to interface to a data processing computer. 42. A function generator according to any one of claims 32 to 41, characterised by a global memory (54) in the form of a printed circuit board connected to the data/address/control bus (52) to provide a central memory for the central controller (56) and said plurality of waveform synthesizers (50). 43. An NMR imaging system, characterised by magnet means (14) for producing at least one magnetic field adapted to surround at least a portion of a patient (16); a transmitter (20) and a gradient power supply (18) for powering and controlling the magnet means; a receiver (22) for sensing electromagnetic radiation emitted from the patient in response to the magnetic field or fields; a function generator (12) connected to the transmitter and the receiver for producing a plurality of analog waveforms for operating the transmitter and the gradient power supply, the function generator being in accordance with any one of claims 32 to 42; an analog to digital converter (24) for receiving the electromagnetic radiation from the patient and converting the radiation into a digital signal, the converter being controlled to produce the digital output by at least one of the waveform synthesizers; and computer and display means (26,46) for receiving the digital data from the analog to digital converter, analysing the data, composing an image of internal structures of the patient, and displaying the image.

Inventors: BRIGGS, RANDAL L.
Applicants: ADVANCED NMR SYSTEMS, INC.
Application year: 1986
Main classification: G01N24
IPC codes: G01R33