Patent Publication Number: US-9904275-B2

Title: Semiconductor integrated circuit and operation method thereof

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     The present application is a Continuation application of U.S. patent application Ser. No. 13/888,258, filed on May 6, 2013, which is based on Japanese Patent Application No. 2012-112468 filed on May 16, 2012, the entire contents of which are hereby incorporated by reference. 
    
    
     BACKGROUND 
     The present invention relates to a semiconductor integrated circuit and an operation method thereof and, in particular, relates to a technique that is effective for reducing the amount of computation to be performed by a central processing unit (CPU) or the required amount of storage space in a built-in memory for timing adjustment of a pulse output signal. 
     Lately, ultrasonic motors (USMs) or hypersonic motors (HSMs) having features such as high torque at low speed, fast response, and high positioning accuracy are used in the fields of automatic focusing control and zooming control for camera lenses, actuators of robots, and actuators of positioning devices. An ultrasonic motor produces a flexural wave motion in a vibrating body (stator) by using ultrasonic vibration generated by piezoelectric elements and drives a moving body (rotor or slider) by using a traveling wave resulting from the flexural wave motion. To transfer the traveling wave originating from the stator to the rotor, some pressurized contact is needed. 
     Patent Document 1 listed below describes an ultrasonic motor called a “wedge type” in which one end of the vibrating body vibrated by an ultrasonic transducer and one end face of the moving body are positioned to face each other and a plate-like or rod-like vibrating piece is inserted between both. By tilting the vibrating piece at a suitable angle, a reciprocating motion of the ultrasonic transducer is converted to a unidirectional motion of the moving body. 
     Besides, Patent Document 2 listed below describes an ultrasonic motor called a “traveling wave type” that produces a flexural wave motion in the stator and drives the rotor by using a traveling wave resulting from the flexural wave motion. According to this document, the moving body is brought in pressured contact with the surface of an elastic body of the ultrasonic transducer, the elastic body having a plurality of electrostrictive elements fixed thereto. Application of a high-frequency voltage with different phases in time to the electrostrictive elements being in parallel produces a traveling wave generating elliptical vibration on the surface of the elastic body of the ultrasonic transducer, thus driving the moving body by friction drive. Thereby, this provides a solution to the drawbacks of the “wedge type” ultrasonic motor described in Patent Document 1 listed below, that is, its durability and limitation of its rotational direction to one direction. 
     Moreover, in FIG. 8 in Patent Document 3 listed below and its related disclosure, there is described a pulse generator comprised of one delay circuit, six inverters, three latch circuits, six AND circuits, one OR circuit, and one selector. The delay circuit responding to a pulse input signal generates a 1st delayed pulse output signal which is delayed by a ⅙ period of one cycle of the pulse input signal (delayed by a phase of 60 degrees) and a 2nd delayed pulse output signal which is delayed by a 2/6 period of one cycle of the pulse input signal (delayed by a phase of 120 degrees). The pulse input signal is supplied to the input terminals of a 1st inverter and a 4th inverter, the 1st delayed pulse output signal is supplied to the input terminals of a 2nd inverter and a 5th inverter, and the 2nd delayed pulse output signal is supplied to the input terminals of a 3rd inverter and a 6th inverter. 
     An output signal of the 4th inverter, an output signal of the 5th inverter, and an output signal of the 6th inverter are supplied to 1st, 2nd, and 3rd S input terminals of a 1st latch circuit, respectively. The pulse input signal, the 1st delayed pulse output signal, and the 2nd delayed pulse output signal are supplied to 1st, 2nd, and 3rd S input terminals of a 2nd latch circuit, respectively. The input terminal and output terminal of the 1st inverter are coupled to a 1st input terminal of a 1st AND circuit and a 1st input terminal of a 2nd AND circuit, respectively. The input terminal and output terminal of the 2nd inverter are coupled to a 1st input terminal of a 3rd AND circuit and a 1st input terminal of a 4th AND circuit, respectively. The input terminal and output terminal of the 3rd inverter are coupled to a 1st input terminal of a 5th AND circuit and a 1st input terminal of a 6th AND circuit, respectively. 
     A 1st Q output terminal of the 1st latch circuit and a 1st Q output terminal of the 2nd latch circuit are coupled to a 2nd input terminal of the 1st AND circuit and a 2nd input terminal of the 2nd AND circuit, respectively. A 2nd Q output terminal of the 1st latch circuit and a 2nd Q output terminal of the 2nd latch circuit are coupled to a 2nd input terminal of the 3rd AND circuit and a 2nd input terminal of the 4th AND circuit, respectively. Further, a 3rd Q output terminal of the 1st latch circuit and a 3rd Q output terminal of the 2nd latch circuit are coupled to a 2nd input terminal of the 5th AND circuit and a 2nd input terminal of the 6th AND circuit, respectively. 
     The input terminal and output terminal of the 1st inverter, the input terminal and output terminal of the 2nd inverter, and the input terminal and output terminal of the 3rd inverter are coupled to 1st, 2nd, 3rd, 4th, 5th, and 6th input terminals of the selector, respectively. An output terminal of the 1st AND circuit, an output terminal of the 2nd AND circuit, and an output terminal of the 3rd AND circuit are coupled to 1st, 2nd, and 3rd input terminals of the OR circuit, respectively. An output terminal of the 4th AND circuit, an output terminal of the 5th AND circuit, and an output terminal of the 6th AND circuit are coupled to 4th, 5th, and 6th input terminals of the OR circuit, respectively. 
     The 1st Q output terminals, 2nd Q output terminals, and 3rd Q output terminals of the 1st and 2nd latch circuits are coupled to 1st, 2nd, 3rd, 4th, 5th, and 6th input terminals of a third latch circuit, respectively. An output terminal of the OR circuit is coupled to a sync input terminal of the 3rd latch circuit and a pulse select signal is generated which is supplied from an output terminal of the 3rd latch circuit to the selector. 
     Six pulse input signals with their phases shifted 60 degrees from each other are supplied to 1st, 2nd, 3rd, 4th, 5th, and 6th input terminals of the selector. Thereby, one selected pulse input signal out of the six pulse input signals can be output as an output signal from an output terminal of the selector. 
     RELATED ART DOCUMENTS 
     Patent Documents 
     [Patent Document 1] Japanese Published Examined Patent Application No. Sho 59(1984)-30912 
     [Patent Document 2] Japanese Published Examined Patent Application No. Hei 1(1989)-17353 
     [Patent Document 3] Japanese Published Unexamined Patent Application No. Hei 11(1999)-149671 
     SUMMARY 
     In advance of the present invention, the present inventors engaged in development of a semiconductor integrated circuit capable of driving a traveling wave type ultrasonic motor discussed in the beginning. This semiconductor integrated circuit for driving the ultrasonic motor required a function to adjust the phase of a drive pulse that is supplied to the ultrasonic motor. Because there is a need for driving the ultrasonic motor at high accuracy, drive pulse phase adjustment at high accuracy is required. 
     The pulse generator described in FIG. 8 in Patent Document 3 above and its related disclosure selects one of six pulse input signals with their phases shifted from each other by 60 degrees as an output signal. In advance of this invention, an approach based on  FIG. 8  in Patent Document 3 above and its related disclosure was examined by the present inventors. This approach is to select one of a huge number of pulse input signals with a reduced amount of phase shift from each other as an output signal. However, in a case that this approach was adopted, a problem of an increase in the circuit size and power consumption of the pulse generator was found out by the examination made by the present inventors in advance of the present invention. 
       FIG. 14  is a diagram depicting a configuration of a drive pulse output generating circuit  1   g  examined by the present inventors et al. in advance of the present invention. 
     The drive pulse output generating circuit  1   g  examined by the present inventors et al. in advance of the present invention, depicted in  FIG. 14 , generates drive pulse output signals for driving a traveling wave type ultrasonic motor that is coupled to an output terminal Tout. 
     As depicted in  FIG. 14 , the drive pulse output generating circuit  1   g  examined by the present inventors et al. in advance of the present invention is configured with a 1st register  10  for rise setting, a 2nd register  11  for fall setting, a 3rd register  12  for setting cycle data, a 3rd flip-flop (FF)  13 , and a counter  14 . The drive pulse output generating circuit  1   g  is further configured with a 1st flip-flop (FF)  15 , a 2nd flip-flop (FF)  16 , a 1st comparator  17 , a 2nd comparator  18 , and a pulse generator  19 . 
     The counter  14  is configured to count up a 16-bit counter value in response to a clock signal which is not depicted. More specifically, a count initial value Nmini for the counter  14  to count up from it is set to, for example, 0 and a count maximum value Nmax for the counter  14  to count up to it can be set by cycle data that is set in the 3rd register  12 . 
     Thus, the counter  14  starts to count up from the count initial value Nmini set to 0 and executes count up. When its counter value has reached the count maximum value Nmax set by cycle data held by the 3rd register  12 , the counter value returns to the count initial value Nmini of 0 again and the counter executes count up in response to the clock signal. 
     Cycle data that is set in the 3rd register  12  is 16 bits, 16-bit data can be stored in the 3rd flip-flop (FF)  13 , and the counter value of the counter  14  is also 16 bits. Thus, 16-bit data can be stored in the 1st flip-flop (FF)  15  and the 2nd flip-flop (FF)  16  respectively. The 1st comparator  17  and the 2nd comparator  18  detect a match or mismatch between two input signals of 16 bit data. 
     A counter value of the counter  14  for rise setting, which was set in the 1st register  10 , is stored into the 1st flip-flop (FF)  15  in response to an update enable signal. A counter value of the counter  14  for fall setting, which was set in the 2nd register  11 , is stored into the 2nd flip-flop (FF)  16  in response to the update enable signal. Further, the count maximum value Nmax that is set by cycle data which was set in the 3rd register  12  is stored into the 3rd flip-flop (FF)  13  in response to the update enable signal. 
     While the counter  14  executes count up, starting from the count initial value Nmini of 0, it is detected by the 1st comparator  17  that a match occurs between a counter value output by the counter  14  and a rise setting value stored in the 1st flip-flop (FF)  15 . Rise command information is generated from an output terminal of the 1st comparator  17 . In response to the rise command information, the pulse generator  19  makes a drive pulse output signal at its output terminal Tout change from a low level to a high level. 
     While the counter  14  continues to count up, it is detected by the 2nd comparator  18  that a match occurs between a counter value output by the counter  14  and a fall setting value stored in the 2nd flip-flop (FF)  16 . Fall command information is generated from an output terminal of the 2nd comparator  18 . In response to the fall command information, the pulse generator  19  makes a drive pulse output signal at its output terminal Tout change from the high level to the low level. 
     While the counter  14  further continues to count up, when a counter value output by the counter  14  has reached the count maximum value Nmax which was set by cycle data held by the 3rd flip-flop (FF)  13 , the counter value returns to the count initial value Nmini of 0 again and the counter executes count up in response to the clock signal. 
       FIG. 15  is a diagram for explaining operation of the drive pulse output generating circuit  1   g  examined by the present inventors et al. in advance of the present invention, depicted in  FIG. 14 . 
       FIG. 15  illustrates behavior of the counter  14  starting from the count initial value Nmini and counting up to the count maximum value Nmax. 
       FIG. 15  further illustrates behavior of a drive pulse output signal at the output terminal Tout of the pulse generator  19 , the signal changing from the low level to the high level by a match, occurring between a counter value output by the counter  14  and a rise setting value stored in the 1st flip-flop (FF)  15 . 
       FIG. 15  further illustrates behavior of the drive pulse output signal at the output terminal Tout of the pulse generator  19 , the signal changing from the high level to the low level by a match occurring between a counter value output by the counter  14  and a fall setting value stored in the 2nd flip-flop (FF)  16 . 
     Meanwhile, as mentioned previously, in order to drive the ultrasonic motor at high accuracy, drive pulse phase adjustment at high accuracy is required. Consequently, it is needed to adjust timing at which the drive pulse output signal at the output terminal Tout of the pulse generator  19  changes from the low level to the high level and timing at which the drive pulse output signal changes from the high level to the low level. 
     Meanwhile, while the counter value of the counter  14  starts from the count initial value Nmini of 0 and reaches the count maximum value Nmax, one cycle of 360 degrees elapses, during which the drive pulse output signal at the output terminal Tout of the pulse generator  19  changes from the low level to the high level and further changes from the high level to the low level. Therefore, in order to adjust the changing timings of the drive pulse output signal, it is needed to change the phase angles of the changing timings within one cycle of 360 degrees. 
       FIG. 16  is a diagram explaining a procedure for calculating a rise setting value and a fall setting value as counter values of the counter  14  for adjustment of changing timing of a drive pulse output signal for the ultrasonic motor in the drive pulse output generating circuit  1   g  examined by the present inventors et al. in advance of the present invention, depicted in  FIG. 14 . 
     A first step S 100  presented in  FIG. 16  is to divide the count maximum value MAX as a counter value of the counter  14 , which corresponds to cycle data that was set in the 3rd register  12 , by 360 degrees of phase angle for one cycle. At this point, the counter value of the counter  14  is represented by a binary number of 16 bits. By the division at step S 100 , a changed counter value of the counter  14 , which changes per degree of phase angle to be changed, is calculated. 
     A next step S 200  presented in  FIG. 16  is to multiply the changed counter value of the counter  14 , which changes per degree of phase angle to be changed, calculated at the first step S 100 , and a phase angle change value for drive output signal changing timing adjustment. At this point, the phase angle change value is represented by a decimal number. By the multiplication at step S 200 , a changed counter value of the counter  14  required for desired phase angle change is calculated. This counter value of the counter  14  is also represented by a binary number of 16 bits. 
     A further step S 300  presented in  FIG. 16  performs addition of the changed counter value of the counter  14  required for desired phase angle change, calculated at step S 200 , and a counter setting value of the counter  14  for rise setting, which is now set in the 1st register  10  before phase angle change. Moreover, this step S 300  performs addition of the changed counter value of the counter  14  required for desired phase angle change, calculated at step S 200 , and a counter setting value of the counter  14  for fall setting, which is now set in the 2nd register  11  before phase angle change. Thus, by the addition at step S 300 , for the counter  14 , a new rise setting counter value and a new fall setting counter value required for desired changing timing adjustment of a drive pulse output signal are calculated. 
     However, in the approach examined by the present inventors et al. in advance of the present invention, discussed with  FIGS. 14 to 16 , a problem in which the amount of computation to be performed by a central processing unit (CPU) mounted in the semiconductor integrated circuit increases or the required amount of storage space in a built-in memory mounted in the semiconductor integrated circuit increases was also found out by the examination made by the present inventors in advance of the present invention. More specifically, because the calculation procedure illustrated in  FIG. 16  includes division and multiplication, it follows that the amount of computation to be performed by the CPU in the semiconductor integrated circuit increases. Besides, because software for carrying out the calculation procedure illustrated in  FIG. 16  including division and multiplication through computation by the CPU in the semiconductor integrated circuit has to be stored in the built-in memory which is mounted in the semiconductor integrated circuit  1 , it follows that the required amount of storage space in the built-in memory increases. 
     Means and the like for solving the above-mentioned problem will be described hereinafter. Other problems and novel features will become apparent from the following description in the present specification and the accompanying drawings. 
     An exemplary embodiment disclosed herein is briefly outlined below. 
     A pulse generating circuit ( 1   g ) in a semiconductor integrated circuit ( 1 ) according to an exemplary embodiment includes a phase adjustment data register ( 1 B), a cycle data register ( 12 ), a phase arithmetic circuit ( 1 A), a counter ( 14 ), and a pulse generator ( 19 ). 
     The phase arithmetic circuit ( 1 A) in the pulse generating circuit ( 1   g ) includes a digital multiplying circuit ( 100 ), a digital dividing circuit ( 101 ), and digital adding and subtracting circuits ( 102 ,  103 ). 
     The digital multiplying circuit ( 100 ) generates a multiplication output signal by performing multiplication of a phase angle change value stored in the phase adjustment data register ( 1 B) and a count maximum value (Nmax) stored in the cycle data register ( 12 ). 
     The digital dividing circuit ( 101 ) generates a division output signal by dividing the multiplication output signal from the digital multiplying circuit ( 100 ) by a phase angle (360 degrees) for one cycle. 
     The digital adding circuit ( 102 ) performs adding the division output signal from the digital dividing circuit ( 101 ) and a rise setting count value stored in the rise setting register ( 10 ) as well as adding the division output signal and a fall setting count value stored in the fall setting register ( 11 ). The subtracting circuit ( 103 ) performs subtracting the division output signal from the rise setting count value as well as subtracting the division output signal from the fall setting count value. 
     It is featured that the addition and subtraction performed by the digital adding and subtracting circuits generate a new rise setting count value and a new fall setting count value required to delay and advance the phase by the phase angle change value (see  FIG. 2 ). 
     An advantageous effect that will be achieved by an exemplary one of embodiments disclosed herein is briefly described below. 
     According to the present semiconductor integrated circuit ( 1 ), it is possible to reduce the amount of computation to be performed by the central processing unit (CPU) or the required amount of storage space in a built-in memory for timing adjustment of a pulse output signal. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a diagram depicting a configuration of a semiconductor integrated circuit  1  according to a first embodiment for driving a traveling wave type ultrasonic motor  2 . 
         FIG. 2  is a diagram depicting a configuration of a drive pulse output generating circuit which is a second functional module  1   g  in the semiconductor integrated circuit  1  according to the first embodiment depicted in  FIG. 1 . 
         FIG. 3  is a diagram explaining a procedure for calculating a rise setting value and a fall setting value as counter values of the counter  14  for adjustment of changing timing of a drive pulse output signal for an ultrasonic motor in the semiconductor integrated circuit  1  according to the first embodiment depicted in  FIG. 2 . 
         FIG. 4  is a diagram depicting a bit configuration of a phase adjustment data register (4th register)  1 B of the phase arithmetic circuit  1 A in the semiconductor integrated circuit  1  of the first embodiment depicted in  FIG. 2 . 
         FIG. 5  is a diagram explaining register setting values corresponding to phase angle change values settable in the phase adjustment data register (4th register)  1 B of the phase arithmetic circuit  1 A in the semiconductor integrated circuit  1  of the first embodiment depicted in  FIG. 2 . 
         FIG. 6  is a diagram explaining a data correction function of a digital adding circuit  102  and of a digital subtracting circuit  103  in the phase arithmetic circuit  1 A according to the first embodiment depicted in  FIG. 2 . 
         FIG. 7  is a diagram depicting another configuration of a drive pulse output generating circuit which is a second functional module  1   g  of a semiconductor integrated circuit  1  according to a second embodiment. 
         FIGS. 8A and 8B  are diagrams explaining operation that would take place, when the drive pulse output generating circuit  1   g  according to the second embodiment depicted in  FIG. 7  does not have an update enable register  1 G, an update timing control register  1 H, an AND circuit  1 I, and an update timing control circuit  1 J. 
         FIGS. 9A and 9B  are diagrams explaining operation that would take place, when the drive pulse output generating circuit  1   g  according to the second embodiment depicted in  FIG. 7  does not have the update enable register  1 G, the update timing control register  1 H, the AND circuit  1 I, and the update timing control circuit  1 J. 
         FIGS. 10A and 10B  are diagrams explaining normal operation behavior that is accomplished owing to the fact that the drive pulse output generating circuit  1   g  according to the second embodiment depicted in  FIG. 7  has the update enable register  1 G, the update timing control register  1 H, the AND circuit  1 I, and the update timing control circuit  1 J. 
         FIGS. 11A and 11B  are diagrams explaining operation that would take place, when the drive pulse output generating circuit  1   g  according to the second embodiment depicted in  FIG. 7  does not have the update enable register  1 G, the update timing control register  1 H, the AND circuit  1 I, and the update timing control circuit  1 J. 
         FIGS. 12A and 12B  are diagrams explaining normal operation behavior that is accomplished owing to the fact that the drive pulse output generating circuit  1   g  according to the second embodiment depicted in  FIG. 7  has the update enable register  1 G, the update timing control register  1 H, the AND circuit  1 I, and the update timing control circuit  1 J. 
         FIG. 13  is a diagram depicting a further configuration of a drive pulse output generating circuit which is a second functional module  1   g  of a semiconductor integrated circuit  1  according to a third embodiment. 
         FIG. 14  is a diagram depicting a configuration of a drive pulse output generating circuit  1   g  examined by the present inventors et al. in advance of the present invention. 
         FIG. 15  is a diagram for explaining operation of the drive pulse output generating circuit  1   g  examined by the present inventors et al. in advance of the present invention, depicted in  FIG. 14 . 
         FIG. 16  is a diagram explaining a procedure for calculating a rise setting value and a fall setting value as counter values of a counter  14  for adjustment of changing timing of a drive pulse output signal for an ultrasonic motor in the drive pulse output generating circuit  1   g  examined by the present inventors et al. in advance of the present invention, depicted in  FIG. 14 . 
     
    
    
     DETAILED DESCRIPTION 
     1. General Outline of Embodiments 
     To begin with, exemplary embodiments of the present invention disclosed herein are outlined. In the following general description of exemplary embodiments, reference designators (numerals) in the drawings, which are given for referential purposes in parentheses, are only illustrative of elements that fall in the concepts of the components identified by the designators. 
     [1] A semiconductor integrated circuit ( 1 ) according to an exemplary embodiment includes a central processing unit ( 1   a ), a built-in memory ( 1   b ,  1   c ), and a pulse generating circuit ( 1   g ) (see  FIG. 1 ). 
     The pulse generating circuit ( 1   g ) includes a rise setting register ( 10 ), a fall setting register ( 11 ), a phase adjustment data register ( 1 B), a cycle data register ( 12 ), a phase arithmetic circuit ( 1 A), a counter ( 14 ), a 1st comparator ( 17 ), a 2nd comparator ( 18 ), and a pulse generator ( 19 ). 
     The counter ( 14 ) starts to count up, incrementing its count value from a count initial value (Nmini). 
     The cycle data register ( 12 ) stores, as cycle data, a count maximum value (Nmax) for the counter to count up to it. 
     When the count value of the counter ( 14 ) has reached the count maximum value after the counter ( 14 ) starts to count up from the count initial value, the count value of the counter ( 14 ) returns to the count initial value again and the counter ( 14 ) restarts to count up. 
     The rise setting register ( 10 ) stores a rise setting count value of the counter ( 14 ) to make a pulse output signal being generated by the pulse generator ( 19 ) rise from a low level to a high level. 
     The fall setting register ( 11 ) stores a fall setting count value of the counter ( 14 ) to make a pulse output signal being generated by the pulse generator ( 19 ) fall from the high level to the low level. 
     In response to detection of a match occurring between the count value of the counter and the rise setting count value, detected by the 1st comparator, the pulse generator makes the pulse output signal change from the low level to the high level. 
     In response to detection of a match occurring between the count value of the counter and the fall setting count value, detected by the 2nd comparator, the pulse generator makes the pulse output signal change from the high level to the low level. 
     The phase adjustment data register ( 1 B) stores a phase angle change value for timing adjustment of the pulse output signal which is generated by the pulse generator ( 19 ). 
     The phase arithmetic circuit ( 1 A) in the pulse generating circuit ( 1   g ) includes a digital multiplying circuit ( 100 ), a digital dividing circuit ( 101 ), a digital adding circuit ( 102 ), and a digital subtracting circuit ( 103 ). 
     The digital multiplying circuit ( 100 ) generates a multiplication output signal by performing multiplication of the phase angle change value stored in the phase adjustment data register ( 1 B) and the count maximum value (Nmax) stored in the cycle data register ( 12 ) ( FIG. 3 ; S 400 ). 
     The digital dividing circuit ( 101 ) generates a division output signal by dividing the multiplication output signal from the digital multiplying circuit ( 100 ) by a phase angle (360 degrees), for one cycle ( FIG. 3 ; S 500 ). 
     The digital adding circuit ( 102 ) is capable of adding the division output signal from the digital dividing circuit ( 101 ) and the rise setting count value stored in the rise setting register ( 10 ) as well as adding the division output signal and the fall setting count value stored in the fall setting register ( 11 ) ( FIG. 3 ; S 600 ). 
     The addition performed by the digital adding circuit generates a new rise setting count value and a new fall setting count value required to delay the phase by the phase angle change value. 
     The digital subtracting circuit ( 103 ) is capable of subtracting the division output signal from the digital dividing circuit ( 101 ) from the rise setting count value stored in the rise setting register ( 10 ) as well as subtracting the division output signal from the fall setting count value stored in the fall setting register ( 11 ) ( FIG. 3 ; S 600 ). 
     It is featured that the subtraction performed by the digital subtracting circuit generates a new rise setting count value and a new fall setting count value required to advance the phase by the phase angle change value (see  FIG. 2 ). 
     According to the embodiment described above, it is possible to reduce the amount of computation to be performed by the central processing unit (CPU) or the required amount of storage space in a built-in memory for timing adjustment of a pulse output signal. 
     In a preferable embodiment, it is featured that the pulse output signal being generated by the pulse generator ( 19 ) is capable of driving a motor ( 2 ) (see  FIG. 1 ). 
     In another preferable embodiment, it is featured that the motor ( 2 ) drivable by the pulse output signal being generated by the pulse generator ( 19 ) is an ultrasonic motor (see  FIG. 1 ). 
     In a further preferable embodiment, it is featured that, when an addition output signal resulting from the addition performed by the digital adding circuit ( 102 ) becomes larger than the count maximum value (Nmax), the digital adding circuit ( 102 ) generates a corrected addition output signal by subtracting the count maximum value from the addition output signal (see  FIG. 2 ). 
     In a more preferable embodiment, it is featured that, when a subtraction output signal resulting from the subtraction performed by the digital subtracting circuit ( 103 ) becomes smaller than the count initial value (Nmini), the digital subtracting circuit generates a corrected subtraction output signal corresponding to an absolute value of the subtraction output signal (see  FIG. 2 ). 
     In another more preferable embodiment, the phase arithmetic circuit ( 1 A) in the pulse generating circuit further includes a multiplexer ( 104 ) and a cycle overrun correction circuit ( 105 ). 
     The addition output signal from the digital adding circuit and the subtraction output signal from the digital subtracting circuit are supplied to a 1st input terminal and a 2nd input terminal of the multiplexer ( 104 ) respectively. 
     An output signal of the multiplexer ( 104 ) is input to an input terminal of the cycle overrun correction circuit ( 105 ). 
     It is featured that the cycle overrun correction circuit ( 105 ) has a data correction function to avoid that a low-level or high-level pulse period of the pulse output signal being generated by the pulse generator ( 19 ) in response to an arithmetic output signal from an output terminal (OUT) of the phase arithmetic circuit ( 1 A) exceeds the one cycle of the phase angle (360 degrees) (see  FIG. 2 ). 
     In a further more preferable embodiment, the pulse generating circuit ( 1   g ) further includes a 1st selector ( 1 E), a 2nd selector ( 1 F), a 1st flip-flop ( 15 ), a 2nd flip-flop ( 16 ), a 3rd flip-flop ( 1 C), and a 4th flip-flop ( 1 D). 
     The new rise setting count value is supplied from the output terminal (OUT) of the phase arithmetic circuit ( 1 A) to an input terminal of the 3rd flip-flop ( 1 C) and the new fall setting count value is supplied from the output terminal (OUT) of the phase arithmetic circuit ( 1 A) to an input terminal of the 4th flip-flop ( 1 D). 
     The rise setting count value stored in the rise setting register ( 10 ) and the fall setting count value stored in the fall setting register ( 11 ) can be supplied to a 1st input terminal of the 1st selector ( 1 E) and a 1st input terminal of the 2nd selector ( 1 F) respectively. 
     The new rise setting count value from an output terminal of the 3rd flip-flop ( 1 C) and the new fall setting count value from an output terminal of the 4th flip-flop ( 1 D) can be supplied to a 2nd input terminal of the 1st selector ( 1 E) and a 2nd input terminal of the 2nd selector ( 1 F) respectively. 
     The rise setting count value stored in the rise setting register ( 10 ) and the new rise setting count value from the output terminal of the 3rd flip-flop ( 1 C), which are output to an output terminal of the 1st selector ( 1 E), can be supplied to an input terminal of the 1st flip-flop ( 15 ). 
     The fall setting count value stored in the fall setting register ( 11 ) and the new fall setting count value from the output terminal of the 4th flip-flop ( 1 D), which are output to an output terminal of the 2nd selector ( 1 F), can be supplied to an input terminal of the 2nd flip-flop ( 16 ). 
     An output terminal of the 1st flip-flop ( 15 ) and an output terminal of the 2nd flip-flop ( 16 ) are coupled to a 1st input terminal of the 1st comparator ( 17 ) and a 1st input terminal of the 2nd comparator ( 18 ) respectively. 
     It is featured that the count value of the counter ( 14 ) is supplied to a 2nd input terminal of the 1st comparator ( 17 ) and a 2nd input terminal of the 2nd comparator ( 18 ) (see  FIG. 2 ). 
     In another more preferable embodiment, it is featured that the phase angle change value given in hexadecimal having a sign bit as the most significant bit is stored in the phase adjustment data register ( 1 B) (see  FIG. 5 ). 
     In a furthermore preferable embodiment, it is featured that the central processing unit ( 1   a ) stores the phase angle change value given in hexadecimal into the phase adjustment data register ( 1 B) by executing control software for the motor ( 2 ) stored in the built-in memory ( 1   b ,  1   c ) (see  FIG. 2 ). 
     In a concrete embodiment, the pulse generating circuit ( 1   g ) further includes a 5th flip-flop ( 13 ). 
     The count maximum value (Nmax) stored in the cycle data register ( 12 ) is supplied to an input terminal of the 5th flip-flop ( 13 ) and an output terminal of the 5th flip-flop is coupled to the counter ( 14 ). 
     It is featured that, in response to an update enable signal, when having been supplied to a control terminal of each of the 1st, 2nd, and 5th flip-flops ( 15 ,  16 ,  13 ), the 1st, 2nd, and 5th flip-flops stores a setting value from the output terminal of the 1st selector ( 1 E), a setting value from the output terminal of the 2nd selector ( 1 F), and a setting value in the cycle data register ( 12 ), respectively (see  FIG. 2 ). 
     In another concrete embodiment, the pulse generating circuit ( 1   g ) further includes an AND circuit ( 1 I) and an update timing control circuit ( 1 J). 
     The update enable signal is transferred via a 1st input terminal and an output terminal of the AND circuit ( 1 I) to the control terminal of each of the 1st, 2nd, and 5th flip-flops ( 15 ,  16 ,  13 ). 
     An output signal of the 1st comparator ( 17 ) and an output signal of the 2nd comparator ( 18 ) are supplied to a 1st input terminal and a 2nd input terminal of the update timing control circuit ( 1 J) respectively. 
     An output signal of the 1st flip-flop ( 15 ), an output signal of the 2nd flip-flop ( 16 ), and an output signal of the 3rd flip-flop ( 13 ) are supplied to a 3rd input terminal, a 4th input terminal, and a 5th input terminal of the update timing control circuit ( 1 J) respectively. 
     It is featured that the update timing control circuit ( 1 J) generates a mask signal that is supplied to a 2nd input terminal of the AND circuit ( 1 I) and the mask signal prevents the pulse output signal being generated by the pulse generator ( 19 ) from having an abnormally long high-level period and an abnormally short low-level period (see  FIG. 7 ). 
     In a most concrete embodiment, the pulse generating circuit ( 1   g ) further includes a 2nd rise setting register ( 10 _ 2 ), a 2nd fall setting register ( 11 _ 2 ), a 3rd comparator ( 17 _ 2 ), a 4th comparator ( 18 _ 2 ), and a 2nd pulse generator ( 19 _ 2 ). 
     The 2nd rise setting register ( 10 _ 2 ) stores a 2nd rise setting count value of the counter ( 14 ) to make a 2nd pulse output signal being generated by the 2nd pulse generator ( 19 _ 2 ) rise from a low level to a high level. 
     The 2nd fall setting register ( 11 _ 2 ) stores a 2nd fall setting count value of the counter ( 14 ) to make a 2nd pulse output signal being generated by the 2nd pulse generator ( 19 _ 2 ) fall from the high level to the low level. 
     In response to detection of a match occurring between the count value of the counter and the 2nd rise setting count value, detected by the 3rd comparator, the 2nd pulse generator makes the 2nd pulse output signal change from the low level to the high level. 
     It is featured that, in response to detection of a match occurring between the count value of the counter and the 2nd fall setting count value, detected by the 4th comparator, the 2nd pulse generator makes the 2nd pulse output signal change from the high level to the low level ( FIG. 13 ). 
     [2] An exemplary embodiment in another aspect is an operation method of a semiconductor integrated circuit ( 1 ) including a central processing unit ( 1   a ), a built-in memory ( 1   b ,  1   c ), and a pulse generating circuit ( 1   g ). 
     The pulse generating circuit ( 1   g ) includes a rise setting register ( 10 ), a fall setting register ( 11 ), a phase adjustment data register ( 1 B), a cycle data register ( 12 ), a phase arithmetic circuit ( 1 A), a counter ( 14 ), a 1st comparator ( 17 ), a 2nd comparator ( 18 ), and a pulse generator ( 19 ). 
     The counter ( 14 ) starts to count up, incrementing its count value from a count initial value (Nmini). 
     The cycle data register ( 12 ) stores, as cycle data, a count maximum value (Nmax) for the counter to count up to it. 
     When the count value of the counter ( 14 ) has reached the count maximum value after the counter ( 14 ) starts to count up from the count initial value, the count value of the counter ( 14 ) returns to the count initial value again and the counter ( 14 ) restarts to count up. 
     The rise setting register ( 10 ) stores a rise setting count value of the counter ( 14 ) to make a pulse output signal being generated by the pulse generator ( 19 ) rise from a low level to a high level. 
     The fall setting register ( 11 ) stores a fall setting count value of the counter ( 14 ) to make a pulse output signal being generated by the pulse generator ( 19 ) fall from the high level to the low level. 
     In response to detection of a match occurring between the count value of the counter and the rise setting count value, detected by the 1st comparator, the pulse generator makes the pulse output signal change from the low level to the high level. 
     In response to detection of a match occurring between the count value of the counter and the fall setting count value, detected by the 2nd comparator, the pulse generator makes the pulse output signal change from the high level to the low level. 
     The phase adjustment data register ( 1 B) stores a phase angle change value for timing adjustment of the pulse output signal which is generated by the pulse generator ( 19 ). 
     The phase arithmetic circuit ( 1 A) in the pulse generating circuit ( 1   g ) includes a digital multiplying circuit ( 100 ), a digital dividing circuit ( 101 ), a digital adding circuit ( 102 ), and a digital subtracting circuit ( 103 ). 
     The digital multiplying circuit ( 100 ) generates a multiplication output signal by performing multiplication of the phase angle change value stored in the phase adjustment data register ( 1 B) and the count maximum value (Nmax) stored in the cycle data register ( 12 ) ( FIG. 3 ; S 400 ). 
     The digital dividing circuit ( 101 ) generates a division output signal by dividing the multiplication output signal from the digital multiplying circuit ( 100 ) by a phase angle (360 degrees) for one cycle ( FIG. 3 ; S 500 ). 
     The digital adding circuit ( 102 ) is capable of adding the division output signal from the digital dividing circuit ( 101 ) and the rise setting count value stored in the rise setting register ( 10 ) as well as adding the division output signal and the fall setting count value stored in the fall setting register ( 11 ) ( FIG. 3 ; S 600 ). 
     The addition performed by the digital adding circuit generates a new rise setting count value and a new fall setting count value required to delay the phase by the phase angle change value. 
     The digital subtracting circuit ( 103 ) is capable of subtracting the division output signal from the digital dividing circuit ( 101 ) from the rise setting count value stored in the rise setting register ( 10 ) as well as subtracting the division output signal from the fall setting count value stored in the fall setting register ( 11 ) ( FIG. 3 ; S 600 ). 
     It is featured that the subtraction performed by the digital subtracting circuit generates a new rise setting count value and a new fall setting count value required to advance the phase by the phase angle change value (see  FIG. 2 ). 
     According to the embodiment described above, it is possible to reduce the amount of computation to be performed by the central processing unit (CPU) or the required amount of storage space in a built-in memory for timing adjustment of a pulse output signal. 
     2. Details on Embodiments 
     Embodiments will then be described in greater detail. In all drawings for explaining preferred embodiments for implementing the invention, a component having the same function as the component in a previous drawing is assigned the same reference designator and its repeated description is omitted. 
     First Embodiment 
     Configuration of a Semiconductor Integrated Circuit 
       FIG. 1  is a diagram depicting a configuration of a semiconductor integrated circuit  1  according to a first embodiment for driving a traveling wave type ultrasonic motor  2 . 
     As depicted in  FIG. 1 , the semiconductor integrated circuit  1  configured as a microcontroller unit (MCU) includes a central processing unit (CPU)  1   a , a read only memory (ROM)  1   b , a random access memory (RAM)  1   c , an internal high-speed bus  1   d , a bus controller  1   e , a first functional module  1   f , and a second functional module  1   g.    
     The central processing unit (CPU)  1   a  implements various functions of the semiconductor integrated circuit  1  by executing software stored in the read only memory (ROM)  1   b . This read only memory (ROM)  1   b  may be, for example, an on-chip flash non-volatile memory. 
     The random access memory (RAM)  1   c  is accessed by the central processing unit (CPU)  1   a  via the internal high-speed bus  1   d  and serves as a working storage area for the central processing unit (CPU)  1   a.    
     The bus controller  1   e  serves as a device that hides access latency when the central processing unit (CPU)  1   a  accesses an external device coupled to an external bus which is not depicted. Thus, the bus controller  1   e  outputs an address to be accessed by the central processing unit (CPU)  1   a , which is supplied to it via the high-speed bus  1   d , to the external bus which is not depicted, and has a built-in buffer memory for storing data from the external bus. 
     The first functional module  1   f  is an IP core configured with hardware macros such as an interrupt controller (ICU), a data transfer controller (DTC), and a direct memory access controller (DMAC). Moreover, the first functional module  1   f  includes a data flash, a watchdog timer (WDT), a cyclical redundancy check module (CRC), a timer (TMR), and an A/D converter which are coupled to a low-speed internal peripheral bus which is in turn coupled to the internal high-speed bus  1   d  via the data transfer controller (DTC) and the direct memory access controller (DMAC). The interrupt controller (ICU) is responsible for processing of an interrupt from various peripheral modules internal and external to the semiconductor integrated circuit  1  to the central processing unit (CPU)  1   a.    
     The second functional module  1   g  is a hardware macro characteristic of the semiconductor integrated circuit  1  according to the first embodiment. It is a drive pulse output generating circuit that generates drive pulse output signals φ 1 , φ 2 , φ 3 , φ 4  which are applied to a plurality of electrostrictive elements of a stator for driving a rotor of the traveling wave type ultrasonic motor  2 . The drive pulse output signals φ 1 , φ 2 , φ 3 , φ 4  are 4-phase signals whose phases differ from each other in this example of the semiconductor integrated circuit  1  according to the first embodiment depicted in  FIG. 1 . 
     &lt;&lt;Configuration of the Drive Pulse Output Generating Circuit&gt;&gt; 
       FIG. 2  is a diagram depicting a configuration of the drive pulse output generating circuit which is the second functional module  1   g  in the semiconductor integrated circuit  1  according to the first embodiment depicted in  FIG. 1 . 
     As depicted in  FIG. 2 , the drive pulse output generating circuit  1   g  is configured with a 1st register  10  for rise setting, a 2nd register for fall setting, a 3rd register  12  for setting cycle data, a 3rd flip-flop (FF)  13 , and a counter  14 , as is the case for the drive pulse output generating circuit  1   g  examined by the present inventors et al. in advance of the present invention, depicted in  FIG. 14 . The drive pulse output generating circuit  1   g  is further configured with a 1st flip-flop (FF)  15 , a 2nd flip-flop (FF)  16 , a 1st comparator  17 , a 2nd comparator  18 , and a pulse generator  19 , as is the case for the drive pulse output generating circuit  1   g  examined by the present inventors et al. in advance of the present invention, depicted in  FIG. 14 . 
     Moreover, the drive pulse output generating circuit  1   g  includes a phase arithmetic circuit  1 A, a 4th register  1 B, a 4th flip-flop (FF)  1 C, a 5th flip-flop (FF)  1 D, a 1st selector  1 E, and a 2nd selector  1 F which are not included in the drive pulse output generating circuit  1   g  examined by the present inventors et al. in advance of the present invention, depicted in  FIG. 14 . 
     The counter  14  is configured to count up a 16-bit counter value in response to a clock signal which is not depicted. More specifically, a count initial value Nmini for the counter  14  to count up from it is set to, for example, 0 and a count maximum value Nmax for the counter  14  to count up to it can be set by cycle data that is set in the 3rd register  12 . 
     Thus, the counter  14  starts to count up from the count initial value Nmini set to 0 and executes count up. When its counter value has reached the count maximum value Nmax set by cycle data held by the 3rd register  12 , the counter value returns to the count initial value Nmini of 0 again and the counter executes count up in response to the clock signal. 
     Cycle data that is set in the 3rd register  12  is 16 bits, 16-bit data can be stored in the 3rd flip-flop (FF)  13 , and the counter value of the counter  14  is also 16 bits. Thus, 16-bit data can be stored in the 1st flip-flop (FF)  15  and the 2nd flip-flop (FF)  16  respectively. The 1st comparator  17  and the 2nd comparator  18  detect a match or mismatch between two input signals of 16 bit data. 
     Either a rise setting counter value before pulse output timing adjustment and change, which was stored in the 1st register  10 , or a rise setting counter value after pulse output timing adjustment and change, which was stored in the 4th (FF)  1 C, is selected by the 2nd selector  1 F and stored into the 1st flip-flop (FE)  15  in response to an update enable signal. 
     Either a fall setting counter value before pulse output timing adjustment and change, which was stored in the 2nd register  11 , or a fall setting counter value after pulse output timing adjustment and change, which was stored in the 5th flip-flop (FE)  1 D, is selected by the 1st selector  1 E and stored into the 2nd flip-flop (FF)  16  in response to an update enable signal. 
     Moreover, the count maximum value Nmax that is set by cycle data which was set in the 3rd register  12  is stored into the 3rd flip-flop (FF)  13  in response to an update enable signal. 
     While the counter  14  executes count up, starting from the count initial value Nmini of 0, it is detected by the 1st comparator  17  that a match occurs between a counter value output by the counter  14  and a rise setting value stored in the 1st flip-flop (FF)  15 . Rise command information is generated from an output terminal of the 1st comparator  17 . In response to the rise command information, the pulse generator  19  makes a drive pulse output signal at its output terminal Tout change from a low level to a high level. 
     While the counter  14  continues to count up, it is detected by the 2nd comparator  18  that a match occurs between a counter value output by the counter  14  and a fall setting value stored in the 2nd flip-flop (FF)  16 . Fall command information is generated from an output terminal of the 2nd comparator  18 . In response to the fall command information, the pulse generator  19  makes a drive pulse output signal at its output terminal Tout change from the high level to the low level. 
     While the counter  14  further continues to count up, when a counter value output by the counter  14  has reached the count maximum value Nmax which was set by cycle data held by the 3rd flip-flop (FF)  13 , the counter value returns to the count initial value Nmini of 0 again and the counter executes count up in response to the clock signal. 
     A phase angle change value for timing adjustment of a pulse output signal is stored in the 4th register  1 B which is a phase adjustment data register. 
     The phase angle change value for timing adjustment of a pulse output signal, stored in the 4th register  1 B which is the phase adjustment data register, is supplied to a 1st input terminal In 1  of the phase arithmetic circuit  1 A. Cycle data, i.e., the count maximum value Nmax stored in the 3rd register  12  which is a cycle data register is supplied to a 2nd input terminal In 2  of the phase arithmetic circuit  1 A. A rise setting count value stored in the 1st register  10  as a rise setting register and a fall setting count value stored in the 2nd register  11  as a fall setting register are supplied to a 3rd input terminal In 3  of the phase arithmetic circuit  1 A. 
     It follows that the phase arithmetic circuit  1 A executes arithmetic operations on the phase angle change value received at the 1st input terminal  1   n   1 , cycle data, i.e., the count maximum value Nmax received at the 2nd input terminal  1   n   2 , and the rise/fall setting count values received at the 3rd input terminal In 3 , thereby calculating a new rise setting counter value and a new fall setting counter value of the counter  14  required for timing adjustment of a purse output signal. That is, the phase arithmetic circuit  1 A outputs calculation results which are the same as those calculated by way of the procedure described with  FIG. 16  from its output terminal OUT. A new rise setting counter value that is generated from the output terminal OUT of the phase arithmetic circuit  1 A is stored into the 4th flip-flop (FF)  10  and a new fall setting counter value that is generated from the output terminal OUT of the phase arithmetic circuit  1 A is stored into the 5th flip-flop (FF)  1 D. 
     &lt;&lt;Hardware Configuration of the Phase Arithmetic Circuit&gt;&gt; 
     In the lower part of  FIG. 2 , there is depicted a hardware configuration of the phase arithmetic circuit  1 A included in the drive pulse output generating circuit which is the second functional module  1   g  in the upper part of  FIG. 2 . 
     As depicted in the lower part of  FIG. 2 , the phase arithmetic circuit  1 A includes a digital multiplying circuit  100 , a digital dividing circuit  101 , a digital adding circuit  102 , a digital subtracting circuit  103 , a multiplexer (MUX)  104 , and a cycle overrun correction circuit  105  which are configured in hardware. 
     The digital multiplying circuit  100  performs multiplication of the phase angle change value received at the 1st input terminal  1   n   1  and cycle data, i.e., the count maximum value Nmax received at the 2nd input terminal  1   n   2 . That is, the phase angle change value for timing adjustment of a pulse output signal, stored in the 4th register  1 B which is the phase adjustment data register, is supplied to a 1st input terminal In 1  of the digital multiplying circuit  100  and cycle data, i.e., the count maximum value Nmax stored in the 3rd register  12  which is the cycle data register is supplied to a 2nd input terminal In 2  of the digital multiplying circuit  100 . As this digital multiplying circuit  100 , a simplest multiplier may be used; other hardware such as a high-speed multiplier using a technique, e.g., carrier save adder, Wallance tree, or Booth&#39;s algorithm may be used. 
     A multiplication output signal from the digital multiplying circuit  100  is supplied to a 1st input terminal of the digital dividing circuit  101  and its 2nd input terminal is supplied with 360 degrees of phase angle for one cycle. As this digital dividing circuit  101 , a simplest divider may be used; other hardware such as a high-speed divider using a technique, e.g., carrier save adder may be used. 
     A division output signal from the digital dividing circuit  101  is supplied to a 1st input terminal of the digital adding circuit  102  and a 1st input terminal of the digital subtracting circuit  103 . And the rise setting counter value and the fall setting counter value stored in the 1st register  10  and the 2nd register  11  respectively are supplied to a 2nd input terminal of the digital adding circuit  102  and a 2nd input terminal of the digital subtracting circuit  103 . Thus, an addition output signal yielded by adding the division output signal from the digital dividing circuit  101  and the rise setting counter value/fall setting counter value is generated from an addition output terminal of the digital adding circuit  102 . And a subtraction output signal yielded by subtracting the division output signal from the digital dividing circuit  101  from the rise setting counter value/fall setting counter value is generated from a subtraction output terminal of the digital subtracting circuit  103 . In a case when an overflow occurs, that is, an addition output signal being generated by the digital adding circuit  102  becomes larger than the count maximum value Nmax of the counter  14 , the digital adding circuit  102  has a data correction function to avoid such an overflow, as will be detailed later. In a case when an underflow occurs, that is, a subtraction output signal being generated by the digital subtracting circuit  103  becomes smaller than the count initial value Nmini of the counter  14 , the digital subtracting circuit  103  has a data correction function to avoid such an underflow, as will be detailed later. 
     A signal commanding a direction of adjustment is supplied to a selection control input terminal of the multiplexer (MUX)  104 . 1st and 2nd input terminals of the multiplexer (MUX)  104  are supplied with an addition output signal from the digital adding circuit  102  and a subtraction output signal from the digital subtracting circuit  103 , respectively. More specifically, when delaying the phase of a drive pulse output signal for driving the ultrasonic monitor by the phase angle change value stored in the phase adjustment data register (4th register)  1 B, according to the signal commanding a direction of adjustment, the multiplexer (MUX)  104  outputs the addition output signal from the digital adding circuit  102 , received at its 1st input terminal, to its output terminal. Inversely, when advancing the phase of a drive pulse output signal for driving the ultrasonic monitor by the phase angle change value stored in the phase adjustment data register (4th register)  1 B, according to the signal commanding a direction of adjustment, the multiplexer (MUX)  104  outputs the subtraction output signal from the digital subtracting circuit  103 , received at its 2nd input terminal, to its output terminal. 
     An output signal of the multiplexer (MUX)  104  is supplied to an input terminal of the cycle overrun correction circuit  105 . This cycle overrun correction circuit  105  has a data correction function to avoid that a low-level or high-level pulse period of a drive pulse output signal being generated at the output terminal Tout of the pulse generator ( 19 ) in response to an arithmetic output signal from the output terminal OUT of the phase arithmetic circuit  1 A exceeds one cycle of 360 degrees. 
     &lt;&lt;Procedure for Calculating a Rise Setting Value and a Fall Setting Value&gt;&gt; 
       FIG. 3  is a diagram explaining a procedure for calculating a rise setting value and a fall setting value as counter values of the counter  14  for adjustment of changing timing of a drive pulse output signal for an ultrasonic motor in the semiconductor integrated circuit  1  according to the first embodiment depicted in  FIG. 2 . 
     At a first step S 400  in  FIG. 3 , multiplication of the count maximum value MAX as a counter value of the counter  14 , which corresponds to cycle data that was set in the cycle data register (3rd register)  12 , and a phase angle change value for timing adjustment, which was stored in the phase adjustment data register (4th register)  1 B, is performed by the digital multiplying circuit  100 . At this point, the count maximum value MAX of the counter  14  is represented by a binary number of 16 bits and the phase angle change value is represented by a decimal number. By the multiplication at this first step S 400 , a first calculated value is calculated. 
     At a next step S 500  presented in  FIG. 3 , the digital dividing circuit  101  divides the first calculated value calculated at the first step S 400  by 360 degrees of phase angle for one cycle. By the division at step S 500 , a changed counter value of the counter  14  required for desired phase angle change is calculated. This counter value of the counter  14  is also represented by a binary number of 16 bits. 
     At a further step S 600  presented in  FIG. 3 , when delaying the phase by the phase angle change value, the digital adding circuit  102  performs addition of the changed counter value of the counter  14  required for desired phase angle change, calculated at step S 500 , and a counter setting value of the counter  14  for rise setting, which is now set in the 1st register  10  before phase angle change. Moreover, at this step S 600 , the adding circuit  102  performs addition of the changed counter value of the counter  14  required for desired phase angle change, calculated at step S 500 , and a counter setting value of the counter  14  for fall setting, which is now set in the 2nd register  11  before phase angle change. Thus, by the addition at step S 600 , for the counter  14 , anew rise setting counter value and a new fall setting counter value required for desired changing timing adjustment of a drive pulse output signal are calculated. 
     At the further step S 600  presented in  FIG. 3 , when advancing the phase by the phase angle change value, the digital subtracting circuit  103  performs subtraction that subtracts the changed counter value of the counter  14  required for desired phase angle change, calculated at step S 500 , from the counter setting value of the counter  14  for rise setting, which is now set in the 1st register  10  before phase angle change. Moreover, at this step S 600 , the subtracting circuit  103  performs subtraction that subtracts the changed counter value of the counter  14  required for desired phase angle change, calculated at step S 500 , from the counter setting value of the counter  14  for fall setting, which is now set in the 2nd register  11  before phase angle change. Thus, by the subtraction at step S 600 , for the counter  14 , a new rise setting counter value and a new fall setting counter value required for desired changing timing adjustment of a drive pulse output signal are calculated. 
     In the procedure illustrated in  FIG. 3  for calculating a rise setting value and a fall setting value for the semiconductor integrated circuit  1  of the first embodiment, when compared with the procedure illustrated in  FIG. 16  for calculating a rise setting value and a fall setting value for the semiconductor integrated circuit  1  examined by the present inventors et al. in advance of the present invention, multiplication is performed in the first step S 400  and division is performed in the next step S 500 . 
     In the procedure illustrated in  FIG. 16  for calculating a rise setting value and a fall setting value, examined by the present inventors et al. in advance of the present invention, division is performed in the first step S 100  and multiplication is performed in the next step S 200 . As a result, there is a problem in which arithmetic accuracy decreases, as integer division ignores digits after the decimal point. To resolve this problem, it is needed to perform floating-point division entailing a larger amount of arithmetic operation. On the other hand, in the procedure illustrated in  FIG. 3  for calculating a rise setting value and a fall setting value for the semiconductor integrated circuit  1  of the first embodiment, the foregoing problem can be resolved only by simply reversing the order in which to perform division and multiplication. 
     &lt;&lt;Bit Configuration of the Phase Adjustment Data Register&gt;&gt; 
       FIG. 4  is a diagram depicting a bit configuration of the phase adjustment data register (4th register)  1 B of the phase arithmetic circuit  1 A in the semiconductor integrated circuit  1  of the first embodiment depicted in  FIG. 2 . 
     As depicted in  FIG. 4 , 1st through 14th bits, b 0  through b 13 , are phase adjustment data bits PA representing a phase angle change value for timing adjustment. A 15th bit b 14  is a reserved bit for future use for any purpose and a 16th bit b 15  is an adjustment value sign bit. In particular, the 16th bit b 15 , namely, the adjustment value sign bit is set to “1”, when advancing the phase by a phase angle change value is performed and set to “0”, when delaying the phase by a phase angle change value is performed. 
     &lt;&lt;Register Setting of the Phase Adjustment Data Register&gt;&gt; 
       FIG. 5  is a diagram explaining register setting values corresponding to phase angle change values settable in the phase adjustment data register (4th register)  1 B of the phase arithmetic circuit  1 A in the semiconductor integrated circuit  1  of the first embodiment depicted in  FIG. 2 . 
     A leftmost column lists angle change values; a second column from the left lists the phase angle change values multiplied by 100; a third column from the left lists a value of the adjustment value sign bit, namely, the 16th bit b 15 ; and a rightmost column lists register setting values that are set in the phase adjustment data register, corresponding to the phase angle change values. Reasons why the phase angle change values are multiplied by 100 in the second column from the left are because phase angle change values should be specified accurately to two decimal places and because the digital multiplying circuit  100  in the phase arithmetic circuit  1 A should be configured as an integer multiplier not a floating-point multiplier. 
     A first example is a phase angle change value of +90.00°. This value is multiplied by 100, which gives+9000. The adjustment bit sign bit is set to “0”. A register setting value of 2328h represented in hexadecimal is set in the phase adjustment data register  1 B. In order to convert a decimal number to a hexadecimal number, the decimal number is divided by 16, a resulting quotient is further divided by 16, which is repeated until a quotient of 0 results, while keeping all remainders, and the remainders are put in order beginning with the last remainder up to the first one. Hence, a decimal number of +9000 is converted to a hexadecimal number as follows. 
     +9000÷16=562 giving a remainder of 8 
     562÷16=35 giving a remainder of 2 
     35÷16=2 giving a remainder of 3 
     2÷16=0 giving a remainder of 2 
     By putting four remainders thus given put in order from bottom up, a hexadecimal number of 2328h is obtained. A suffix h denotes a hexadecimal number. Converting a decimal number to a hexadecimal number can be performed by activating software “calculators” included in accessory of an operating system OS of a personal computer (PC) and selecting a mathematical calculator from a “calculator type” menu. 
     In  FIG. 5 , a negative phase angle change value like −90.00° which is listed last (that is, a phase angle change value for advancing the phase) is calculated from a positive phase angle change value (that is, a phase angle change value for delaying the phase). More specifically, the hexadecimal number of 2328h of the positive phase angle change value of +90.00° is represented in binary notation as follows. 
     0010 0011 0010 1000 
     To calculate a register setting value for the negative phase angle change value of −90.00°, the most significant bit of this value of binary notation is changed from “0” to “1”. This change of the most significant bit corresponds to “1” (advancing the phase) and “0” (delaying the phase) of the adjustment value sign bit, namely, the 16th bit b 15  of the phase adjustment data register  1 B depicted in  FIG. 4 . 
     By this change of the most significant bit, the following value of binary notation is obtained. 
     1010 0011 0010 1000 
     This value of binary notation is represented in hexadecimal as A328h. In this way, a register setting value that is set in the phase adjustment data register  1 B, corresponding to the negative phase angle change value of −90.00° is obtained. 
     Register setting values that may be set in the phase adjustment data register  1 B corresponding to other positive and negative phase angle change values presented in  FIG. 5  are calculated in exactly the same way of calculation as described above. 
     Accordingly, in the semiconductor integrated circuit  1  of the first embodiment depicted in  FIG. 2 , a hexadecimal register setting value as presented in the rightmost column of  FIG. 5  is stored in the phase adjustment data register (4th register)  1 B of the phase arithmetic circuit  1 A for timing adjustment of a pulse output signal for driving the traveling wave type ultrasonic motor  2 . That is, in the semiconductor integrated circuit  1  of the first embodiment depicted in  FIG. 1 , the central processing unit (CPU)  1   a  stores a hexadecimal register setting value into the phase adjustment data register  1 B by executing control software for the traveling wave type ultrasonic motor  2  stored in the read only memory (ROM)  1   b.    
     &lt;&lt;Data Correction Function of the Digital Adding Circuit and of the Digital Subtracting Circuit&gt;&gt; 
       FIG. 6  is a diagram explaining the data correction function of the digital adding circuit  102  and of the digital subtracting circuit  103  in the phase arithmetic circuit  1 A according to the first embodiment depicted in  FIG. 2 . 
     In some cases, by the previously described procedure of  FIG. 3  for calculating a rise setting value and a fall setting value for the semiconductor integrated circuit  1  of the first embodiment, an overflow may occur, that is, an addition output signal being generated by the digital adding circuit  102  becomes larger than the count maximum value Nmax of the counter  14 . In  FIG. 6 , a count value N 1  becomes larger than the count maximum value Nmax of the counter  14 , which means an overflow occurring. In such a case, the digital adding circuit  102  in the phase arithmetic circuit  1 A according to the first embodiment depicted in  FIG. 2  exerts the data correction function to avoid this overflow. That is, the digital adding circuit  102  generates a corrected count value N 2  by subtracting the count maximum value Nmax from the overflow count value N 1 . Then, the phase arithmetic circuit  1 A stores this corrected count value N 2  into the 4th flip-flop (FF)  1 C. 
     Also, in some cases, by the procedure of  FIG. 3  for calculating a rise setting value and a fall setting value for the semiconductor integrated circuit  1  of the first embodiment, an underflow may occur, that is, a subtraction output signal being generated by the digital subtracting circuit  103  becomes smaller than the count initial value Nmini of the counter  14 . In  FIG. 6 , a count value N 3  becomes smaller than the count initial value Nmini of the counter  14 , which means an underflow occurring. In such a case, the digital subtracting circuit  103  in the phase arithmetic circuit  1 A according to the first embodiment depicted in  FIG. 2  generates a corrected count value N 4  as an absolute value of the negative value of the underflow count value N 3 . Then, the phase arithmetic circuit  1 A stores this corrected count value N 4  into the 5th flip-flop (FF)  1 D. 
     &lt;&lt;Advantageous Effects of the Semiconductor Integrated Circuit of the First Embodiment&gt;&gt; 
     According to the semiconductor integrated circuit  1  according to the first embodiment described hereinbefore with reference to  FIGS. 1 through 6 , arithmetic processing for timing adjustment of a pulse output signal is performed by the phase arithmetic circuit  1 A configured with hardware macros. Therefore, it is possible to reduce the amount of computation to be performed by the central processing unit (CPU) or the required amount of storage space in the built-in memory for such timing adjustment. 
     Moreover, according to the semiconductor integrated circuit  1  according to the first embodiment described with reference to  FIGS. 1 through 6 , because the digital multiplying circuit  100  precedes the digital dividing circuit  101  in the phase arithmetic circuit  1 A, multiplication is performed before division. Consequently, it is possible to resolve a problem in which arithmetic accuracy decreases, as integer division ignores digits after the decimal point. Or it is possible to resolve a problem in which it is needed to perform floating-point division entailing a larger amount of arithmetic operation. 
     Furthermore, according to the semiconductor integrated circuit  1  according to the first embodiment described with reference to  FIGS. 1 through 6 , phase angle change values are multiplied by 100, as presented in the second column from the left in  FIG. 5  which explains register setting values corresponding to phase angle change values settable in the phase adjustment data register  1 B. Therefore, it is possible that phase angle change values are specified accurately to two decimal places and that the digital multiplying circuit  100  in the phase arithmetic circuit  1 A is configured as an integer multiplier not a floating-point multiplier. 
     Second Embodiment 
     &lt;&lt;Another Configuration of a Drive Pulse Output Generating Circuit&gt;&gt; 
       FIG. 7  is a diagram depicting another configuration of a drive pulse output generating circuit which is a second functional module  1   g  of a semiconductor integrated circuit  1  according to a second embodiment. 
     The drive pulse output generating circuit  1   g  according to the second embodiment depicted in  FIG. 7  differs from the drive pulse output generating circuit  1   g  according to the first embodiment depicted in  FIG. 2  in the following point. 
     To the drive pulse output generating circuit  1   g  according to the second embodiment depicted in  FIG. 7 , an update enable register  1 G, an update timing control register  1 H, an AND circuit  1 I, and an update timing control circuit  1 J are added which are not included in the drive pulse output generating circuit  1   g  according to the first embodiment depicted in  FIG. 2 . 
     In the drive pulse output generating circuit  1   g  according to the second embodiment depicted in  FIG. 7 , an update enable signal from an output terminal of the update enable register  1 G and a timing signal from an output terminal of the update timing control circuit  1 J are supplied to 1st and 2nd input terminals of the AND circuit  1 I respectively. When a high-level enable signal is supplied from the update timing control register  1 H to a control input terminal of the update timing control circuit  1 J, the update timing control circuit  1 J is activated. Conversely, when a low-level disable signal is supplied from the update timing control register  1 H to the control input terminal of the update timing control circuit  1 J, the update timing control circuit  1 J is deactivated. 
     An output signal of a 1st comparator  17  and an output signal of a 2nd comparator  18  are supplied to 1st and 2nd input terminals of the update timing control circuit  1 J. An output signal of a 1st flip-flop (FF)  15 , an output signal of a 2nd flip-flop (FF)  16 , and an output signal of a 3rd flip-flop (FF)  13  are supplied to 3rd, 4th, and 5th input terminals of the update timing control circuit  1 J. 
     Moreover, in the drive pulse output generating circuit  1   g  according to the second embodiment depicted in  FIG. 7 , the 1st flip-flop (FF)  15 , the 2nd flip-flop (FF)  16 , and the 3rd flip-flop (FF)  13  stores their respective updated counter values in response to a high-level update command signal from an output terminal of the AND circuit  1 I. 
     Also in the drive pulse output generating circuit  1   g  according to the second embodiment depicted in  FIG. 7 , a phase arithmetic circuit  1 A is configured with a digital multiplying circuit  100 , a digital dividing circuit  101 , a digital adding circuit  102 , a digital subtracting circuit  103 , a multiplexer (MUX)  104 , and a cycle overrun correction circuit  105  which are configured in hardware in exactly the same arrangement as depicted in the lower part of  FIG. 2 . 
     &lt;&lt;Operation of the Drive Pulse Output Generating Circuit&gt;&gt; 
       FIGS. 8A and 8B  are diagrams explaining operation that would take place, when the drive pulse output generating circuit  1   g  according to the second embodiment depicted in  FIG. 7  does not have the update enable register  1 G, the update timing control register  1 H, the AND circuit  1 I, and the update timing control circuit  1 J. 
       FIG. 8A  is a diagram explaining operation of the drive pulse output generating circuit  1   g  according to the second embodiment depicted in  FIG. 7  without the above-mentioned circuits before an operation of phase angle change with the phase adjustment data register (4th register)  1 B. 
     As presented in  FIG. 8A , a rise setting value stored in the 1st flip-flop (FF)  15  is close to the count maximum value Nmax for the counter  14  to count up to it, which is set in the cycle data register  12 . A fall setting value stored in the 2nd flip-flop (FF)  16  is close to the count initial value Nmini for the counter  14  to count up from it. 
     In response to a match occurring between the counter value of the counter  14  and the rise setting value stored in the 1st flip-flop (FF)  15 , a drive pulse output signal φ 1  generated by the pulse generator  19  changes from the low level to the high level. 
     Besides, in response to a match occurring between the counter value of the counter  14  and the fall setting value stored in the 2nd flip-flop (FF)  16 , the drive pulse output signal φ 1  generated by the pulse generator  19  changes from the high level to the low level. 
     Hence, as presented in  FIG. 8A , a high-level period of the drive pulse output signal φ 1  generated by the pulse generator  19  crosses a cycle boundary between two cycles. 
       FIG. 8B  is a diagram explaining operation of the drive pulse output generating circuit  1   g  according to the second embodiment depicted in  FIG. 7  without the above-mentioned circuits after an operation of phase angle change with the phase adjustment data register (4th register)  1 B. As presented in  FIG. 8B , a low-level period of a drive pulse output signal φ 1 ′ generated by the pulse generator  19  crosses a cycle boundary between two cycles. 
     As presented in  FIG. 8B , a rise setting value stored in the 1st flip-flop (FF)  15  is close to the count maximum value Nmax for the counter  14  to count up to it, which is set in the cycle data register  12 . A fall setting value stored in the 2nd flip-flop (FF)  16  is close to the count initial value Nmini for the counter  14  to count up from it. 
     In response to a match occurring between the counter value of the counter  14  and the rise setting value stored in the 1st flip-flop (FF)  15 , the drive pulse output signal φ 1 ′ generated by the pulse generator  19  changes from the low level to the high level. 
     Beside, in response to a match occurring between the counter value of the counter  14  and the fall setting value stored in the 2nd flip-flop (FF)  16 , the drive pulse output signal φ 1 ′ generated by the pulse generator  19  changes from the high level to the low level. 
     Hence, as presented in  FIG. 8B , a high-level period of drive pulse output signal φ 1 ′ generated by the pulse generator  19  lies within the period of one cycle. 
       FIGS. 9A and 9B  are diagrams explaining operation that would take place, when the drive pulse output generating circuit  1   g  according to the second embodiment depicted in  FIG. 7  does not have the update enable register  1 G, the update timing control register  1 H, the AND circuit  1 I, and the update timing control circuit  1 J. 
       FIG. 9A  presents the drive pulse output signal φ 1  generated by the pulse generator  19  before an operation of phase angle change, presented in  FIG. 8A , and the drive pulse output signal φ 1 ′ generated by the pulse generator  19  after an operation of phase angle change, presented in  FIG. 8B . As presented in  FIG. 9A , across a second cycle boundary, the rise setting value in the 1st flip-flop (FF)  15  and the fall setting value in the 2nd flip-flop (FF)  16  are updated to a changed rise setting counter value stored in the 4th flip-flop (FF)  1 C and a changed fall setting counter value stored in the 5th flip-flop (FF)  1 D, respectively. 
       FIG. 9B  is a diagram presenting behavior of the signal being generated by the pulse generator  19  switching from the drive pulse output signal φ 1  to the drive pulse output signal φ 1 ′ due to the fact that the rise setting value in the 1st flip-flop (FF)  15  and the fall setting value in the 2nd flip-flop (FF)  16  are updated around the timing of the second cycle boundary, as presented in  FIG. 9A . 
     However, as presented in  FIG. 9B , a problem arises in which the drive pulse output signal being generated by the pulse generator  19  has an abnormally long high-level period around the timing of the second cycle boundary. As a result, a problem in which normally driving the ultrasonic motor  2  to run is not achievable and, in the worst case, the ultrasonic motor  2  might come down by overcurrent was also found out by the examination made by the present inventors et al. in advance of the present invention. 
     In contrast, the update timing control circuit  1 J included in the drive pulse output generating circuit  1   g  according to the second embodiment of  FIG. 7  is supplied with a comparison result from the 1st comparator  17 , a comparison result from the 2nd comparator  18 , a rise setting value in the 1st flip-flop (FF)  15 , a fall setting value in the 2nd flip-flop (FF)  16 , and cycle data in the 3rd flip-flop (FF)  13 . Accordingly, the update timing control circuit  1 J supplies a mask signal to the AND circuit  1 I. The mask signal prevents switching from the drive pulse output signal φ 1  to the drive pulse output signal φ 1 ′ at such timing that causes the drive pulse output signal being generated by the pulse generator  19  to have an abnormally long high-level period. 
     More specifically, the update timing control circuit  1 J predicts occurrence of an abnormal operation from various parameters of the drive pulse output generating circuit  1   g  with the phase arithmetic circuit  1 A according to the second embodiment depicted in  FIG. 7  and delays the switching timing of the drive pulse output signal by one cycle. 
       FIGS. 10A and 10B  are diagrams explaining normal operation behavior that is accomplished owing to the fact that the drive pulse output generating circuit  1   g  according to the second embodiment depicted in  FIG. 7  has the update enable register  1 G, the update timing control register  1 H, the AND circuit  1 I, and the update timing control circuit  1 J. 
     Similarly to  FIG. 9A ,  FIG. 10A  presents the drive pulse output signal φ 1  generated by the pulse generator  19  before an operation of phase angle change, presented in  FIG. 8A , and the drive pulse output signal φ 1 ′ generated by the pulse generator  19  after an operation of phase angle change, presented in  FIG. 8B . However, as presented in  FIG. 10A , update is performed across a third cycle boundary delayed by one cycle from the second cycle boundary. That is, in the update timing of the third cycle boundary, the rise setting value in the 1st flip-flop (FF)  15  and the fall setting value in the 2nd flip-flop (FF)  16  are updated to a changed rise setting counter value stored in the 4th flip-flop (FF)  1 C and a changed fall setting counter value stored in the 5th flip-flop (FF)  1 D, respectively. 
       FIG. 10B  is a diagram presenting behavior of the signal being generated by the pulse generator  19  switching from the drive pulse output signal φ 1  to the drive pulse output signal φ 1 ′ due to the fact that the rise setting value in the 1st flip-flop (FF)  15  and the fall setting value in the 2nd flip-flop (FF)  16  are updated around the timing of the third cycle boundary, as presented in  FIG. 10A . 
       FIGS. 11A and 11B  are diagrams explaining operation that would take place, when the drive pulse output generating circuit  1   g  according to the second embodiment depicted in  FIG. 7  does not have the update enable register  1 G, the update timing control register  1 H, the AND circuit  1 I, and the update timing control circuit  1 J. 
       FIG. 11A  presents the drive pulse output signal φ 1  generated by the pulse generator  19  before an operation of phase angle change and the drive pulse output signal φ 1 ′ generated by the pulse generator  19  after an operation of phase angle change. As presented in  FIG. 11A , the low-level periods of the drive pulse output signal φ 1  and the drive pulse output signal φ 1 ′ generated by the pulse generator  19  cross a cycle boundary between two cycles. 
     Moreover, as presented in  FIG. 11A , across a second cycle boundary, the rise setting value in the 1st flip-flop (FF)  15  and the fall setting value in the 2nd flip-flop (FF)  16  are updated to a changed rise setting counter value stored in the 4th flip-flop (FF)  1 C and a changed fall setting counter value stored in the 5th flip-flop (FF)  1 D, respectively. 
       FIG. 11B  is a diagram presenting behavior of the signal being generated by the pulse generator  19  switching from the drive pulse, output signal φ 1  to the drive pulse output signal φ 1 ′ due to the fact that the rise setting value in the 1st flip-flop (FF)  15  and the fall setting value in the 2nd flip-flop (FF)  16  are updated around the timing of the second cycle boundary, as presented in  FIG. 11A . 
     However, as presented in  FIG. 11B , a problem arises in which, around the timing of the second cycle boundary, an abnormally short low-level period occurs between two high-level periods of the drive pulse output signal being generated by the pulse generator  19 . As a result, a problem in which normally driving the ultrasonic motor  2  to run is not achievable and, in the worst case, the ultrasonic motor  2  might come down by overcurrent was also found out by the examination made by the present inventors et al. in advance of the present invention. 
     In contrast, the update timing control circuit  1 J included in the drive pulse output generating circuit  1   g  according to the second embodiment of  FIG. 7  is supplied with a comparison result from the 1st comparator  17 , a comparison result from the 2nd comparator  18 , a rise setting value in the 1st flip-flop (FF)  15 , a fall setting value in the 2nd flip-flop (FF)  16 , and cycle data in the 3rd flip-flop (FF)  13 . Accordingly, the update timing control circuit  1 J supplies a mask signal to the AND circuit  1 I. The mask signal prevents switching from the drive pulse output signal φ 1  to the drive pulse output signal φ 1 ′ at such timing that causes the drive pulse output signal being generated by the pulse generator  19  to have an abnormally short low-level period. 
     More specifically, the update timing control circuit  1 J predicts occurrence of an abnormal operation from various parameters of the drive pulse output generating circuit  1   g  with the phase arithmetic circuit  1 A according to the second embodiment depicted in  FIG. 7  and delays the switching timing of the drive pulse output signal by one cycle. 
       FIGS. 12A and 12B  are diagrams explaining normal operation behavior that is accomplished owing to the fact that the drive pulse output generating circuit  1   g  according to the second embodiment depicted in  FIG. 7  has the update enable register  1 G, the update timing control register  1 H, the AND circuit  1 I, and the update timing control circuit  1 J. 
     Similarly to  FIG. 11A ,  FIG. 12A  presents the drive pulse output signal φ 1  generated by the pulse generator  19  before an operation of phase angle change, presented in  FIG. 8A , and the drive pulse output signal φ 1 ′ generated by the pulse generator  19  after an operation of phase angle change, presented in  FIG. 8B . However, as presented in  FIG. 12A , update is performed across a third cycle boundary delayed by one cycle from the second cycle boundary. That is, in the update timing of the third cycle boundary, the rise setting value in the 1st flip-flop (FF)  15  and the fall setting value in the 2nd flip-flop (FF)  16  are updated to a changed rise setting counter value stored in the 4th flip-flop (FF)  1 C and a changed fall setting counter value stored in the 5th flip-flop (FF)  1 D, respectively. 
       FIG. 12B  presents behavior of the signal being generated by the pulse generator  19  switching from the drive pulse output signal φ 1  to the drive pulse output signal φ 1 ′ due to the fact that the rise setting value in the 1st flip-flop (FF)  15  and the fall setting value in the 2nd flip-flop (FF)  16  are updated around the timing of the third cycle boundary, as presented in  FIG. 12A . 
     Third Embodiment 
     Further Configuration of a Drive Pulse Output Generating Circuit 
       FIG. 13  is a diagram depicting a further configuration of a drive pulse output generating circuit which is a second functional module  1   g  of a semiconductor integrated circuit  1  according to a third embodiment. 
     The drive pulse output generating circuit  1   g  according to the third embodiment depicted in  FIG. 13  differs from the drive pulse output generating circuit  1   g  according to the first embodiment depicted in  FIG. 2  in the following point. 
     The drive pulse output generating circuit  1   g  according to the third embodiment depicted in  FIG. 13  includes a 1st pulse generator  19 _ 1  for generating a 1st drive pulse output signal φ 1  which is generated from a 1st output terminal Tout 1  and a 2nd pulse generator  19 _ 2  for generating a 2nd drive pulse output signal φ 2  which is generated from a 2nd output terminal Tout 2 . 
     An output terminal of a 1st comparator  17 _ 1  and an output terminal of a 2nd comparator  18 _ 1  are coupled to 1st and 2nd input terminals of the 1st pulse generator  19 _ 1  respectively. An output terminal of a 3rd comparator  17 _ 2  and an output terminal of a 4th comparator  18 _ 2  are coupled to 1st and 2nd input terminals of the 2nd pulse generator  19 _ 2  respectively. 
     An output terminal of a 1st flip-flop (FF)  15 _ 1  and an output terminal of a 2nd flip-flop (FF)  16 _ 1  are coupled to a 1st input terminal of the 1st comparator  17 _ 1  and a 1st input terminal of the 2nd comparator  18 _ 1  respectively. An output terminal of a 3rd flip-flop (FF)  15 _ 2  and an output terminal of a 4th flip-flop (FF)  16 _ 2  are coupled to a 1st input terminal of the 3rd comparator  17 _ 2  and a 1st input terminal of the 4th comparator  18 _ 2  respectively. A counter value output by a counter  14  is supplied commonly to a second input terminal of each of the 1st comparator  17 _ 1 , the 2nd comparator  18 _ 1 , the 3rd comparator  17 _ 2 , and the 4th comparator  18 _ 2 . A count maximum value Nmax for the counter  14  to count up to it can be set by a value of cycle data that is supplied from a cycle data register via a 5th flip-flop (FF)  13 . Besides, cycle data that is stored in the 5th flip-flop (FF)  13  can be updated at timing when the 5th flip-flop is supplied with an update enable signal. 
     A 1st input terminal of the 1st flip-flop (FF)  15 _ 1  and a 1st input terminal of the 2nd flip-flop (FF)  16 _ 1  are coupled to an output terminal of a 1st selector  15 _ 1  and an output terminal of a 2nd selector  1 F_ 1  respectively. A 1st input terminal of the 3rd flip-flop (FF)  15 _ 2  and a 1st input terminal of the 4th flip-flop (FF)  16 _ 2  are coupled to an output terminal of a 3rd selector  1 E_ 2  and an output terminal of a 4th selector  1 F_ 2  respectively. An update enable signal is supplied commonly to a 2nd input terminal of each of the 1st flip-flop (FF)  15 _ 1 , the 2nd flip-flop (FF)  16 _ 1 , the 3rd flip-flop (FF)  15 _ 2 , and the 4th flip-flop (FF)  16 _ 2 . 
     An output terminal of a 1st rise setting register  10 _ 1  and an output terminal of a 1st fall setting register  11 _ 1  are coupled to a 1st input terminal of the 1st selector  1 E_ 1  and a 1st input terminal of the 2nd selector  1 F_ 1  respectively. An output terminal of a 2nd rise setting register  10 _ 2  and an output terminal of a 2nd fall setting register  11 _ 2  are coupled to a 1st input terminal of the 3rd selector  1 E_ 2  and a 1st input terminal of the 4th selector  1 F_ 2  respectively. Moreover, an output terminal of a rise setting flip-flop (FF)  1 C_ 1  and an output terminal of a fall setting flip-flop (FF)  1 D_ 1  are coupled to a 2nd input terminal of the 1st selector  1 E_ 1  and a 2nd input terminal of the 2nd selector  1 F_ 1  respectively. An output terminal of a rise setting flip-flop (FF)  1 C_ 2  and an output terminal of a fall setting flip-flop (FF)  1 D_ 2  are coupled to a 2nd input terminal of the 3rd selector  1 E_ 2  and a 2nd input terminal of the 4th selector  1 F_ 2  respectively. 
     A 1st input terminal In 1 , a 2nd input terminal In 2 , and a 3rd input terminal In 3  of a phase arithmetic circuit  1 A are supplied with a phase angle change value from a phase adjustment register  1 B, cycle data from a cycle data register  12 , and rise setting count/fall setting count values from setting registers  10 _ 1 ,  10 _ 2 ,  11 _ 1 ,  11 _ 2 , respectively. 
     A new rise setting count value and a new fall setting count value that are generated respectively from an output terminal OUT of the phase arithmetic circuit  1 A are stored into the rise setting flip-flops (FFs)  1 C_ 1 ,  1 C_ 2  and the fall setting flip-flops (FFs)  1 D_ 1 ,  1 D_ 2 , respectively. 
     According to the drive pulse output generating circuit  1   g  of the third embodiment depicted in  FIG. 13 , when generating a plurality of drive pulse output signals φ 1 , φ 2 , it is possible to make shared use of the phase adjustment register  1 B storing a phase angle change value, the cycle data register  12  storing cycle data, the phase arithmetic circuit  1 A executing phase arithmetic operation, and the counter  14  counting up. Owing to this shared use, it is therefore possible to reduce the area occupied by the semiconductor chip of the semiconductor integrated circuit  1  according to the third embodiment and power consumption by the semiconductor integrated circuit  1 . 
     While the invention made by the present inventors has been described specifically based on its different embodiments hereinbefore, it will be obvious that the present invention is not limited to the described embodiments and various modifications may be made without departing from the scope of the invention. 
     For example, pulse output signals generated by the semiconductor integrated circuit according to the present invention are not limited only to driving a traveling wave type ultrasonic motor; these signals can also be applied to driving a pulse motor such as a stepping motor.