reference will now be made in detail to the presently preferred embodiments of the invention , examples of which are illustrated in the accompanying drawings . the present invention relates to a method and circuit for setting a programmable delay cell in a signal path and using a reference clock to calibrate the oscillator clock frequency of an oscillator that includes the delay cell . the circuit preferably uses two counting circuits or counters that are controlled by calibration and control logic in which one counter is clocked by the reference clock and the other is clocked by the oscillator circuit clock . in general , after a predetermined time , the calibration and control logic compares the two count values and determines if the programmable delay cell of the oscillator circuit needs to be adjusted . in a preferred embodiment , the sequence followed in the method is to clear the counters , start the counters , stop the counters , compare the counts , and , then , accordingly adjust the programmable delay cell value and / or repeat the earlier steps . if the oscillator circuit is determined to need adjustment , the calibration and control logic circuit so adjusts the programmable delay cell . the present invention may then provide a suitable delay path formed from a portion of the oscillator circuit for passing an external or source clock signal . fig1 shows a functional block diagram of an embodiment of a circuit of the present invention . as shown in fig1 , the major components of the scheme are two counters 10 , 50 , calibration and control logic 30 , and an oscillator 60 - 100 that includes a programmable delay cell 70 . the programmable delay cell 70 may be implemented through complementary metal oxide semiconductor ( cmos ) inverters , differential delay cells , buffers and multiplexers , or the like . the oscillator is preferably a ring oscillator . the first counter 10 is clocked by a reference clock refclk and the second counter 50 is clocked by the clock generated by the ring oscillator . the first counter 10 and the second counter 50 are capable of counting up to a certain number and resetting to begin counting again . in a preferred embodiment , the total size of the circuit is determined by the size of the programmable delay cell 70 and a few hundred logic gates . except for the programmable delay cell , all other cells used to design the logic are not timing critical . in one embodiment , the calibration and control logic 30 starts both counters simultaneously and stops the counters simultaneously after a predetermined period of time . then , the calibration and control logic 30 compares the count values to determine the operating frequency of the oscillator clock with respect to the reference clock . optionally , prior to the calibration and control logic 30 , combination logic 20 and 40 may be used to generate the waveforms shown in fig2 . any correctable discrepancy determined by the calibration and control logic is resolved by making an adjustment to the programmable delay cell . if the programmable delay cell is adjustable only in increments , the calibration and control logic or other calculating and control circuitry provides the nearest delay value to the programmable delay cell to approximate the desired frequency of the oscillator clock . fig2 shows a timing diagram relating inputs to the calibration and control logic . the reference clock counter generated pulse n_out , one of the two illustrated inputs , is shown as having a duration of a * n where n represents the number of counts before reset by the reference clocked counter 10 and a represents the clock period of refclk . the period of the reference clock refclk is given as a nanoseconds although a different unit of time may be used , such as picoseconds , microseconds , or milliseconds . thus , the duration of n_out ( from the beginning to the end of the count ) is a * n . similarly , if the propagation delay of the ring oscillator is given as b nanoseconds ( or other unit of time such that a and b are measured in the same units of time ), then the period of the ring oscillator is given as 2 * b nanoseconds . if the number of cycles count_m counted by the ring oscillator counter is m , then the duration of m_out ( from beginning to end of the count ) is 2 * b * m . the waveform m_out may be a low duty cycle waveform as shown in fig2 in which the high level pulse occupies a relatively small portion of the count period or may be a 50 — 50 duty cycle waveform or a high duty cycle waveform . the present invention uses the reference clock as a guide for setting the ring oscillator frequency through the programmable delay cell . for example , if it is desired that the oscillator clock frequency be twice the reference frequency , the programmable delay cell is set ( to the closest approximation or exactly ) to 90 degrees of the period a ; in other words , b is set to a / 4 ( equation 1 ). if duration_n equals duration_m by adjusting the delay of the programmable cell , then a * n = 2 * b * m ( equation 2 ). substituting b = a / 4 yields m = 2 * n ( equation 3 ). thus , satisfying equations 1 and 2 provides equation 3 . in the case where the desired programmable delay is 90 degrees , the counter value of count_m is set equal to twice the number of count_n . for the purposes of this example , the value of the left side of equation 2 , a * n , is fixed . in order to satisfy equation 2 , the value of b may be changed by adjusting the delay of the programmable delay cell until 2 * b * m equals a * n . in one embodiment , the calibration and control logic ( or similar circuitry ) detects the durations of duration_n and duration_m and sends control settings to adjust the delay of the programmable delay cell until it finds the two durations are equal . once equations 2 and 3 are satisfied , the propagation delay of the ring oscillator will be one fourth of the period of the reference clock a . for any given frequency of the reference clock , m and n can be properly chosen to get the desired phase shift / delay . then the counters may be deactivated to save power as well as to reduce switching noise . no pvt variations will change the counter values or the period of the reference clock ( i . e ., the values of m , n and a remain the same ). in the case of multiple circuits , each delay network ( or device ) of an oscillator circuit will adjust the delay of its programmable delay cell to satisfy equation 2 . thus , the value of b for different delay networks or different devices will still be the same regardless of the pvt conditions . thus , b is the only variable for adjusting oscillator clock frequency and / or setting a delay . fig3 shows a functional block diagram an embodiment of the circuit in which the delay scheme is embedded into a clock tree circuit . the path r is the ring oscillator , which consists of a nand gate 320 , a multiplexer 340 , the programmable delay cell 350 , and three clock buffers 360 , 370 , and 380 . the reference clock refclk may be provided by an off chip voltage controlled oscillator , a crystal oscillator , or the like , proximately disposed to the ring oscillator circuit . the resolution of the programmable delay buffer increments determines a number of cycles needed in a count cycle and the delay adjustment ( or , deskew ) capability . with reasonably sized counters , the circuit can accurately set the delay settings . the accuracy depends on the step size of the programmable delay cell . the present invention can set the desired delay to within one step size and has the ability to calibrate the set delay for process , voltage , and temperature variations for every device used with it . using current technology , designing a delay cell with the step sizes of 20 picoseconds or smaller is quite achievable . the clock tree in fig3 may have two , three , four , or more levels and may use temporary clock nets each of which are turned on or off independently , as described in u . s . pat . no . 6 , 429 , 714 , entitled “ process , voltage and temperature independent clock tree deskew circuitry - temporary driver method ,” herein incorporated by reference in the entirety . the clock tree may be implemented through various combinations of transistors , resistors , capacitors , flip flops , electrically erasable programmable read only memory , microcontroller , firmware , flash memory , and the like . each level of the clock tree may be phase detectable and phase adjustable ( or , skew detectable and skew adjustable ). the calibration and control logic circuit preferably performs boolean and arithmetic operations . during the calibration mode , the multiplexer 340 selects the r path . the calibration logic continues to adjust the delay of the programmable delay cell until it finds the desired delay value . then , the multiplexer 340 switches input to the other input . the desired phase / delay includes the delay of the programmable delay cell as well as the propagation delay of the whole clock network . the delay is also adjusted to current conditions of processing , voltage , and temperature . that eliminates the need of delay adjustment on the data path . once the period of the reference clock and the values of the two counters are set , the desired delay will be the same device to device although the delay settings to the programmable delay cells will not necessarily be the same . this is because process , voltage , and temperature might not be the same for different devices . since the delay along the clock nets of the clock tree connected to the initial “ clock ” buffer may not be identical due to intra die interconnect process variations and due to different neighboring routes , the first level of clock buffers may not all turn on at the same time . additional differences in turn on times may be caused by intra die transistor variation , variations in signal line lengths , and differing capacitive effects . however , the input signal paths of each clock buffer 360 , 370 , 372 , 380 , 382 , 384 , and 386 of a given level may be designed to be of the same length , to have a symmetric layout with other input signal paths of the same level , and to have a layout similar in other respects such as to experience various environmental affects , such as parasitic capacitance , in the same way and to the same degree . thus , the clock signal into each level of clock buffer is presumed to be identical to the clock signal of the other clock buffers of the same level ( e . g ., 380 , 382 , 384 , and 386 ). in other words , the clock buffer signal paths are balanced which results in fewer and minimal adjustments . the path distances of a clock tree used with the oscillator circuit having a programmable delay cell may be balanced and symmetric to enhance the synchronization of the clock signals in different branches of the clock tree . after the calibration mode , the counters and the rest of the logic can be disabled to save power . in fig3 , the oscillator circuit path r may be disabled by disabling nand gate 320 while a signal path is still provided that has a desired propagation delay value . then , an external clock ( or , source clock ) 330 may be switched through by multiplexer 340 to provide a clock signal with a desired delay value . since the programmable delay cell and clock buffers are also used in the actual circuit , there is almost no additional power consumption . the programmable delay cell may be implemented in numerous configurations . fig4 - 6 illustrate three examples of implementations of the programmable delay cell . features of the various implementations may be combined to achieve desired operational results . fig4 shows a multiplexer 430 that selects one of n delays through the value of the address bits input to the multiplexer . each delay each is formed of a pair of serial inverters 410 - 412 , 414 - 416 , and 418 - 420 . fig5 shows a multiplexer 530 that selects one of n delays determined by a selected input that is tied to a unique capacitive load in which a higher capacitive value leads to a greater delay value because of the rc time constant established by the selected capacitance 514 , 518 , 522 , 526 and multiplexer switch input resistance . the first stage buffer 510 and second stage buffers 512 , 516 , 520 , 524 may be inverters . fig6 shows an embodiment in which the delay is formed of a fixed number of stages 602 , 604 , 610 , 616 , 622 , 628 , 634 in which the input of one or more of the stages may be switchable connected to a capacitance 608 , 614 , 620 , 626 , 632 through a switch 606 , 612 , 618 , 624 , 630 . the capacitances 608 , 614 , 620 , 626 , 632 may be of the same capacitive value , may each be of a unique capacitance value , may have capacitive values scaled in relation to the other capacitors , or the like . other variations of the programmable delay cell are contemplated by the present invention . fig7 illustrates an embodiment of a method of the present invention . the counters clocked by the reference clock refclk and the oscillator clock osc clk are cleared or reset 710 . a delay is loaded into a stage of the oscillator 715 from the calibration and control circuit , through a latch loaded by an external device , or in another manner . both counters are enabled simultaneously through the release of the reset line 720 . the oscillator clock may be derived from the reference clock or may be generated through a ring oscillator . after a period of time , the counting is stopped simultaneously for the two counters 725 . the stopping may be a function of the reference clock counter reaching a certain count value . likewise , the oscillator clocked counter may determine the end of the count period . alternatively , the calibration and control logic or other circuit may determine when to stop counting . the reference clocked count and the oscillator clocked count are compared 730 . if the clocked count values are sent to the calibration and control logic , the comparison may be performed by an arithmetic logic unit or other circuitry . if reference clock counter generated pulse n_out and oscillator clock counter generated pulse m_out are sent to the calibration and control logic , the comparison may be performed using a shift register to measure the relative durations of the two pulses or a counting circuit may count the number of m_out pulses during the period of time n_out is a logic high value . if the oscillator clock frequency is determined to be within the desired parameters , such as within an acceptable range or of a desired value 735 , the counters are reset 740 and calibration stops 745 . otherwise , a new delay is determined and the new delay value is loaded into the programmable delay cell of the oscillator 750 , the counters are reset 755 , and counting resumes 720 . the present invention may be practiced through a variety of implementations . for example , the counters of fig1 and 3 may be reset on a particular count , may be stopped by control logic , or may rollover continuously . the duty cycle of the waveforms generated from the counter outputs may be altered to comply with a particular application . the calibration and control logic may receive as input either a clock frequency the oscillator is to operate or a delay value . an initial delay value may be preset at the time of manufacture , may be set by dual in line switches , may be loaded into the calibration and control logic circuitry , or may otherwise be input . periodic calibrations may be employed to guard against frequency drift problems . the reference clocked counter and the oscillator clocked counter preferably are reset together , but may be reset independently through the calibration and control logic , through an operator , or through other circuitry . the propagation delays of the counter and combination logic timed by the reference clock is preferably closely matched with or identical to the propagation delays of the counter and combination logic timed by the oscillator clock . instead of combination logic that receives the count values and generates a corresponding waveform , the count may be provided directly to the calibration and control logic . an arithmetic logic unit may be used to compare the two count values . it is believed that the present invention and many of its attendant advantages will be understood by the forgoing description . it is also believed that it will be apparent that various changes may be made in the form , construction and arrangement of the components thereof without departing from the scope and spirit of the invention or without sacrificing all of its material advantages , the form hereinbefore described being merely an explanatory embodiment thereof . it is the intention of the following claims to encompass and include such changes .