background
play

Background Allen Tanner built an SRAM/ROM generator program back in - PDF document

memCellsF09 Single- and Double-port SRAM building blocks Background Allen Tanner built an SRAM/ROM generator program back in 2004 the ROM seems to work fine there are fabricated examples that work the SRAM isnt as good


  1. memCellsF09 Single- and Double-port SRAM building blocks Background  Allen Tanner built an SRAM/ROM generator program back in 2004  the ROM seems to work fine – there are fabricated examples that work  the SRAM isn’t as good – there are fabricated examples that work and that don’t work  So, I have new (tested) SRAM cells  For ROM, we’ll still use “makemem”  1

  2. ROM ROM  2

  3. ROM ROM  3

  4. ROM Layout ROM Layout  4

  5. makemem 102 vladimir:~> java -cp /uusoc/facility/cad_common/local/Cadence/lib/mem/j makemem -h makemem v2.2 Nov 8, 2004 Allen Tanner University of Utah CS6710 Enter the following: java makemem choice options Where: choice selects the creation of either ROM or SRAM. for ROM enter:-r rname : rname.rom is the file name. : for SRAM enter:-s r c : Version 1 SRAM single port. for SRAM enter:-s1 r c : Version 2 SRAM single port. for SRAM enter:-s2 r c : Version 2 SRAM dual port. for SRAM enter:-s3 r c : Version 2 SRAM triple port. : r is the number of rows (decimal). : c is the number of columns (decimal). : :-h -H : help (no processing occurs when help is requested). :-f fname : output file name. Used with .cif, .v & .il files. :-n sname rname : sname for array top cell name. : : rname for ROM (only) dockable ROM array top cell name :-t n : use tristate buffers on the outputs of ROM. :-q : output hello.txt file to find the working file directory. makemem Limits  Number of rows is limited to 64 by address decoder design  Columns are not restricted  For ROM you can add a tristate bus at the output which is another level of decoding  width must be an even number  SRAM has single, dual, and triple port options  5

  6. ROM vs. Verilog ROM vs. Verilog  6

  7. ROM vs. Verilog ROM vs. Verilog  7

  8. ROM vs. Verilog ROM vs. Verilog  8

  9. ROM vs. Verilog SRAM  Can be tricky  Make the SRAM bit cells as small as possible  assembled into “columns”  A column is bunch of bit cells and the associated support for writing (big drivers) and reading (pullups, sense amps, or inverters) those bits  Column “height” is number of words in the memory  Columns are tiled in “width” to make the number of bits in a word  addressing hardware on the side  convert binary addresses into unary row addresses  9

  10. SRAM example (4x8) SRAM cells R/W circuits Address Column decoder SRAM Cell  10

  11. SRAM Cell SRAM Cell (4x4)  11

  12. SRAM Column Support SRAM Column Support  12

  13. Double-port SRAM  One RW port, one R-only port  duplicates the read circuits for a second port Double-port SRAM  One RW port, one R-only port  duplicates the read circuits for a second port  13

  14. 2-port column support 2-port column support  14

  15. 2-port example (32x16) memCellsF09  Building blocks for these SRAMs  /uusoc/facility/cad_common/local/Cadence/lib/OA/memCellsF09  Make sure to turn “categories” on  Things are separated into categories to keep things organized  Both 8t (single-port) and 10t (double-port) columns are available  in 4, 8, 16, 32, and 64 rows  Tile them horizontally to get bits in a word  Must be even (columns are two-bits wide)  15

  16. Address Decoders  two kinds: static and pseudoNMOS  static burns less power, but is slower  pseudoNMOS uses more power, but is faster  I have speed numbers, but couldn’t find them this morning – I’ll report them next week memCellsF09 Library  16

  17. Memory Size Comparison 4rows by 8bits 32rows by 16bits 32rows by 16bits Dual port  17

Recommend


More recommend