Digital Design Basics Analog vs Digital Why we need digital?
Reproducibility, economy, programmability…
Digital Devices Gates, FFs Combinational, sequential circuits
Electronic and software aspect of digital design
Digital abstraction Noise Margin specification
Examples of software tools
Integrated Circuits (IC) A collection of one or more gates
fabricated on a single silicon chip. Wafer, die
Small-scale integration (SSI): 1-20 DIP: dual in-line-pin package Pin diagram, pinout
MSI: 2-200 gates LSI: 200-200,000
VLSI: >100,000, 50million (1999)
Programmable Logic Device (PLD) ICs which Logic function can be
programmed after manufacture. 2-level AND-OR gates using user-
programmable connections PLAs: programmable Logic Arrarys. PALs: programmable array logic devices Programmable logic devices (PLDs)
CPLD: complex PLD FPGA: Field-Programmable Gate Array
Application-Specific ICs (ASIC) Semicustom IC: chips designed for a
particular, limited product/application Reducing chip count, size, power
consumption Higher performance. NRE: nonrecurring engineering cost
Standard cells: library Gate arrary: an IC with internal structure as
an array of gates, unspecified interconnection
Digital Design Levels Many representations of digital logic Device Physics and IC manufacturing
Moore’s Law [1965, Gordon Moore]:
Transistor level --->Logic design, functional building blocks
Transistor level, Truth table, gate level logic,prepackaged blocks, equations, HDL
Binary Representation The basis of all digital data is binary representation. Binary - means ‘two’
1, 0 True, False Hot, Cold On, Off
We must be able to handle more than just values for real world problems 1, 0, 56 True, False, Maybe Hot, Cold, LukeWarm, Cool On, Off, Leaky
Positional Notation Base Radix Weight Radix 2, 8, 10,16
Unsigned numbers
N binary digits (N bits) can represent unsigned integers from 0 to 2N-1.
Conversions: Hex <----->binary Octal <-----> binary
(padded with zero) Any base <----->decimal
Operations (binary): addition/subtraction/multiplication/division
Hex to Binary, Binary to Hex
A2F16 = 1010 0010 11112
34516 = 0011 0100 01012
Binary to Hex is just the opposite, create groups of 4 bits starting with least significant bits. If last group does not have 4 bits, then pad with zeros for unsigned numbers.
10100012 = 0101 00012 = 5116
Padded with a zero
Conversion of Any Base to Decimal
Converting from ANY base to decimal is done by multiplying each digit by its weight and summing.
1011.112 = 1x23 + 0x22 + 1x21 + 1x20 + 1x2-1 + 1x2-2
= 8 + 0 + 2 + 1 + 0.5 + 0.25 = 11.75
Binary to Decimal
Hex to Decimal
A2F16 = 10x162 + 2x161 + 15x160 = 10 x 256 + 2 x 16 + 15 x 1 = 2560 + 32 + 15 = 2607
Conversion of Decimal Integer To ANY Base
Divide Number N by base R until quotient is 0.
Remainder at EACH step is a digit in base R, from Least Significant digit to Most significant digit.
Conversion of Decimal Integer To ANY BaseExample
Convert 53 to binary
53/2 = 26, rem = 1 26/2 = 13, rem = 0 13/2 = 6 , rem = 1 6 /2 = 3, rem = 0 3/2 = 1, rem = 1 1/2 = 0, rem = 1
5310 = 1101012
= 1x25 + 1x24 + 0x23 + 1x22 + 0x21 + 1x20
= 32 + 16 + 0 + 4 + 0 + 1 = 53
Least Significant Digit
Most Significant Digit
Binary, Decimal addition
34
+ 17------ 51from LSD to MSD:7+4 = 1; with carry out of 1 to next column
1 (carry) + 3 + 1 = 5.answer = 51.
Decimal 1010112
+ 0000012
--------------- 1011002
From LSB to MSB:1+1 = 0, carry of 11 (carry)+1+0 = 0, carry of 11 (carry)+0 + 0 = 1, no carry1 +0 = 10 + 0 = 0 1 + 0 = 1 answer = 1011002
Binary
SubtractionDecimal
900
- 001------- 899
0-1 = 9; with borrow of 1 from next column0 -1 (borrow) - 0 = 9, with borrow of 1 9 - 1 (borrow) - 0 = 8.Answer = 899.
Binary
1002
- 0012
------- 0112
0-1 = 1; with borrow of 1 from next column0 -1 (borrow) - 0 = 1, with borrow of 1 1 - 1 (borrow) - 0 = 0.Answer = 0112.
Representation of Negative Numbers Signed-Magnitude Representation:
Negates a number by changing its sign. Complement Number Systems: negates
a number by taking its complement. Diminised Radix-Complement
Representation One’s-Complement
Radix-Complement Representation Two’s-Complement
NOTE:
Fix number of digits
SM, 1’s complment, 2’s complment may be diffierent for NEGATIVE numbers, but
for positive numbers, the representations in SM, 1’s complement, 2’s complement are the SAME, equals to the unsigned binary representation.
Ranges (N bits)
1’s complement can represent the signed integers
-2(N-1) - 1 to + 2(N-1) - 1
unsigned binary can represent unsigned integers from 0 to 2N-1.
SM can represent the signed integers
-2(N-1) - 1 to + 2(N-1) - 1
2’s complement can represent the signed integers
-2(N-1) to + 2(N-1) - 1
Sign extension For unsigned binary, Just add zeros to the
left.
For signed binary (SM,1’s,2’s complement…): Take whatever the SIGN BIT is, and
extend it to the left.
Conversions for signed numbers Hex--->signed decimal Given a Hex number, and you are told to convert to a signed integer (either as
signed magnitude, 1s complement, 2s complement) Step 1: Determine the sign Step 2: determine magnitude Step 3: combine sign and magnitude
Signed decimal ---->hex Step 1: Know what format you are converting to!!! Ignore the sign, convert the magnitude of the number to binary. Step 3 (positive decimal number): If the decimal number was
positive, then you are finished no matter what the format is! Step 3 (negative decimal number): more work need to
do.
Hex to Signed Decimal Conversion Rules
STEP 1: Determine the sign! If the Most Significant Bit is zero, the sign is positive. If the MSB is one, the sign is negative. This is true for ALL THREE representations: SM, 1s complement, 2s complement.
STEP 2 (positive sign): If the sign is POSITIVE, then just convert the hex value to decimal. The representation is the same for SM, 1s complement, 2s complement.STEP 2 (negative sign): If the sign is Negative, then need to compute the magnitude of the number.
If the number is SM format, set Sign bit to ZeroIf the number is 1s complement, complement each bit.If the number is 2s complement, complement and add one.
STEP 3 : Just combine the sign and magnitude to get the result.
Signed Decimal to Hex conversion
Step 1: Know what format you are converting to!!! You must know if you are converting the signed decimal to SM, 1s complement, or 2s complement.Step 2: Ignore the sign, convert the magnitude of the number to binary.
Step 3 (positive decimal number): If the decimal number was positive, then you are finished no matter what the format is!
Step 3 (negative decimal number): Need to do more if decimal number was negative.
If converting to SM format, set Sign bit to One:If converting to 1s complement, complement each bit. If converting to 2s complement, complement each bit and add 1.
signed addition/subtraction Two’s-complement
Addition rules Subtraction rules
Overflow: Out of range Detecing unsigned overflow (carry out
of MSB) Detecing 2’s complement overflow
Detecting Two’s Complement Overflow
Two’s complement overflow occurs is:
Add two POSITIVE numbers and get a NEGATIVE result Add two NEGATIVE numbers and get a POSITIVE result
We CANNOT get two’s complement overflow if I add a NEGATIVE and a POSITIVE number together.
The Carry out of the Most Significant Bit means nothing if the numbers are two’s complement numbers.
Codes Code: A set of n-bit strings in which different bit
strings represent different numbers or other things. Code word: a particular combination of n-bit values
N-bit strings at most contain 2n valid code words. To represent 10 decimal digits, at least need 4 bits. Excessive ways to choose ten 4-bit words. Some
common codes: BCD: Binary-coded decimal, also known as 8421 code Excess-3 2421…
Codes can be used to represent numerical numbers, nonnumerical texts, events/actions/states/conditions
How to construct Gray Code Recursively
A 1-bit Gray Code has 2 code words, 0, 1 The first 2n code words of an (n+1)-bit
Gray code equal the code words of an n-bit Gray Code, written in order with a leading 0 appended.
The last 2n code words equal the code words of an n-bit Gray Code, but written in reverse order with a leading 1 appended.
Another methode to construct Gray Code The bits of an n-bit binary or Gray-
code word are numbered from right to left, from 0 to n-1
Bit i of a Gray code word is 0 if bits i and i+1 of the
corresponding binary code words are the same
1: otherwise