Data signal delay generating apparatus

Abstract: Apparatus is disclosed for introducing a precomp­ ensation delay in the path of a data signal to be written onto a magnetic medium, such as a floppy or hard disk. The apparatus includes a current control­ led oscillator made up of delay elements having current control nodes, and means for controlling the current level being drawn from the current control nodes. The latter means includes three matched voltage controlled current sources having their outputs connected through a current splitter to the current control nodes, and bypass transistors for decoupling two of the voltage controlled current sources in response to a delay selection signal indicating whether the subject data pulse should be precompensated early, nominal or late. A current mirror arrangement with a current transfer ratio adjustable through the choice of two external re­ sistors adjusts the current outputs of two of the voltage controlled current sources, so that the current level drawn from the current control nodes is different depending on which of the voltage controlled current sources is (are) selected. The apparatus also includes a master voltage controlled oscillator, located on the same chip as the above-described apparatus, with characteristics and a control voltage matched to those of the above-described apparatus. If the frequency of the master oscillator is phase locked to a multiple of the bit cell frequency, then the choice of the two external resistors adjusts the precompensation delay period as a continuous percent­ age of the bit cell time.

Description: The invention relates to integrated circuitry for writing data to a magnetic medium, and more particularly to techniques for generating a precompensation delay in the path of the data stream. Data is recorded on magnetic media, such as floppy disks and hard disks, in the form of present or absent flux reversals. These flux reversals have a minimum linear separation which is dependent upon the data rate, the encoding format and the speed with which the medium moves past the write head. The pattern of flux reversals is generated from an incoming data stream by an encoder, which may use any of several standard encoding formats to generate the pattern. Two popular encoding formats are known as FM and MFM, each of which generate an outgoing pulse stream divided into bit cells consisting of a clock pulse and/or a data pulse for each bit of the incoming data stream. As used herein, a pulse stream is merely one type of data stream. In FM encoding, a bit cell always begins with a clock pulse. If the incoming data bit is a 1, a data pulse is also inserted in the middle of the bit cell. If the data bit is 0, no data pulse is inserted. For FM encoding, therefore, a clock pulse and a data pulse can both be present within the bit cell. Since each pulse causes a flux reversal on the disk, the minimum linear separation between flux reversals is one-half the bit cell length. In MFM encoding, like FM encoding, a data pulse is inserted in the middle of the bit cell if and only if the incoming data bit is 1. Unlike FM encoding, however, a clock pulse is inserted at the beginning of a bit cell if and only if both the present and previous incoming data bits are 0. The minimum linear separation between flux reversals for MFM encoding therefore is one full bit cell length. Because of this, MFM-encoded data is usually given twice the bit cell density and data rate as FM-encoded data recorded on the same medium. A double density floppy disk typically operates at a data rate of 500 kbits/sec with MFM-encoded data, and has a bit cell time of 2µS. A hard disk may operate at about 5 Mbits/sec, yielding a bit cell time of 200nS. For higher bit density media, nearby flux changes may interact with each other and cause them to move farther apart. This creates a timing uncertainty which can cause errors when data is read. To overcome this problem, the outgoing data stream may be precompensated before being written. That is, the direction of each shift may be anticipated and the pulse in the outgoing data stream moved in the other direction before being sent to the write head. Typical precompensation periods in present use are 2-20nS for hard disks and 50-150nS for 5-1/4″ floppy disks. In the past, precompensation was typically accomplished by feeding the outgoing pulse stream into a fixed, center-tapped delay line external to the chip which performed the encoding. A data selector was then used to select the signal from either the input, center tap, or output of the delay line, depending on whether the pulse was to be written early, nominal or late, respectively. This technique is described, for example, in Szejnwald, "Simplify Hard-Disk Interfaces With a VLSI Controller," EDN, November 24, 1982, pp. 133-147, at 136-138, with respect to the NEC µPD7261. The technique is disadvantageous, however, because it requires the designer to know in advance exactly what precompensation delay period will be used in terms of an absolute number of nanoseconds. It does not permit easy electronic adjustment of the precompensation delay period. For example, bit shifting is more serious on inner tracks of a disk than on outer tracks because the flux reversals are closer together. The NEC technique does not permit easy adjustment of the delay period to compensate for this as the write head changes tracks on the disk. Nor can the NEC technique be used with constant density recording, which requires the delay period to change dynamically as a function of the bit rate. In Stout, "Winchester Electronic Functions Fit on Four High-Speed Chips," Electronics, June 16, 1982, pp. 117-123, at 122, there is described a National Semiconductor chip which generates a precompensation delay internally, with a period which is externally programmable for 0 to 20nS in 2nS steps. External programmability alleviates some problems with the NEC chip, but the delay period is still specified in terms of an absolute number of nanoseconds which does not change as a function of the bit rate. The National technique also requires many I/O pins to implement and requires the use of an external reference frequency source. The method by which the delay is actually generated is not disclosed. We will therefore describe a technique for generating precompensation delay which is not subject to the above disadvantages. We will also describe apparatus for generating a precompensation delay in the path of a data signal, the delay having a duration which is an adjustable percentage of the bit cell time. We will describe a circuit which can be used to delay a data signal by an adjustable amount. We will describe a circuit which may be used to generate a precompensation delay having a duration which is adjustable through the choice of inexpensive, accurate external components. The present invention provides a delay circuit for receiving a data signal to be written to a magnetic medium and a reference clock signal having a frequency corresponding to a bit cell time of the data signal, the delay circuit comprising a delay generator having a first control input for receiving a delay selection signal, and a data input for receiving the data signal, the delay generator subjecting the data signal to one of a number of available delay periods as selected by the delay selection signal to provide a precompensated data signal for writing to the magnetic medium, the delay circuit being characterised by a phase-locked loop oscillator having an input for receiving the reference clock signal and an output providing a continuous signal being a function of the reference clock signal; and a second control input of the delay generator for receiving the phase-locked loop oscillator output, the available delay periods of the delay generator being variably controlled utilizing the phase-locked loop oscillator output signal, so that each of the available delay periods is a continuous function of the frequency of the reference clock signal. US-A-4 565 976 discloses a phase-locked loop oscillator the control voltage thereof providing a frequency-to-voltage conversion function of a reference signal. The control voltage can be used to trade pulse delays with the reference signal. BRIEF DESCRIPTION OF THE DRAWINGS The invention will be described with respect to specific embodiments thereof, and reference will be made to the drawings, in which: Figure 1 shows a block diagram of a part of an integrated circuit chip incorporating the invention; Figure 2 shows a detail of the Master Loop Oscillator shown in Figure 1; Figure 3 shows a detail of the Precompensation Select Generator shown in Figure 1; and Figures 4A and 4B show a detail of the Variable Delay Generator shown in Figure 1. DETAILED DESCRIPTION In Figure 1 there is shown a block diagram of apparatus which incorporates features of the invention. The apparatus of Figure 1 is included in the Am9582 Disk Data Separator, which further includes other portions not shown, such as logic for reading and decoding data from the disk. Data to be written to either a floppy or hard disk enters the apparatus of Figure 1 along a WT Data line 10 and is fed to an MFM encoder 12. The MFM encoder 12 converts the WT Data Signal into the MFM format, and sends the MFM data along an MFMdata-1 line 16 to a Precompensation Select Generator 18. The Precompensation Select Generator 18 generates a Delay Selection signal 20 which indicates whether the pulse next to emerge from the Precompensation Select Generator 18 along the MFMdata-2 line 22 is to be written early, nominal or late. The Delay Selection Signal 20 consists of three separate signals not shown separately in Figure 1, designated Early , Nominal and Late . The Precompensation Select Generator 18 also has a PCEN input for enabling precompensation. If PCEN is 0, the Delay Selection signal 20 always indicates Nominal delay. MFMdata2 line 22 and Delay Selection line 20 are fed to a Variable Delay Generator 24, which also takes as inputs a voltage signal V c and an indication of whether the apparatus is being operated with a floppy or hard disk drive. The Variable Delay Generator 24 also has connected to it a current transfer ratio adjustment means 25, which is external to the chip, the function of which will be described below. The output of the Variable Delay Generator 24 is the precompensated MFM data signal, which appears along a PMFM Data line 28. The PMFM data line 28 is output to a floppy or hard disk interface (not shown). The apparatus further includes a Bit Rate Oscillator 40, which generates as outputs a Clk clock signal 42 and the previously mentioned V c voltage indication. The Clk signal 42 is essentially a square wave operating at a frequency equal to the bit rate of the WT Data signal on line 10. The Clk signal, in additional to being connected to many clock inputs of many functional blocks not shown, is connected to a clock input of the MFM encoder 12. It is also connected to a frequency doubler 44, which generates a pulse on a Clk2x output 46 for every rising and falling edge of Clk. The Clk2x line 46 is connected to the clock input of Precompensation Select Generator 18. The Bit Rate Oscillator 40 consists of a Master Loop Oscillator 50, to be described further below, which generates a MFMHClk square wave signal and the V c signal mentioned previously. The V c signal is an analog indication of the frequency of operation of the Master Loop Oscillator 50. As will be further described below, MFMHClk is phase locked to a reference clock signal 52, which may be generated by a crystal controlled oscillator or another reference oscillator (not shown). Components of the reference oscillator are located off-chip, so that the frequency of the reference clock signal 52 (and thereby the MFMHClk signal and the frequency of chip operation) may be precisely controlled as desired. The MFMHClk signal is connected to the input of a divide-by-16 counter 54, which outputs an MFMFClk signal, essentially a square wave. The MFMHClk signal operates on the order of 4 to 16 MHz, and corresponds to the bit rate useful for recording MFM-encoded data on a hard disk. The MFMFClk signal operates at about 250 to 1,000 kHz and corresponds to the bit rate useful for recording MFM-encoded data on a floppy disk. The MFMHClk, and MFMFClk signals are connected to the two inputs of a data selector 58, which selects one of the two square wave signals in response to a Floppy/Hard signal for output onto the Clk line. As can be seen, the apparatus in Figure 1 may be used for writing data to either a floppy disk or a hard disk in MFM format. In operation, the selection is made externally and generally remains constant for at least the time period required to write a string of data to the disk. The Bit Rate Oscillator 40 generates the system Clk signal in response to both that selection and the previously mentioned reference oscillator. As data enters the circuit of Figure 1 on the WT Data line 10, it is encoded into the MFM data format at the rate determined by Clk. At the same time, the MFM-encoded output of MFM encoder 12 is fed to the Precompensation Select Generator 18, which generates the Delay Selection signal 20 to indicate whether precompensation for the pulse next to emerge from the Precompensation Select Generator 18 should be written Early, Nominal or Late. Each bit cell in MFM-encoded data can have a pulse at either the beginning or middle of the bit cell time, or both, and each such pulse position must be precompensated separately. The Precompensation Select Generator 18 therefore treats the incoming pulse stream as a series of independent data positions occurring at twice the frequency of the bit cell time as indicated by Clk. As will be further described below, the pulse stream emerging from Precompensation Select Generator 18 along the MFMdata-2 line 22 is delayed from the incoming pulse stream by six Clk2x periods (three Clk periods) and the Delay Selection signal 20 emerges one Clk2x period earlier. If PCEN is 0, the Delay Selection signal 20 always indicates nominal delay. The MFMdata-2 signal 22 and the Delay Selection signal 20 are fed to the Variable Delay Generator 24. The Variable Delay Generator 24 inserts a delay in the path of MFMdata-2 signal 22 which is equal to zero times a unit delay period for Early precompensation, one unit delay period for Nominal precompensation, or two unit delay periods for Late precompensation. A basic additional delay of half the bit cell time is also inserted by the electronics in Variable Delay Generator 24 regardless of the state of Delay Selection signal 20. This basic delay does not affect device operation because the position of the flux reversals on the disk is relevant only in relation to each other, not in relation to some absolute position on the disk. The same is true with respect to the delay of three Clk periods inserted by Precompensation Select Generator 18 as described above. As will be described below, the unit delay period is externally adjustable according to the ratio of two external resistors from 1% to 20% of the bit cell time with an accuracy of ±5% of the chosen value or 1nS, whichever is greater using 1% resistors. The minimum delay period that can be set is 2nS. Once this percentage is set by the choice of the external resistors, it remains a constant percentage independent of changes in the bit cell time caused by either a change in the reference clock frequency or the choice of floppy or hard disk drive. This permits the data rate to be changed in real time, and the precompensation periods changed correspondingly, merely by changing the frequency of the reference clock signal. It will be understood that, instead of generating only early, nominal and late delay selection signals, the Precompensation Select Generator 18 and the Variable Delay Generator 24 may be adapted to handle other schemes of precompensation such as early, half-early, nominal, half-late and late. It will also be understood that the Variable Delay Generator 24 may, instead of generating 0, 1 or 2 unit delay periods in the path of the pulse stream, generate -1, 0 or 1 delay period. That is, "early" precompensation may be generated by advancing the emergence of a pulse from the output of Variable Delay Generator 24 over the basic delay normally inserted by the electronics in the Variable Delay Generator 24. Other variations will be apparent. The precompensated signal emerging from the Variable Delay Generator 24 is fed to the disk drive interface. The master loop oscillator 50 in Figure 1 is shown in greater detail in Figure 2. It is essentially a phase locked loop, comprising a current controlled oscillator (CCO) 102 having an output connected to the clock input of a divide-by-four counter 104, the output of which is connected to one input of a phase comparator 106, the other input of the phase comparator 106 being connected to the reference clock input, the phase comparator 106 having pump-up and pump-down outputs connected through diodes 108 and 110, respectively, to a first end of a resistor 112, the second end of resistor 112 being connected through a filter capacitor 116 to ground, the second end of resistor 112 being further connected through a resistor 114 to the voltage control input of a voltage controlled current source 118, the current output of which is connected to the current control node 120 of the CCO 102. The MFMHClk signal shown in Figure 1 is taken from the output of the divide-by-four counter 104, and the V c signal is taken from the junction between resistor 112 and capacitor 116. The CCO 102 consists of three inverters 130, 132 and 134 connected in sequence, with the output of inverter 134 looping around to connect to the input of inverter 130. The output of inverter 130 is further connected through a capacitor 136 to Vcc. The output of inverter 132 is connected through a capacitor 138 to Vcc, and the output of inverter 134 is further connected through a capacitor 140 to Vcc. The output of inverter 130 is further connected to the collector of a transistor 146; the output of inverter 132 is further connected to the collector of a transistor 148 and the output of inverter is 134 is further connected to the collector of a transistor 150. The bases of transistors 146, 148 and 150 are all connected to a fixed Vbb voltage. The emitters of transistors 146, 148 and 150 are all connected to the current control node 120. In this configuration, the transistors 146, 148 and 150 act as a 3-way current splitter such that the current drawn through current control node 120 is drawn equally from the outputs of inverters 130, 132 and 134. The output of CCO 102 is taken from a second inverting output of inverter 132. The voltage controlled current source 118 consists of a transistor 160 and a resistor 162. The base of transistor 160 is the voltagte control input of voltage controlled current source 118, and the collector of transistor 160 is the current output. The emitter of transistor 160 is connected to one side of the resistor 162, the other side of which is connected to ground. The operation of CCO 102 is in accordance with U.S. Patent No. 4,565,976 to David L. Campbell and assigned to the assignee of the present invention. CCO 102 includes three separate delay elements, the first one consisting of inverter 130 and capacitor 136, the second consisting of inverter 132 and capacitor 138 and the third consisting of inverter 134 and 140. As explained in the Campbell patent, the junction between the inverter output and the capacitor of each such delay element in effect constitutes a control input to the delay element, since the current level which is drawn from it, for example through a respective current splitting transistor 146, 148 or 150, determines the delay inserted by the delay element. CCO 102 shows three delay elements, but any number of delay elements may be used as long as they generate an odd number of polarity reversals. The voltage output V c of master loop oscillator circuit 50 is essentially the same voltage which forms the voltage input to voltage controlled current source 118, since the resistor 114 is very small. Resistor 114 is present merely to reduce the sensitivity of the CCO 102 to noise on capacitor 116. Thus, if V c is further connected to the voltage control input of another voltage controlled current source elsewhere on the chip, the other voltage controlled current source will draw almost exactly the same current through its current output as voltage controlled current source 118 draws through node 120, if the transistors and resistors of the two current sources are matched. Moreover, if the current output of the other voltage controlled current source is connected to the current control node of another CCO having components matched to those in CCO 102, then the other CCO will oscillate at the same frequency as the CCO 102. V c therefore acts as an analog voltage indication of the frequency at which CCO 102 oscillates. The Precompensation Select Generator 18 generates the Delay Selection signal 20 in accordance with the method described in the data sheet for the Advanced Micro Devices Am9581 Floppy/Hard Disk Data Separator integrated circuit, printed in 1985 AMD MOS Microprocessors and Peripherals Data Book, p. 2-561. The Am9581 data sheet is incorporated herein by reference. Other literature which describes aspects of the Am9581 or its replacement, Am9582, are U.S. Patent No. 4,608,543 to Adams and U.S. Patent No. 4,628,461 to Adams and Ronald, both of which are incorporated herein by reference. As shown in Figure 3, the MFMdata-1 signal on line 16 is connected to the serial input of a 7-bit shift register 70. The 7-bit shift register 70 shifts the pulse information from MFMdata-1 through seven pulse positions, numbered p₀-p₆, in response to the Clk2x signal 46. In the shift register 70, the presence of a pulse on MFMdata-1 line 16 is represented by a logic 1, and the absence of a pulse is represented by a logic 0. The seven parallel outputs of shift register 70 are connected to inputs of a combinational logic element 72. The PCEN signal also forms an input to combinational logic element 72. Combinational logic element 72 generates two outputs, D₁ and D₂, according to the formulas: D₁ = (p₀ p₆ + p₁) p₅ PCEN D₂ = ( p₀ p₆ + p₅) p₁ PCEN The outputs D₁ and D₂ are connected to the D inputs of flip flops 74 and 76, respectively. The clock inputs of D flip flops 74 and 76 are connected to the output of an AND gate 78, the inputs of which are connected to the Clk2x signal 46 and the p₃ output of shift register 70. The Q outputs of D flip flops 74 and 76 constitute the Late and Early components of Delay Selection signal 20. The Q outputs of D flip flops 74 and 76 are also NANDed by NAND gate 80 to form the Nom component of Delay Selection signal 20. The MFMdata-2 signal 22 is taken from the p₅ output of shift register 70. The Precompensation Select Generator 18 operates by sequentially loading pulse information from the MFMdata-1 line 16 into the shift register 70 in response to Clk2x. The combinational logic element 72 generates the signals D₁ and D₂, which represent the precompensation appropriate for the information in the center pulse position in the shift register 70, p₃. If precompensation is disabled (PCEN=0) both D₁ and D₂ are forced to 0. If p₃ is 1, D₁ and D₂ are clocked into D flip flops 74 and 76, respectively, on the rising edge of Clk2x. Delay selection signal 20 therefore settles to its appropriate state when the pulse position to which it refers appears at the p₄ output of shift register 70. Since MFMdata-2 is taken from the p₅ output of shift register 70, the state of Delay Selection signal 20 will always refer to the MFM pulse which will appear on MFMdata-2 line 22 on the immediately subsequent Clk2x cycle. In Figures 4A and 4B there is shown a Variable Delay Generator 24 in accordance with the invention and a unit delay period adjustment means 25 which may be used therewith. Figure 4A adjoins Figure 4B from the top, and the nodes A, B and C in Figure 4A are connected to the nodes A, B and C, respectively, in Figure 4B. All transistors referred to in this description are NPN unless otherwise specified. Referring to Figure 4A, the Variable Delay Generator 24 consists of a D flip-flop 150, having a D input connected to Vcc and a clock input connected to the MFMdata-2 signal 22. The Q and Q outputs of D flip flop 150 are connected to a differential trigger input of a CCO 152. The Q output of flip flop 150 is also connected to a first input of a three-input NOR gate 154 and to the Clr inputs of a divide-by-two counter 156 and a divide-by-sixteen counter 158. The Q output of divide-by-two counter 156 is connected to the increment enable input of divide-by-sixteen counter 158 and also to a first input of a data selector 160. The second input of data selector 160 is connected to the Q output of divide-by-sixteen counter 158, and the inverting output of data selector 160 is connected to a second input of NOR gate 154. The CCO 152 includes three delay elements but, as previously described with respect to CCO 102 in the master loop oscillator 50, any number of delay elements may be used as long as they result in an odd number of polarity reversals. As shown in Figure 4A, the CCO 152 consists of a NAND gate 170, having a differential input connected to the trigger input of the CCO 152 and an output connected to the input of an inverter 180. The output of inverter 180 is connected to the input of an inverter 190, the output of which is connected around to a second input of the NAND gate 170. The output of NAND gate 170 is further connected through a capacitor 172 to Vcc and to the collectors of transistors 174, 176 and 178 (see Figure 4B). The output of invertor 180 is connected through a capacitor 182 to Vcc, and to the collectors of transistors 184, 186 and 188. The output of inverter 190 is further connected through a capacitor 192 to Vcc and to the collectors of transistors 194, 196 and 198. The bases of transistor 174, 176, 178, 184, 186, 188, 194, 196 and 198 are all connected to Vbb such that these nine transistors act as three groups of three current splitters each. The emitters of transistors 174, 184 and 194 are all connected together and connected to a current control node 204. The emitters of transistors 176, 186 and 196 are similarly connected together and connected to a current control node 206. The emitters of transistors 178, 188 and 198 are also connected together and connected to a current control node 208. The current control nodes 204, 206 and 208 are connected to the current outputs of voltage controlled current sources 214, 216 and 218, respectively, the voltage control nodes of which are all connected to V c . The current control nodes 204, 206 and 208 are further connected to the emitters of deactivating or bypass transistors 224, 226 and 228, respectively. The bases of deactivating transistors 224, 226 and 228 are connected to the Nom , Late and Early components of the Delay Selection signal 20, respectively, and the collectors are all connected together and to Vcc. The Variable Delay Generator 24 shown in Figures 4A and 4B further includes two current mirrors 240 and 260. The current mirror 240 has an input branch consisting of a voltage controlled current source 242, the current output of which is connected to the collector of a PNP transistor 244, the emitter of which is connected to a terminal 245 of the external unit delay period adjustment means 25. The current mirror 240 further includes an output branch consisting of PNP transistor 248 having its base connected to the base of transistor 244, and having its emitter connected to a terminal 249 of the external unit delay period adjustment means 25. The collector of transistor 248 forms the current output of current mirror 240. As will be explained below, the external unit delay period adjustment means 25 may have many configurations. A typical configuration is that shown in Figure 4B, in which the terminal 245 is connected through a resistor 246 to Vcc and the terminal 249 is connected through a resistor 250 to Vcc. The current mirror 260 includes an input branch consisting of a voltage controlled current source 262, the current output of which is connected to the collector of a PNP transistor 264, the emitter of which is connected through a resistor 266 to Vcc. The current mirror 260 further includes two output branches, the first consisting of a PNP transistor 268 having its base connected to the base of transistor 264 and its emitter connected through a resistor 270 to Vcc. The second branch consists of a transistor 272 having its base connected to the bases of transistors 264 and 268 and an emitter connected through a resistor 274 to Vcc. The collectors of transistors 268 and 272 form the first and second output branches, respectively, of current mirror 260. The output of current mirror 240 is connected to the input branch of current mirror 260 at the junction between the voltage controlled current source 262 and the collector of transistor 264. The first and second outputs of current mirror 260 are connected to current control nodes 204 and 206, respectively. Resistors 246 and 250 in the unit delay period adjustment means 25 are located off-chip and have values which may be chosen by the user. Together they form a means for adjusting the current transfer ratio of current mirror 240, and it will be understood that a more sophisticated, possible dynamically alterable, circuit could be used in place of the two resistors. The voltage controlled current sources 242 and 262 each consist of an NPN transistor having its emitter connected through a resistor to ground. The base of each such transistor forms the voltage control input of the voltage controlled current sources 242 and 262 and are both connected to V c . The collectors of the transistors form the current outputs of the respective voltage controlled current sources 242 and 262 and are connected as previously described. Referring again to Figure 4A, the inverter 180 has a second inverting output which is connected through an inverter 280 to the clock inputs of divide-by-two counter 156 and divide-by-sixteen counter 158. Inverter 190 has a second inverting output which is connected through an inverter 290 to the third input of NOR gate 154. The output of NOR gate 154 is connected back to the Clr input of D flip flop 150 and also to the clock input of a D flip flop 292. The D input of the D flip flop 292 is connected to Vcc, and the Clr input is connected through a fixed delay 294 to the Clk2x signal. The Q output of D flip flop 292 forms the PMFM Data output 28 of the Variable Delay Generator 24. The operation of Variable Delay Generator 24 as shown in Figures 4A and 4B will now be described. When the circuit is at rest, the D flip flop 150 has been cleared such that its Q output of 0 and the Q output is 1. The Q output of D flip flop 150 is connected to the Clr inputs of divide-by-two counter 156 and divide-by-sixteen counter 158, thereby forcing their Q outputs to 0 regardless of any activity at their clock inputs. Since both inputs to the data selector 160 are 0, its inverting output is 1 regardless of the state of the Floppy/Hard signal. This forces the output of NOR gate 154 to 0 regardless of the states of the other two inputs to the NOR gate. The outputs of D flip flop 150 are connected to the trigger input of CCO 152, which is a differential input to NAND gate 170. Logically, the differential input to NAND gate 170 operates as an ordinary input connected to the Q output of D flip flop 150. Since the Q output of D flip flop 150 is 0, the output of NAND gate 170 is forced to 1, thereby forcing the outputs of inverter 180 to 0 and the outputs of inverter 190 to 1. The 0-level at the second output of inverter 180 is inverted by inverter 280, causing the clock inputs to divide-by-two counter 156 and divide-by-sixteen counter 158 remain at a 1 level. It can be seen that the output of NOR gate 154 will remain 0 until both the Q output of D flip flop 150 and the inverting output of data selector 160 are brought to 0. Further, if the output of inverter 290 is brought to a 1-level before the other two inputs of NOR gate 154 are brought to 0, the outputs of NOR gate 154 will remain 0 until the output of inverter 290 returns to 0 as well. The clock input of D flip flop 292 therefore remains at a 0 level until this happens. Since the Clk2x signal (as delayed by fixed delay 294) is repeatedly clearing D flip flop 292, the Q output of D flip flop 292, which consistutes the PMFM Data output of the Variable Delay Generator 24, is 0. When a pulse arrives on the MFMdata-2 line, the D flip flop 150 loads in a 1. The Q output goes to 0, thereby ending the continuous clear of divide-by-two counter 156 and divide-by-sixteen counter 158. The first input of NOR gate 154 goes to 0, but the output remains at a 0-level because the second input of NOR gate 154 is still high. At the same time, the Q output of D flip flop 150 goes to 1. Since the second input of NAND gate 170 is also at a 1 level, the output of NAND gate 170 goes to 0. This change the propagates through inverters 180 and 190 at a rate determined by the current level being drawn from the outputs of NAND gate 170, inverter 180 and inverter 190 through the current control nodes 204, 206 and 208, respectively. The operation of CCO 152 is further explained in the aforementioned Campbell patent. The output of inverter 190 eventually changes from 1 to 0, and if the Q output of D flip flop 150 is still set to 1, recirculates and causes the output of NAND gate 170 to return to its 1 level. The outputs of the gates 170, 180 and 190 continue to oscillate in this manner, and at the frequency determined by the current being drawn through the current control nodes 204, 206 and 208, until the Q output of D flip flop 150 returns to 0. When the effect of the initial trigger edge from the Q output of D flip flop 150 reaches the second inverting output of inverter 180, causing that output to rise to a 1 level, the clock inputs of divide-by-two counter 156 and divide-by-sixteen counter 158 drop from a 1 to a 0 level. This has no effect on the counters since they are rising edge triggered. When the effect of the initial trigger reaches the second output of inverter 190, bringing it to a 0 level, inverter 290 causes the third input of NOR gate 154 to go high. As previously mentioned, this has no effect on the output of NOR gate 154, since the inverting output of data selector 160 is still high. The effect of the initial trigger then propagates around to NAND gate 170 and eventually brings the second output of inverter 180 back to its 0 level. This causes a rising edge at the clock inputs of divide-by-two counter 156 and divide-by-sixteen counter 158. The increment enable input of divide-by-sixteen counter 158 is from 0 from the Q output of divide-by-two counter 156 at this time, so that divide-by-sixteen counter 156 does not increment. Divide-by-two counter 156 increments with every rising edge of the clock, so that its Q output is now changed to a 1. If the Floppy/Hard signal is set to Hard, indicating that the chip is being used at the higher rates associated with hard disks, then the data selector 160 passes the inverse of that 1 level, i.e., a 0, to the second input of NOR gate 154. Note that the output of NOR gate 154 is still not immediately affected by this transition, because the third input of NOR gate 154, coming from the output of inverter 290, is still high. However, once the effect of the initial trigger in the CCO 152 reaches the second output of inverter 190, the output of inverter 290 returns to its initial 0 level making all three inputs to NOR gate 154 low and forcing its output high. It can be seen that the inverting output of data selector 160 acts as a signal which enables or disables the effect which a falling edge at the output of inverter 290 has on the output of NOR gate 154. The effect of the initial trigger of the CCO 152 must therefore propagate through all three gates, 170, 180 and 190, twice before the rising edge of the pulse on the MFMdata-2 line 22 reaches the output of NOR gate 154. Similarly, it can be seen that if the Floppy/Hard signal is set to Floppy, indicating that the chip is operating at the lower data rates of floppy disks, the rising edge of the pulse on MFMdata-2 line 22 does not reach the output of NOR gate 154 until the trigger of CCO 152 has propagated through gates 170,180 and 190 at total of 16 times. When the output of NOR gate 154 finally goes high, D flip flop 150 is cleared, forcing its Q output to 1. This then brings the output of NOR gate 154 back to 0, ending the clear operation of D flip flop 150 and readying it for another pulse on MFMdata-2 line 22. The return of the Q output of D flip flop 150 to the high level also stops the oscillation of CCO 152 and clears divide-by-two counter 156 and divide-by-sixteen counter 158. The quick pulse exhibited by the output of NOR gate 154 clocks a 1 level into the Q output of D flip flop 292, a level which is cleared after a fixed delay period following the next rising edge in Clk2x. It can be seen that each pulse entering the Variable Delay Generator 24 on MFMdata-2 line 22 is regenerated on the PMFM Data line 28 after a delay period which is dependent on the oscillation frequency of current controlled oscillator 152. The oscillation frequency of CCO 152 is in turn dependent on the current being drawn off the outputs of NAND gate 170, inverter 180 and inverter 190 by the transistor arrangement shown in Figure 4B. This will be explained by first referring to the subcircuit 318 consisting of transistors 228, 178, 188 and 198, current control node 208 and voltage controlled current source 218. As has been previously mentioned the transistors 178, 188 and 198 are biased by Vbb to act as current splitters. This permits the transition time for the outputs of gates 170, 180 and 190 to be dependent on the current level being drawn off them, but isolated from each other. If deactivation transistor 228 is not conducting, then all the current drawn through node 208 by voltage controlled current source 218 is drawn through the current splitters 178, 188 and 198 off the outputs of gates 170, 180 and 190. Assuming none of the other transistors shown in Figure 4B are drawing current off of such outputs, the voltage level at the voltage control input of voltage controlled current source 218 is fully determinative of the frequency of operation of CCO 152. It can be seen that the oscillator loop itself and the current splitter transistors 178, 188 and 198, as well as the voltage controlled current source 218 are arranged in the same way as the current controlled oscillator 102 and the voltage controlled current source 118 of the master loop oscillator 50 as shown in Figure 2. All corresponding components are in fact matched to each other, a feature which is made possible by the fact that they are all located on the same chip. Since the voltage control inputs of both the voltage controlled current sources 118 and 218 are connected to the same voltage level V c , the CCO 152 will oscillate at substantially the same frequency as CCO 102. Referring to the divide-by-four counter 104 in Figure 2 and the divide-by-sixteen counter 54 in Figure 1, it can be seen that the period of oscillation of these CCO's is 1/4 the bit cell time in hard disk mode and 1/32 the bit cell time in floppy mode. But since the trigger edge propagates through the oscillator loop in CCO 152 twice in hard disk mode and sixteen times in floppy mode, the pulse entering the Variable Delay Generator 24 on MFMdata-2 line 22 is regenerated on PMFM Data line 28 consistently at about half the bit cell time later. Note that deactivation transistor 228 is not conducting when the Early signal is in its low (active) state. When Early is high, deactivation transistor 228 conducts and the voltage controlled current source 218 draws through it rather than through the current splitter transistors 178, 188 and 198. The transistor 228 thus serves to effectively deactivate current control node 208 as the control node for CCO 152 when the Early signal is inactive. The subcircuit 316, constituting deactivation transistor 226, diode transistors 176, 186 and 196, current control node 206 and voltage controlled current source 216 operates similarly to the subcircuit 318. Similarly, subcircuit 314, consisting of deactivation transistor 224, diode transistors 174, 184 and 194, current control node 204 and voltage controlled current source 214, also operates in the same way as the subcircuits 318 and 316. However, the current control nodes 206 and 204 have further connected to them the second and first output branches, respectively, of current mirror 260. These output branches provide additional paths for the current which is drawn by the voltage controlled current sources 216 and 214 to bypass the diode transistors. As will be seen, the second current output branch of current mirror 260 provides to current control node 206 a controlled fraction, on the order of 4% to 80% of the current being drawn through that node by voltage controlled current source 216. Similarly, the first output branch of current mirror 260 provides to current control node 204 a different controlled fraction (on the order of 2% to 40%) of the current being drawn through the control node by voltage controlled current source 214. Thus, by activating one of the Delay Selection signals Early , Nom or Late , or combinations thereof, a different level of current draw from the outputs of gates 170, 180 and 190 may be selected. The different levels of current draw cause the CCO 152 to operate at different frequencies, thereby resulting in a selectable delay period between the time that an MFMdata-2 pulse arrives at the input to the Variable Delay Generator 24 and the time it is regenerated at the PMFM Data output 28. Moreover, since the current levels on the first and second output branches of current mirror 260 are analog signals, each of the selectable these delay periods may be adjusted by a continuous amount. The current levels on the first and second outputs of current mirror 260 are given by, respectively, I₄ = (I₁-I₂)(R₂₆₆/R₂₇₀) I₆ = (I₁-I₂)(R₂₆₆/R₂₇₄), where I₁ is the current drawn by voltage controlled current source 262 and I₂ is the current output of current mirror 240. R₂₇₀ is set equal to R₂₆₆ and R₂₇₄ is set to two-thirds of R₂₆₆, thereby fixing the current level I₆ injected into node 206 at 1.5 times the current level I₄ injected into node 204. The figure of 1.5 was chosen to compensate for nonlinearities in the current-to-time delay relationship of CCO 152. This guarantees that, if the Nominal precompensation delay period is considered to be one unit delay greater than the Early delay period, then the Late precompensation delay period will be two unit delays greater than the Early delay period. It can be seen that additional output branches may be added to current mirror 260 and connected to other current control nodes of the CCO 152 to provide other delay period selection choices, and that various current transfer ratios to the output branches may be chosen to compensate for various nonlinearities in the system. The current output I₂ of current mirror 240 is a function of the external resistors in the unit delay period adjustment means 25, as follows: I₂ = I₁(R₂₄₆/R₂₅₀). I₁ in this formula is the same as I₁ in the formulas for current mirror 260 because the components in the voltage controlled current source 242 are matched to the corresponding components in voltage controlled current source 262, and because the voltage control node of each is connected to V c . Substituting for I₂ in the equations for current mirror 260, it can be seen that I₄ = I₁(1 - R₂₄₆/R₂₅₀) I₆ = (1.5)I₁(1 - R₂₄₆/R₂₅₀). Since the components in voltage controlled current sources 214, 216 and 218 are all matched to those in voltage controlled current sources 242 and 262 (and 118 as well), the current levels they draw from their respective current control nodes 204, 206 and 208 are all equal to I₁. Thus, the current which passes from CCO 152 to node 204 when node 204 is activated by transistor 224 is I Nom = I₁(R₂₄₆/R₂₅₀). Similarly, the current which passes from CCO 152 to node 206 when node 206 is activated by transistor 226 is I Late = (1.5)I₁(R₂₄₆/R₂₅₀). No additional current is being injected into node 208, so the current which passes from CCO 152 to node 208 when node 208 is activated by transistor 228 is I Early = I₁. Thus it can be seen that not only can 0, 1 or 2 unit delay periods (beyond the basic delay period caused by I₁) be selected, but the unit delay period may itself be adjusted continuously through the choice of the external resistors R₂₄₆ and R₂₅₀. Moreover, the choice of these resistors sets the unit delay period as a function of the bit cell time, not some absolute time period. This is true because I Early , I Nom and I Late are all functions of I₁. I₁ is the same current level which is drawn from CCO 102 through curent control node 120 in the bit rate oscillator 50 (see Figure 2), and since the components in CCO 102 are matched to the corresponding components in CCO 152, any change in the period of oscillation of bit rate oscillator 50 will cause a corresponding change in the basic time delay which I₁ causes in CCO 152. Current mirror 260 is not essential in the circuit of Figure 4B; current mirror 240 may instead be given a second output branch and the two output branches connected directly to current control nodes 204 and 206. The inclusion of current mirror 260 does, however, provide two advantages. First, a second output branch in current mirror 240 might necessitate the use of an additional external resistor in the current transfer ratio adjustment means 25. This would be a detriment since it is desirable to minimize the number of external components needed to operate the chip. Current mirror 260 provides one method of creating the second output branch while avoiding the additional external resistor. Second, the desirable unit precompensation delay periods fall into the range of about 1% to 20% of the bit cell time. Since the basic delay period caused by I₁ is half the bit cell time (as explained above), it can be seen that the desired range for the ratio I₂/I₁ would be 2% to 40% if the output branch of current mirror 240 was connected directly to a current control node such as 204. This would cause inaccuracies in the operation of the current mirror because the accuracy of this type of current mirror depends on the approximation that V BE244 ≈ V BE248 . This approximation would no longer hold. The inclusion of current mirror 260 alleviates this problem since the desired range for I₂/I₁ becomes 60% to 98%, percentages which do not seriously degrade the accuracy of current mirror 240. The invention has been described with respect to particular embodiments thereof, and numerous variations will be apparent to the person of ordinary skill. For example, the current injected into control node 204 or 206 (or into the terminal 249 in current mirror 240) may be generated by methods other than that described herein, such as by a dynamically variable current source. As another example, other ways may be used to couple the adjusted or unadjusted current outputs of voltage controlled current sources 214, 216 and/or 218 to the control inputs of the delay elements in CCO 152. As yet another example, though the transistors used in the above description are bipolar, another circuit may be devised using MOS transistors or other types of switches. These and many other modifications and improvements are within the scope of the invention.

Claims: A delay circuit for receiving a data signal to be written to a magnetic medium and a reference clock signal (52) having a frequency corresponding to a bit cell time of the data signal, the delay circuit comprising a delay generator (24) having a first control input (20) for receiving a delay selection signal (EARLY, LATE, NOM), and a data input for receiving the data signal, the delay generator (24) subjecting the data signal to one of a number of available delay periods as selected by the delay selection signal (EARLY, LATE, NOM) to provide a precompensated data signal for writing to the magnetic medium, the delay circuit being characterised by; a phase-locked loop oscillator (50) having an input for receiving the reference clock signal (52) and an output providing a continuous signal (Vc) being a function of the reference clock signal; and a second control input (26) of the delay generator for receiving the phase-locked loop oscillator output (Vc), the available delay periods of the delay generator (24) being variably controlled utilizing the phase-locked loop oscillator output signal (Vc), so that each of the available delay periods is a continuous function of the frequency of the reference clock signal (52). The delay circuit of claim 1 wherein the delay generator (24) is characterised by: a delay element (190,192) having a data input coupled to receive the data signal and a current control input (C); first and second current sources (214,216), each having a voltage control input for receiving the phase-locked loop oscillator output signal (Vc) and a current output (204,206) for supplying current to cause the controlled delay element (190,192) to delay the data signal by a respective one of the available delay periods; and a current source coupling means (194,224,196,226) for coupling the current output (204.206) of the first or the second current sources (214,216) to the current control input (C) of the delay element (190,192) as selected by the delay selection signal (EARLY, LATE,NOM). The delay circuit of claim 2 wherein the current source coupling means (194,224,196,226) is characterised by: a first transistor (194) connected between the current control input (C) of the delay element (192,194) and the current output (204) of the first current source (214); a second transistor (196) connected between the current control input (C) of the delay element (192,194) and the current output (206) of the second current source (216); a first deactivation switch (224) having a current path connected between a power supply (Vcc) and the current output (204) of the first current source (214) and a control terminal coupled to receive the delay selection signal (EARLY, LATE, NOM) such as to open or close in response to the delay selection signal (EARLY, LATE, NOM) a route for substantially all current flow generated by the first current source (214) to bypass the current control input (C) of the delay element (190,192); a second deactivation switch (226) having a current path connected between a power supply (Vcc) and the current output (206) of the second current source (216) and a control terminal coupled to receive the delay selection signal (EARLY, LATE, NOM) such as to open or close in response to the delay selection signal (EARLY, LATE, NOM) a route for substantially all the current flow generated by the second current source (216) to bypass the current control input (C) of the delay element (190,192). The delay circuit of claim 2, wherein the variable delay generator is further characterised by: current level adjusting means (25,240,260) for adjusting the current outputs (204,206) of the first and second current sources (214,216) to control the available delay periods. The delay circuit of claim 4, wherein the current level adjusting means (25,240,260) includes a first current mirror (260) characterised by: a first current mirror current source (262) with a current output (I₁) and with a voltage control input coupled to the phase-locked loop oscillator output; a first transistor (264) having a current path coupled between a power supply (Vcc) and the current output (I₁) of the first current mirror current source (262) and a control input; a second transistor (268) having a current path coupled between the power supply (Vcc) and the current output (204) of the first current source (214) and a control input coupled to the control input of the first transistor; and a third transistor (272) having a current path coupled between the power supply (Vcc) and the current output (206) of the second current source (216) and a control input coupled to the control input of the first transistor. The delay circuit of claim 5 wherein the first current mirror (260) is further characterised by: first, second and third resistive means (R₂₆₆,R₂₇₀,R₂₇₄) each coupled between the power supply (Vcc) and a respective one of the first, second and third transistors (264,268,272), the first, second and third resistive means having values set to control the available delay periods such that the available delay period caused by the first current source (214) is proportional by a constant of proportionality to the available delay period caused by the second current source (216). The delay circuit of claim 5 wherein the current level adjusting means (25,240,260) further includes a second current mirror (240) characterised by: a second current mirror current source (242) with a current output and with a voltage control input coupled to the phase-locked loop oscillator output; a fourth transistor (244) having a current path coupled between a power supply (Vcc) and the current output of the second current mirror current source (262) and a control input; and a fifth transistor (248) having a current path coupled between the power supply (Vcc) and the current output (I₁) of the first current mirror current source (262) and a control input coupled to the control input of the fourth transistor (244). The delay circuit of claim 7 wherein the second current mirror (240) is further characterised by: first and second resistive means (25,R₂₄₆,R₂₅₀) each coupled between the power supply (Vcc) and the respective one of the first and second transistors (244,248), the first and second resistive means having values set to control the length of the available delay periods caused by both the first and second current sources (214,216). The delay circuit of claim 8, wherein the first and second resistive means (25,R₂₄₆,R₂₅₀) are dynamically alterable. The delay circuit of claim 8, wherein the first and second resistive means (25,R₂₄₆,R₂₅₀) are provided external to a chip while remaining components of the delay circuit are provided on the chip. The delay circuit of claim 4 wherein the current level adjusting means (25,240,260) is adjustable by a portion of the current level adjusting means (25,R₂₄₆,R₂₅₀) provided external to a single chip. while remaining components of the delay circuit are provided on a single chip. A delay circuit of claim 7 wherein the phase-locked loop oscillator is characterised by: a frequency to voltage converter (106,108,110) for generating the phase-locked loop oscillator output signal (Vc); a phase-locked loop oscillator current source (118) having a voltage control input coupled to the phase-locked loop oscillator output of the frequency to voltage converter (106,108,110) and having a current output, the phase-locked oscillator current source (118), first and second current sources (214,216) of the delay generator, and first and second current mirror current sources (262,242) having components which substantially match; and a current controlled oscillator (102) having a current control input (120) connected to the current output of the phase-locked loop oscillator current source (118) and an oscillator current controlled delay element (134,140) having components substantially matching components of the delay element (190,192) of the delay generator (24) so that the current controlled oscillator (102) will oscillate at substantially the same frequency as an oscillator containing the delay element (190,192) of the delay generator (24). The delay circuit of claim 2 further characterised by: a divider (104) having an input receiving the reference clock signal and an output, the divider (104) dividing the reference clock signal (52) by a fixed amount to provide a clock signal (CALK) at its output; a multiplier (44) having an input connected to the divider output and an output, the multiplier (44) multiplying the clock signal (CLK) by a fixed amount to provide a multiplied clock signal (CLK 2X) at its output; an encoder (12) having a data input receiving the data signal (WT DATA), a control input connected to the divider (104) output, and an output, the encoder (12) multiplexing the data signal (WT DATA) with the clock signal (CLK) to provide a first multiplexed data signal (MFM DATA 1) at its output; and a precompensation select generator (18) having a data input connected to the encoder output, a control input connected to the multiplier output and a first and second output, a data output and a control output, the precompensation select generator (18) multiplexing the first multiplexed data (MFM DATA 1) with the multiplied clock signal (CLX 2X) to produce a second multiplexed data (MFM DATA 2), at its data output and providing the delay selection signal (EARLY, LATE, NOM) at its control output, wherein the variable delay generator (24) further comprises: a gated ring oscillator (170,172,180,182,190,192) including the delay element (190,192) along with additional delay elements, the data input of the delay element (190,192) being coupled to receive the second multiplexed data (MFM DATA 2), the delay element (190,192) delaying the second multiplexed data (MFM DATA 2) to provide at its output; a divider (156) having an input coupled to the data output of the precompensation select generator (18) and an output, and being clocked by a signal from the gated ring oscillator (170,172,180,182,190,192), the divider (156) dividing the second multiplexed data (MFM DATA 2) by the fixed amount to provide at its output; and an output gate (154) having a first input connected to the output of the delay element (190,192) and a second input connected to the output of the divider (156), the output gate (154) having an output providing the precompensated data signal (PMFM DATA) for writing to the magnetic medium.

Inventors: SCOTT PAUL H, WANG YUN-CHE, SCOTT, PAUL H., WANG, YUN-CHE
Applicants: ADVANCED MICRO DEVICES INC, ADVANCED MICRO DEVICES, INC.
Application year: 1988
Main classification: G11B20
IPC codes: H03K19, G11B5, G11B20