DOC PREVIEW
U of U CS 6710 - Using makemem template

This preview shows page 1-2 out of 6 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Using makemem template Now you will use the makemem java program to create the files for your ROM.makemem: ; creates ROM files for Cadence R64x32.v ; verilog file for schematic importYour files will need to be brought into the CADENCE database. The following three procedures will read your files in.CIF IN: ; creates a structure layout Verilog IN:Now use CADENCE to assemble your generated layout.Layout:Add IO pins to your layout.IO Pins:At this point you will have complete layout, schematic and symbol that can be integrated into your design hierarchy. This is an exercise in creating an SRAM.makemem: ; creates SRAM files for CadenceCIF IN: ; creates an SRAM layout (remember to do this in a new library! – I’ll use SRAM32x8 as the library name in this example)Verilog IN:Layout:IO Pins:Using makemem template V1.2 November 18, 2004 Modified by Erik Brunvand for CS/EE 6710 – Nov 2006 This document describes how to set up to use makemem the ROM and SRAM generator. It also gives an example of creating each type of file. Required directories and files: 1. First you need to edit your library path to point to the memCells library that contains all the pieces that makemem will use to create your memory structure. Edit your library path (using the library manager Edit -> Library Path or by editing your cds.lib file) to include the following new library: memCells /uusoc/facilities/cad_common/local/Cadence/lib/mem/memCells 2. For EACH new memory that you want to build, you need to create a new Cadence library to hold that memory. This is because the makemem program generates a LOT of stuff in the library that holds your memory and you don’t want it cluttering up your main cell library or your project library. If you make a new library for each memory, then you can include your memory circuit into your project out of that new library and you won’t mess up your primary library. For this example of a ROM, I’ll create a library named rom64x32. Make sure to attach the UofU_TechLib_ami06 technology to your new library. 3. Now you need to make a unix directory in which to run makemem. This is because of the same issue: makemem creates files that you want to keep localized in a directory. For this example I’ll create a directory called ~/IC_CAD/mem 4. Before you start, you need to copy some files into your new IC_CAD/mem directory. From /uusoc/facilities/cad_common/local/Cadence/lib/mem/cif copy memCells.cif and memCells.v to your IC_CAD/mem directory. 5. Now, for an example ROM definition file, copy /uusoc/facilities/cad_common/local/Cadence/lib/mem/examples/ROMfiles/R64x32.rom to your IC_CAD/mem directory. Allen Tanner CS5710/CS6710Now you will use the makemem java program to create the files for your ROM. makemem: ; creates ROM files for Cadence 1. cd ~/IC_CAD/mem ; use the working directory 2. java –cp /uusoc/facility/cad_common/local/Cadence/lib/mem/j makemem –h The –h gets the help message to check if things are set up properly. 3. java –cp /uusoc/facility/cad_common/local/Cadence/lib/mem/j makemem -r R64x32 4. makemem will reproduce the binary contents of the ROM file (R64x32.rom) on the console log. You should look to see if it is the data from the file. 5. makemem will produce three files: R64x32.cif ; CIF file for layout import R64x32.v ; verilog file for schematic import R64x32.il ; Cadence SKILL code file for IO pin attachment Your files will need to be brought into the CADENCE database. The following three procedures will read your files in. CIF IN: ; creates a structure layout 1. Make a new Cadence library to hold your new ROM. I’ll call mine R64x32 2. CIW→File→Import→CIF 3. Run directory: ~/IC_CAD/mem 4. Input file: ~/IC_CAD/mem/R64x32.cif 5. Top Cell name: <leave blank> ; this tells it to use the structure cell as the top cell name, leaving it blank will bring in all the cells 6. Library name: your new library to hold these cells. i.e. R64x32 if that’s what you named it 7. Make sure the option: Do not over write cell views is not asserted (this is inside the options menu, and should be set correctly unless you change it, so you probably don’t have to worry) 8. You should get a notice that PIPO CIFIN has completed with no errors or warnings. Actually, you’ll probably get one warning that you didn’t assert the Do Not Over Write Cell Views option. But since this is the way you wanted things set, this is ignorable. The PIPO.LOG file will be in the directory you chose as your run directory (~/IC_CAD/mem in this case). Verilog IN: 1. CIW→File→Import→Verilog 2. Target library name: R64x32 3. Reference libraries: memCells (remove sample) basic Allen Tanner CS5710/CS67104. Verilog files to import: ~/IC_CAD/mem/R64x32.v 5. –v Options: ~/IC_CAD/mem/memCells.v 6. Make sure that the following is enabled: Overwrite existing views 7. You should see Verilog import completed using the memCells versions of the cells. Note that you have to have added the memCells library to your library path for this to work with no errors! You now have two layouts, SR64x32 & RR64x32 in the library. There is also a schematic and symbol for the combined layout. All of these should reside in the library R64x32. When you make changes to the ROM contents, and re-run the processing steps you will get new RR64x32 layout and a new SR64x32 schematic and symbol (the symbol will be new, but it won’t change unless the structure changes, then of course you will also need a new SR64x32 layout. The generated ROM is in two parts: SR64x32 which is the decoder and the support structure for the ROM, and RR64x32 which is the ROM contents. This is so that once you put the ROM into a larger layout, you can replace the contents (to fix a bug, for example), just by replacing the “dockable” ROM contents within the ROM structure. But, it also means you need to assemble these pieces before you have a working ROM. Now use CADENCE to assemble your generated layout. Layout: 1. Open the layout view of SR64x32. 2. Insert an instance of RR64x32 at exactly X: 0.0 and Y: 0.0. Use the controls at the top of Virtuoso to guide you. You will probably want to zoom into the origin for fine control. 3. Save the new combined layout. You want the cell origin when you use the “q” properties key to be at 0,0. The RR cell overlaps the


View Full Document

U of U CS 6710 - Using makemem template

Download Using makemem template
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Using makemem template and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Using makemem template 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?