Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.



Published on

  • Be the first to comment

  • Be the first to like this


  1. 1. Adaptive Voltage Scaling Teja Adike
  2. 2. Adaptive voltage scaling – original idea Input register Ripple carry adder clockFreq monitor Output register Voltage scaling logic
  3. 3. Ripple carry adder
  4. 4. Maximum frequency of operation  I have run the simulations on the ripple carry adder and got the results below Add a=32’b111..111 and b=32’b000…001  With supply voltage at 3.3 V – 125 MHz  With supply voltage at 1 V – 40 MHz (Determined by calculating the delay for cout – propogation delay of the critical path)
  5. 5. Master slave D Flipflop
  6. 6. Binary up counter I have used the master slave flip flops to build a binary up counter
  7. 7. Simulation of binary counter clock q0 q3 q2 q1
  8. 8. Frequency monitor  I have used the binary counter to build the frequency monitor, which will be used to calculate the speed/ frequency of the adder.  The counter is kicked off once we apply the inputs a=32’b111..111 and b=32’b000…001 and it stops once the cout=1.  The value on the counter gives us the frequency of the adder.
  9. 9. Frequency monitor circuit
  10. 10. Simulation of frequency monitor Reset set to low When we add A=32 bit 1’s + B=1 Cout goes high Clock to binary counter Counts once reset goes to 0 3 clock cycles counted clock
  11. 11. Voltage scaling circuit
  12. 12. Voltage scaling circuit  In the picture shown above, I have created a voltage divider circuit using NMOS transistors stacked up.  Output can be selected using the select inputs.  There are 4 inputs enabling us to have 4 different outputs as supply voltage for the adder.  I have also used a chain of pass transistors (with increasing W/L ratios) to be able to drive the load capacitance(adder)
  13. 13. Modification to the original idea  The actual idea was to compare the output counter (number of cycles counted by the binary counter which determines the speed of adder) and the input counter and then scale the supply voltage accordingly.  But I did not figure out the voltage scaling logic to do that.  So instead, now I consider the input register as a mode selection input.
  14. 14. Modification to the original idea(continued)  We have 4 modes given by 0001,0010,0100,1000.  For these four given inputs, we can scale the supply voltage as shown in next slide
  15. 15. Voltage scaling - simulaton voltage Selection inputs Scaled voltage
  16. 16. Integrating everything  This voltage scaling circuit is integrated with the adder and the frequency monitor circuit.  By changing different modes (using input counter), we can scale the supply voltage to different values as shown in the above slide.  We can simulate this circuit and find the output on the output counter. (the speed of the circuit in number of cycles)
  17. 17. Integrating everything(2)  Please use the circuit – adder_with_voltage_scaling under the library OR2.  Once we run the saved simulation setting we can find the speed of the adder on the output counter and we can also see that the supply voltage gets scaled.  We can also change the mode by changing input counter inputs and re run the simulation.
  18. 18. Modified -Adaptive voltage scaling Input register Ripple carry adder clockFreq monitor Output register Voltage scaling logic We don’t scale based on the frequency of the adder. Instead we scale according to the mode selected and monitor the frequency.
  19. 19. Conclusion  Finally, I have built a circuit which dynamically scale the supply voltage (by choosing the mode) and the speed or frequency of this circuit can be monitored for different modes.
  20. 20. Thank you