Any poduct that contains a logic circuit is classified as digital hardware. 
- Moore's Law states that the number of a transistors on a chip doubles every two years
	- The International Technology Roadmap for Semiconductors (ITRS) forecasts technology, including the number of transistors on a chip
- Multiple integrated circuits can be connected using a printed circuit board, or PCB.
- *Standard chips* conform to an agreed upon standard for functionality and physical configuration. They are usually less than 100 transistors in size, and provide basic building blocks for logic.
	- These chips are combined to form a larger logic circuit
	- They were popular until the 1980s
	- As ICs improved, it became inefficient space-wise to have separate chips for each logical building block
	- The functionality of these chips is fixed, and they do not change.
# Programmable Logic Devices
Programmable logic devices (PLDs) include a number of programmable switches that can configure the internal circuitry of a chip
- The most common type of PLD is a Field Programmable Gate Array (FPGA)
- FPGAs are widely available, but come with the drawback that they're limited in speed and performance

# Application Specific Integrated Circuits
Application Specific Integrated Circuits (ASICs) have higher maximum performance and transistor density compared to FPGAs, but the cost of production is very high.
- A logic circuit is made of connected logic gates

# Binary Numbers
In base 10, a value is expressed by an n-tuple with n digits
$$ D = d_{n-1}d_{n-2} \cdots d_1 d_0 $$
This represents the value
$$ V(D) = d_{n-1} * 10^{n-1} + d_{n - 2} * 10^{n-2} + \cdots + d_1 * 10^1 + d_0 * 10^0 $$
In a binary or base 2 number system, each digit can be a zero or one, called a *bit*. 
$$ D = d_{n-1}d_{n-2} \cdots d_1 d_0 $$
To determine the integer value, a very similar formula can be used.
$$ V(B) = b_{n-1} * 2^{n-1} + b_{n-2} * 2^{n-2} \cdots b_{1} * 2^1 + b_0 * 2^0 $$This formula can be generalized as:
*For radix $r$*:
$$ k = k_{n-1} k_{n-2} \cdots k_1 k_0$$
- The base of a number is often notated in the format of $(n)_b$, EG a base 10 number might be $(14)_{10}$, and a binary number might be $(10)_2$. 
- The *least significant bit* (LSB) is usually the right-most bit. The highest value bit, or the *most significant bit* (MSB).
- A nibble is 4 bits, and a byte is 8 bits
## Conversions
### Base 10 to Binary
Repeatedly divide by 2, and track the remainder. 

As an example, the below table shows how one might convert from $(857)_{10}$ to base 2.

| Equation        | Remainder |     |
| --------------- | --------- | --- |
| $857 / 2 = 428$ | $1$       |     |
| $428 / 2 = 214$ | $0$       |     |
| $214 / 2 = 107$ | $0$       |     |
| $107 / 2 = 53$  | $1$       |     |
| $53 / 2 = 26$   | $1$       |     |
| $26 / 2 = 13$   | $0$       |     |
| $13 / 2 = 6$    | $1$       |     |
| $6 / 2 = 3$     | $0$       |     |
| $3 / 2 = 1$     | $1$       |     |
| $1 / 2 = 0$     | $1$       |     |

The final answer is $1101011001$. The least significant bit is the remainder of the first division operation, and the most significant bit is the remainder of the last operation.
# Definitions
- **Xtor** is an abbreviation for *transistor*
- **Moore's Law** states that the number of transistors on a chip doubles every two years.
- A tuple is a finite and ordered list of things