Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. import math
  2.  
  3. kon = .0008 * 10 ** 6
  4. w = 2 * 10 ** -6
  5. #ion = kon * w * (vdd - vt) ** 2
  6. #ron = vdd / ion
  7. cin = 0.2*5.52 * 10 ** -15
  8. cout = cin / 4
  9. cwire = .15 * 10 ** -15 * 60 * 100
  10. rwire = 60 * 20 * 100
  11. koff = 1 * 10 ** 6
  12. #ioff = koff * w * math.exp(-vt/ (25 * 10 ** -3) )
  13. #tclk = 18 / 2 * math.log(2) * (ron * (cout + cwire + 2 * cin) + rwire * (cwire / 2 + 2 * cin))
  14. #etot = ( (vdd * ioff) * tclk + 1/2*(cout + cwire + 2 *cin) * vdd**2 * .1 ) * 10**9 * 262143 * 5
  15. #edp= tclk * etot
  16. #print(tclk)
  17. #print(etot)
  18. #print(edp)
  19. listdd = []
  20. listvt = []
  21. for i in range(0,71):
  22. listdd.append(0.3 + i / 100)
  23. for j in range(0,81):
  24. listvt.append(0.1 + j / 100)
  25. print(listdd)
  26. print(listvt)
  27. temp1 = 100000
  28. temp2 = 0
  29. blah = []
  30. smallestind = 0
  31. for k in range(len(listdd)):
  32. for m in range(len(listvt)):
  33. if listvt[m] > listdd[k] - 0.1:
  34. continue
  35. ion_v = kon * w * (listdd[k] - listvt[m]) ** 2
  36. ron_v = listdd[k] / ion_v
  37. ioff_v = koff * w * math.exp(-listvt[m] / (25 * 10 ** -3))
  38. tclk_v = 18 / 2 * math.log(2) * (ron_v * (cout + cwire + 2 * cin) + rwire * (cwire / 2 + 2 * cin))
  39. etot_v = ((listdd[k] * ioff_v) * tclk_v + 1 / 2 * (cout + cwire + 2 * cin) * listdd[k] ** 2 * .1) * 10 ** 9 * 262143 * 5
  40. temp2 = (tclk_v) * (etot_v)
  41. blah.append(temp2)
  42. if(temp1 >= temp2):
  43. temp1 = temp2
  44. smallestind = (k,m)
  45. print(temp1)
  46. print(tclk_v)
  47. print(etot_v)
  48. print(smallestind)
  49. print(listdd[smallestind[0]])
  50. print(listvt[smallestind[1]])
  51. print(min(blah))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement