Read Only Memory ROM

Read Only Memory ROM

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 william@kth.se 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 william@kth.se 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 william@kth.se 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 william@kth.se 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 william@kth.se 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 william@kth.se 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 william@kth.se 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 william@kth.se 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 william@kth.se SRAM Data 1 Data 0 Sel 0 A matrix is formed by 2 m x n SRAM-cells Sel 1 William Sandqvist william@kth.se 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 william@kth.se 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 william@kth.se 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 william@kth.se 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 william@kth.se DRAM Memory Chip Memorymodule with 8 chips 256Mbit (32M ×8) William Sandqvist william@kth.se 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 william@kth.se 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 william@kth.se 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 william@kth.se 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 william@kth.se 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 william@kth.se 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 william@kth.se 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 william@kth.se Register Symbol WR > 32 bit register is 32 logic elements in a FPGA William Sandqvist william@kth.se 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 william@kth.se Register with threestateoutpot Symbol WR OE > Symbol bidirectional (inputs and outputs are connected together) WR OE > William Sandqvist william@kth.se 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 william@kth.se 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 william@kth.se Dubble port register Symbol WR OE1 > OE2 More Dubble portregisters can be paired with each other for two common output buses. William Sandqvist william@kth.se Mikrocomputer - architecture The computer registers. A 32 ×32 bit dubbleport Register File William Sandqvist william@kth.se 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 william@kth.se 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 william@kth.se 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 william@kth.se 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 william@kth.se 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 william@kth.se 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 william@kth.se William Sandqvist william@kth.se.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    36 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us