Free Electronic Lab

Opensource EDA software development, some thoughts about the EDA/Semiconductor industry and Mixed-signal integrated circuit design

Floorplanning with Magic, how hard can that be ?

Alliance VLSI development cycle has stalled and there are many software compatibility issues that need to be solved before getting a proper (one that can meet the industry’s needs) digital backend flow with opensource software. Herb which was meant as a clone for Alliance VLSI will not be stable enough at the end of this year, nor I would expect some Mixed-Signal designs from it.

Since it won’t be TCL based, I doubt I would even use Herb myself. Hence, I’m investigating further on what should be done before one can design a mixed signal chip with the industry’s requirements.

Magic VLSI is fairly analog oriented, it is TCL based and it is lambda based. Since it is TCL based, it deserves credits. But being lambda based it makes it hard to go beyond 90nm process node with it since it won’t be accurate enough. Surely a timing correlation would prove this.

Magic’s 2 grid cells normally represent the length of the transistor. However, macro models of SRAM/ROM available in the LEF format include decimal points to reflect the position of different metal layers and vias. This is a major drawback with Magic VLSI.

Achieving digital implementation with Magic would certainly require new techniques about  how to use magic itself and how metrics (resistances, capacitances, switching activities,..) are extracted.

I started today with a case scenario: try to get a simple floorplan setup with some macro models. Nigel Nordsworth has kindly forwarded some Macro models. He is FEL’s test contributor for more than a year now. As mentioned above, LEF files might include X and Y positions with 3 decimal points in microns. Hence, to load the macro models, these X and Y positions should be multiplied by 1000 and thereby converting them into the nanometer scale.

Our current possible solution would be to use a Magic’s grid cell to represent 1 nm². This is not how one would normally use Magic. The complexity slope rises as all the tech files should be revisited and possibly be project dependent. Being project dependent, the solution would not be useful for the normal user. But once we can get a proper TCL package with can help us rotate the macro models and one of the 3 internal routers of magic can actually do some power routings (VDD and GND), we will present our solution for standardization.

instance_name ""
foreach instance [ cellname list instances ] {
    if { $instance == $element_name } {
         set instance_name $element_name
    }
}

select cell $instance_name
instance celldef $instance_name

regsub {\.} $xl {} xl
regsub {\.} $yl {} yl
move to $xl $yl

puts "Info: Moved the following selected Macro to ($xl,$yl)"

Using the above TCL commands just to move around the macro model I believe that a digital implementation should be feasible with Magic VLSI. But some intelligent mechanisms should be investigated about the timing and power correlations. As I wrote in the past, coupled with IRSIM we can even estimate leakage power out of the design during standby mode.

It should be exciting to design low power and low voltage designs.

Filed under: alliance, asic, magic

[FEL] Do you know this magic ?

Magic VLSI is one of the core FEL packages, with which IC layout can be carried out. Since Fedora is shipping 5 additional standard cells (delays calculated by a linear delay model, also known as the prop–ramp delay model), here is a small tip how to teach Magic to deduce the location of their respective technology file:

  • gedit ~/.magicrc
  • copy the following text into this ~/.magicrc file

puts stdout “Processing .magicrc file”
path sys “. /usr/share/pharosc/magic/etc $CAD_ROOT/magic/sys $CAD_ROOT/magic/sys/current”

  • fire up magic, you should see in the Technology Manager, additional technologies.

$CAD_ROOT variable is an Magic’s internal variable, which is /usr/lib or /usr/lib64 depending on your computer’s architecture.

The ~/.magicrc file can include any valid Tcl command. This file is also handy if the user wants to define a key shortcut or button actions. Names like “Control_XK_i” refer to key combinations. The “XK” comes from the X11 standard definitions.

Filed under: Free Electronic Lab, magic

EDA: Physical Layout is done, so what’s next? (PART_2)

In EDA: Physical Layout is done, so what’s next? (PART_1), I talked about interoperability between opensource Layout Editors which Fedora is shipping or will ship soon:

  • alliance (soon on fedora)
  • magic
  • toped
  • with the GDS II stream format (GDSII) or Caltech Intermediate Form (CIF) provided the proper technology has been fed.

    In Part_2, I’ll demonstrate

  • with an Invertor (TSMC 0.25µm SCN5M_DEEP technology) how with magic I can exchange my layout with toped using the GDS II stream format (GDSII) (I believe you can do the same with CIF on your own) and
  • what I can do next with gds2pov which was recently included.
  • Here’s a graphical overview of what I’m talking about and it also defines the wafer fabrication’s position in the process:

    The opensource tools are described in blue.

    I’ve already created the layout of the invertor (both NMOS and PMOS: w=0.48µm l=0.24µm) and available here.

    Open magic with:
    magic -TSCN5M_DEEP.12.light -dOGL &
    Lambda is the unit length in magic layout. It is a visible square box in the grid mode of magic. Since the minimum size of a ploy (red) area (which is also the possible minimum size of magic) is 2 lambda, the length of lambda is half of the technology size.

    When using TSMC 0.25µm, 1 lambda = 0.25µm/2 = 0.12µm

    Have a look at the Tech Manager:

    _THEN_ open the layout: invertor_lay.mag

    Convert the layout to GDSII format with “File -> Write GDS”.
    Now that you have a GDSII data file, you can import it on “toped”.

    Once your layout has been completed and appropriate checks have been made, you can either send for wafer fabrication or view it in 3D with gds2pov.

    gdsoglviewer -p pov_process.txt -i invertor_0u25.gds P+ -c pov_config.txt

    I update the pov_process to fit the technology I’m using. However the height of each layer doesn’t show the real fabrication’s heights. The pov_process file defines the Layer Maps of my GDSII data files. For the TSMC 0.25µm SCN5M_DEEP technology I used these Layers are described on MOSIS SCMOS Technology Codes and Layer Maps :SCN5M, SCN5M_SUBM,and SCN5M_DEEP
    Use your mouse to rotate and zoom (right click = zoom out and left click zoom in).
    This is a mere simple example that does nothing more than:

  • when input is 1 output is 0
  • when input is 0 output is 1
  • Filed under: alliance, eda, electronics, fedora, magic

    EDA: Physical Layout is done, so what’s next? (PART_1)

    Whether you are a student, lecturer, VLSI amateurs or professionals, there is no way that you can prevent yourself from using proprietary softwares such from Cadence, Altera…

    In the semiconductor world, students/trainees are taught under proprietary softwares so as they could be attractive for companies recruiting them. Similarly, students studying accounting or economics are taught under Microsoft Office instead of OpenOffice for the same reason. Sadly, this is the truth.

    However proprietary softwares for the semiconductor world are so expensive that one can’t afford for personal use (much more expensive than Vista, to give you an idea). Opensource might be an alternative. Thereby, the question of exchanging one’s work between applications raises. I’ll talk about layout editors for now. Each layout editor has its own file format. It would be useless to design a layout if one can’t do much with its design. By useless, I mean waste of time and money. Mature EDA CADs like magic and alliance (soon on fedora) do provide exports to the GDS II stream format (GDSII) or Caltech Intermediate Form (CIF) provided the proper technology has been fed.

    Now, students can design at home with magic, alliance (soon on fedora) or toped on their Fedora. Then demonstrate their achievement on Cadence’s Virtuoso at school, for example. But on Fedora, one isn’t only restricted to Layout editing, but can also:

  • extract spice netlists, simulate the latter with ngspice or gnucap (we will soon see gspiceui and gwave into the fedora collection in the next 2 weeks)
  • do Switch-level simulation with irsim
  • do VHDL simulations with either ghdl and freehdl along with gtkwave.
  • do large analog or mixed-signal circuits simulations
  • do schematics with xcircuit, xsch or gschem
  • design pcb with the couple geda suite and pcb. or with kicad and view under gerbv
  • do LVS with alliance (soon on fedora)- However for now netgen is giving segmentation faults.
  • ..
  • (not semiconductor related: gpasm, gpsim, piklab, ktechlab and pikloops useful for pic programming)

    All these to say, Fedora has included and will continue to include big opensource names in terms of electronic simulations. By F8′s release, alliance, gspiceui and gwave will be available on the fedora collection, making electronic simulations one of F8′s features. If you feel something is missing in Fedora’s Electronic Simulation Kit or simply give feedbacks, please drop me a mail (chitlesh [AT] fedoraproject DOT org). I’ll be delighted to make Fedora provide an Electronic Simulation Kit with which one can do _real_ job!

    In Physical Layout is done, so what’s next? (PART_2), I’ll demonstrate an example of invertor using the TSMC 0.25µm SCN5M_DEEP technology.

    Filed under: alliance, electronics, magic, VLSI

    Profile

    Chitlesh Goorah
    Digital IC design engineer
    Neuchâtel, Switzerland

    This blog is featured on Sean Murphy's EDA blogger list.

    May 2013
    M T W T F S S
    « Feb    
     12345
    6789101112
    13141516171819
    20212223242526
    2728293031  

    Recent Bookmarks

    Je touitte – I tweet

    Follow

    Get every new post delivered to your Inbox.

    Join 26 other followers

    %d bloggers like this: