3 Parity Generation and Checking Parity: The number of 1’s in a bit stream. Application: Error detection and correction. Parity generator: the circuit that generates the parity bit before transmitting. Parity checker: the circuit that checks the parity in the receiver.
4 Parity Generation - Example P(X,Y,Z) must produce a 1 for all the input combinations that contain an odd number of 1s Thus, it is a 3-input odd function P = X Y Z
5 Parity Checking - Example (cont.) How would you implement a parity checker for the previous example? X Y Z PUse a 4-input XOR circuit (another odd function) C = X Y Z P 1 indicates an error OR X Y Z P)’A 4-input XNOR circuit (even function) C = (X Y Z P)’ 1 indicates a pass
9 A‘B’C’D’ A ‘B’C’D A‘B’CD’ A‘B’CD A‘BC’D’ A‘BC’D A‘BCD’ A‘ BCD A B’C’D’ A B’C’D A B’CD’ A B’CD A B C’D’ A B C’D A B C D’ A B C D F 1 F 3 F 2 A B C D S2S2 S1S1 S0S0 S3S3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4:16 dec Enb Decoder Produces minterms ORs Produce SOP’s
10 ROM D7 D6 D5 D4 D3 D2 D1 D0 A2 A1 A0 A B C F0 F1F2 F3 X X X X X X X X X X ROM A decoder A set of programmable OR’s
11 ROM vs. PLA/PAL (a) Programmable read-only memory (PROM) Inputs Fixed AND array (decoder) Programmable OR array Outputs Programmable Connections (b) Programmable array logic (PAL) device Inputs Programmable AND array Fixed OR array Outputs Programmable Connections (c) Programmable logic array (PLA) device Inputs Programmable OR array Outputs Programmable Connections Programmable Connections Programmable AND array
12 General Logic Implementation Given a 2 k xn ROM, we can implement ANY combinational circuit with at most k inputs and at most n outputs. Why? k-to-2 k decoder will generate all 2 k possible minterms Each of the OR gates must implement a m() Each m() can be programmed
13 Example Find a ROM-based circuit implementation for: f(a,b,c) = a’b’ + abc g(a,b,c) = a’b’c’ + ab + bc h(a,b,c) = a’b’ + c Solution: Express f(), g(), and h() in m() format (use truth tables) Program the ROM based on the 3 m()’s
14 Example There are 3 inputs and 3 outputs, thus we need a 8x3 ROM block. −f = m(0, 1, 7) −g = m(0, 3, 6, 7) −h = m(0, 1, 3, 5, 7) 3-to-8 decoder 0123456701234567 a b c f g h
15 ROM as a Memory Read Only Memories (ROM) or Programmable Read Only Memories (PROM) have: N input lines, M output lines, and 2 N decoded minterms. Can be viewed as a memory with the inputs as addresses of data (output values), hence ROM or PROM names!
16 (Memories) Volatile: Random Access Memory (RAM): −SRAM "static" −DRAM "dynamic" Non-Volatile: Read Only Memory (ROM): −Mask ROM "mask programmable" −EPROM "electrically programmable" −EEPROM “electrically erasable electrically programmable" −FLASH memory - similar to EEPROM with programmer integrated on chip
17 ROM as Memory 01101 10000 21001 30010 40000 51000 60011 70100 Address 34 8x4 ROM D0 D1 D2 D3 D4 D5 D6 D7 A2 A1 A0 A B C F3 F2F1 F0 X X X X X X X X X X Read Example: For input (A 2,A 1,A 0 ) = 011, output is (F 0,F 1,F 2,F 3 ) = 0010. What are functions F 3, F 2, F 1 and F 0 in terms of (A 2, A 1, A 0 )? A[2:0]F[3:0]
19 ROM vs. PLA/PAL ROM approach advantageous when (1) design time is short (no need to minimize output functions) (2) little sharing of product terms among output functions ROM problem: (1) size doubles for each additional input, (2) can't use don't cares PLA approach advantageous when (1) design tool like espresso is available (2) many minterms are shared among the output functions PAL problem: constrained fan-ins on OR planes
20 ROM vs. PLA ROM Cheap (high-volume component). Medium speed. PLA Expensive −Complex design; need more sophisticated tools. Slow − Two programmable planes).
21 Standard Devices Vpp and PGM are used when programming 2764 EPROM 8K x 8