Read Only Memory ROM
Total Page:16
File Type:pdf, Size:1020Kb
Read Only Memory ROM • A read only memory have address inputs and data outputs • With m address lines you can access the 2 m different 2m x n memory addresses Am-1ROM Dn-1 Am-2 • At each address, there is one Dn-2 data word with n bits D1 • Usually, the ROM also has an A1 D0 Output Enable (OE) input A0 William Sandqvist [email protected] Read Only Memory ROM Exemple of a ROM Read only memory: ROM 4M 512k × 8 bit Chip Enable activates the chip CE Output Enable connects memory to outputs OE (otherwise they are in the three-state mode) William Sandqvist [email protected] A small ROM Possible memory content A2 A1 A0 D3 D2 D1 D0 8x4 ROM 0 0 0 0 0 1 0 0 0 1 0 1 1 0 D3 0 1 0 1 1 1 1 A2 D2 0 1 1 1 1 0 1 A1 D1 1 0 0 0 0 1 1 D A0 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 William Sandqvist [email protected] ROM Pullup ”1” VDD GND 0 Ord 0 AddressAdressContent Innehåll GND 1 x1x0 z3z2z1z0 Ord 1 x0 00 1010 01 0101 x1 10 1100 2 Ord 2 11 0001 GND 3 Ord 3 OE OE=Output Enable z3 z2 z1 z0 William Sandqvist [email protected] ROM implementation of combinatorical functions AdressAddress Content Innehåll x z n-1 m-1 xn-1 …x 1x0 zm-1 …z 1z0 … … 0…00 1…10 f(x n-1,…,x 1,x 0) 0…01 0…01 x1 z1 …… x z 0 0 1…11 0…01 A ROM having n inputs with m outputs can be used to implement a combinatorial function with m outputs and 2n min-terms William Sandqvist [email protected] ROM implementation of sequence circuit Adress Innehåll xn-1 zm-1 Address Content … … xn-1 …x 3x2x1x0 zm-1 …z 3z2z1z0 f(x ,…,x ,x ) 0…0000 1…0001 x n-1 1 0 z 4 4 0…0001 0…0010 x3 z3 …… ... ... 1…1111 0…0000 x0 z0 A Moore-machine = CP one ROM and a register with D-flip- flops With feedbacks a ROM can be used to generate sequences and implement state machines William Sandqvist [email protected] Read and Write Memory Random Access Memory RAM • RAM-memory has also a Write ( WR ) input 2m x n Am-1RAM which allows us to Dn-1 Am-2 D enter a data word at a n-2 D given address A 1 1 D A 0 • Dn-1… D0 are both 0 inputs and outputs. OE WR William Sandqvist [email protected] Read-Write-Memory Random Access Memory RAM Read/Write memory: RD SRAM 4M 512k × 8 bit WR CS Chip Select activates the chip RD read from memory, data outputs are active RD WR write to memory WR (at write the data outputs are in the three-state mode ) William Sandqvist [email protected] SRAM Static Random Access Memory • A SRAM-memory consits of a matrix of SRAM-cells • To write ‘Data’ is used at Sel input! Strongest! – ‘Sel’ is set to 1 and the value that is on ‘Data’ is stored in the cell Data • To read ‘Data’ is used as output! – ‘Sel’ is set to 1, and the value from the cell is present at the output William Sandqvist [email protected] SRAM Data 1 Data 0 Sel 0 A matrix is formed by 2 m x n SRAM-cells Sel 1 William Sandqvist [email protected] SRAM-memory Data inputs d n – 1 d n – 2 d 0 Write tristate buffers are used to ensure that you just either Sel 0 reads or writes Sel 1 Sel a 0 2 a 1 Address decoder m a m – 1 m -to-2 m Sel 2 m ” 1 Read William Sandqvist [email protected] Data outputs q n – 1 q n – 2 q 0 DRAM Dynamic RAM • SRAM memorycell needs 4 transistors and it becomes too costly to implement a large memory • DRAM memorycell is using only one transistor and one capacitor William Sandqvist [email protected] DRAM Memorycell • DRAM-cell consists of Bit Line Word Line only one transistor and one capacitor • Skrivning C – To load the cell the word 1-bit DRAM cell line is set to ‘1’ • The cell now optains the value from the bit line William Sandqvist [email protected] DRAM Memorycell • To read is a little bit more complex Bit Line – You do not want to lose the Word Line information when reading! – The bit-line is set at a voltage between the High and Low – To read the cell the word line is set to C ‘1’ • The bitline now adjusts it’s voltage to a 1-bit DRAM voltage up or down cell • An extra circuit (per bit line) senses the current change direction to create a real 0 or 1 • Aftervards the charge in the capacitor C must be restored! William Sandqvist [email protected] DRAM Memory Chip Memorymodule with 8 chips 256Mbit (32M ×8) William Sandqvist [email protected] SRAM vs DRAM • SRAM takes up more space but a DRAM requires a simpler access logic and is therefore faster (but also more expensive) • DRAM is used for random access memories in our regular computers • When you remove the power you loses the contents of SRAM or DRAM memory! William Sandqvist [email protected] Memory types • Volatile memorys – Memories lose their information if power is disconnected • static RAM (SRAM) • dynamic RAM (DRAM) • Non-volatile memorys – Memories keep their information if power is disconnected • Flash (blockwise writing) • EPROM, EEPROM (bytewise writing) We need a combination of different memories in an electrotechnical design! William Sandqvist [email protected] Flash-memory • Non-volatile memory • low cost and low power consumption • can be erased and updated but it takes much more time than in a RAM-memory William Sandqvist [email protected] EPROM Erasable Programmable ROM Programmable ROM (can be programmed with a chip programmer) Erasable - can be erased using ultraviolet light and then reprogrammed. Hence the "window" on the top side of the chip. When working with modern electronic equipment you will not have to meet the EPROM. William Sandqvist [email protected] Memory technologies Technology Accesstime Cost $/GB SRAM 1 ns 1000 DRAM 50 ns 100 HDD 10 ms 1 Fast memory is expensive and inexpensive memories are slow! Principle numbers. William Sandqvist [email protected] Logic in a microprocessor There are both combinatorial and sequential logic in a processor. Control logik is a statemachine while the ALU are mostly combinatorial. William Sandqvist [email protected] Registry element Symbol Din D D Dut in ut WR WR > Clock WR / hold 1 logic element WR = 1 synchronous writing in a FPGA WR = 0 hold William Sandqvist [email protected] Register Symbol WR > 32 bit register is 32 logic elements in a FPGA William Sandqvist [email protected] Program counter -register Program memory: Byteaddressed Register: hoppadress ”4” JA An instruction is 4 ADD bytes PC, Program Counter counts up with "4" after each Jump/Run instruction. MUX 32 bit instruktion Register: programräknare At the program jumps PC is loaded > PC Clock with the jump address JA (Jump All processors have a program counter Address) and then the program pointing out where the next instruction is continues from to be fetched in the memory. there. William Sandqvist [email protected] Register with threestateoutpot Symbol WR OE > Symbol bidirectional (inputs and outputs are connected together) WR OE > William Sandqvist [email protected] Register and Databus 0 1 1 0 WR OE WR OE > > Databus Several bidirectional registers with three state outputs can be connected to each other to form a common data bus. William Sandqvist [email protected] Register and Databuss 1 0 0 1 WR OE WR OE > > Databus Data can now be controlled to be copied between all registers on the data bus. William Sandqvist [email protected] Dubble port register Symbol WR OE1 > OE2 More Dubble portregisters can be paired with each other for two common output buses. William Sandqvist [email protected] Mikrocomputer - architecture The computer registers. A 32 ×32 bit dubbleport Register File William Sandqvist [email protected] Mikrocomputer - add Example Add instruction 1. The instruction add R1,R2,R3 is fetched from memory (as binary code) 2. The instruction is decoded William Sandqvist [email protected] Mikrocomputer - add Example Add instruction 1. The instruction add R1,R2,R3 is fetched from memory (as binary code) 2. The instruction is decoded William Sandqvist [email protected] Mikrocomputer - add Example Add instruction 3. Register R2 and R3 are add with the ALU 4. The Result is written to register R1 William Sandqvist [email protected] Mikrocomputer - add Example Add instruction 3. Register R2 and R3 are add with the ALU 4. The Result is written to register R1 it requires several clock pulse periods for the implementation of an instruction. (maybe you could arrange a Pipeline? ) William Sandqvist [email protected] Register file The processor has a 32 × 32 bit register file (with dual port registers). It can therefore be simultaneously read from any two registers or write to a register per clock pulse. The computer instruction add , means the sum add R1, R2,R3 R2+R3 is put in R1 R0 … R31 A register file whith 32 registers 32 ×32 bit register file are 32 2 = 1024 logic elements in a FPGA ADD A 32 bit adder are 32 logic- elements in a FPGA William Sandqvist [email protected] Possible instruction format 32 bit add r1, r2, r3 instruction 5 bit 5 bit 5 bit Operatingcode – we want to add 1 of 32 reg 1 of 32 reg 1 of 32 reg William Sandqvist [email protected] William Sandqvist [email protected].