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 $$ - 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