Full-Custom Circuit Design

  1. Starting Cadence IC tool

    In this section, we will use Cadence Virtuoso (IDE) + Mentor Calibre (DRC).

    vlsi> setlic
          Choose the number of Cadence IC.
    vlsi> setlic
          Choose the number of Mentor Calibre.
    vlsi> cd  ~/d
    vlsi> virtuoso &

    CIW(Command Interpreter Window) is started.

  2. Creating the new design library

    1. Menu of CIW: Tools > Library Manager...
    2. Menu of Library Manager: File > New > Library...
    3. Library name = Lticka (or any name), Directory to save = libraries (or any directory)

      New Library

    4. Check the checkbox of "Compile an ASCII technology file" in Technology File for New Library form
    5. Click Browse... button in Load Technology File form.
    6. Choose "rohm180technology_ic6.tf". This file is a Technology file formatted for Cadence Virtuoso.
    7. The library "Lticka" is added to Library Manager.

  3. Drawing the schematic

    1. Menu of Library Manager: File > New > Cell View...
      Cell name = rosc, Type = schematic, Open with = Schematic XL

      New Schematic

    2. Draw the schematic of the ring VCO (Example of the schematic entry)).

      Ring Oscillator Schematic

      NOTE: A ring oscillator is composed of the odd numbered stages of the inverters with the feedback loop. The oscillating frequency of the ring oscillator depends on the number of stages and the sum of the delay times of the inverters. The delay time of the inverters can be controlled by the current controlling transistors which are connected to the inverter in series. This circuit is often used as a voltage controlled oscillator (VCO). The current of the current controlling transistors controlled by the current of the current mirror circuit. In conclusion, the frequency of the ring VCO is controlled by controlling the current flowing into F_CTRL.

      Components (Shortcut = i)
      vdecRO180PDKnmos18hspiceD1.8V n-ch MOSFET model
      vdecRO180PDKpmos18hspiceD1.8V p-ch MOSFET model

      NOTE: The symbol of the input pin and output pin are brought up by the shortcut key "p".

      Properties of MOSFETs (Shortcut = q)
      TypeLWMultiplier (Number of parallel connections)
      n-ch MOSFET180n1u1
      p-ch MOSFET180n2u2

      Estimate the AD (Drain area), AS (Source area), PD (Drain periphery), PS (Source periphery) by the following formulae and input them to the property form of MOSFETs.

      AD = AS = 0.5um*W (ex. If W=1um, then AD = AS = 0.5p)
      PD = PS = 1u + W (ex. If W=1um, then PD = PS = 2u)
  4. Creating the symbol

    1. Menu of schematic editor: Create > Cellview > From Cellview...

      Create Symbol

      Create Symbol 2

  5. Schematic of the testbench

    1. Create a new cell named "tb_rosc" in the Library Manager
    2. Draw the schematic of the testbench° Example of the schematic entry°ň°£
      Resistance value = rbias, The value of rbias will be assigned later by Test Editor.
      Label the output line.

      Ring Oscillator Testbench

      Components (Shotcut of Instance = i, Shortcut of Property = q)
      analogLibressymbolResistance = rbias
      analogLibcapsymbolCapacitance = 6f
      analogLibvdcsymbolDC Voltage = 0.9

  6. Configuration of the simulation

    1. Menu of Library Manager: File > New > Cell View...
      Adexl view is a view for the configuration of simulation settings.

      adexl view


    2. Click Create Test (Icon of a gear) on the toolbar of ADEXL (Analog Design Environment XL). In the Choosing Design form, Library Name = Lticka, CellName = tb_rosc.
    3. Test Editor Window is started up.

      Test Editor

      Settings in Test Editor

      1. Setup > Simulator...
        Simulator = hspiceD
      2. Setup > Model Libraries...
        Click <Click here to add model file> and '...' buton. Choose the model file name and the section as shown in the following table. NT and PT shows that the model parameters of n-ch MOSFET and p-ch MOSFET are typical (mean value), respectively.
        Model FileSection
      3. Setup > Environment...
        userCmdLineOption = -csfe
      4. Simulation > Convergence Aids > Initial Condition...
        Click the wiring "OUT" in the schematic, and set the initial voltage = 0.9 (see NOTE)
      5. Analyses > Choose...
        Analysis = tran, Start = 0n, Stop = 100n, Step=0.1n, Enabled
      6. Variables > Edit...
        Name = rbias, Value(Expr) = 1
      7. Outputs > Setup...
        1. Click From Design button.
        2. Click the wiring "OUT" in the schematic.
        3. Hit ESC to exit the setup mode.
        4. Click OK button on the Setting Outputs form.
      8. Simulation > Analog Options > Interface Options
        POST = ASCII(2)

      NOTE: The oscillator is started by the perturbation, such as a noise, a change of temperature, and a transient in power-on. Before the transient analysis, the circuit simulator automatically calculates the initial condition, which is obtained from DC analysis for the static bias state, however, the initial condition calculated by the DC analysis includes no perturbation and the circuit keeps a initial state. In the simulation of the oscillator, the initial condition which is deviated from the DC bias condition should be provided to the simulator. In this example, the initial voltage of 0.9V was applied to the OUT node. The transient response time depends on the value of given initial condition.

    4. Menu of Test Editor: Simulation > Netlist > Create
    5. The netlist is created and shown in the new window.
    6. Menu of netlist window: File > Save As...

      Directory = sim, Faile name = rosc.sp

  7. Editing the netlist

    1. Edit the netlist to add the HSPICE directives.
      Add "*" at the beginning of the ARTIST and PSF line in .OPTION directive, and add .ALTER directives and .PARAM directives before .END directive.
      vlsi> emacs  rosc.sp &
      Netlist 1

      Netlist 2

      Note: The simulation is suspended at .ALTER directive and the parameter rbias is updated by .PARAM directive, thereafter the simulation is restarted successively.

  8. Circuit simulation

    1. Execution of HSPICE simulation
      vlsi>cd  ~/d/sim
      vlsi> setlic
      Choose the number of Synopsys HSPICE.
      vlsi> hspice  rosc.sp
      >info:         ***** hspice job concluded
      The simulation has succeeded if you see "hspice job concluded". If an error occurs, check the file name and the revised netlist.
    2. Chekeing the simulation result with CosmosScope.
      vlsi> cscope &
    3. menu of CosmosScope: File > Open > Plotfiles...
    4. Shift-click to choose the files of the simulation results from rosc.tr0 to rosc.tr6, and click Openbutton.
    5. The signal-list window is appeared for each file.
    6. Choose the voltage signal v(out) and click each Plot button.


    7. The amplitude, phase and frequency of the simulation results is measured by using Measurenment Tool, which can be started with the toolbar button.

[Table of Contents] [Next]


Copyright (C) 2016- Akio Kitagawa, Kanazawa Univ.