Calculator
 Forum Verilog-AMS Analysis Modeling Design Theory Books

Designer's Guide Community Calculator

 The Designer's Guide Community Calculator is an RPN calculator designed for electrical engineers engaged in the design of electronic circuits. As such, it provides operations and constants useful to circuit designers. However, it also has several unique features that serve to distinguish it from other scientific calculators available on the web: Efficient command line entry. Entry and display of numbers with SI scale factors. Entry and display of integers in base 2, 8, 10, and 16 using Verilog format. Multistep undo. Compatibility with your computer's clipboard feature. Observable memories. Return to calculator
Basic Operation
 RPN calculators use a stack for their calculations. The stack consists of 4 registers, x, y, z, and t, the contents of each is visible. Generally operations are performed on the contents of the x register, perhaps along with the contents of the y register, and saved in the x register. The z and t registers are used for temporary storage. Example: 4 × 8 Enter 4 into the cmd field and use either the enter key (on the keyboard) or enter ↑ button (in the calculator) to store it into the x register. Enter 8 into the cmd field and use either the enter key or enter ↑ to store it into the x register. Notice that this pushes 4 to the y register. Anything in the other registers would likewise be pushed up except for the contents of the t register, which is lost. Now either enter a * into the cmd window and type enter on the keyboard or press enter ↑, or press the × button. This multiplies the contents of the x and y registers and places the result in the x register. The contents of the z and t registers are popped down and 0 is loaded into t. Example: (4 × 8) + (3 × 5) The product of 4 and 8 should already be in the x register from the last example. Enter 3 and then enter 5. At this point 32 should be in the z register, 3 should be in the y register, and 5 should be in the x register. Press the × to compute the product of 3 and 5. Now 32 will be in the y register and 15 in the x register. Press the + to compute the sum. It is possible to enter multiple commands in the cmd window. For example, the first example calculation could have been preformed by entering 4 8 * into the command window and then type enter, or by entering 4 8 into the command window and pressing ×. It is possible to mix the use of the command line and the buttons. Activating a button causes the command line to be executed before the action associated with the button occurs. Select operators can be entered without preceding them with a space if they follow a number or a constant. So the second example could be entered on one line with 4 8* 3 5* + You copy numbers from the x register to and from the various memory registers using the small and buttons provided inside the memory register. Hit the back button on your browser if you make a mistake. Return to calculator
Entering and Displaying Numbers

Real numbers are accepted in several different forms. For example, consider 1.3 × 10-6. It can be entered as:
0.0000013
1.3e-6
1.3u

In the last example, the SI scale factor u is used to multiply the number given by 10-6. A complete list of all of the scale factors accepted for input is shown in the table on the right.

You may choose the manner in which real numbers are displayed. Again, 1.3 × 10-6 is used as example to illustrate the various choices. You can also choose how many digits should be displayed. In these examples, the choice of digits is set to 2.

 ENG 1.26μ For most situations this is simplest and easiest to interpret format. FIX 0.00 Useful when working with currency. FLT 1.26e-6 Useful when using the clipboard to copy results to another application. SCI 1.26 × 10-6 Pleasing to traditionalists.

Example: 2 cos(2π 1MHz 125ns)
This example uses a trig function, and so it is important to assure the trig mode is set appropriately. To do so, type 'rads' and hit the enter key or use the mouse to select RADS from the trigonometry mode field.

Now click on , enter 1M, click on , enter 125n, click on again, then , enter 2, and finally click on .

Alternatively, you can use only the keyboard with
rads 2pi 1M* 125n* cos 2*

The result should be √2 or 1.414...

You may also enter binary, octal, decimal, and hexadecimal integers using the manner in which Verilog accepts these numbers. Consider the number 1000. It can be written as follows:

 HEX 'h3E8 DEC 'd1000 OCT 'o1750 BIN 'b1111101000

You can enter a number in whatever base you like, but it is always displayed in the manner specified by the number format setting. Besides the settings already described for real numbers, there are also settings for integers: HEX, DEC, OCT, and BIN, for displaying numbers in hexadecimal, decimal, octal, and binary. HEX, OCT, and BIN represent negative numbers in twos-complement. Also with these settings the number of digits requested sets the maximum number of digits displayed. If a number is larger than what can be displayed with the specified number of digits, then the most significant digits are suppressed.

 Multiplier Name Symbol Multiplier Name Symbol 1024 yotta Y 10-3 milli m 1021 zetta Z 10-6 micro u 1018 exa E 10-9 nano n 1015 peta P 10-12 pico p 1012 tera T 10-15 femto f 109 giga G 10-18 atto a 106 mega M 10-21 zepto z 103 kilo K or k 10-24 yocto y

 Multiplier Name Symbol Multiplier Name Symbol 1012 tera T 10-3 milli m 109 giga G 10-6 micro μ 106 mega M 10-9 nano n 103 kilo K 10-12 pico p 10-15 femto f 10-18 atto a
Available Commands

You may type one or more commands into the command window. Each command must be separated by one or more space, with the only exception that select operators, marked with an asterisk (*), may immediately follow numbers and constants without a space. The available commands are listed below. Notice that some commands are not associated with buttons.

 Button Command Operation Description Comment Basic Operations + + add* x ← x + y − - subtract* x ← x − y × * multiply* x ← x × y ÷ / divide* x ← x ÷ y || || parallel combination* x ← (x × y)/(x + y) computes the resistance of a pair of resistors in parallel or the capacitance of a pair of capacitors in series x2 sqr, x2 square x ← x2 √x sqrt, rt, rtx square root x ← x1/2 x must not be negative 1/x recip, 1/x reciprocal x ← x−1 x must not be zero x! !, fact factorial* x ← x! x must be nonnegative integer % percent* x ← x/100 × y %Δ %chg percent change x ← 100(x − y)/y y must not be zero rms root mean square x ← (x2 + y2)1/2 Logarithms and Exponentiation ln x ln, loge natural log x ← loge(x) x must be positive ex exp, aln, aloge, etox exponential or e raised to x power x ← ex log x log, log10 common log x ← log10(x) x must be positive 10x 10tox, alog, alog10, exp10 10 raised to x power x ← 10x log2 base 2 log x ← log2(x) x must be positive 2tox, alog2, exp2 2 raised to x power x ← 2x yx ytox, yx, pow y raised to x power x ← yx y must be positive if x is not an integer Trigonometry DEGS deg use degrees RADS rad use radians sin x sin sine x ← sin(x) sin−1 x asin arc sine x ← sin−1(x) −1 ≤ x ≤ 1 cos x cos cosine x ← cos(x) cos−1 x acos arc cosine x ← cos−1(x) −1 ≤ x ≤ 1 tan x tan tangent x ← tan(x) tan−1 x atan arc tangent x ← tan−1(x) −π/2 < x < π/2 R → P rtop rectangular coordinates to polar x ← (x2 + y2)1/2 y ← tan−1(y/x) P → R ptor polar coordinates to rectangular x ← x cos(y) y ← x sin(y) R → D rtod radians to degrees x ← 180 x /π D → R dtor degrees to radians x ← π x / 180 Binary Operators ~ Bitwise negation* x ← ~x x is rounded to an integer before performing operation & Bitwise and* x ← x & y x and y are rounded to integers before performing operation | Bitwise or* x ← x | y x and y are rounded to integers before performing operation ^ Bitwise exclusive or* x ← x ^ y x and y are rounded to integers before performing operation Constants π pi π x ← 3.141592... 2π 2pi 2π x ← 6.283185... √2 rt2, sqrt2 √2 x ← 1.414214... q q charge of an electron x ← 1.60217653×10−19 C k k Boltzmann's constant x ← 1.3806505×10−23 J K−1 h h Plank's constant x ← 6.6260693×10−34 J s G universal gravitational constant x ← 6.6742×10−11 m−3 kg−1 s−2 c c speed of light x ← 299,792,458 m/s 0°C 0c, 0C zero degrees Celsius in Kelvin x ← 273.15 K ε0 eps0 permittivity of free space x ← 8.854187817×10−12 F/m1 μ0 mu0, u0 permeability of free space x ← 4×10−7 π; N/A2 rand uniformly distributed random number between 0 and 1 x ← ? Unit Conversions ftoc convert temperature from Fahrenheit to Celsius x ← (x - 32)/1.8 ctof convert temperature from Celsius to Fahrenheit x ← 1.8x + 32 Decibels → dB20 db20 convert voltage or current ratio to dB x ← 20 log10(|x|) dB20→ adb20 convert dB to voltage or current ratio x ← 10x/20 → dB10 db10 convert power ratio to dB x ← 10 log10(|x|) dB10→ adb10 convert dB to power ratio x ← 10x/10 v → dBm vtodbm, vdbm convert peak voltage across R to power in dB relative to 1mW x ← 30 + 10 log(x2/(2R)) Assumes sinusoidal signal. dBm → v dbmtov, dbmv convert power in dB relative to 1mW to peak voltage across R x ← (2R 10(x−30)/10)−1/2 Assumes sinusoidal signal. i → dBm itodbm, idbm convert peak current through R to power in dB relative to 1mW x ← 30 + 10 log(Rx2/2) Assumes sinusoidal signal. dBm → i dbmtoi, dbmi convert power in dB relative to 1mW to peak current through R x ← (2 10(x−30)/10/R)−1/2 Assumes sinusoidal signal. R stor store R, the resistance used in dBm calculations R ← x R must be greater than 0. R rclr recall R, the resistance used in dBm calculations x ← R Stack Manipulations enter↑ ent, dup enter a number or run command, if nothing in cmd field push x onto stack again clr x clx, clr, clrx pop x from stack x ← y y ← z z ← t clstk, clrstk clear the stack x ← 0 y ← 0 z ← 0 t ← 0 chs chs, chsx change sign of x x ← −x last x lastx recall previous value of x R↑ ru roll stack upwards x ← t y ← x z ← y t ← z R↓ rd roll stack downwards x ← y y ← z z ← t t ← x x ↔ y swap, xy swap x and y x ← y y ← x ξ stoξ store x intoξ ξ ← x ξ represents either register x, y, z, or t ξ rclξ recall ξ into x x←ξ ξ represents either register x, y, z, or t Memory Manipulations N stoN store x into N N ← x N represents memory 0-9 N rclN recall N into x x ← N N represents memory 0-9 clmem, clrmem clear all memories A button for this function is provided on the primary version of the calculator (the version for Firefox). It appears as a thin blue unlabeled bar above memory 0. Display eng, engN display number in engineering notation (ex. 25.4m) display N + 1 significant figures, 0 ≤ N ≤ 12 fix, fixN display number with fixed precision (ex. 0.0254) display N digits to the right of the decimal point, 0 ≤ N ≤ 12 flt, fltN display number in floating point notation (ex. 2.54e-2) display N + 1 significant figures, 0 ≤ N ≤ 12 sci, sciN display number in scientific notation (ex. 2.54×10−2) display N + 1 significant figures, 0 ≤ N ≤ 12 hex, hexN display numbers as hexadecimal integers (ex. 'hFF) display N digits, 0 ≤ N ≤ 8 dec, decN display numbers a decimal integers (ex. 'd255) display N digits, 0 ≤ N ≤ 10 oct, octN display numbers a octal integers (ex. 'o377) display N digits, 0 ≤ N ≤ 11 bin, binN display numbers a binary integers (ex. 'b11111111) display N digits, 0 ≤ N ≤ 32 Miscellaneous update update, refresh update calculator to use new modes clr all clall, clrall clear the entire calculator

* These operators may immediately follow numbers or constants (no space is required).